oot/asm/non_matchings/code/z_rcp/func_8009352C.s

141 lines
6.4 KiB
ArmAsm

.rdata
glabel D_8013EAF4
.asciz "n != f"
.balign 4
glabel D_8013EAFC
.asciz "../z_rcp.c"
.balign 4
.text
glabel func_8009352C
/* B0A6CC 8009352C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B0A6D0 80093530 8FAE0038 */ lw $t6, 0x38($sp)
/* B0A6D4 80093534 8FAF0034 */ lw $t7, 0x34($sp)
/* B0A6D8 80093538 AFB00018 */ sw $s0, 0x18($sp)
/* B0A6DC 8009353C 00808025 */ move $s0, $a0
/* B0A6E0 80093540 AFBF001C */ sw $ra, 0x1c($sp)
/* B0A6E4 80093544 AFA50024 */ sw $a1, 0x24($sp)
/* B0A6E8 80093548 AFA60028 */ sw $a2, 0x28($sp)
/* B0A6EC 8009354C 15CF0003 */ bne $t6, $t7, .L8009355C
/* B0A6F0 80093550 AFA7002C */ sw $a3, 0x2c($sp)
/* B0A6F4 80093554 25D80001 */ addiu $t8, $t6, 1
/* B0A6F8 80093558 AFB80038 */ sw $t8, 0x38($sp)
.L8009355C:
/* B0A6FC 8009355C 8FB90034 */ lw $t9, 0x34($sp)
/* B0A700 80093560 8FA80038 */ lw $t0, 0x38($sp)
/* B0A704 80093564 57280008 */ bnel $t9, $t0, .L80093588
/* B0A708 80093568 02001025 */ move $v0, $s0
/* B0A70C 8009356C 3C048014 */ lui $a0, %hi(D_8013EAF4) # $a0, 0x8014
/* B0A710 80093570 3C058014 */ lui $a1, %hi(D_8013EAFC) # $a1, 0x8014
/* B0A714 80093574 24A5EAFC */ addiu $a1, %lo(D_8013EAFC) # addiu $a1, $a1, -0x1504
/* B0A718 80093578 2484EAF4 */ addiu $a0, %lo(D_8013EAF4) # addiu $a0, $a0, -0x150c
/* B0A71C 8009357C 0C0007FC */ jal __assert
/* B0A720 80093580 240604A3 */ li $a2, 1187
/* B0A724 80093584 02001025 */ move $v0, $s0
.L80093588:
/* B0A728 80093588 3C09E700 */ lui $t1, 0xe700
/* B0A72C 8009358C AC490000 */ sw $t1, ($v0)
/* B0A730 80093590 AC400004 */ sw $zero, 4($v0)
/* B0A734 80093594 26100008 */ addiu $s0, $s0, 8
/* B0A738 80093598 02001025 */ move $v0, $s0
/* B0A73C 8009359C 3C0AF800 */ lui $t2, 0xf800
/* B0A740 800935A0 AC4A0000 */ sw $t2, ($v0)
/* B0A744 800935A4 8FAC0024 */ lw $t4, 0x24($sp)
/* B0A748 800935A8 8FAF0028 */ lw $t7, 0x28($sp)
/* B0A74C 800935AC 8FA8002C */ lw $t0, 0x2c($sp)
/* B0A750 800935B0 000C6E00 */ sll $t5, $t4, 0x18
/* B0A754 800935B4 8FAC0030 */ lw $t4, 0x30($sp)
/* B0A758 800935B8 31EE00FF */ andi $t6, $t7, 0xff
/* B0A75C 800935BC 000EC400 */ sll $t8, $t6, 0x10
/* B0A760 800935C0 310900FF */ andi $t1, $t0, 0xff
/* B0A764 800935C4 00095200 */ sll $t2, $t1, 8
/* B0A768 800935C8 01B8C825 */ or $t9, $t5, $t8
/* B0A76C 800935CC 032A5825 */ or $t3, $t9, $t2
/* B0A770 800935D0 318F00FF */ andi $t7, $t4, 0xff
/* B0A774 800935D4 016F7025 */ or $t6, $t3, $t7
/* B0A778 800935D8 AC4E0004 */ sw $t6, 4($v0)
/* B0A77C 800935DC 8FAD0034 */ lw $t5, 0x34($sp)
/* B0A780 800935E0 26100008 */ addiu $s0, $s0, 8
/* B0A784 800935E4 02001025 */ move $v0, $s0
/* B0A788 800935E8 29A103E8 */ slti $at, $t5, 0x3e8
/* B0A78C 800935EC 14200006 */ bnez $at, .L80093608
/* B0A790 800935F0 8FA80034 */ lw $t0, 0x34($sp)
/* B0A794 800935F4 3C18DB08 */ lui $t8, 0xdb08
/* B0A798 800935F8 AC580000 */ sw $t8, ($v0)
/* B0A79C 800935FC 26100008 */ addiu $s0, $s0, 8
/* B0A7A0 80093600 1000003C */ b .L800936F4
/* B0A7A4 80093604 AC400004 */ sw $zero, 4($v0)
.L80093608:
/* B0A7A8 80093608 290103E5 */ slti $at, $t0, 0x3e5
/* B0A7AC 8009360C 14200009 */ bnez $at, .L80093634
/* B0A7B0 80093610 8FAA0034 */ lw $t2, 0x34($sp)
/* B0A7B4 80093614 02001025 */ move $v0, $s0
/* B0A7B8 80093618 3C197FFF */ lui $t9, (0x7FFF8100 >> 16) # lui $t9, 0x7fff
/* B0A7BC 8009361C 37398100 */ ori $t9, (0x7FFF8100 & 0xFFFF) # ori $t9, $t9, 0x8100
/* B0A7C0 80093620 3C09DB08 */ lui $t1, 0xdb08
/* B0A7C4 80093624 AC490000 */ sw $t1, ($v0)
/* B0A7C8 80093628 AC590004 */ sw $t9, 4($v0)
/* B0A7CC 8009362C 10000031 */ b .L800936F4
/* B0A7D0 80093630 26100008 */ addiu $s0, $s0, 8
.L80093634:
/* B0A7D4 80093634 05410008 */ bgez $t2, .L80093658
/* B0A7D8 80093638 02001025 */ move $v0, $s0
/* B0A7DC 8009363C 02001025 */ move $v0, $s0
/* B0A7E0 80093640 3C0CDB08 */ lui $t4, 0xdb08
/* B0A7E4 80093644 240B00FF */ li $t3, 255
/* B0A7E8 80093648 AC4B0004 */ sw $t3, 4($v0)
/* B0A7EC 8009364C AC4C0000 */ sw $t4, ($v0)
/* B0A7F0 80093650 10000028 */ b .L800936F4
/* B0A7F4 80093654 26100008 */ addiu $s0, $s0, 8
.L80093658:
/* B0A7F8 80093658 3C0FDB08 */ lui $t7, 0xdb08
/* B0A7FC 8009365C AC4F0000 */ sw $t7, ($v0)
/* B0A800 80093660 8FAD0034 */ lw $t5, 0x34($sp)
/* B0A804 80093664 8FAE0038 */ lw $t6, 0x38($sp)
/* B0A808 80093668 3C180001 */ lui $t8, (0x0001F400 >> 16) # lui $t8, 1
/* B0A80C 8009366C 3718F400 */ ori $t8, (0x0001F400 & 0xFFFF) # ori $t8, $t8, 0xf400
/* B0A810 80093670 01CD1823 */ subu $v1, $t6, $t5
/* B0A814 80093674 0303001A */ div $zero, $t8, $v1
/* B0A818 80093678 000D5023 */ negu $t2, $t5
/* B0A81C 8009367C 000A6200 */ sll $t4, $t2, 8
/* B0A820 80093680 01985821 */ addu $t3, $t4, $t8
/* B0A824 80093684 00004012 */ mflo $t0
/* B0A828 80093688 3109FFFF */ andi $t1, $t0, 0xffff
/* B0A82C 8009368C 0009CC00 */ sll $t9, $t1, 0x10
/* B0A830 80093690 0163001A */ div $zero, $t3, $v1
/* B0A834 80093694 00007812 */ mflo $t7
/* B0A838 80093698 31EEFFFF */ andi $t6, $t7, 0xffff
/* B0A83C 8009369C 26100008 */ addiu $s0, $s0, 8
/* B0A840 800936A0 14600002 */ bnez $v1, .L800936AC
/* B0A844 800936A4 00000000 */ nop
/* B0A848 800936A8 0007000D */ break 7
.L800936AC:
/* B0A84C 800936AC 2401FFFF */ li $at, -1
/* B0A850 800936B0 14610004 */ bne $v1, $at, .L800936C4
/* B0A854 800936B4 3C018000 */ lui $at, 0x8000
/* B0A858 800936B8 17010002 */ bne $t8, $at, .L800936C4
/* B0A85C 800936BC 00000000 */ nop
/* B0A860 800936C0 0006000D */ break 6
.L800936C4:
/* B0A864 800936C4 03000821 */ addu $at, $t8, $zero
/* B0A868 800936C8 032EC025 */ or $t8, $t9, $t6
/* B0A86C 800936CC AC580004 */ sw $t8, 4($v0)
/* B0A870 800936D0 14600002 */ bnez $v1, .L800936DC
/* B0A874 800936D4 00000000 */ nop
/* B0A878 800936D8 0007000D */ break 7
.L800936DC:
/* B0A87C 800936DC 2401FFFF */ li $at, -1
/* B0A880 800936E0 14610004 */ bne $v1, $at, .L800936F4
/* B0A884 800936E4 3C018000 */ lui $at, 0x8000
/* B0A888 800936E8 15610002 */ bne $t3, $at, .L800936F4
/* B0A88C 800936EC 00000000 */ nop
/* B0A890 800936F0 0006000D */ break 6
.L800936F4:
/* B0A894 800936F4 8FBF001C */ lw $ra, 0x1c($sp)
/* B0A898 800936F8 02001025 */ move $v0, $s0
/* B0A89C 800936FC 8FB00018 */ lw $s0, 0x18($sp)
/* B0A8A0 80093700 03E00008 */ jr $ra
/* B0A8A4 80093704 27BD0020 */ addiu $sp, $sp, 0x20