mk64/asm/code_80040030.s

60 lines
2.3 KiB
ArmAsm

# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80040030
/* 040C30 80040030 8C980008 */ lw $t8, 8($a0)
/* 040C34 80040034 8C99000C */ lw $t9, 0xc($a0)
/* 040C38 80040038 20840010 */ addi $a0, $a0, 0x10
/* 040C3C 8004003C 00003025 */ move $a2, $zero
/* 040C40 80040040 0305C020 */ add $t8, $t8, $a1
/* 040C44 80040044 0324C820 */ add $t9, $t9, $a0
.L80040048:
/* 040C48 80040048 54C00006 */ bnel $a2, $zero, .L80040064
/* 040C4C 8004004C 0100482A */ slt $t1, $t0, $zero
/* 040C50 80040050 84880000 */ lh $t0, ($a0)
/* 040C54 80040054 24060010 */ li $a2, 16
/* 040C58 80040058 20840002 */ addi $a0, $a0, 2
/* 040C5C 8004005C 00C84004 */ sllv $t0, $t0, $a2
/* 040C60 80040060 0100482A */ slt $t1, $t0, $zero
.L80040064:
/* 040C64 80040064 51200007 */ beql $t1, $zero, .L80040084
/* 040C68 80040068 948A0000 */ lhu $t2, ($a0)
/* 040C6C 8004006C 832A0000 */ lb $t2, ($t9)
/* 040C70 80040070 23390001 */ addi $t9, $t9, 1
/* 040C74 80040074 20A50001 */ addi $a1, $a1, 1
/* 040C78 80040078 1000000D */ b .L800400B0
/* 040C7C 8004007C A0AAFFFF */ sb $t2, -1($a1)
/* 040C80 80040080 948A0000 */ lhu $t2, ($a0)
.L80040084:
/* 040C84 80040084 20840002 */ addi $a0, $a0, 2
/* 040C88 80040088 000A5B02 */ srl $t3, $t2, 0xc
/* 040C8C 8004008C 314A0FFF */ andi $t2, $t2, 0xfff
/* 040C90 80040090 00AA4822 */ sub $t1, $a1, $t2
/* 040C94 80040094 216B0003 */ addi $t3, $t3, 3
.L80040098:
/* 040C98 80040098 812AFFFF */ lb $t2, -1($t1)
/* 040C9C 8004009C 216BFFFF */ addi $t3, $t3, -1
/* 040CA0 800400A0 21290001 */ addi $t1, $t1, 1
/* 040CA4 800400A4 20A50001 */ addi $a1, $a1, 1
/* 040CA8 800400A8 1560FFFB */ bnez $t3, .L80040098
/* 040CAC 800400AC A0AAFFFF */ sb $t2, -1($a1)
.L800400B0:
/* 040CB0 800400B0 00B8082A */ slt $at, $a1, $t8
/* 040CB4 800400B4 00084040 */ sll $t0, $t0, 1
/* 040CB8 800400B8 1420FFE3 */ bnez $at, .L80040048
/* 040CBC 800400BC 20C6FFFF */ addi $a2, $a2, -1
/* 040CC0 800400C0 03E00008 */ jr $ra
/* 040CC4 800400C4 00000000 */ nop
/* 040CC8 800400C8 00000000 */ nop
/* 040CCC 800400CC 00000000 */ nop