papermario/asm/nonmatchings/code_104940_len_dc0/func_802E38D8.s
2020-11-29 02:13:07 -05:00

84 lines
4.2 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802E38D8
/* 105158 802E38D8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 10515C 802E38DC AFB1001C */ sw $s1, 0x1c($sp)
/* 105160 802E38E0 0080882D */ daddu $s1, $a0, $zero
/* 105164 802E38E4 AFBF0020 */ sw $ra, 0x20($sp)
/* 105168 802E38E8 AFB00018 */ sw $s0, 0x18($sp)
/* 10516C 802E38EC 8E300040 */ lw $s0, 0x40($s1)
/* 105170 802E38F0 86030004 */ lh $v1, 4($s0)
/* 105174 802E38F4 18600018 */ blez $v1, .L802E3958
/* 105178 802E38F8 2402000A */ addiu $v0, $zero, 0xa
/* 10517C 802E38FC 14620004 */ bne $v1, $v0, .L802E3910
/* 105180 802E3900 24030014 */ addiu $v1, $zero, 0x14
/* 105184 802E3904 9602000A */ lhu $v0, 0xa($s0)
/* 105188 802E3908 080B8E45 */ j .L802E3914
/* 10518C 802E390C 24030015 */ addiu $v1, $zero, 0x15
.L802E3910:
/* 105190 802E3910 0000102D */ daddu $v0, $zero, $zero
.L802E3914:
/* 105194 802E3914 C620004C */ lwc1 $f0, 0x4c($s1)
/* 105198 802E3918 3C01403C */ lui $at, 0x403c
/* 10519C 802E391C 44811800 */ mtc1 $at, $f3
/* 1051A0 802E3920 44801000 */ mtc1 $zero, $f2
/* 1051A4 802E3924 AFA30010 */ sw $v1, 0x10($sp)
/* 1051A8 802E3928 AFA20014 */ sw $v0, 0x14($sp)
/* 1051AC 802E392C 46000021 */ cvt.d.s $f0, $f0
/* 1051B0 802E3930 46220000 */ add.d $f0, $f0, $f2
/* 1051B4 802E3934 8E250048 */ lw $a1, 0x48($s1)
/* 1051B8 802E3938 8E270050 */ lw $a3, 0x50($s1)
/* 1051BC 802E393C 46200020 */ cvt.s.d $f0, $f0
/* 1051C0 802E3940 44060000 */ mfc1 $a2, $f0
/* 1051C4 802E3944 0C04C6A5 */ jal make_item_entity_nodelay
/* 1051C8 802E3948 24040157 */ addiu $a0, $zero, 0x157
/* 1051CC 802E394C 96020004 */ lhu $v0, 4($s0)
/* 1051D0 802E3950 2442FFFF */ addiu $v0, $v0, -1
/* 1051D4 802E3954 A6020004 */ sh $v0, 4($s0)
.L802E3958:
/* 1051D8 802E3958 86020004 */ lh $v0, 4($s0)
/* 1051DC 802E395C 10400004 */ beqz $v0, .L802E3970
/* 1051E0 802E3960 00000000 */ nop
/* 1051E4 802E3964 86020006 */ lh $v0, 6($s0)
/* 1051E8 802E3968 14400020 */ bnez $v0, .L802E39EC
/* 1051EC 802E396C 00000000 */ nop
.L802E3970:
/* 1051F0 802E3970 3C04802F */ lui $a0, %hi(D_802EA07C)
/* 1051F4 802E3974 2484A07C */ addiu $a0, $a0, %lo(D_802EA07C)
/* 1051F8 802E3978 24020001 */ addiu $v0, $zero, 1
/* 1051FC 802E397C A2020003 */ sb $v0, 3($s0)
/* 105200 802E3980 C6220048 */ lwc1 $f2, 0x48($s1)
/* 105204 802E3984 C624004C */ lwc1 $f4, 0x4c($s1)
/* 105208 802E3988 C6260050 */ lwc1 $f6, 0x50($s1)
/* 10520C 802E398C C6200064 */ lwc1 $f0, 0x64($s1)
/* 105210 802E3990 3C028000 */ lui $v0, 0x8000
/* 105214 802E3994 AFA20014 */ sw $v0, 0x14($sp)
/* 105218 802E3998 4600020D */ trunc.w.s $f8, $f0
/* 10521C 802E399C E7A80010 */ swc1 $f8, 0x10($sp)
/* 105220 802E39A0 4600120D */ trunc.w.s $f8, $f2
/* 105224 802E39A4 44054000 */ mfc1 $a1, $f8
/* 105228 802E39A8 4600220D */ trunc.w.s $f8, $f4
/* 10522C 802E39AC 44064000 */ mfc1 $a2, $f8
/* 105230 802E39B0 4600320D */ trunc.w.s $f8, $f6
/* 105234 802E39B4 44074000 */ mfc1 $a3, $f8
/* 105238 802E39B8 0C044631 */ jal create_entity
/* 10523C 802E39BC 00000000 */ nop
/* 105240 802E39C0 0C04417A */ jal get_entity_by_index
/* 105244 802E39C4 0040202D */ daddu $a0, $v0, $zero
/* 105248 802E39C8 3C05802F */ lui $a1, %hi(D_802E9E54)
/* 10524C 802E39CC 24A59E54 */ addiu $a1, $a1, %lo(D_802E9E54)
/* 105250 802E39D0 0C043EF0 */ jal func_8010FBC0
/* 105254 802E39D4 0040202D */ daddu $a0, $v0, $zero
/* 105258 802E39D8 3C032000 */ lui $v1, 0x2000
/* 10525C 802E39DC 8E220000 */ lw $v0, ($s1)
/* 105260 802E39E0 34630020 */ ori $v1, $v1, 0x20
/* 105264 802E39E4 00431025 */ or $v0, $v0, $v1
/* 105268 802E39E8 AE220000 */ sw $v0, ($s1)
.L802E39EC:
/* 10526C 802E39EC 8FBF0020 */ lw $ra, 0x20($sp)
/* 105270 802E39F0 8FB1001C */ lw $s1, 0x1c($sp)
/* 105274 802E39F4 8FB00018 */ lw $s0, 0x18($sp)
/* 105278 802E39F8 03E00008 */ jr $ra
/* 10527C 802E39FC 27BD0028 */ addiu $sp, $sp, 0x28