papermario/asm/nonmatchings/code_de740_len_23f0/func_80149E04.s
2020-09-23 23:16:13 -04:00

101 lines
4.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80149E04
/* E0504 80149E04 27BDFFD8 */ addiu $sp, $sp, -0x28
/* E0508 80149E08 44860000 */ mtc1 $a2, $f0
/* E050C 80149E0C 8FA3003C */ lw $v1, 0x3c($sp)
/* E0510 80149E10 AFB1001C */ sw $s1, 0x1c($sp)
/* E0514 80149E14 AFB20020 */ sw $s2, 0x20($sp)
/* E0518 80149E18 8FB20038 */ lw $s2, 0x38($sp)
/* E051C 80149E1C 3C02FFFF */ lui $v0, 0xffff
/* E0520 80149E20 AFBF0024 */ sw $ra, 0x24($sp)
/* E0524 80149E24 AFB00018 */ sw $s0, 0x18($sp)
/* E0528 80149E28 00628024 */ and $s0, $v1, $v0
/* E052C 80149E2C 3063FFFF */ andi $v1, $v1, 0xffff
/* E0530 80149E30 24020001 */ addiu $v0, $zero, 1
/* E0534 80149E34 1062000D */ beq $v1, $v0, .L80149E6C
/* E0538 80149E38 00E0882D */ daddu $s1, $a3, $zero
/* E053C 80149E3C 10600005 */ beqz $v1, .L80149E54
/* E0540 80149E40 24020002 */ addiu $v0, $zero, 2
/* E0544 80149E44 1062000F */ beq $v1, $v0, .L80149E84
/* E0548 80149E48 3C020001 */ lui $v0, 1
/* E054C 80149E4C 080527A8 */ j .L80149EA0
/* E0550 80149E50 02021024 */ and $v0, $s0, $v0
.L80149E54:
/* E0554 80149E54 44060000 */ mfc1 $a2, $f0
/* E0558 80149E58 0220382D */ daddu $a3, $s1, $zero
/* E055C 80149E5C 0C0527D6 */ jal func_80149F58
/* E0560 80149E60 AFB20010 */ sw $s2, 0x10($sp)
/* E0564 80149E64 080527A7 */ j .L80149E9C
/* E0568 80149E68 3C020001 */ lui $v0, 1
.L80149E6C:
/* E056C 80149E6C 44060000 */ mfc1 $a2, $f0
/* E0570 80149E70 0220382D */ daddu $a3, $s1, $zero
/* E0574 80149E74 0C05286D */ jal func_8014A1B4
/* E0578 80149E78 AFB20010 */ sw $s2, 0x10($sp)
/* E057C 80149E7C 080527A7 */ j .L80149E9C
/* E0580 80149E80 3C020001 */ lui $v0, 1
.L80149E84:
/* E0584 80149E84 44060000 */ mfc1 $a2, $f0
/* E0588 80149E88 0220382D */ daddu $a3, $s1, $zero
/* E058C 80149E8C AFB20010 */ sw $s2, 0x10($sp)
/* E0590 80149E90 0C052494 */ jal func_80149250
/* E0594 80149E94 AFB00014 */ sw $s0, 0x14($sp)
/* E0598 80149E98 3C020001 */ lui $v0, 1
.L80149E9C:
/* E059C 80149E9C 02021024 */ and $v0, $s0, $v0
.L80149EA0:
/* E05A0 80149EA0 10400003 */ beqz $v0, .L80149EB0
/* E05A4 80149EA4 3C020040 */ lui $v0, 0x40
/* E05A8 80149EA8 080527C6 */ j .L80149F18
/* E05AC 80149EAC A6200000 */ sh $zero, ($s1)
.L80149EB0:
/* E05B0 80149EB0 02021024 */ and $v0, $s0, $v0
/* E05B4 80149EB4 10400007 */ beqz $v0, .L80149ED4
/* E05B8 80149EB8 3C020020 */ lui $v0, 0x20
/* E05BC 80149EBC 86220000 */ lh $v0, ($s1)
/* E05C0 80149EC0 28420050 */ slti $v0, $v0, 0x50
/* E05C4 80149EC4 10400014 */ beqz $v0, .L80149F18
/* E05C8 80149EC8 24020050 */ addiu $v0, $zero, 0x50
/* E05CC 80149ECC 080527C6 */ j .L80149F18
/* E05D0 80149ED0 A6220000 */ sh $v0, ($s1)
.L80149ED4:
/* E05D4 80149ED4 02021024 */ and $v0, $s0, $v0
/* E05D8 80149ED8 10400007 */ beqz $v0, .L80149EF8
/* E05DC 80149EDC 3C020010 */ lui $v0, 0x10
/* E05E0 80149EE0 86220000 */ lh $v0, ($s1)
/* E05E4 80149EE4 2842003C */ slti $v0, $v0, 0x3c
/* E05E8 80149EE8 1040000B */ beqz $v0, .L80149F18
/* E05EC 80149EEC 2402003C */ addiu $v0, $zero, 0x3c
/* E05F0 80149EF0 080527C6 */ j .L80149F18
/* E05F4 80149EF4 A6220000 */ sh $v0, ($s1)
.L80149EF8:
/* E05F8 80149EF8 02021024 */ and $v0, $s0, $v0
/* E05FC 80149EFC 10400006 */ beqz $v0, .L80149F18
/* E0600 80149F00 00000000 */ nop
/* E0604 80149F04 86220000 */ lh $v0, ($s1)
/* E0608 80149F08 28420028 */ slti $v0, $v0, 0x28
/* E060C 80149F0C 10400002 */ beqz $v0, .L80149F18
/* E0610 80149F10 24020028 */ addiu $v0, $zero, 0x28
/* E0614 80149F14 A6220000 */ sh $v0, ($s1)
.L80149F18:
/* E0618 80149F18 86420000 */ lh $v0, ($s2)
/* E061C 80149F1C 1C400005 */ bgtz $v0, .L80149F34
/* E0620 80149F20 28420080 */ slti $v0, $v0, 0x80
/* E0624 80149F24 24020001 */ addiu $v0, $zero, 1
/* E0628 80149F28 A6420000 */ sh $v0, ($s2)
/* E062C 80149F2C 86420000 */ lh $v0, ($s2)
/* E0630 80149F30 28420080 */ slti $v0, $v0, 0x80
.L80149F34:
/* E0634 80149F34 14400002 */ bnez $v0, .L80149F40
/* E0638 80149F38 2402007F */ addiu $v0, $zero, 0x7f
/* E063C 80149F3C A6420000 */ sh $v0, ($s2)
.L80149F40:
/* E0640 80149F40 8FBF0024 */ lw $ra, 0x24($sp)
/* E0644 80149F44 8FB20020 */ lw $s2, 0x20($sp)
/* E0648 80149F48 8FB1001C */ lw $s1, 0x1c($sp)
/* E064C 80149F4C 8FB00018 */ lw $s0, 0x18($sp)
/* E0650 80149F50 03E00008 */ jr $ra
/* E0654 80149F54 27BD0028 */ addiu $sp, $sp, 0x28