mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
89 lines
4.0 KiB
ArmAsm
89 lines
4.0 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_800E0398
|
|
/* 079848 800E0398 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 07984C 800E039C AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 079850 800E03A0 3C108011 */ lui $s0, 0x8011
|
|
/* 079854 800E03A4 2610C920 */ addiu $s0, $s0, -0x36e0
|
|
/* 079858 800E03A8 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 07985C 800E03AC 8E020000 */ lw $v0, ($s0)
|
|
/* 079860 800E03B0 3C078011 */ lui $a3, 0x8011
|
|
/* 079864 800E03B4 24E7EFC8 */ addiu $a3, $a3, -0x1038
|
|
/* 079868 800E03B8 1440003D */ bnez $v0, .L800E04B0
|
|
/* 07986C 800E03BC 00000000 */ nop
|
|
/* 079870 800E03C0 8CE60004 */ lw $a2, 4($a3)
|
|
/* 079874 800E03C4 30C20100 */ andi $v0, $a2, 0x100
|
|
/* 079878 800E03C8 1440003D */ bnez $v0, .L800E04C0
|
|
/* 07987C 800E03CC 2402000A */ addiu $v0, $zero, 0xa
|
|
/* 079880 800E03D0 3C058007 */ lui $a1, 0x8007
|
|
/* 079884 800E03D4 8CA5419C */ lw $a1, 0x419c($a1)
|
|
/* 079888 800E03D8 84A30086 */ lh $v1, 0x86($a1)
|
|
/* 07988C 800E03DC 14620038 */ bne $v1, $v0, .L800E04C0
|
|
/* 079890 800E03E0 00000000 */ nop
|
|
/* 079894 800E03E4 80A20070 */ lb $v0, 0x70($a1)
|
|
/* 079898 800E03E8 14400035 */ bnez $v0, .L800E04C0
|
|
/* 07989C 800E03EC 3C049249 */ lui $a0, 0x9249
|
|
/* 0798A0 800E03F0 94A3008C */ lhu $v1, 0x8c($a1)
|
|
/* 0798A4 800E03F4 34842493 */ ori $a0, $a0, 0x2493
|
|
/* 0798A8 800E03F8 00031C00 */ sll $v1, $v1, 0x10
|
|
/* 0798AC 800E03FC 00031403 */ sra $v0, $v1, 0x10
|
|
/* 0798B0 800E0400 00440018 */ mult $v0, $a0
|
|
/* 0798B4 800E0404 00031FC3 */ sra $v1, $v1, 0x1f
|
|
/* 0798B8 800E0408 00004010 */ mfhi $t0
|
|
/* 0798BC 800E040C 01022021 */ addu $a0, $t0, $v0
|
|
/* 0798C0 800E0410 00042083 */ sra $a0, $a0, 2
|
|
/* 0798C4 800E0414 00832023 */ subu $a0, $a0, $v1
|
|
/* 0798C8 800E0418 000418C0 */ sll $v1, $a0, 3
|
|
/* 0798CC 800E041C 00641823 */ subu $v1, $v1, $a0
|
|
/* 0798D0 800E0420 00431023 */ subu $v0, $v0, $v1
|
|
/* 0798D4 800E0424 00021400 */ sll $v0, $v0, 0x10
|
|
/* 0798D8 800E0428 00021403 */ sra $v0, $v0, 0x10
|
|
/* 0798DC 800E042C 2442FFFE */ addiu $v0, $v0, -2
|
|
/* 0798E0 800E0430 04420001 */ bltzl $v0, .L800E0438
|
|
/* 0798E4 800E0434 00021023 */ negu $v0, $v0
|
|
.L800E0438:
|
|
/* 0798E8 800E0438 00042400 */ sll $a0, $a0, 0x10
|
|
/* 0798EC 800E043C 00042403 */ sra $a0, $a0, 0x10
|
|
/* 0798F0 800E0440 00441021 */ addu $v0, $v0, $a0
|
|
/* 0798F4 800E0444 28420006 */ slti $v0, $v0, 6
|
|
/* 0798F8 800E0448 1040001D */ beqz $v0, .L800E04C0
|
|
/* 0798FC 800E044C 30C200C0 */ andi $v0, $a2, 0xc0
|
|
/* 079900 800E0450 1040001B */ beqz $v0, .L800E04C0
|
|
/* 079904 800E0454 00000000 */ nop
|
|
/* 079908 800E0458 8CE20000 */ lw $v0, ($a3)
|
|
/* 07990C 800E045C 30420020 */ andi $v0, $v0, 0x20
|
|
/* 079910 800E0460 14400017 */ bnez $v0, .L800E04C0
|
|
/* 079914 800E0464 00000000 */ nop
|
|
/* 079918 800E0468 80E20015 */ lb $v0, 0x15($a3)
|
|
/* 07991C 800E046C 14400014 */ bnez $v0, .L800E04C0
|
|
/* 079920 800E0470 30C20030 */ andi $v0, $a2, 0x30
|
|
/* 079924 800E0474 1440000B */ bnez $v0, .L800E04A4
|
|
/* 079928 800E0478 00000000 */ nop
|
|
/* 07992C 800E047C 3C06802B */ lui $a2, 0x802b
|
|
/* 079930 800E0480 3C0400E2 */ lui $a0, 0xe2
|
|
/* 079934 800E0484 24841870 */ addiu $a0, $a0, 0x1870
|
|
/* 079938 800E0488 3C0500E2 */ lui $a1, 0xe2
|
|
/* 07993C 800E048C 24A525B0 */ addiu $a1, $a1, 0x25b0
|
|
/* 079940 800E0490 0C00A5CF */ jal dma_copy
|
|
/* 079944 800E0494 34C67000 */ ori $a2, $a2, 0x7000
|
|
/* 079948 800E0498 3C02802B */ lui $v0, 0x802b
|
|
/* 07994C 800E049C 24427140 */ addiu $v0, $v0, 0x7140
|
|
/* 079950 800E04A0 AE020000 */ sw $v0, ($s0)
|
|
.L800E04A4:
|
|
/* 079954 800E04A4 8E020000 */ lw $v0, ($s0)
|
|
/* 079958 800E04A8 10400005 */ beqz $v0, .L800E04C0
|
|
/* 07995C 800E04AC 00000000 */ nop
|
|
.L800E04B0:
|
|
/* 079960 800E04B0 3C028011 */ lui $v0, 0x8011
|
|
/* 079964 800E04B4 8C42C920 */ lw $v0, -0x36e0($v0)
|
|
/* 079968 800E04B8 0040F809 */ jalr $v0
|
|
/* 07996C 800E04BC 00000000 */ nop
|
|
.L800E04C0:
|
|
/* 079970 800E04C0 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 079974 800E04C4 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 079978 800E04C8 03E00008 */ jr $ra
|
|
/* 07997C 800E04CC 27BD0018 */ addiu $sp, $sp, 0x18
|
|
|