papermario/asm/nonmatchings/code_28910_len_5090/func_8004DE2C.s
2020-09-23 23:16:13 -04:00

123 lines
6.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8004DE2C
/* 2922C 8004DE2C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 29230 8004DE30 AFB3001C */ sw $s3, 0x1c($sp)
/* 29234 8004DE34 0080982D */ daddu $s3, $a0, $zero
/* 29238 8004DE38 AFB20018 */ sw $s2, 0x18($sp)
/* 2923C 8004DE3C AFBF0024 */ sw $ra, 0x24($sp)
/* 29240 8004DE40 AFB40020 */ sw $s4, 0x20($sp)
/* 29244 8004DE44 AFB10014 */ sw $s1, 0x14($sp)
/* 29248 8004DE48 AFB00010 */ sw $s0, 0x10($sp)
/* 2924C 8004DE4C 8E740000 */ lw $s4, ($s3)
/* 29250 8004DE50 8E700010 */ lw $s0, 0x10($s3)
/* 29254 8004DE54 12800055 */ beqz $s4, .L8004DFAC
/* 29258 8004DE58 0000902D */ daddu $s2, $zero, $zero
/* 2925C 8004DE5C 8E620014 */ lw $v0, 0x14($s3)
/* 29260 8004DE60 14400045 */ bnez $v0, .L8004DF78
/* 29264 8004DE64 00000000 */ nop
/* 29268 8004DE68 0C014FD9 */ jal func_80053F64
/* 2926C 8004DE6C 0200202D */ daddu $a0, $s0, $zero
/* 29270 8004DE70 0040882D */ daddu $s1, $v0, $zero
/* 29274 8004DE74 1220003E */ beqz $s1, .L8004DF70
/* 29278 8004DE78 001010C0 */ sll $v0, $s0, 3
/* 2927C 8004DE7C 8E230000 */ lw $v1, ($s1)
/* 29280 8004DE80 00622021 */ addu $a0, $v1, $v0
/* 29284 8004DE84 90830070 */ lbu $v1, 0x70($a0)
/* 29288 8004DE88 24020001 */ addiu $v0, $zero, 1
/* 2928C 8004DE8C 54620048 */ bnel $v1, $v0, .L8004DFB0
/* 29290 8004DE90 24120004 */ addiu $s2, $zero, 4
/* 29294 8004DE94 90840071 */ lbu $a0, 0x71($a0)
/* 29298 8004DE98 0C015092 */ jal func_80054248
/* 2929C 8004DE9C 00000000 */ nop
/* 292A0 8004DEA0 0040802D */ daddu $s0, $v0, $zero
/* 292A4 8004DEA4 52000042 */ beql $s0, $zero, .L8004DFB0
/* 292A8 8004DEA8 24120006 */ addiu $s2, $zero, 6
/* 292AC 8004DEAC 0C0136CA */ jal func_8004DB28
/* 292B0 8004DEB0 0200202D */ daddu $a0, $s0, $zero
/* 292B4 8004DEB4 1440003E */ bnez $v0, .L8004DFB0
/* 292B8 8004DEB8 24120007 */ addiu $s2, $zero, 7
/* 292BC 8004DEBC 8E240028 */ lw $a0, 0x28($s1)
/* 292C0 8004DEC0 0C014F96 */ jal func_80053E58
/* 292C4 8004DEC4 8E250064 */ lw $a1, 0x64($s1)
/* 292C8 8004DEC8 8E650004 */ lw $a1, 4($s3)
/* 292CC 8004DECC 10A00008 */ beqz $a1, .L8004DEF0
/* 292D0 8004DED0 0040902D */ daddu $s2, $v0, $zero
/* 292D4 8004DED4 28A22711 */ slti $v0, $a1, 0x2711
/* 292D8 8004DED8 14400003 */ bnez $v0, .L8004DEE8
/* 292DC 8004DEDC 28A200FA */ slti $v0, $a1, 0xfa
/* 292E0 8004DEE0 080137BC */ j .L8004DEF0
/* 292E4 8004DEE4 24052710 */ addiu $a1, $zero, 0x2710
.L8004DEE8:
/* 292E8 8004DEE8 54400001 */ bnel $v0, $zero, .L8004DEF0
/* 292EC 8004DEEC 240500FA */ addiu $a1, $zero, 0xfa
.L8004DEF0:
/* 292F0 8004DEF0 8E630008 */ lw $v1, 8($s3)
/* 292F4 8004DEF4 28620080 */ slti $v0, $v1, 0x80
/* 292F8 8004DEF8 50400001 */ beql $v0, $zero, .L8004DF00
/* 292FC 8004DEFC 2403007F */ addiu $v1, $zero, 0x7f
.L8004DF00:
/* 29300 8004DF00 10600002 */ beqz $v1, .L8004DF0C
/* 29304 8004DF04 00031200 */ sll $v0, $v1, 8
/* 29308 8004DF08 344300FF */ ori $v1, $v0, 0xff
.L8004DF0C:
/* 2930C 8004DF0C 8E64000C */ lw $a0, 0xc($s3)
/* 29310 8004DF10 28820080 */ slti $v0, $a0, 0x80
/* 29314 8004DF14 50400001 */ beql $v0, $zero, .L8004DF1C
/* 29318 8004DF18 2404007F */ addiu $a0, $zero, 0x7f
.L8004DF1C:
/* 2931C 8004DF1C 10800003 */ beqz $a0, .L8004DF2C
/* 29320 8004DF20 00041200 */ sll $v0, $a0, 8
/* 29324 8004DF24 080137CC */ j .L8004DF30
/* 29328 8004DF28 344400FF */ ori $a0, $v0, 0xff
.L8004DF2C:
/* 2932C 8004DF2C 24047FFF */ addiu $a0, $zero, 0x7fff
.L8004DF30:
/* 29330 8004DF30 8E020000 */ lw $v0, ($s0)
/* 29334 8004DF34 AC500074 */ sw $s0, 0x74($v0)
/* 29338 8004DF38 8E020000 */ lw $v0, ($s0)
/* 2933C 8004DF3C AC510078 */ sw $s1, 0x78($v0)
/* 29340 8004DF40 8E020000 */ lw $v0, ($s0)
/* 29344 8004DF44 AC54007C */ sw $s4, 0x7c($v0)
/* 29348 8004DF48 8E020000 */ lw $v0, ($s0)
/* 2934C 8004DF4C AC450084 */ sw $a1, 0x84($v0)
/* 29350 8004DF50 8E020000 */ lw $v0, ($s0)
/* 29354 8004DF54 AC430088 */ sw $v1, 0x88($v0)
/* 29358 8004DF58 8E020000 */ lw $v0, ($s0)
/* 2935C 8004DF5C AC44008C */ sw $a0, 0x8c($v0)
/* 29360 8004DF60 8E030000 */ lw $v1, ($s0)
/* 29364 8004DF64 24020001 */ addiu $v0, $zero, 1
/* 29368 8004DF68 080137EC */ j .L8004DFB0
/* 2936C 8004DF6C AC620080 */ sw $v0, 0x80($v1)
.L8004DF70:
/* 29370 8004DF70 080137EC */ j .L8004DFB0
/* 29374 8004DF74 24120004 */ addiu $s2, $zero, 4
.L8004DF78:
/* 29378 8004DF78 0C0135E5 */ jal func_8004D794
/* 2937C 8004DF7C 0280202D */ daddu $a0, $s4, $zero
/* 29380 8004DF80 0040802D */ daddu $s0, $v0, $zero
/* 29384 8004DF84 1200000B */ beqz $s0, .L8004DFB4
/* 29388 8004DF88 0240102D */ daddu $v0, $s2, $zero
/* 2938C 8004DF8C 8E02001C */ lw $v0, 0x1c($s0)
/* 29390 8004DF90 16820008 */ bne $s4, $v0, .L8004DFB4
/* 29394 8004DF94 0240102D */ daddu $v0, $s2, $zero
/* 29398 8004DF98 92020220 */ lbu $v0, 0x220($s0)
/* 2939C 8004DF9C 54400004 */ bnel $v0, $zero, .L8004DFB0
/* 293A0 8004DFA0 A2000220 */ sb $zero, 0x220($s0)
/* 293A4 8004DFA4 080137ED */ j .L8004DFB4
/* 293A8 8004DFA8 0240102D */ daddu $v0, $s2, $zero
.L8004DFAC:
/* 293AC 8004DFAC 24120003 */ addiu $s2, $zero, 3
.L8004DFB0:
/* 293B0 8004DFB0 0240102D */ daddu $v0, $s2, $zero
.L8004DFB4:
/* 293B4 8004DFB4 8FBF0024 */ lw $ra, 0x24($sp)
/* 293B8 8004DFB8 8FB40020 */ lw $s4, 0x20($sp)
/* 293BC 8004DFBC 8FB3001C */ lw $s3, 0x1c($sp)
/* 293C0 8004DFC0 8FB20018 */ lw $s2, 0x18($sp)
/* 293C4 8004DFC4 8FB10014 */ lw $s1, 0x14($sp)
/* 293C8 8004DFC8 8FB00010 */ lw $s0, 0x10($sp)
/* 293CC 8004DFCC 03E00008 */ jr $ra
/* 293D0 8004DFD0 27BD0028 */ addiu $sp, $sp, 0x28