papermario/asm/nonmatchings/code_7bb60_len_41b0/func_800E29C8.s
2020-09-23 23:16:13 -04:00

135 lines
6.5 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800E29C8
/* 7BE78 800E29C8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 7BE7C 800E29CC AFB00018 */ sw $s0, 0x18($sp)
/* 7BE80 800E29D0 3C108011 */ lui $s0, 0x8011
/* 7BE84 800E29D4 2610EFC8 */ addiu $s0, $s0, -0x1038
/* 7BE88 800E29D8 AFBF0028 */ sw $ra, 0x28($sp)
/* 7BE8C 800E29DC AFB30024 */ sw $s3, 0x24($sp)
/* 7BE90 800E29E0 AFB20020 */ sw $s2, 0x20($sp)
/* 7BE94 800E29E4 AFB1001C */ sw $s1, 0x1c($sp)
/* 7BE98 800E29E8 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 7BE9C 800E29EC 8E030000 */ lw $v1, ($s0)
/* 7BEA0 800E29F0 04610006 */ bgez $v1, .L800E2A0C
/* 7BEA4 800E29F4 0200982D */ daddu $s3, $s0, $zero
/* 7BEA8 800E29F8 3C027FFF */ lui $v0, 0x7fff
/* 7BEAC 800E29FC 3442FFFF */ ori $v0, $v0, 0xffff
/* 7BEB0 800E2A00 00621024 */ and $v0, $v1, $v0
/* 7BEB4 800E2A04 AE020000 */ sw $v0, ($s0)
/* 7BEB8 800E2A08 A20000B6 */ sb $zero, 0xb6($s0)
.L800E2A0C:
/* 7BEBC 800E2A0C 820300B6 */ lb $v1, 0xb6($s0)
/* 7BEC0 800E2A10 14600031 */ bnez $v1, .L800E2AD8
/* 7BEC4 800E2A14 24020002 */ addiu $v0, $zero, 2
/* 7BEC8 800E2A18 3C018011 */ lui $at, 0x8011
/* 7BECC 800E2A1C C42CC960 */ lwc1 $f12, -0x36a0($at)
/* 7BED0 800E2A20 3C018011 */ lui $at, 0x8011
/* 7BED4 800E2A24 C42EC97C */ lwc1 $f14, -0x3684($at)
/* 7BED8 800E2A28 8E060028 */ lw $a2, 0x28($s0)
/* 7BEDC 800E2A2C 8E070030 */ lw $a3, 0x30($s0)
/* 7BEE0 800E2A30 0C00A7B5 */ jal dist2D
/* 7BEE4 800E2A34 26110028 */ addiu $s1, $s0, 0x28
/* 7BEE8 800E2A38 3C0141B0 */ lui $at, 0x41b0
/* 7BEEC 800E2A3C 44811000 */ mtc1 $at, $f2
/* 7BEF0 800E2A40 00000000 */ nop
/* 7BEF4 800E2A44 4602003E */ c.le.s $f0, $f2
/* 7BEF8 800E2A48 00000000 */ nop
/* 7BEFC 800E2A4C 45000006 */ bc1f .L800E2A68
/* 7BF00 800E2A50 26120030 */ addiu $s2, $s0, 0x30
/* 7BF04 800E2A54 0220202D */ daddu $a0, $s1, $zero
/* 7BF08 800E2A58 3C0640A0 */ lui $a2, 0x40a0
/* 7BF0C 800E2A5C 8E070080 */ lw $a3, 0x80($s0)
/* 7BF10 800E2A60 0C00A7E7 */ jal add_vec2D_polar
/* 7BF14 800E2A64 0240282D */ daddu $a1, $s2, $zero
.L800E2A68:
/* 7BF18 800E2A68 0C038D12 */ jal integrate_gravity
/* 7BF1C 800E2A6C 00000000 */ nop
/* 7BF20 800E2A70 C6020070 */ lwc1 $f2, 0x70($s0)
/* 7BF24 800E2A74 44800000 */ mtc1 $zero, $f0
/* 7BF28 800E2A78 00000000 */ nop
/* 7BF2C 800E2A7C 4600103E */ c.le.s $f2, $f0
/* 7BF30 800E2A80 00000000 */ nop
/* 7BF34 800E2A84 45000009 */ bc1f .L800E2AAC
/* 7BF38 800E2A88 00000000 */ nop
/* 7BF3C 800E2A8C 0C0389AC */ jal func_800E26B0
/* 7BF40 800E2A90 00000000 */ nop
/* 7BF44 800E2A94 0C038C1B */ jal gravity_use_fall_parms
/* 7BF48 800E2A98 00000000 */ nop
/* 7BF4C 800E2A9C 0C038D12 */ jal integrate_gravity
/* 7BF50 800E2AA0 00000000 */ nop
/* 7BF54 800E2AA4 24020001 */ addiu $v0, $zero, 1
/* 7BF58 800E2AA8 A20200B6 */ sb $v0, 0xb6($s0)
.L800E2AAC:
/* 7BF5C 800E2AAC C6000070 */ lwc1 $f0, 0x70($s0)
/* 7BF60 800E2AB0 C602006C */ lwc1 $f2, 0x6c($s0)
/* 7BF64 800E2AB4 4600103C */ c.lt.s $f2, $f0
/* 7BF68 800E2AB8 00000000 */ nop
/* 7BF6C 800E2ABC 45030001 */ bc1tl .L800E2AC4
/* 7BF70 800E2AC0 E6020070 */ swc1 $f2, 0x70($s0)
.L800E2AC4:
/* 7BF74 800E2AC4 C600002C */ lwc1 $f0, 0x2c($s0)
/* 7BF78 800E2AC8 C6020070 */ lwc1 $f2, 0x70($s0)
/* 7BF7C 800E2ACC 46020000 */ add.s $f0, $f0, $f2
/* 7BF80 800E2AD0 08038AE4 */ j .L800E2B90
/* 7BF84 800E2AD4 E600002C */ swc1 $f0, 0x2c($s0)
.L800E2AD8:
/* 7BF88 800E2AD8 1462002D */ bne $v1, $v0, .L800E2B90
/* 7BF8C 800E2ADC 00000000 */ nop
/* 7BF90 800E2AE0 3C018011 */ lui $at, 0x8011
/* 7BF94 800E2AE4 C42CC960 */ lwc1 $f12, -0x36a0($at)
/* 7BF98 800E2AE8 3C018011 */ lui $at, 0x8011
/* 7BF9C 800E2AEC C42EC97C */ lwc1 $f14, -0x3684($at)
/* 7BFA0 800E2AF0 8E060028 */ lw $a2, 0x28($s0)
/* 7BFA4 800E2AF4 8E070030 */ lw $a3, 0x30($s0)
/* 7BFA8 800E2AF8 0C00A7B5 */ jal dist2D
/* 7BFAC 800E2AFC 26110028 */ addiu $s1, $s0, 0x28
/* 7BFB0 800E2B00 3C0141B0 */ lui $at, 0x41b0
/* 7BFB4 800E2B04 44811000 */ mtc1 $at, $f2
/* 7BFB8 800E2B08 00000000 */ nop
/* 7BFBC 800E2B0C 4602003E */ c.le.s $f0, $f2
/* 7BFC0 800E2B10 00000000 */ nop
/* 7BFC4 800E2B14 45000006 */ bc1f .L800E2B30
/* 7BFC8 800E2B18 26120030 */ addiu $s2, $s0, 0x30
/* 7BFCC 800E2B1C 0220202D */ daddu $a0, $s1, $zero
/* 7BFD0 800E2B20 3C0640A0 */ lui $a2, 0x40a0
/* 7BFD4 800E2B24 8E070080 */ lw $a3, 0x80($s0)
/* 7BFD8 800E2B28 0C00A7E7 */ jal add_vec2D_polar
/* 7BFDC 800E2B2C 0240282D */ daddu $a1, $s2, $zero
.L800E2B30:
/* 7BFE0 800E2B30 0C038D36 */ jal func_800E34D8
/* 7BFE4 800E2B34 00000000 */ nop
/* 7BFE8 800E2B38 46000306 */ mov.s $f12, $f0
/* 7BFEC 800E2B3C 0C038D45 */ jal func_800E3514
/* 7BFF0 800E2B40 27A50010 */ addiu $a1, $sp, 0x10
/* 7BFF4 800E2B44 8FA40010 */ lw $a0, 0x10($sp)
/* 7BFF8 800E2B48 0C038C57 */ jal func_800E315C
/* 7BFFC 800E2B4C 46000506 */ mov.s $f20, $f0
/* 7C000 800E2B50 8FA20010 */ lw $v0, 0x10($sp)
/* 7C004 800E2B54 0440000E */ bltz $v0, .L800E2B90
/* 7C008 800E2B58 E674002C */ swc1 $f20, 0x2c($s3)
/* 7C00C 800E2B5C 3C040006 */ lui $a0, 6
/* 7C010 800E2B60 8E620004 */ lw $v0, 4($s3)
/* 7C014 800E2B64 30420001 */ andi $v0, $v0, 1
/* 7C018 800E2B68 14400003 */ bnez $v0, .L800E2B78
/* 7C01C 800E2B6C 3484000B */ ori $a0, $a0, 0xb
/* 7C020 800E2B70 3C040001 */ lui $a0, 1
/* 7C024 800E2B74 34840009 */ ori $a0, $a0, 9
.L800E2B78:
/* 7C028 800E2B78 0C037FBF */ jal func_800DFEFC
/* 7C02C 800E2B7C 00000000 */ nop
/* 7C030 800E2B80 0C038069 */ jal enable_player_input
/* 7C034 800E2B84 00000000 */ nop
/* 7C038 800E2B88 0C038C9E */ jal phys_player_land
/* 7C03C 800E2B8C 00000000 */ nop
.L800E2B90:
/* 7C040 800E2B90 8FBF0028 */ lw $ra, 0x28($sp)
/* 7C044 800E2B94 8FB30024 */ lw $s3, 0x24($sp)
/* 7C048 800E2B98 8FB20020 */ lw $s2, 0x20($sp)
/* 7C04C 800E2B9C 8FB1001C */ lw $s1, 0x1c($sp)
/* 7C050 800E2BA0 8FB00018 */ lw $s0, 0x18($sp)
/* 7C054 800E2BA4 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 7C058 800E2BA8 03E00008 */ jr $ra
/* 7C05C 800E2BAC 27BD0038 */ addiu $sp, $sp, 0x38