mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
135 lines
7.0 KiB
ArmAsm
135 lines
7.0 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_80219ED0_625A70
|
|
/* 625A70 80219ED0 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* 625A74 80219ED4 AFB60038 */ sw $s6, 0x38($sp)
|
|
/* 625A78 80219ED8 0080B02D */ daddu $s6, $a0, $zero
|
|
/* 625A7C 80219EDC 27A50010 */ addiu $a1, $sp, 0x10
|
|
/* 625A80 80219EE0 27A60014 */ addiu $a2, $sp, 0x14
|
|
/* 625A84 80219EE4 27A70018 */ addiu $a3, $sp, 0x18
|
|
/* 625A88 80219EE8 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 625A8C 80219EEC AFB50034 */ sw $s5, 0x34($sp)
|
|
/* 625A90 80219EF0 AFB40030 */ sw $s4, 0x30($sp)
|
|
/* 625A94 80219EF4 AFB3002C */ sw $s3, 0x2c($sp)
|
|
/* 625A98 80219EF8 AFB20028 */ sw $s2, 0x28($sp)
|
|
/* 625A9C 80219EFC AFB10024 */ sw $s1, 0x24($sp)
|
|
/* 625AA0 80219F00 0C0470AC */ jal func_8011C2B0
|
|
/* 625AA4 80219F04 AFB00020 */ sw $s0, 0x20($sp)
|
|
/* 625AA8 80219F08 8FA20018 */ lw $v0, 0x18($sp)
|
|
/* 625AAC 80219F0C 18400052 */ blez $v0, .L8021A058
|
|
/* 625AB0 80219F10 0000802D */ daddu $s0, $zero, $zero
|
|
/* 625AB4 80219F14 3C038023 */ lui $v1, %hi(D_8022F3E0)
|
|
/* 625AB8 80219F18 2463F3E0 */ addiu $v1, $v1, %lo(D_8022F3E0)
|
|
/* 625ABC 80219F1C 00161040 */ sll $v0, $s6, 1
|
|
/* 625AC0 80219F20 0043A021 */ addu $s4, $v0, $v1
|
|
/* 625AC4 80219F24 3C135555 */ lui $s3, 0x5555
|
|
/* 625AC8 80219F28 36735556 */ ori $s3, $s3, 0x5556
|
|
/* 625ACC 80219F2C 34158000 */ ori $s5, $zero, 0x8000
|
|
/* 625AD0 80219F30 02130018 */ mult $s0, $s3
|
|
.L80219F34:
|
|
/* 625AD4 80219F34 001097C3 */ sra $s2, $s0, 0x1f
|
|
/* 625AD8 80219F38 00001810 */ mfhi $v1
|
|
/* 625ADC 80219F3C 00721823 */ subu $v1, $v1, $s2
|
|
/* 625AE0 80219F40 00031040 */ sll $v0, $v1, 1
|
|
/* 625AE4 80219F44 00431021 */ addu $v0, $v0, $v1
|
|
/* 625AE8 80219F48 02021023 */ subu $v0, $s0, $v0
|
|
/* 625AEC 80219F4C 96830000 */ lhu $v1, ($s4)
|
|
/* 625AF0 80219F50 24420001 */ addiu $v0, $v0, 1
|
|
/* 625AF4 80219F54 00620018 */ mult $v1, $v0
|
|
/* 625AF8 80219F58 00101100 */ sll $v0, $s0, 4
|
|
/* 625AFC 80219F5C 00001812 */ mflo $v1
|
|
/* 625B00 80219F60 00702021 */ addu $a0, $v1, $s0
|
|
/* 625B04 80219F64 8FA30014 */ lw $v1, 0x14($sp)
|
|
/* 625B08 80219F68 3084FFFF */ andi $a0, $a0, 0xffff
|
|
/* 625B0C 80219F6C 0C01917C */ jal sins
|
|
/* 625B10 80219F70 00628821 */ addu $s1, $v1, $v0
|
|
/* 625B14 80219F74 00021400 */ sll $v0, $v0, 0x10
|
|
/* 625B18 80219F78 00021403 */ sra $v0, $v0, 0x10
|
|
/* 625B1C 80219F7C 00551021 */ addu $v0, $v0, $s5
|
|
/* 625B20 80219F80 00021FC2 */ srl $v1, $v0, 0x1f
|
|
/* 625B24 80219F84 00431021 */ addu $v0, $v0, $v1
|
|
/* 625B28 80219F88 000213C0 */ sll $v0, $v0, 0xf
|
|
/* 625B2C 80219F8C 00021403 */ sra $v0, $v0, 0x10
|
|
/* 625B30 80219F90 00021880 */ sll $v1, $v0, 2
|
|
/* 625B34 80219F94 00621821 */ addu $v1, $v1, $v0
|
|
/* 625B38 80219F98 00031140 */ sll $v0, $v1, 5
|
|
/* 625B3C 80219F9C 00431823 */ subu $v1, $v0, $v1
|
|
/* 625B40 80219FA0 04610002 */ bgez $v1, .L80219FAC
|
|
/* 625B44 80219FA4 0060102D */ daddu $v0, $v1, $zero
|
|
/* 625B48 80219FA8 24627FFF */ addiu $v0, $v1, 0x7fff
|
|
.L80219FAC:
|
|
/* 625B4C 80219FAC 000223C3 */ sra $a0, $v0, 0xf
|
|
/* 625B50 80219FB0 24820064 */ addiu $v0, $a0, 0x64
|
|
/* 625B54 80219FB4 A222000E */ sb $v0, 0xe($s1)
|
|
/* 625B58 80219FB8 24820032 */ addiu $v0, $a0, 0x32
|
|
/* 625B5C 80219FBC 02121823 */ subu $v1, $s0, $s2
|
|
/* 625B60 80219FC0 00032843 */ sra $a1, $v1, 1
|
|
/* 625B64 80219FC4 00B30018 */ mult $a1, $s3
|
|
/* 625B68 80219FC8 A222000D */ sb $v0, 0xd($s1)
|
|
/* 625B6C 80219FCC 96840000 */ lhu $a0, ($s4)
|
|
/* 625B70 80219FD0 00031FC3 */ sra $v1, $v1, 0x1f
|
|
/* 625B74 80219FD4 000433C2 */ srl $a2, $a0, 0xf
|
|
/* 625B78 80219FD8 00004810 */ mfhi $t1
|
|
/* 625B7C 80219FDC 01231823 */ subu $v1, $t1, $v1
|
|
/* 625B80 80219FE0 00031040 */ sll $v0, $v1, 1
|
|
/* 625B84 80219FE4 00431021 */ addu $v0, $v0, $v1
|
|
/* 625B88 80219FE8 00A22823 */ subu $a1, $a1, $v0
|
|
/* 625B8C 80219FEC 24A50001 */ addiu $a1, $a1, 1
|
|
/* 625B90 80219FF0 00052BC0 */ sll $a1, $a1, 0xf
|
|
/* 625B94 80219FF4 00C50018 */ mult $a2, $a1
|
|
/* 625B98 80219FF8 00042382 */ srl $a0, $a0, 0xe
|
|
/* 625B9C 80219FFC 000423C0 */ sll $a0, $a0, 0xf
|
|
/* 625BA0 8021A000 00001812 */ mflo $v1
|
|
/* 625BA4 8021A004 00642021 */ addu $a0, $v1, $a0
|
|
/* 625BA8 8021A008 00902021 */ addu $a0, $a0, $s0
|
|
/* 625BAC 8021A00C 0C01917C */ jal sins
|
|
/* 625BB0 8021A010 3084FFFF */ andi $a0, $a0, 0xffff
|
|
/* 625BB4 8021A014 00021400 */ sll $v0, $v0, 0x10
|
|
/* 625BB8 8021A018 00021403 */ sra $v0, $v0, 0x10
|
|
/* 625BBC 8021A01C 9223000C */ lbu $v1, 0xc($s1)
|
|
/* 625BC0 8021A020 00551021 */ addu $v0, $v0, $s5
|
|
/* 625BC4 8021A024 00620018 */ mult $v1, $v0
|
|
/* 625BC8 8021A028 00001812 */ mflo $v1
|
|
/* 625BCC 8021A02C 04610004 */ bgez $v1, .L8021A040
|
|
/* 625BD0 8021A030 00031403 */ sra $v0, $v1, 0x10
|
|
/* 625BD4 8021A034 3402FFFF */ ori $v0, $zero, 0xffff
|
|
/* 625BD8 8021A038 00621821 */ addu $v1, $v1, $v0
|
|
/* 625BDC 8021A03C 00031403 */ sra $v0, $v1, 0x10
|
|
.L8021A040:
|
|
/* 625BE0 8021A040 A222000C */ sb $v0, 0xc($s1)
|
|
/* 625BE4 8021A044 8FA20018 */ lw $v0, 0x18($sp)
|
|
/* 625BE8 8021A048 26100001 */ addiu $s0, $s0, 1
|
|
/* 625BEC 8021A04C 0202102A */ slt $v0, $s0, $v0
|
|
/* 625BF0 8021A050 1440FFB8 */ bnez $v0, .L80219F34
|
|
/* 625BF4 8021A054 02130018 */ mult $s0, $s3
|
|
.L8021A058:
|
|
/* 625BF8 8021A058 3C03800A */ lui $v1, %hi(D_8009A66C)
|
|
/* 625BFC 8021A05C 2463A66C */ addiu $v1, $v1, %lo(D_8009A66C)
|
|
/* 625C00 8021A060 8C620000 */ lw $v0, ($v1)
|
|
/* 625C04 8021A064 02C0202D */ daddu $a0, $s6, $zero
|
|
/* 625C08 8021A068 0040802D */ daddu $s0, $v0, $zero
|
|
/* 625C0C 8021A06C 24420008 */ addiu $v0, $v0, 8
|
|
/* 625C10 8021A070 AC620000 */ sw $v0, ($v1)
|
|
/* 625C14 8021A074 3C02DE00 */ lui $v0, 0xde00
|
|
/* 625C18 8021A078 0C0470BB */ jal func_8011C2EC
|
|
/* 625C1C 8021A07C AE020000 */ sw $v0, ($s0)
|
|
/* 625C20 8021A080 AE020004 */ sw $v0, 4($s0)
|
|
/* 625C24 8021A084 3C028023 */ lui $v0, %hi(D_8022F3E0)
|
|
/* 625C28 8021A088 2442F3E0 */ addiu $v0, $v0, %lo(D_8022F3E0)
|
|
/* 625C2C 8021A08C 00161840 */ sll $v1, $s6, 1
|
|
/* 625C30 8021A090 00621821 */ addu $v1, $v1, $v0
|
|
/* 625C34 8021A094 94620000 */ lhu $v0, ($v1)
|
|
/* 625C38 8021A098 24420253 */ addiu $v0, $v0, 0x253
|
|
/* 625C3C 8021A09C A4620000 */ sh $v0, ($v1)
|
|
/* 625C40 8021A0A0 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 625C44 8021A0A4 8FB60038 */ lw $s6, 0x38($sp)
|
|
/* 625C48 8021A0A8 8FB50034 */ lw $s5, 0x34($sp)
|
|
/* 625C4C 8021A0AC 8FB40030 */ lw $s4, 0x30($sp)
|
|
/* 625C50 8021A0B0 8FB3002C */ lw $s3, 0x2c($sp)
|
|
/* 625C54 8021A0B4 8FB20028 */ lw $s2, 0x28($sp)
|
|
/* 625C58 8021A0B8 8FB10024 */ lw $s1, 0x24($sp)
|
|
/* 625C5C 8021A0BC 8FB00020 */ lw $s0, 0x20($sp)
|
|
/* 625C60 8021A0C0 03E00008 */ jr $ra
|
|
/* 625C64 8021A0C4 27BD0040 */ addiu $sp, $sp, 0x40
|