mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
135 lines
6.3 KiB
ArmAsm
135 lines
6.3 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_800E27E0
|
|
/* 07BC90 800E27E0 27BDFFB8 */ addiu $sp, $sp, -0x48
|
|
/* 07BC94 800E27E4 AFB10034 */ sw $s1, 0x34($sp)
|
|
/* 07BC98 800E27E8 3C118011 */ lui $s1, 0x8011
|
|
/* 07BC9C 800E27EC 2631EFC8 */ addiu $s1, $s1, -0x1038
|
|
/* 07BCA0 800E27F0 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 07BCA4 800E27F4 AFB20038 */ sw $s2, 0x38($sp)
|
|
/* 07BCA8 800E27F8 AFB00030 */ sw $s0, 0x30($sp)
|
|
/* 07BCAC 800E27FC F7B40040 */ sdc1 $f20, 0x40($sp)
|
|
/* 07BCB0 800E2800 862200B0 */ lh $v0, 0xb0($s1)
|
|
/* 07BCB4 800E2804 3C013F00 */ lui $at, 0x3f00
|
|
/* 07BCB8 800E2808 44811000 */ mtc1 $at, $f2
|
|
/* 07BCBC 800E280C 44820000 */ mtc1 $v0, $f0
|
|
/* 07BCC0 800E2810 00000000 */ nop
|
|
/* 07BCC4 800E2814 46800020 */ cvt.s.w $f0, $f0
|
|
/* 07BCC8 800E2818 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 07BCCC 800E281C 00000000 */ nop
|
|
/* 07BCD0 800E2820 27A40018 */ addiu $a0, $sp, 0x18
|
|
/* 07BCD4 800E2824 C6220028 */ lwc1 $f2, 0x28($s1)
|
|
/* 07BCD8 800E2828 27A5001C */ addiu $a1, $sp, 0x1c
|
|
/* 07BCDC 800E282C E7A20020 */ swc1 $f2, 0x20($sp)
|
|
/* 07BCE0 800E2830 46000506 */ mov.s $f20, $f0
|
|
/* 07BCE4 800E2834 C620002C */ lwc1 $f0, 0x2c($s1)
|
|
/* 07BCE8 800E2838 C6220030 */ lwc1 $f2, 0x30($s1)
|
|
/* 07BCEC 800E283C 46140000 */ add.s $f0, $f0, $f20
|
|
/* 07BCF0 800E2840 E7A20028 */ swc1 $f2, 0x28($sp)
|
|
/* 07BCF4 800E2844 E7B4002C */ swc1 $f20, 0x2c($sp)
|
|
/* 07BCF8 800E2848 0C0388C1 */ jal func_800E2304
|
|
/* 07BCFC 800E284C E7A00024 */ swc1 $f0, 0x24($sp)
|
|
/* 07BD00 800E2850 C7A2001C */ lwc1 $f2, 0x1c($sp)
|
|
/* 07BD04 800E2854 44800000 */ mtc1 $zero, $f0
|
|
/* 07BD08 800E2858 3C128016 */ lui $s2, 0x8016
|
|
/* 07BD0C 800E285C 2652A550 */ addiu $s2, $s2, -0x5ab0
|
|
/* 07BD10 800E2860 46001032 */ c.eq.s $f2, $f0
|
|
/* 07BD14 800E2864 00000000 */ nop
|
|
/* 07BD18 800E2868 45010004 */ bc1t .L800E287C
|
|
/* 07BD1C 800E286C 0220202D */ daddu $a0, $s1, $zero
|
|
/* 07BD20 800E2870 C6220080 */ lwc1 $f2, 0x80($s1)
|
|
/* 07BD24 800E2874 08038A31 */ j .L800E28C4
|
|
/* 07BD28 800E2878 27A50020 */ addiu $a1, $sp, 0x20
|
|
|
|
.L800E287C:
|
|
/* 07BD2C 800E287C 3C038007 */ lui $v1, 0x8007
|
|
/* 07BD30 800E2880 8C637410 */ lw $v1, 0x7410($v1)
|
|
/* 07BD34 800E2884 C62200A8 */ lwc1 $f2, 0xa8($s1)
|
|
/* 07BD38 800E2888 3C0142B4 */ lui $at, 0x42b4
|
|
/* 07BD3C 800E288C 44810000 */ mtc1 $at, $f0
|
|
/* 07BD40 800E2890 00031080 */ sll $v0, $v1, 2
|
|
/* 07BD44 800E2894 00431021 */ addu $v0, $v0, $v1
|
|
/* 07BD48 800E2898 00021080 */ sll $v0, $v0, 2
|
|
/* 07BD4C 800E289C 00431023 */ subu $v0, $v0, $v1
|
|
/* 07BD50 800E28A0 000218C0 */ sll $v1, $v0, 3
|
|
/* 07BD54 800E28A4 00431021 */ addu $v0, $v0, $v1
|
|
/* 07BD58 800E28A8 000210C0 */ sll $v0, $v0, 3
|
|
/* 07BD5C 800E28AC 46001081 */ sub.s $f2, $f2, $f0
|
|
/* 07BD60 800E28B0 3C01800B */ lui $at, 0x800b
|
|
/* 07BD64 800E28B4 00220821 */ addu $at, $at, $v0
|
|
/* 07BD68 800E28B8 C4201DEC */ lwc1 $f0, 0x1dec($at)
|
|
/* 07BD6C 800E28BC 46001080 */ add.s $f2, $f2, $f0
|
|
/* 07BD70 800E28C0 27A50020 */ addiu $a1, $sp, 0x20
|
|
.L800E28C4:
|
|
/* 07BD74 800E28C4 27A2002C */ addiu $v0, $sp, 0x2c
|
|
/* 07BD78 800E28C8 27A60024 */ addiu $a2, $sp, 0x24
|
|
/* 07BD7C 800E28CC 27A70028 */ addiu $a3, $sp, 0x28
|
|
/* 07BD80 800E28D0 E7A20018 */ swc1 $f2, 0x18($sp)
|
|
/* 07BD84 800E28D4 AFA20010 */ sw $v0, 0x10($sp)
|
|
/* 07BD88 800E28D8 0C0379F9 */ jal func_800DE7E4
|
|
/* 07BD8C 800E28DC E7A20014 */ swc1 $f2, 0x14($sp)
|
|
/* 07BD90 800E28E0 0040802D */ daddu $s0, $v0, $zero
|
|
/* 07BD94 800E28E4 06000030 */ bltz $s0, .L800E29A8
|
|
/* 07BD98 800E28E8 A6500008 */ sh $s0, 8($s2)
|
|
/* 07BD9C 800E28EC 922200B4 */ lbu $v0, 0xb4($s1)
|
|
/* 07BDA0 800E28F0 2442FFF8 */ addiu $v0, $v0, -8
|
|
/* 07BDA4 800E28F4 2C420002 */ sltiu $v0, $v0, 2
|
|
/* 07BDA8 800E28F8 1440002C */ bnez $v0, .L800E29AC
|
|
/* 07BDAC 800E28FC 0200102D */ daddu $v0, $s0, $zero
|
|
/* 07BDB0 800E2900 86420002 */ lh $v0, 2($s2)
|
|
/* 07BDB4 800E2904 04410029 */ bgez $v0, .L800E29AC
|
|
/* 07BDB8 800E2908 0200102D */ daddu $v0, $s0, $zero
|
|
/* 07BDBC 800E290C C6200070 */ lwc1 $f0, 0x70($s1)
|
|
/* 07BDC0 800E2910 4600A000 */ add.s $f0, $f20, $f0
|
|
/* 07BDC4 800E2914 C7A2002C */ lwc1 $f2, 0x2c($sp)
|
|
/* 07BDC8 800E2918 46000005 */ abs.s $f0, $f0
|
|
/* 07BDCC 800E291C 4600103E */ c.le.s $f2, $f0
|
|
/* 07BDD0 800E2920 00000000 */ nop
|
|
/* 07BDD4 800E2924 45000020 */ bc1f .L800E29A8
|
|
/* 07BDD8 800E2928 32024000 */ andi $v0, $s0, 0x4000
|
|
/* 07BDDC 800E292C 10400006 */ beqz $v0, .L800E2948
|
|
/* 07BDE0 800E2930 00000000 */ nop
|
|
/* 07BDE4 800E2934 0C0441A9 */ jal func_801106A4
|
|
/* 07BDE8 800E2938 0200202D */ daddu $a0, $s0, $zero
|
|
/* 07BDEC 800E293C 2403000D */ addiu $v1, $zero, 0xd
|
|
/* 07BDF0 800E2940 1043001A */ beq $v0, $v1, .L800E29AC
|
|
/* 07BDF4 800E2944 0200102D */ daddu $v0, $s0, $zero
|
|
.L800E2948:
|
|
/* 07BDF8 800E2948 862200B0 */ lh $v0, 0xb0($s1)
|
|
/* 07BDFC 800E294C 3C0140A0 */ lui $at, 0x40a0
|
|
/* 07BE00 800E2950 44810000 */ mtc1 $at, $f0
|
|
/* 07BE04 800E2954 3C014040 */ lui $at, 0x4040
|
|
/* 07BE08 800E2958 44812000 */ mtc1 $at, $f4
|
|
/* 07BE0C 800E295C 44821000 */ mtc1 $v0, $f2
|
|
/* 07BE10 800E2960 00000000 */ nop
|
|
/* 07BE14 800E2964 468010A0 */ cvt.s.w $f2, $f2
|
|
/* 07BE18 800E2968 46001083 */ div.s $f2, $f2, $f0
|
|
/* 07BE1C 800E296C 46041082 */ mul.s $f2, $f2, $f4
|
|
/* 07BE20 800E2970 00000000 */ nop
|
|
/* 07BE24 800E2974 C7A00024 */ lwc1 $f0, 0x24($sp)
|
|
/* 07BE28 800E2978 46020001 */ sub.s $f0, $f0, $f2
|
|
/* 07BE2C 800E297C 822300B4 */ lb $v1, 0xb4($s1)
|
|
/* 07BE30 800E2980 2402000F */ addiu $v0, $zero, 0xf
|
|
/* 07BE34 800E2984 10620008 */ beq $v1, $v0, .L800E29A8
|
|
/* 07BE38 800E2988 E620002C */ swc1 $f0, 0x2c($s1)
|
|
/* 07BE3C 800E298C 2402000D */ addiu $v0, $zero, 0xd
|
|
/* 07BE40 800E2990 10620006 */ beq $v1, $v0, .L800E29AC
|
|
/* 07BE44 800E2994 0200102D */ daddu $v0, $s0, $zero
|
|
/* 07BE48 800E2998 AE200070 */ sw $zero, 0x70($s1)
|
|
/* 07BE4C 800E299C AE200074 */ sw $zero, 0x74($s1)
|
|
/* 07BE50 800E29A0 AE200078 */ sw $zero, 0x78($s1)
|
|
/* 07BE54 800E29A4 AE20007C */ sw $zero, 0x7c($s1)
|
|
.L800E29A8:
|
|
/* 07BE58 800E29A8 0200102D */ daddu $v0, $s0, $zero
|
|
.L800E29AC:
|
|
/* 07BE5C 800E29AC 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 07BE60 800E29B0 8FB20038 */ lw $s2, 0x38($sp)
|
|
/* 07BE64 800E29B4 8FB10034 */ lw $s1, 0x34($sp)
|
|
/* 07BE68 800E29B8 8FB00030 */ lw $s0, 0x30($sp)
|
|
/* 07BE6C 800E29BC D7B40040 */ ldc1 $f20, 0x40($sp)
|
|
/* 07BE70 800E29C0 03E00008 */ jr $ra
|
|
/* 07BE74 800E29C4 27BD0048 */ addiu $sp, $sp, 0x48
|
|
|