papermario/asm/nonmatchings/code_7E2AA0/func_80282414.s
2020-09-23 23:16:13 -04:00

106 lines
5.4 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80282414
/* 7E3294 80282414 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7E3298 80282418 AFB10014 */ sw $s1, 0x14($sp)
/* 7E329C 8028241C 0080882D */ daddu $s1, $a0, $zero
/* 7E32A0 80282420 AFBF001C */ sw $ra, 0x1c($sp)
/* 7E32A4 80282424 AFB20018 */ sw $s2, 0x18($sp)
/* 7E32A8 80282428 AFB00010 */ sw $s0, 0x10($sp)
/* 7E32AC 8028242C 10A0000A */ beqz $a1, .L80282458
/* 7E32B0 80282430 8E320088 */ lw $s2, 0x88($s1)
/* 7E32B4 80282434 8E220084 */ lw $v0, 0x84($s1)
/* 7E32B8 80282438 54400007 */ bnel $v0, $zero, .L80282458
/* 7E32BC 8028243C AE200074 */ sw $zero, 0x74($s1)
/* 7E32C0 80282440 962400C2 */ lhu $a0, 0xc2($s1)
/* 7E32C4 80282444 2405FFFF */ addiu $a1, $zero, -1
/* 7E32C8 80282448 24060001 */ addiu $a2, $zero, 1
/* 7E32CC 8028244C 0C046E54 */ jal func_8011B950
/* 7E32D0 80282450 00C0382D */ daddu $a3, $a2, $zero
/* 7E32D4 80282454 AE200074 */ sw $zero, 0x74($s1)
.L80282458:
/* 7E32D8 80282458 8E220074 */ lw $v0, 0x74($s1)
/* 7E32DC 8028245C 24420020 */ addiu $v0, $v0, 0x20
/* 7E32E0 80282460 AE220074 */ sw $v0, 0x74($s1)
/* 7E32E4 80282464 28420100 */ slti $v0, $v0, 0x100
/* 7E32E8 80282468 14400002 */ bnez $v0, .L80282474
/* 7E32EC 8028246C 240200FF */ addiu $v0, $zero, 0xff
/* 7E32F0 80282470 AE220074 */ sw $v0, 0x74($s1)
.L80282474:
/* 7E32F4 80282474 8E220084 */ lw $v0, 0x84($s1)
/* 7E32F8 80282478 14400004 */ bnez $v0, .L8028248C
/* 7E32FC 8028247C 240200FF */ addiu $v0, $zero, 0xff
/* 7E3300 80282480 8E300074 */ lw $s0, 0x74($s1)
/* 7E3304 80282484 080A0926 */ j .L80282498
/* 7E3308 80282488 0000202D */ daddu $a0, $zero, $zero
.L8028248C:
/* 7E330C 8028248C 8E230074 */ lw $v1, 0x74($s1)
/* 7E3310 80282490 00438023 */ subu $s0, $v0, $v1
/* 7E3314 80282494 0000202D */ daddu $a0, $zero, $zero
.L80282498:
/* 7E3318 80282498 0080282D */ daddu $a1, $a0, $zero
/* 7E331C 8028249C 0080302D */ daddu $a2, $a0, $zero
/* 7E3320 802824A0 0C046F97 */ jal set_background_color_blend
/* 7E3324 802824A4 320700FF */ andi $a3, $s0, 0xff
/* 7E3328 802824A8 240600FF */ addiu $a2, $zero, 0xff
/* 7E332C 802824AC 8E420040 */ lw $v0, 0x40($s2)
/* 7E3330 802824B0 00D03023 */ subu $a2, $a2, $s0
/* 7E3334 802824B4 00460018 */ mult $v0, $a2
/* 7E3338 802824B8 00001012 */ mflo $v0
/* 7E333C 802824BC 8E450044 */ lw $a1, 0x44($s2)
/* 7E3340 802824C0 00000000 */ nop
/* 7E3344 802824C4 00A60018 */ mult $a1, $a2
/* 7E3348 802824C8 00002812 */ mflo $a1
/* 7E334C 802824CC 3C078080 */ lui $a3, 0x8080
/* 7E3350 802824D0 34E78081 */ ori $a3, $a3, 0x8081
/* 7E3354 802824D4 00470018 */ mult $v0, $a3
/* 7E3358 802824D8 00001810 */ mfhi $v1
/* 7E335C 802824DC 00000000 */ nop
/* 7E3360 802824E0 00000000 */ nop
/* 7E3364 802824E4 00A70018 */ mult $a1, $a3
/* 7E3368 802824E8 00004010 */ mfhi $t0
/* 7E336C 802824EC 8E440048 */ lw $a0, 0x48($s2)
/* 7E3370 802824F0 00621821 */ addu $v1, $v1, $v0
/* 7E3374 802824F4 00860018 */ mult $a0, $a2
/* 7E3378 802824F8 000319C3 */ sra $v1, $v1, 7
/* 7E337C 802824FC 000217C3 */ sra $v0, $v0, 0x1f
/* 7E3380 80282500 00621823 */ subu $v1, $v1, $v0
/* 7E3384 80282504 3C06800B */ lui $a2, 0x800b
/* 7E3388 80282508 24C61D80 */ addiu $a2, $a2, 0x1d80
/* 7E338C 8028250C 00002012 */ mflo $a0
/* 7E3390 80282510 01051021 */ addu $v0, $t0, $a1
/* 7E3394 80282514 000211C3 */ sra $v0, $v0, 7
/* 7E3398 80282518 00870018 */ mult $a0, $a3
/* 7E339C 8028251C 00052FC3 */ sra $a1, $a1, 0x1f
/* 7E33A0 80282520 00451023 */ subu $v0, $v0, $a1
/* 7E33A4 80282524 A4C3002C */ sh $v1, 0x2c($a2)
/* 7E33A8 80282528 A4C2002E */ sh $v0, 0x2e($a2)
/* 7E33AC 8028252C 00001810 */ mfhi $v1
/* 7E33B0 80282530 00641021 */ addu $v0, $v1, $a0
/* 7E33B4 80282534 000211C3 */ sra $v0, $v0, 7
/* 7E33B8 80282538 000427C3 */ sra $a0, $a0, 0x1f
/* 7E33BC 8028253C 00441023 */ subu $v0, $v0, $a0
/* 7E33C0 80282540 A4C20030 */ sh $v0, 0x30($a2)
/* 7E33C4 80282544 8E220074 */ lw $v0, 0x74($s1)
/* 7E33C8 80282548 284200FF */ slti $v0, $v0, 0xff
/* 7E33CC 8028254C 1440000B */ bnez $v0, .L8028257C
/* 7E33D0 80282550 0000102D */ daddu $v0, $zero, $zero
/* 7E33D4 80282554 8E230084 */ lw $v1, 0x84($s1)
/* 7E33D8 80282558 24020003 */ addiu $v0, $zero, 3
/* 7E33DC 8028255C 14620007 */ bne $v1, $v0, .L8028257C
/* 7E33E0 80282560 24020002 */ addiu $v0, $zero, 2
/* 7E33E4 80282564 962400C2 */ lhu $a0, 0xc2($s1)
/* 7E33E8 80282568 2405FFFF */ addiu $a1, $zero, -1
/* 7E33EC 8028256C 0000302D */ daddu $a2, $zero, $zero
/* 7E33F0 80282570 0C046E54 */ jal func_8011B950
/* 7E33F4 80282574 24070001 */ addiu $a3, $zero, 1
/* 7E33F8 80282578 24020002 */ addiu $v0, $zero, 2
.L8028257C:
/* 7E33FC 8028257C 8FBF001C */ lw $ra, 0x1c($sp)
/* 7E3400 80282580 8FB20018 */ lw $s2, 0x18($sp)
/* 7E3404 80282584 8FB10014 */ lw $s1, 0x14($sp)
/* 7E3408 80282588 8FB00010 */ lw $s0, 0x10($sp)
/* 7E340C 8028258C 03E00008 */ jr $ra
/* 7E3410 80282590 27BD0020 */ addiu $sp, $sp, 0x20