mirror of
https://github.com/pmret/papermario.git
synced 2024-11-19 17:32:30 +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_802191C0_63E3A0
|
||
|
/* 63E3A0 802191C0 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||
|
/* 63E3A4 802191C4 AFB60038 */ sw $s6, 0x38($sp)
|
||
|
/* 63E3A8 802191C8 0080B02D */ daddu $s6, $a0, $zero
|
||
|
/* 63E3AC 802191CC 27A50010 */ addiu $a1, $sp, 0x10
|
||
|
/* 63E3B0 802191D0 27A60014 */ addiu $a2, $sp, 0x14
|
||
|
/* 63E3B4 802191D4 27A70018 */ addiu $a3, $sp, 0x18
|
||
|
/* 63E3B8 802191D8 AFBF003C */ sw $ra, 0x3c($sp)
|
||
|
/* 63E3BC 802191DC AFB50034 */ sw $s5, 0x34($sp)
|
||
|
/* 63E3C0 802191E0 AFB40030 */ sw $s4, 0x30($sp)
|
||
|
/* 63E3C4 802191E4 AFB3002C */ sw $s3, 0x2c($sp)
|
||
|
/* 63E3C8 802191E8 AFB20028 */ sw $s2, 0x28($sp)
|
||
|
/* 63E3CC 802191EC AFB10024 */ sw $s1, 0x24($sp)
|
||
|
/* 63E3D0 802191F0 0C0470AC */ jal func_8011C2B0
|
||
|
/* 63E3D4 802191F4 AFB00020 */ sw $s0, 0x20($sp)
|
||
|
/* 63E3D8 802191F8 8FA20018 */ lw $v0, 0x18($sp)
|
||
|
/* 63E3DC 802191FC 18400052 */ blez $v0, .L80219348
|
||
|
/* 63E3E0 80219200 0000802D */ daddu $s0, $zero, $zero
|
||
|
/* 63E3E4 80219204 3C038022 */ lui $v1, %hi(D_80222640)
|
||
|
/* 63E3E8 80219208 24632640 */ addiu $v1, $v1, %lo(D_80222640)
|
||
|
/* 63E3EC 8021920C 00161040 */ sll $v0, $s6, 1
|
||
|
/* 63E3F0 80219210 0043A021 */ addu $s4, $v0, $v1
|
||
|
/* 63E3F4 80219214 3C135555 */ lui $s3, 0x5555
|
||
|
/* 63E3F8 80219218 36735556 */ ori $s3, $s3, 0x5556
|
||
|
/* 63E3FC 8021921C 34158000 */ ori $s5, $zero, 0x8000
|
||
|
/* 63E400 80219220 02130018 */ mult $s0, $s3
|
||
|
.L80219224:
|
||
|
/* 63E404 80219224 001097C3 */ sra $s2, $s0, 0x1f
|
||
|
/* 63E408 80219228 00001810 */ mfhi $v1
|
||
|
/* 63E40C 8021922C 00721823 */ subu $v1, $v1, $s2
|
||
|
/* 63E410 80219230 00031040 */ sll $v0, $v1, 1
|
||
|
/* 63E414 80219234 00431021 */ addu $v0, $v0, $v1
|
||
|
/* 63E418 80219238 02021023 */ subu $v0, $s0, $v0
|
||
|
/* 63E41C 8021923C 96830000 */ lhu $v1, ($s4)
|
||
|
/* 63E420 80219240 24420001 */ addiu $v0, $v0, 1
|
||
|
/* 63E424 80219244 00620018 */ mult $v1, $v0
|
||
|
/* 63E428 80219248 00101100 */ sll $v0, $s0, 4
|
||
|
/* 63E42C 8021924C 00001812 */ mflo $v1
|
||
|
/* 63E430 80219250 00702021 */ addu $a0, $v1, $s0
|
||
|
/* 63E434 80219254 8FA30014 */ lw $v1, 0x14($sp)
|
||
|
/* 63E438 80219258 3084FFFF */ andi $a0, $a0, 0xffff
|
||
|
/* 63E43C 8021925C 0C01917C */ jal sins
|
||
|
/* 63E440 80219260 00628821 */ addu $s1, $v1, $v0
|
||
|
/* 63E444 80219264 00021400 */ sll $v0, $v0, 0x10
|
||
|
/* 63E448 80219268 00021403 */ sra $v0, $v0, 0x10
|
||
|
/* 63E44C 8021926C 00551021 */ addu $v0, $v0, $s5
|
||
|
/* 63E450 80219270 00021FC2 */ srl $v1, $v0, 0x1f
|
||
|
/* 63E454 80219274 00431021 */ addu $v0, $v0, $v1
|
||
|
/* 63E458 80219278 000213C0 */ sll $v0, $v0, 0xf
|
||
|
/* 63E45C 8021927C 00021403 */ sra $v0, $v0, 0x10
|
||
|
/* 63E460 80219280 00021880 */ sll $v1, $v0, 2
|
||
|
/* 63E464 80219284 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 63E468 80219288 00031140 */ sll $v0, $v1, 5
|
||
|
/* 63E46C 8021928C 00431823 */ subu $v1, $v0, $v1
|
||
|
/* 63E470 80219290 04610002 */ bgez $v1, .L8021929C
|
||
|
/* 63E474 80219294 0060102D */ daddu $v0, $v1, $zero
|
||
|
/* 63E478 80219298 24627FFF */ addiu $v0, $v1, 0x7fff
|
||
|
.L8021929C:
|
||
|
/* 63E47C 8021929C 000223C3 */ sra $a0, $v0, 0xf
|
||
|
/* 63E480 802192A0 24820064 */ addiu $v0, $a0, 0x64
|
||
|
/* 63E484 802192A4 A222000E */ sb $v0, 0xe($s1)
|
||
|
/* 63E488 802192A8 24820032 */ addiu $v0, $a0, 0x32
|
||
|
/* 63E48C 802192AC 02121823 */ subu $v1, $s0, $s2
|
||
|
/* 63E490 802192B0 00032843 */ sra $a1, $v1, 1
|
||
|
/* 63E494 802192B4 00B30018 */ mult $a1, $s3
|
||
|
/* 63E498 802192B8 A222000D */ sb $v0, 0xd($s1)
|
||
|
/* 63E49C 802192BC 96840000 */ lhu $a0, ($s4)
|
||
|
/* 63E4A0 802192C0 00031FC3 */ sra $v1, $v1, 0x1f
|
||
|
/* 63E4A4 802192C4 000433C2 */ srl $a2, $a0, 0xf
|
||
|
/* 63E4A8 802192C8 00004810 */ mfhi $t1
|
||
|
/* 63E4AC 802192CC 01231823 */ subu $v1, $t1, $v1
|
||
|
/* 63E4B0 802192D0 00031040 */ sll $v0, $v1, 1
|
||
|
/* 63E4B4 802192D4 00431021 */ addu $v0, $v0, $v1
|
||
|
/* 63E4B8 802192D8 00A22823 */ subu $a1, $a1, $v0
|
||
|
/* 63E4BC 802192DC 24A50001 */ addiu $a1, $a1, 1
|
||
|
/* 63E4C0 802192E0 00052BC0 */ sll $a1, $a1, 0xf
|
||
|
/* 63E4C4 802192E4 00C50018 */ mult $a2, $a1
|
||
|
/* 63E4C8 802192E8 00042382 */ srl $a0, $a0, 0xe
|
||
|
/* 63E4CC 802192EC 000423C0 */ sll $a0, $a0, 0xf
|
||
|
/* 63E4D0 802192F0 00001812 */ mflo $v1
|
||
|
/* 63E4D4 802192F4 00642021 */ addu $a0, $v1, $a0
|
||
|
/* 63E4D8 802192F8 00902021 */ addu $a0, $a0, $s0
|
||
|
/* 63E4DC 802192FC 0C01917C */ jal sins
|
||
|
/* 63E4E0 80219300 3084FFFF */ andi $a0, $a0, 0xffff
|
||
|
/* 63E4E4 80219304 00021400 */ sll $v0, $v0, 0x10
|
||
|
/* 63E4E8 80219308 00021403 */ sra $v0, $v0, 0x10
|
||
|
/* 63E4EC 8021930C 9223000C */ lbu $v1, 0xc($s1)
|
||
|
/* 63E4F0 80219310 00551021 */ addu $v0, $v0, $s5
|
||
|
/* 63E4F4 80219314 00620018 */ mult $v1, $v0
|
||
|
/* 63E4F8 80219318 00001812 */ mflo $v1
|
||
|
/* 63E4FC 8021931C 04610004 */ bgez $v1, .L80219330
|
||
|
/* 63E500 80219320 00031403 */ sra $v0, $v1, 0x10
|
||
|
/* 63E504 80219324 3402FFFF */ ori $v0, $zero, 0xffff
|
||
|
/* 63E508 80219328 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 63E50C 8021932C 00031403 */ sra $v0, $v1, 0x10
|
||
|
.L80219330:
|
||
|
/* 63E510 80219330 A222000C */ sb $v0, 0xc($s1)
|
||
|
/* 63E514 80219334 8FA20018 */ lw $v0, 0x18($sp)
|
||
|
/* 63E518 80219338 26100001 */ addiu $s0, $s0, 1
|
||
|
/* 63E51C 8021933C 0202102A */ slt $v0, $s0, $v0
|
||
|
/* 63E520 80219340 1440FFB8 */ bnez $v0, .L80219224
|
||
|
/* 63E524 80219344 02130018 */ mult $s0, $s3
|
||
|
.L80219348:
|
||
|
/* 63E528 80219348 3C03800A */ lui $v1, %hi(D_8009A66C)
|
||
|
/* 63E52C 8021934C 2463A66C */ addiu $v1, $v1, %lo(D_8009A66C)
|
||
|
/* 63E530 80219350 8C620000 */ lw $v0, ($v1)
|
||
|
/* 63E534 80219354 02C0202D */ daddu $a0, $s6, $zero
|
||
|
/* 63E538 80219358 0040802D */ daddu $s0, $v0, $zero
|
||
|
/* 63E53C 8021935C 24420008 */ addiu $v0, $v0, 8
|
||
|
/* 63E540 80219360 AC620000 */ sw $v0, ($v1)
|
||
|
/* 63E544 80219364 3C02DE00 */ lui $v0, 0xde00
|
||
|
/* 63E548 80219368 0C0470BB */ jal func_8011C2EC
|
||
|
/* 63E54C 8021936C AE020000 */ sw $v0, ($s0)
|
||
|
/* 63E550 80219370 AE020004 */ sw $v0, 4($s0)
|
||
|
/* 63E554 80219374 3C028022 */ lui $v0, %hi(D_80222640)
|
||
|
/* 63E558 80219378 24422640 */ addiu $v0, $v0, %lo(D_80222640)
|
||
|
/* 63E55C 8021937C 00161840 */ sll $v1, $s6, 1
|
||
|
/* 63E560 80219380 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 63E564 80219384 94620000 */ lhu $v0, ($v1)
|
||
|
/* 63E568 80219388 24420253 */ addiu $v0, $v0, 0x253
|
||
|
/* 63E56C 8021938C A4620000 */ sh $v0, ($v1)
|
||
|
/* 63E570 80219390 8FBF003C */ lw $ra, 0x3c($sp)
|
||
|
/* 63E574 80219394 8FB60038 */ lw $s6, 0x38($sp)
|
||
|
/* 63E578 80219398 8FB50034 */ lw $s5, 0x34($sp)
|
||
|
/* 63E57C 8021939C 8FB40030 */ lw $s4, 0x30($sp)
|
||
|
/* 63E580 802193A0 8FB3002C */ lw $s3, 0x2c($sp)
|
||
|
/* 63E584 802193A4 8FB20028 */ lw $s2, 0x28($sp)
|
||
|
/* 63E588 802193A8 8FB10024 */ lw $s1, 0x24($sp)
|
||
|
/* 63E58C 802193AC 8FB00020 */ lw $s0, 0x20($sp)
|
||
|
/* 63E590 802193B0 03E00008 */ jr $ra
|
||
|
/* 63E594 802193B4 27BD0040 */ addiu $sp, $sp, 0x40
|