papermario/asm/nonmatchings/code_16c8e0/SetPartPos.s
2020-08-12 22:37:16 -04:00

116 lines
5.1 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetPartPos
/* 1997F8 8026AF18 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 1997FC 8026AF1C AFB10014 */ sw $s1, 0x14($sp)
/* 199800 8026AF20 0080882D */ daddu $s1, $a0, $zero
/* 199804 8026AF24 AFBF0020 */ sw $ra, 0x20($sp)
/* 199808 8026AF28 AFB3001C */ sw $s3, 0x1c($sp)
/* 19980C 8026AF2C AFB20018 */ sw $s2, 0x18($sp)
/* 199810 8026AF30 AFB00010 */ sw $s0, 0x10($sp)
/* 199814 8026AF34 F7B80038 */ sdc1 $f24, 0x38($sp)
/* 199818 8026AF38 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 19981C 8026AF3C F7B40028 */ sdc1 $f20, 0x28($sp)
/* 199820 8026AF40 8E30000C */ lw $s0, 0xc($s1)
/* 199824 8026AF44 8E050000 */ lw $a1, ($s0)
/* 199828 8026AF48 0C0B1EAF */ jal get_variable
/* 19982C 8026AF4C 26100004 */ addiu $s0, $s0, 4
/* 199830 8026AF50 0040902D */ daddu $s2, $v0, $zero
/* 199834 8026AF54 2402FF81 */ addiu $v0, $zero, -0x7f
/* 199838 8026AF58 16420002 */ bne $s2, $v0, .L8026AF64
/* 19983C 8026AF5C 00000000 */ nop
/* 199840 8026AF60 8E320148 */ lw $s2, 0x148($s1)
.L8026AF64:
/* 199844 8026AF64 8E050000 */ lw $a1, ($s0)
/* 199848 8026AF68 26100004 */ addiu $s0, $s0, 4
/* 19984C 8026AF6C 0C0B1EAF */ jal get_variable
/* 199850 8026AF70 0220202D */ daddu $a0, $s1, $zero
/* 199854 8026AF74 8E050000 */ lw $a1, ($s0)
/* 199858 8026AF78 26100004 */ addiu $s0, $s0, 4
/* 19985C 8026AF7C 0220202D */ daddu $a0, $s1, $zero
/* 199860 8026AF80 0C0B1EAF */ jal get_variable
/* 199864 8026AF84 0040982D */ daddu $s3, $v0, $zero
/* 199868 8026AF88 8E050000 */ lw $a1, ($s0)
/* 19986C 8026AF8C 26100004 */ addiu $s0, $s0, 4
/* 199870 8026AF90 4482A000 */ mtc1 $v0, $f20
/* 199874 8026AF94 00000000 */ nop
/* 199878 8026AF98 4680A520 */ cvt.s.w $f20, $f20
/* 19987C 8026AF9C 0C0B1EAF */ jal get_variable
/* 199880 8026AFA0 0220202D */ daddu $a0, $s1, $zero
/* 199884 8026AFA4 8E050000 */ lw $a1, ($s0)
/* 199888 8026AFA8 4482B000 */ mtc1 $v0, $f22
/* 19988C 8026AFAC 00000000 */ nop
/* 199890 8026AFB0 4680B5A0 */ cvt.s.w $f22, $f22
/* 199894 8026AFB4 0C0B1EAF */ jal get_variable
/* 199898 8026AFB8 0220202D */ daddu $a0, $s1, $zero
/* 19989C 8026AFBC 4482C000 */ mtc1 $v0, $f24
/* 1998A0 8026AFC0 00000000 */ nop
/* 1998A4 8026AFC4 4680C620 */ cvt.s.w $f24, $f24
/* 1998A8 8026AFC8 0C09A75B */ jal get_actor
/* 1998AC 8026AFCC 0240202D */ daddu $a0, $s2, $zero
/* 1998B0 8026AFD0 0040182D */ daddu $v1, $v0, $zero
/* 1998B4 8026AFD4 32440700 */ andi $a0, $s2, 0x700
/* 1998B8 8026AFD8 24020100 */ addiu $v0, $zero, 0x100
/* 1998BC 8026AFDC 1082000E */ beq $a0, $v0, .L8026B018
/* 1998C0 8026AFE0 28820101 */ slti $v0, $a0, 0x101
/* 1998C4 8026AFE4 10400005 */ beqz $v0, .L8026AFFC
/* 1998C8 8026AFE8 24020200 */ addiu $v0, $zero, 0x200
/* 1998CC 8026AFEC 50800007 */ beql $a0, $zero, .L8026B00C
/* 1998D0 8026AFF0 E4740144 */ swc1 $f20, 0x144($v1)
/* 1998D4 8026AFF4 0809AC1D */ j .L8026B074
/* 1998D8 8026AFF8 00000000 */ nop
.L8026AFFC:
/* 1998DC 8026AFFC 10820007 */ beq $a0, $v0, .L8026B01C
/* 1998E0 8026B000 0060202D */ daddu $a0, $v1, $zero
/* 1998E4 8026B004 0809AC1D */ j .L8026B074
/* 1998E8 8026B008 00000000 */ nop
.L8026B00C:
/* 1998EC 8026B00C E4760148 */ swc1 $f22, 0x148($v1)
/* 1998F0 8026B010 0809AC1D */ j .L8026B074
/* 1998F4 8026B014 E478014C */ swc1 $f24, 0x14c($v1)
.L8026B018:
/* 1998F8 8026B018 0060202D */ daddu $a0, $v1, $zero
.L8026B01C:
/* 1998FC 8026B01C 0C099117 */ jal get_actor_part
/* 199900 8026B020 0260282D */ daddu $a1, $s3, $zero
/* 199904 8026B024 0040202D */ daddu $a0, $v0, $zero
/* 199908 8026B028 8C820000 */ lw $v0, ($a0)
/* 19990C 8026B02C 3C030010 */ lui $v1, 0x10
/* 199910 8026B030 00431024 */ and $v0, $v0, $v1
/* 199914 8026B034 5440000D */ bnezl $v0, .L8026B06C
/* 199918 8026B038 E494002C */ swc1 $f20, 0x2c($a0)
/* 19991C 8026B03C 4600A00D */ trunc.w.s $f0, $f20
/* 199920 8026B040 44020000 */ mfc1 $v0, $f0
/* 199924 8026B044 00000000 */ nop
/* 199928 8026B048 A4820014 */ sh $v0, 0x14($a0)
/* 19992C 8026B04C 4600B00D */ trunc.w.s $f0, $f22
/* 199930 8026B050 44020000 */ mfc1 $v0, $f0
/* 199934 8026B054 00000000 */ nop
/* 199938 8026B058 A4820016 */ sh $v0, 0x16($a0)
/* 19993C 8026B05C 4600C00D */ trunc.w.s $f0, $f24
/* 199940 8026B060 44020000 */ mfc1 $v0, $f0
/* 199944 8026B064 0809AC1D */ j .L8026B074
/* 199948 8026B068 A4820018 */ sh $v0, 0x18($a0)
.L8026B06C:
/* 19994C 8026B06C E4960030 */ swc1 $f22, 0x30($a0)
/* 199950 8026B070 E4980034 */ swc1 $f24, 0x34($a0)
.L8026B074:
/* 199954 8026B074 8FBF0020 */ lw $ra, 0x20($sp)
/* 199958 8026B078 8FB3001C */ lw $s3, 0x1c($sp)
/* 19995C 8026B07C 8FB20018 */ lw $s2, 0x18($sp)
/* 199960 8026B080 8FB10014 */ lw $s1, 0x14($sp)
/* 199964 8026B084 8FB00010 */ lw $s0, 0x10($sp)
/* 199968 8026B088 D7B80038 */ ldc1 $f24, 0x38($sp)
/* 19996C 8026B08C D7B60030 */ ldc1 $f22, 0x30($sp)
/* 199970 8026B090 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 199974 8026B094 24020002 */ addiu $v0, $zero, 2
/* 199978 8026B098 03E00008 */ jr $ra
/* 19997C 8026B09C 27BD0040 */ addiu $sp, $sp, 0x40