mirror of
https://github.com/pmret/papermario.git
synced 2024-11-10 04:52:34 +01:00
102 lines
4.6 KiB
ArmAsm
102 lines
4.6 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_80039688
|
|
/* 014A88 80039688 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* 014A8C 8003968C AFB00030 */ sw $s0, 0x30($sp)
|
|
/* 014A90 80039690 0080802D */ daddu $s0, $a0, $zero
|
|
/* 014A94 80039694 AFBF0034 */ sw $ra, 0x34($sp)
|
|
/* 014A98 80039698 F7B40038 */ sdc1 $f20, 0x38($sp)
|
|
/* 014A9C 8003969C 8E030000 */ lw $v1, ($s0)
|
|
/* 014AA0 800396A0 30620200 */ andi $v0, $v1, 0x200
|
|
/* 014AA4 800396A4 1040004B */ beqz $v0, .L800397D4
|
|
/* 014AA8 800396A8 30620800 */ andi $v0, $v1, 0x800
|
|
/* 014AAC 800396AC 14400047 */ bnez $v0, .L800397CC
|
|
/* 014AB0 800396B0 2402EFFF */ addiu $v0, $zero, -0x1001
|
|
/* 014AB4 800396B4 3C013F80 */ lui $at, 0x3f80
|
|
/* 014AB8 800396B8 44810000 */ mtc1 $at, $f0
|
|
/* 014ABC 800396BC C602001C */ lwc1 $f2, 0x1c($s0)
|
|
/* 014AC0 800396C0 C6040038 */ lwc1 $f4, 0x38($s0)
|
|
/* 014AC4 800396C4 46001081 */ sub.s $f2, $f2, $f0
|
|
/* 014AC8 800396C8 E6000014 */ swc1 $f0, 0x14($s0)
|
|
/* 014ACC 800396CC C600003C */ lwc1 $f0, 0x3c($s0)
|
|
/* 014AD0 800396D0 E7A40020 */ swc1 $f4, 0x20($sp)
|
|
/* 014AD4 800396D4 3C014150 */ lui $at, 0x4150
|
|
/* 014AD8 800396D8 44812000 */ mtc1 $at, $f4
|
|
/* 014ADC 800396DC 46020000 */ add.s $f0, $f0, $f2
|
|
/* 014AE0 800396E0 3C030400 */ lui $v1, 0x400
|
|
/* 014AE4 800396E4 E602001C */ swc1 $f2, 0x1c($s0)
|
|
/* 014AE8 800396E8 E600003C */ swc1 $f0, 0x3c($s0)
|
|
/* 014AEC 800396EC 3C014180 */ lui $at, 0x4180
|
|
/* 014AF0 800396F0 44810000 */ mtc1 $at, $f0
|
|
/* 014AF4 800396F4 46001085 */ abs.s $f2, $f2
|
|
/* 014AF8 800396F8 46001080 */ add.s $f2, $f2, $f0
|
|
/* 014AFC 800396FC C600003C */ lwc1 $f0, 0x3c($s0)
|
|
/* 014B00 80039700 C6060040 */ lwc1 $f6, 0x40($s0)
|
|
/* 014B04 80039704 46040000 */ add.s $f0, $f0, $f4
|
|
/* 014B08 80039708 E7A60028 */ swc1 $f6, 0x28($sp)
|
|
/* 014B0C 8003970C E7A2002C */ swc1 $f2, 0x2c($sp)
|
|
/* 014B10 80039710 E7A00024 */ swc1 $f0, 0x24($sp)
|
|
/* 014B14 80039714 8E020000 */ lw $v0, ($s0)
|
|
/* 014B18 80039718 00431024 */ and $v0, $v0, $v1
|
|
/* 014B1C 8003971C 1440000A */ bnez $v0, .L80039748
|
|
/* 014B20 80039720 46001506 */ mov.s $f20, $f2
|
|
/* 014B24 80039724 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 014B28 80039728 27A60024 */ addiu $a2, $sp, 0x24
|
|
/* 014B2C 8003972C 27A2002C */ addiu $v0, $sp, 0x2c
|
|
/* 014B30 80039730 AFA20010 */ sw $v0, 0x10($sp)
|
|
/* 014B34 80039734 8E040080 */ lw $a0, 0x80($s0)
|
|
/* 014B38 80039738 0C0372DF */ jal func_800DCB7C
|
|
/* 014B3C 8003973C 27A70028 */ addiu $a3, $sp, 0x28
|
|
/* 014B40 80039740 0800E5E0 */ j .L80039780
|
|
/* 014B44 80039744 00000000 */ nop
|
|
|
|
.L80039748:
|
|
/* 014B48 80039748 27A2002C */ addiu $v0, $sp, 0x2c
|
|
/* 014B4C 8003974C AFA20010 */ sw $v0, 0x10($sp)
|
|
/* 014B50 80039750 C600000C */ lwc1 $f0, 0xc($s0)
|
|
/* 014B54 80039754 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 014B58 80039758 E7A00014 */ swc1 $f0, 0x14($sp)
|
|
/* 014B5C 8003975C 860200A6 */ lh $v0, 0xa6($s0)
|
|
/* 014B60 80039760 27A60024 */ addiu $a2, $sp, 0x24
|
|
/* 014B64 80039764 44820000 */ mtc1 $v0, $f0
|
|
/* 014B68 80039768 00000000 */ nop
|
|
/* 014B6C 8003976C 46800020 */ cvt.s.w $f0, $f0
|
|
/* 014B70 80039770 E7A00018 */ swc1 $f0, 0x18($sp)
|
|
/* 014B74 80039774 8E040080 */ lw $a0, 0x80($s0)
|
|
/* 014B78 80039778 0C0371DE */ jal func_800DC778
|
|
/* 014B7C 8003977C 27A70028 */ addiu $a3, $sp, 0x28
|
|
.L80039780:
|
|
/* 014B80 80039780 10400010 */ beqz $v0, .L800397C4
|
|
/* 014B84 80039784 00000000 */ nop
|
|
/* 014B88 80039788 C7A0002C */ lwc1 $f0, 0x2c($sp)
|
|
/* 014B8C 8003978C 4614003E */ c.le.s $f0, $f20
|
|
/* 014B90 80039790 00000000 */ nop
|
|
/* 014B94 80039794 4500000B */ bc1f .L800397C4
|
|
/* 014B98 80039798 00000000 */ nop
|
|
/* 014B9C 8003979C 8E020000 */ lw $v0, ($s0)
|
|
/* 014BA0 800397A0 AE00001C */ sw $zero, 0x1c($s0)
|
|
/* 014BA4 800397A4 C7A00024 */ lwc1 $f0, 0x24($sp)
|
|
/* 014BA8 800397A8 3C038011 */ lui $v1, 0x8011
|
|
/* 014BAC 800397AC 9463C97A */ lhu $v1, -0x3686($v1)
|
|
/* 014BB0 800397B0 34421000 */ ori $v0, $v0, 0x1000
|
|
/* 014BB4 800397B4 AE020000 */ sw $v0, ($s0)
|
|
/* 014BB8 800397B8 E600003C */ swc1 $f0, 0x3c($s0)
|
|
/* 014BBC 800397BC 0800E5F5 */ j .L800397D4
|
|
/* 014BC0 800397C0 A6030084 */ sh $v1, 0x84($s0)
|
|
|
|
.L800397C4:
|
|
/* 014BC4 800397C4 8E020000 */ lw $v0, ($s0)
|
|
/* 014BC8 800397C8 2403EFFF */ addiu $v1, $zero, -0x1001
|
|
.L800397CC:
|
|
/* 014BCC 800397CC 00431024 */ and $v0, $v0, $v1
|
|
/* 014BD0 800397D0 AE020000 */ sw $v0, ($s0)
|
|
.L800397D4:
|
|
/* 014BD4 800397D4 8FBF0034 */ lw $ra, 0x34($sp)
|
|
/* 014BD8 800397D8 8FB00030 */ lw $s0, 0x30($sp)
|
|
/* 014BDC 800397DC D7B40038 */ ldc1 $f20, 0x38($sp)
|
|
/* 014BE0 800397E0 03E00008 */ jr $ra
|
|
/* 014BE4 800397E4 27BD0040 */ addiu $sp, $sp, 0x40
|
|
|