papermario/asm/nonmatchings/code_28910_len_5090/func_8005232C.s
2021-01-11 21:40:52 +09:00

173 lines
8.5 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8005232C
/* 2D72C 8005232C 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 2D730 80052330 AFB60028 */ sw $s6, 0x28($sp)
/* 2D734 80052334 0080B02D */ daddu $s6, $a0, $zero
/* 2D738 80052338 AFB40020 */ sw $s4, 0x20($sp)
/* 2D73C 8005233C 00A0A02D */ daddu $s4, $a1, $zero
/* 2D740 80052340 AFBF0030 */ sw $ra, 0x30($sp)
/* 2D744 80052344 AFB7002C */ sw $s7, 0x2c($sp)
/* 2D748 80052348 AFB50024 */ sw $s5, 0x24($sp)
/* 2D74C 8005234C AFB3001C */ sw $s3, 0x1c($sp)
/* 2D750 80052350 AFB20018 */ sw $s2, 0x18($sp)
/* 2D754 80052354 AFB10014 */ sw $s1, 0x14($sp)
/* 2D758 80052358 AFB00010 */ sw $s0, 0x10($sp)
/* 2D75C 8005235C 92820025 */ lbu $v0, 0x25($s4)
/* 2D760 80052360 8ED70000 */ lw $s7, ($s6)
/* 2D764 80052364 14400081 */ bnez $v0, .L8005256C
/* 2D768 80052368 0000A82D */ daddu $s5, $zero, $zero
.L8005236C:
/* 2D76C 8005236C 00151080 */ sll $v0, $s5, 2
/* 2D770 80052370 244201D4 */ addiu $v0, $v0, 0x1d4
/* 2D774 80052374 02829821 */ addu $s3, $s4, $v0
/* 2D778 80052378 92620001 */ lbu $v0, 1($s3)
/* 2D77C 8005237C 50400076 */ beql $v0, $zero, .L80052558
/* 2D780 80052380 26B50001 */ addiu $s5, $s5, 1
/* 2D784 80052384 92620000 */ lbu $v0, ($s3)
/* 2D788 80052388 8E900030 */ lw $s0, 0x30($s4)
/* 2D78C 8005238C 8E840034 */ lw $a0, 0x34($s4)
/* 2D790 80052390 00021880 */ sll $v1, $v0, 2
/* 2D794 80052394 00621821 */ addu $v1, $v1, $v0
/* 2D798 80052398 000318C0 */ sll $v1, $v1, 3
/* 2D79C 8005239C 24630044 */ addiu $v1, $v1, 0x44
/* 2D7A0 800523A0 0204102B */ sltu $v0, $s0, $a0
/* 2D7A4 800523A4 10400012 */ beqz $v0, .L800523F0
/* 2D7A8 800523A8 02839021 */ addu $s2, $s4, $v1
/* 2D7AC 800523AC 001010C0 */ sll $v0, $s0, 3
/* 2D7B0 800523B0 00501021 */ addu $v0, $v0, $s0
/* 2D7B4 800523B4 000210C0 */ sll $v0, $v0, 3
/* 2D7B8 800523B8 24431320 */ addiu $v1, $v0, 0x1320
.L800523BC:
/* 2D7BC 800523BC 02E38821 */ addu $s1, $s7, $v1
/* 2D7C0 800523C0 92220045 */ lbu $v0, 0x45($s1)
/* 2D7C4 800523C4 10400005 */ beqz $v0, .L800523DC
/* 2D7C8 800523C8 00000000 */ nop
/* 2D7CC 800523CC 26100001 */ addiu $s0, $s0, 1
/* 2D7D0 800523D0 0204102B */ sltu $v0, $s0, $a0
/* 2D7D4 800523D4 1440FFF9 */ bnez $v0, .L800523BC
/* 2D7D8 800523D8 24630048 */ addiu $v1, $v1, 0x48
.L800523DC:
/* 2D7DC 800523DC 8E820034 */ lw $v0, 0x34($s4)
/* 2D7E0 800523E0 0202102B */ sltu $v0, $s0, $v0
/* 2D7E4 800523E4 1440001C */ bnez $v0, .L80052458
/* 2D7E8 800523E8 00000000 */ nop
/* 2D7EC 800523EC 8E900030 */ lw $s0, 0x30($s4)
.L800523F0:
/* 2D7F0 800523F0 8E820034 */ lw $v0, 0x34($s4)
/* 2D7F4 800523F4 0202102B */ sltu $v0, $s0, $v0
/* 2D7F8 800523F8 10400056 */ beqz $v0, .L80052554
/* 2D7FC 800523FC 001010C0 */ sll $v0, $s0, 3
/* 2D800 80052400 00501021 */ addu $v0, $v0, $s0
/* 2D804 80052404 000210C0 */ sll $v0, $v0, 3
/* 2D808 80052408 24441320 */ addiu $a0, $v0, 0x1320
.L8005240C:
/* 2D80C 8005240C 02E48821 */ addu $s1, $s7, $a0
/* 2D810 80052410 92220045 */ lbu $v0, 0x45($s1)
/* 2D814 80052414 92C30022 */ lbu $v1, 0x22($s6)
/* 2D818 80052418 0043102B */ sltu $v0, $v0, $v1
/* 2D81C 8005241C 50400006 */ beql $v0, $zero, .L80052438
/* 2D820 80052420 26100001 */ addiu $s0, $s0, 1
/* 2D824 80052424 0220202D */ daddu $a0, $s1, $zero
/* 2D828 80052428 0C014E31 */ jal func_800538C4
/* 2D82C 8005242C 320500FF */ andi $a1, $s0, 0xff
/* 2D830 80052430 08014912 */ j .L80052448
/* 2D834 80052434 00000000 */ nop
.L80052438:
/* 2D838 80052438 8E820034 */ lw $v0, 0x34($s4)
/* 2D83C 8005243C 0202102B */ sltu $v0, $s0, $v0
/* 2D840 80052440 1440FFF2 */ bnez $v0, .L8005240C
/* 2D844 80052444 24840048 */ addiu $a0, $a0, 0x48
.L80052448:
/* 2D848 80052448 8E820034 */ lw $v0, 0x34($s4)
/* 2D84C 8005244C 0202102B */ sltu $v0, $s0, $v0
/* 2D850 80052450 50400041 */ beql $v0, $zero, .L80052558
/* 2D854 80052454 26B50001 */ addiu $s5, $s5, 1
.L80052458:
/* 2D858 80052458 8E850030 */ lw $a1, 0x30($s4)
/* 2D85C 8005245C 92640000 */ lbu $a0, ($s3)
/* 2D860 80052460 8E830014 */ lw $v1, 0x14($s4)
/* 2D864 80052464 92620001 */ lbu $v0, 1($s3)
/* 2D868 80052468 02052823 */ subu $a1, $s0, $a1
/* 2D86C 8005246C 000528C0 */ sll $a1, $a1, 3
/* 2D870 80052470 24A507B4 */ addiu $a1, $a1, 0x7b4
/* 2D874 80052474 02C52821 */ addu $a1, $s6, $a1
/* 2D878 80052478 00042400 */ sll $a0, $a0, 0x10
/* 2D87C 8005247C 00641821 */ addu $v1, $v1, $a0
/* 2D880 80052480 00021200 */ sll $v0, $v0, 8
/* 2D884 80052484 00621821 */ addu $v1, $v1, $v0
/* 2D888 80052488 ACA30000 */ sw $v1, ($a1)
/* 2D88C 8005248C 92630001 */ lbu $v1, 1($s3)
/* 2D890 80052490 8E440000 */ lw $a0, ($s2)
/* 2D894 80052494 3063007F */ andi $v1, $v1, 0x7f
/* 2D898 80052498 00031040 */ sll $v0, $v1, 1
/* 2D89C 8005249C 00431021 */ addu $v0, $v0, $v1
/* 2D8A0 800524A0 000210C0 */ sll $v0, $v0, 3
/* 2D8A4 800524A4 00431021 */ addu $v0, $v0, $v1
/* 2D8A8 800524A8 9483001E */ lhu $v1, 0x1e($a0)
/* 2D8AC 800524AC 00021080 */ sll $v0, $v0, 2
/* 2D8B0 800524B0 00431023 */ subu $v0, $v0, $v1
/* 2D8B4 800524B4 A4A20004 */ sh $v0, 4($a1)
/* 2D8B8 800524B8 92630002 */ lbu $v1, 2($s3)
/* 2D8BC 800524BC 3063007F */ andi $v1, $v1, 0x7f
/* 2D8C0 800524C0 A0A30006 */ sb $v1, 6($a1)
/* 2D8C4 800524C4 82840038 */ lb $a0, 0x38($s4)
/* 2D8C8 800524C8 86420018 */ lh $v0, 0x18($s2)
/* 2D8CC 800524CC 00820018 */ mult $a0, $v0
/* 2D8D0 800524D0 00003012 */ mflo $a2
/* 2D8D4 800524D4 00000000 */ nop
/* 2D8D8 800524D8 00000000 */ nop
/* 2D8DC 800524DC 00C30018 */ mult $a2, $v1
/* 2D8E0 800524E0 00003012 */ mflo $a2
/* 2D8E4 800524E4 00061383 */ sra $v0, $a2, 0xe
/* 2D8E8 800524E8 A6220040 */ sh $v0, 0x40($s1)
/* 2D8EC 800524EC 84A20004 */ lh $v0, 4($a1)
/* 2D8F0 800524F0 8644000C */ lh $a0, 0xc($s2)
/* 2D8F4 800524F4 0C014E3E */ jal func_800538F8
/* 2D8F8 800524F8 00442021 */ addu $a0, $v0, $a0
/* 2D8FC 800524FC 8E420000 */ lw $v0, ($s2)
/* 2D900 80052500 C4420020 */ lwc1 $f2, 0x20($v0)
/* 2D904 80052504 46020002 */ mul.s $f0, $f0, $f2
/* 2D908 80052508 00000000 */ nop
/* 2D90C 8005250C E6200004 */ swc1 $f0, 4($s1)
/* 2D910 80052510 92420024 */ lbu $v0, 0x24($s2)
/* 2D914 80052514 A222000E */ sb $v0, 0xe($s1)
/* 2D918 80052518 92420025 */ lbu $v0, 0x25($s2)
/* 2D91C 8005251C A222000F */ sb $v0, 0xf($s1)
/* 2D920 80052520 8E420000 */ lw $v0, ($s2)
/* 2D924 80052524 AE220000 */ sw $v0, ($s1)
/* 2D928 80052528 92C20023 */ lbu $v0, 0x23($s6)
/* 2D92C 8005252C A2220010 */ sb $v0, 0x10($s1)
/* 2D930 80052530 8E420004 */ lw $v0, 4($s2)
/* 2D934 80052534 AE220014 */ sw $v0, 0x14($s1)
/* 2D938 80052538 8E430008 */ lw $v1, 8($s2)
/* 2D93C 8005253C 24020002 */ addiu $v0, $zero, 2
/* 2D940 80052540 A2220043 */ sb $v0, 0x43($s1)
/* 2D944 80052544 AE230018 */ sw $v1, 0x18($s1)
/* 2D948 80052548 92C20022 */ lbu $v0, 0x22($s6)
/* 2D94C 8005254C A2220045 */ sb $v0, 0x45($s1)
/* 2D950 80052550 A2220044 */ sb $v0, 0x44($s1)
.L80052554:
/* 2D954 80052554 26B50001 */ addiu $s5, $s5, 1
.L80052558:
/* 2D958 80052558 2EA20004 */ sltiu $v0, $s5, 4
/* 2D95C 8005255C A2600000 */ sb $zero, ($s3)
/* 2D960 80052560 A2600001 */ sb $zero, 1($s3)
/* 2D964 80052564 1440FF81 */ bnez $v0, .L8005236C
/* 2D968 80052568 A2600002 */ sb $zero, 2($s3)
.L8005256C:
/* 2D96C 8005256C 8FBF0030 */ lw $ra, 0x30($sp)
/* 2D970 80052570 8FB7002C */ lw $s7, 0x2c($sp)
/* 2D974 80052574 8FB60028 */ lw $s6, 0x28($sp)
/* 2D978 80052578 8FB50024 */ lw $s5, 0x24($sp)
/* 2D97C 8005257C 8FB40020 */ lw $s4, 0x20($sp)
/* 2D980 80052580 8FB3001C */ lw $s3, 0x1c($sp)
/* 2D984 80052584 8FB20018 */ lw $s2, 0x18($sp)
/* 2D988 80052588 8FB10014 */ lw $s1, 0x14($sp)
/* 2D98C 8005258C 8FB00010 */ lw $s0, 0x10($sp)
/* 2D990 80052590 03E00008 */ jr $ra
/* 2D994 80052594 27BD0038 */ addiu $sp, $sp, 0x38
/* 2D998 80052598 00000000 */ nop
/* 2D99C 8005259C 00000000 */ nop