papermario/asm/nonmatchings/code_13870_len_6980/render_npc_blur.s

240 lines
11 KiB
ArmAsm
Raw Normal View History

2020-08-04 08:49:11 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel render_npc_blur
/* 016238 8003AE38 27BDFF08 */ addiu $sp, $sp, -0xf8
/* 01623C 8003AE3C F7BC00E8 */ sdc1 $f28, 0xe8($sp)
/* 016240 8003AE40 4480E000 */ mtc1 $zero, $f28
/* 016244 8003AE44 F7BA00E0 */ sdc1 $f26, 0xe0($sp)
/* 016248 8003AE48 3C01800A */ lui $at, 0x800a
/* 01624C 8003AE4C D43A84C0 */ ldc1 $f26, -0x7b40($at)
/* 016250 8003AE50 AFB000A0 */ sw $s0, 0xa0($sp)
/* 016254 8003AE54 0080802D */ daddu $s0, $a0, $zero
/* 016258 8003AE58 AFB300AC */ sw $s3, 0xac($sp)
/* 01625C 8003AE5C 0000982D */ daddu $s3, $zero, $zero
/* 016260 8003AE60 AFB500B4 */ sw $s5, 0xb4($sp)
/* 016264 8003AE64 0260A82D */ daddu $s5, $s3, $zero
/* 016268 8003AE68 AFB100A4 */ sw $s1, 0xa4($sp)
/* 01626C 8003AE6C 27B10060 */ addiu $s1, $sp, 0x60
/* 016270 8003AE70 AFB700BC */ sw $s7, 0xbc($sp)
/* 016274 8003AE74 27B70020 */ addiu $s7, $sp, 0x20
/* 016278 8003AE78 AFB400B0 */ sw $s4, 0xb0($sp)
/* 01627C 8003AE7C 0260A02D */ daddu $s4, $s3, $zero
/* 016280 8003AE80 AFBF00C0 */ sw $ra, 0xc0($sp)
/* 016284 8003AE84 AFB600B8 */ sw $s6, 0xb8($sp)
/* 016288 8003AE88 AFB200A8 */ sw $s2, 0xa8($sp)
/* 01628C 8003AE8C F7BE00F0 */ sdc1 $f30, 0xf0($sp)
/* 016290 8003AE90 F7B800D8 */ sdc1 $f24, 0xd8($sp)
/* 016294 8003AE94 F7B600D0 */ sdc1 $f22, 0xd0($sp)
/* 016298 8003AE98 F7B400C8 */ sdc1 $f20, 0xc8($sp)
/* 01629C 8003AE9C 8E160020 */ lw $s6, 0x20($s0)
/* 0162A0 8003AEA0 3C013FF0 */ lui $at, 0x3ff0
/* 0162A4 8003AEA4 4481F800 */ mtc1 $at, $f31
/* 0162A8 8003AEA8 4480F000 */ mtc1 $zero, $f30
/* 0162AC 8003AEAC 82D20001 */ lb $s2, 1($s6)
/* 0162B0 8003AEB0 2652FFFF */ addiu $s2, $s2, -1
.L8003AEB4:
/* 0162B4 8003AEB4 06410002 */ bgez $s2, .L8003AEC0
/* 0162B8 8003AEB8 26730001 */ addiu $s3, $s3, 1
/* 0162BC 8003AEBC 24120013 */ addiu $s2, $zero, 0x13
.L8003AEC0:
/* 0162C0 8003AEC0 82C20001 */ lb $v0, 1($s6)
/* 0162C4 8003AEC4 1242009C */ beq $s2, $v0, .L8003B138
/* 0162C8 8003AEC8 2A620003 */ slti $v0, $s3, 3
/* 0162CC 8003AECC 5440FFF9 */ bnel $v0, $zero, .L8003AEB4
/* 0162D0 8003AED0 2652FFFF */ addiu $s2, $s2, -1
/* 0162D4 8003AED4 0000982D */ daddu $s3, $zero, $zero
/* 0162D8 8003AED8 26B50001 */ addiu $s5, $s5, 1
/* 0162DC 8003AEDC 2AA20004 */ slti $v0, $s5, 4
/* 0162E0 8003AEE0 10400095 */ beqz $v0, .L8003B138
/* 0162E4 8003AEE4 26940014 */ addiu $s4, $s4, 0x14
/* 0162E8 8003AEE8 24050007 */ addiu $a1, $zero, 7
/* 0162EC 8003AEEC 240600FF */ addiu $a2, $zero, 0xff
/* 0162F0 8003AEF0 00121080 */ sll $v0, $s2, 2
/* 0162F4 8003AEF4 02C21021 */ addu $v0, $s6, $v0
/* 0162F8 8003AEF8 C4540004 */ lwc1 $f20, 4($v0)
/* 0162FC 8003AEFC C4560054 */ lwc1 $f22, 0x54($v0)
/* 016300 8003AF00 C45800A4 */ lwc1 $f24, 0xa4($v0)
/* 016304 8003AF04 00C0102D */ daddu $v0, $a2, $zero
/* 016308 8003AF08 AFA20010 */ sw $v0, 0x10($sp)
/* 01630C 8003AF0C 24020078 */ addiu $v0, $zero, 0x78
/* 016310 8003AF10 00541023 */ subu $v0, $v0, $s4
/* 016314 8003AF14 AFA20014 */ sw $v0, 0x14($sp)
/* 016318 8003AF18 AFA00018 */ sw $zero, 0x18($sp)
/* 01631C 8003AF1C 8E040024 */ lw $a0, 0x24($s0)
/* 016320 8003AF20 0C0B7A25 */ jal func_802DE894
/* 016324 8003AF24 00C0382D */ daddu $a3, $a2, $zero
/* 016328 8003AF28 4405A000 */ mfc1 $a1, $f20
/* 01632C 8003AF2C 4406B000 */ mfc1 $a2, $f22
/* 016330 8003AF30 4407C000 */ mfc1 $a3, $f24
/* 016334 8003AF34 C6140034 */ lwc1 $f20, 0x34($s0)
/* 016338 8003AF38 0C019E40 */ jal guTranslateF
/* 01633C 8003AF3C 27A40020 */ addiu $a0, $sp, 0x20
/* 016340 8003AF40 C6000048 */ lwc1 $f0, 0x48($s0)
/* 016344 8003AF44 461C0032 */ c.eq.s $f0, $f28
/* 016348 8003AF48 00000000 */ nop
/* 01634C 8003AF4C 4501000B */ bc1t .L8003AF7C
/* 016350 8003AF50 00000000 */ nop
/* 016354 8003AF54 E7BC0010 */ swc1 $f28, 0x10($sp)
/* 016358 8003AF58 8E050048 */ lw $a1, 0x48($s0)
/* 01635C 8003AF5C 4406E000 */ mfc1 $a2, $f28
/* 016360 8003AF60 3C073F80 */ lui $a3, 0x3f80
/* 016364 8003AF64 0C019EC8 */ jal guRotateF
/* 016368 8003AF68 0220202D */ daddu $a0, $s1, $zero
/* 01636C 8003AF6C 0220202D */ daddu $a0, $s1, $zero
/* 016370 8003AF70 27A50020 */ addiu $a1, $sp, 0x20
/* 016374 8003AF74 0C019D80 */ jal guMtxCatF
/* 016378 8003AF78 00A0302D */ daddu $a2, $a1, $zero
.L8003AF7C:
/* 01637C 8003AF7C C6000044 */ lwc1 $f0, 0x44($s0)
/* 016380 8003AF80 461C0032 */ c.eq.s $f0, $f28
/* 016384 8003AF84 00000000 */ nop
/* 016388 8003AF88 4501000B */ bc1t .L8003AFB8
/* 01638C 8003AF8C 00000000 */ nop
/* 016390 8003AF90 E7BC0010 */ swc1 $f28, 0x10($sp)
/* 016394 8003AF94 8E050048 */ lw $a1, 0x48($s0)
/* 016398 8003AF98 4406E000 */ mfc1 $a2, $f28
/* 01639C 8003AF9C 3C073F80 */ lui $a3, 0x3f80
/* 0163A0 8003AFA0 0C019EC8 */ jal guRotateF
/* 0163A4 8003AFA4 0220202D */ daddu $a0, $s1, $zero
/* 0163A8 8003AFA8 0220202D */ daddu $a0, $s1, $zero
/* 0163AC 8003AFAC 27A50020 */ addiu $a1, $sp, 0x20
/* 0163B0 8003AFB0 0C019D80 */ jal guMtxCatF
/* 0163B4 8003AFB4 00A0302D */ daddu $a2, $a1, $zero
.L8003AFB8:
/* 0163B8 8003AFB8 C600004C */ lwc1 $f0, 0x4c($s0)
/* 0163BC 8003AFBC 461C0032 */ c.eq.s $f0, $f28
/* 0163C0 8003AFC0 00000000 */ nop
/* 0163C4 8003AFC4 4501000B */ bc1t .L8003AFF4
/* 0163C8 8003AFC8 00000000 */ nop
/* 0163CC 8003AFCC E7BC0010 */ swc1 $f28, 0x10($sp)
/* 0163D0 8003AFD0 8E050048 */ lw $a1, 0x48($s0)
/* 0163D4 8003AFD4 4406E000 */ mfc1 $a2, $f28
/* 0163D8 8003AFD8 3C073F80 */ lui $a3, 0x3f80
/* 0163DC 8003AFDC 0C019EC8 */ jal guRotateF
/* 0163E0 8003AFE0 0220202D */ daddu $a0, $s1, $zero
/* 0163E4 8003AFE4 0220202D */ daddu $a0, $s1, $zero
/* 0163E8 8003AFE8 27A50020 */ addiu $a1, $sp, 0x20
/* 0163EC 8003AFEC 0C019D80 */ jal guMtxCatF
/* 0163F0 8003AFF0 00A0302D */ daddu $a2, $a1, $zero
.L8003AFF4:
/* 0163F4 8003AFF4 C6000054 */ lwc1 $f0, 0x54($s0)
/* 0163F8 8003AFF8 46000021 */ cvt.d.s $f0, $f0
/* 0163FC 8003AFFC 463A0002 */ mul.d $f0, $f0, $f26
/* 016400 8003B000 00000000 */ nop
/* 016404 8003B004 463E0032 */ c.eq.d $f0, $f30
/* 016408 8003B008 00000000 */ nop
/* 01640C 8003B00C 45000014 */ bc1f .L8003B060
/* 016410 8003B010 00000000 */ nop
/* 016414 8003B014 C6000058 */ lwc1 $f0, 0x58($s0)
/* 016418 8003B018 C6020320 */ lwc1 $f2, 0x320($s0)
/* 01641C 8003B01C 46020002 */ mul.s $f0, $f0, $f2
/* 016420 8003B020 00000000 */ nop
/* 016424 8003B024 46000021 */ cvt.d.s $f0, $f0
/* 016428 8003B028 463A0002 */ mul.d $f0, $f0, $f26
/* 01642C 8003B02C 00000000 */ nop
/* 016430 8003B030 463E0032 */ c.eq.d $f0, $f30
/* 016434 8003B034 00000000 */ nop
/* 016438 8003B038 45000009 */ bc1f .L8003B060
/* 01643C 8003B03C 00000000 */ nop
/* 016440 8003B040 C600005C */ lwc1 $f0, 0x5c($s0)
/* 016444 8003B044 46000021 */ cvt.d.s $f0, $f0
/* 016448 8003B048 463A0002 */ mul.d $f0, $f0, $f26
/* 01644C 8003B04C 00000000 */ nop
/* 016450 8003B050 463E0032 */ c.eq.d $f0, $f30
/* 016454 8003B054 00000000 */ nop
/* 016458 8003B058 4501001C */ bc1t .L8003B0CC
/* 01645C 8003B05C 00000000 */ nop
.L8003B060:
/* 016460 8003B060 C6060054 */ lwc1 $f6, 0x54($s0)
/* 016464 8003B064 460031A1 */ cvt.d.s $f6, $f6
/* 016468 8003B068 463A3182 */ mul.d $f6, $f6, $f26
/* 01646C 8003B06C 00000000 */ nop
/* 016470 8003B070 C604005C */ lwc1 $f4, 0x5c($s0)
/* 016474 8003B074 46002121 */ cvt.d.s $f4, $f4
/* 016478 8003B078 463A2102 */ mul.d $f4, $f4, $f26
/* 01647C 8003B07C 00000000 */ nop
/* 016480 8003B080 C6000058 */ lwc1 $f0, 0x58($s0)
/* 016484 8003B084 C6020320 */ lwc1 $f2, 0x320($s0)
/* 016488 8003B088 46020002 */ mul.s $f0, $f0, $f2
/* 01648C 8003B08C 00000000 */ nop
/* 016490 8003B090 46000021 */ cvt.d.s $f0, $f0
/* 016494 8003B094 463A0002 */ mul.d $f0, $f0, $f26
/* 016498 8003B098 00000000 */ nop
/* 01649C 8003B09C 462031A0 */ cvt.s.d $f6, $f6
/* 0164A0 8003B0A0 46202120 */ cvt.s.d $f4, $f4
/* 0164A4 8003B0A4 44053000 */ mfc1 $a1, $f6
/* 0164A8 8003B0A8 44072000 */ mfc1 $a3, $f4
/* 0164AC 8003B0AC 46200020 */ cvt.s.d $f0, $f0
/* 0164B0 8003B0B0 44060000 */ mfc1 $a2, $f0
/* 0164B4 8003B0B4 0C019DF0 */ jal guScaleF
/* 0164B8 8003B0B8 0220202D */ daddu $a0, $s1, $zero
/* 0164BC 8003B0BC 0220202D */ daddu $a0, $s1, $zero
/* 0164C0 8003B0C0 27A50020 */ addiu $a1, $sp, 0x20
/* 0164C4 8003B0C4 0C019D80 */ jal guMtxCatF
/* 0164C8 8003B0C8 00A0302D */ daddu $a2, $a1, $zero
.L8003B0CC:
/* 0164CC 8003B0CC 8E030000 */ lw $v1, ($s0)
/* 0164D0 8003B0D0 3C024000 */ lui $v0, 0x4000
/* 0164D4 8003B0D4 00621024 */ and $v0, $v1, $v0
/* 0164D8 8003B0D8 5440000E */ bnel $v0, $zero, .L8003B114
/* 0164DC 8003B0DC AFB70010 */ sw $s7, 0x10($sp)
/* 0164E0 8003B0E0 3C020100 */ lui $v0, 0x100
/* 0164E4 8003B0E4 00621024 */ and $v0, $v1, $v0
/* 0164E8 8003B0E8 5440FF72 */ bnel $v0, $zero, .L8003AEB4
/* 0164EC 8003B0EC 2652FFFF */ addiu $s2, $s2, -1
/* 0164F0 8003B0F0 4600A20D */ trunc.w.s $f8, $f20
/* 0164F4 8003B0F4 44054000 */ mfc1 $a1, $f8
/* 0164F8 8003B0F8 0000302D */ daddu $a2, $zero, $zero
/* 0164FC 8003B0FC AFB70010 */ sw $s7, 0x10($sp)
/* 016500 8003B100 8E040024 */ lw $a0, 0x24($s0)
/* 016504 8003B104 0C0B78F6 */ jal func_802DE3D8
/* 016508 8003B108 00C0382D */ daddu $a3, $a2, $zero
/* 01650C 8003B10C 0800EBAD */ j .L8003AEB4
/* 016510 8003B110 2652FFFF */ addiu $s2, $s2, -1
.L8003B114:
/* 016514 8003B114 3C044000 */ lui $a0, 0x4000
/* 016518 8003B118 34840001 */ ori $a0, $a0, 1
/* 01651C 8003B11C 4600A20D */ trunc.w.s $f8, $f20
/* 016520 8003B120 44054000 */ mfc1 $a1, $f8
/* 016524 8003B124 0000302D */ daddu $a2, $zero, $zero
/* 016528 8003B128 0C0B7710 */ jal render_sprite
/* 01652C 8003B12C 00C0382D */ daddu $a3, $a2, $zero
/* 016530 8003B130 0800EBAD */ j .L8003AEB4
/* 016534 8003B134 2652FFFF */ addiu $s2, $s2, -1
.L8003B138:
/* 016538 8003B138 0C00F4EF */ jal func_8003D3BC
/* 01653C 8003B13C 0200202D */ daddu $a0, $s0, $zero
/* 016540 8003B140 8FBF00C0 */ lw $ra, 0xc0($sp)
/* 016544 8003B144 8FB700BC */ lw $s7, 0xbc($sp)
/* 016548 8003B148 8FB600B8 */ lw $s6, 0xb8($sp)
/* 01654C 8003B14C 8FB500B4 */ lw $s5, 0xb4($sp)
/* 016550 8003B150 8FB400B0 */ lw $s4, 0xb0($sp)
/* 016554 8003B154 8FB300AC */ lw $s3, 0xac($sp)
/* 016558 8003B158 8FB200A8 */ lw $s2, 0xa8($sp)
/* 01655C 8003B15C 8FB100A4 */ lw $s1, 0xa4($sp)
/* 016560 8003B160 8FB000A0 */ lw $s0, 0xa0($sp)
/* 016564 8003B164 D7BE00F0 */ ldc1 $f30, 0xf0($sp)
/* 016568 8003B168 D7BC00E8 */ ldc1 $f28, 0xe8($sp)
/* 01656C 8003B16C D7BA00E0 */ ldc1 $f26, 0xe0($sp)
/* 016570 8003B170 D7B800D8 */ ldc1 $f24, 0xd8($sp)
/* 016574 8003B174 D7B600D0 */ ldc1 $f22, 0xd0($sp)
/* 016578 8003B178 D7B400C8 */ ldc1 $f20, 0xc8($sp)
/* 01657C 8003B17C 03E00008 */ jr $ra
/* 016580 8003B180 27BD00F8 */ addiu $sp, $sp, 0xf8
/* 016584 8003B184 24020001 */ addiu $v0, $zero, 1
/* 016588 8003B188 3C01800A */ lui $at, 0x800a
/* 01658C 8003B18C A0220B94 */ sb $v0, 0xb94($at)
/* 016590 8003B190 03E00008 */ jr $ra
/* 016594 8003B194 00000000 */ nop
/* 016598 8003B198 3C01800A */ lui $at, 0x800a
/* 01659C 8003B19C A0200B94 */ sb $zero, 0xb94($at)
/* 0165A0 8003B1A0 03E00008 */ jr $ra
/* 0165A4 8003B1A4 00000000 */ nop