glabel func_80040E40 /* AB7FE0 80040E40 27BDFF80 */ addiu $sp, $sp, -0x80 /* AB7FE4 80040E44 F7B60030 */ sdc1 $f22, 0x30($sp) /* AB7FE8 80040E48 AFBF005C */ sw $ra, 0x5c($sp) /* AB7FEC 80040E4C AFBE0058 */ sw $fp, 0x58($sp) /* AB7FF0 80040E50 AFB70054 */ sw $s7, 0x54($sp) /* AB7FF4 80040E54 AFB60050 */ sw $s6, 0x50($sp) /* AB7FF8 80040E58 AFB5004C */ sw $s5, 0x4c($sp) /* AB7FFC 80040E5C AFB40048 */ sw $s4, 0x48($sp) /* AB8000 80040E60 AFB30044 */ sw $s3, 0x44($sp) /* AB8004 80040E64 AFB20040 */ sw $s2, 0x40($sp) /* AB8008 80040E68 AFB1003C */ sw $s1, 0x3c($sp) /* AB800C 80040E6C AFB00038 */ sw $s0, 0x38($sp) /* AB8010 80040E70 F7B40028 */ sdc1 $f20, 0x28($sp) /* AB8014 80040E74 AFA50084 */ sw $a1, 0x84($sp) /* AB8018 80040E78 AFA60088 */ sw $a2, 0x88($sp) /* AB801C 80040E7C AFA00078 */ sw $zero, 0x78($sp) /* AB8020 80040E80 C7B60090 */ lwc1 $f22, 0x90($sp) /* AB8024 80040E84 C4E40004 */ lwc1 $f4, 4($a3) /* AB8028 80040E88 00E09025 */ move $s2, $a3 /* AB802C 80040E8C 00809825 */ move $s3, $a0 /* AB8030 80040E90 46162180 */ add.s $f6, $f4, $f22 /* AB8034 80040E94 00008825 */ move $s1, $zero /* AB8038 80040E98 0080A025 */ move $s4, $a0 /* AB803C 80040E9C 8FB5009C */ lw $s5, 0x9c($sp) /* AB8040 80040EA0 E7A60070 */ swc1 $f6, 0x70($sp) /* AB8044 80040EA4 C7B40070 */ lwc1 $f20, 0x70($sp) /* AB8048 80040EA8 8FB60094 */ lw $s6, 0x94($sp) /* AB804C 80040EAC 8FB70098 */ lw $s7, 0x98($sp) /* AB8050 80040EB0 241E0032 */ li $fp, 50 .L80040EB4: /* AB8054 80040EB4 968E13DC */ lhu $t6, 0x13dc($s4) /* AB8058 80040EB8 0011C080 */ sll $t8, $s1, 2 /* AB805C 80040EBC 0311C023 */ subu $t8, $t8, $s1 /* AB8060 80040EC0 31CF0001 */ andi $t7, $t6, 1 /* AB8064 80040EC4 11E00023 */ beqz $t7, .L80040F54 /* AB8068 80040EC8 0018C0C0 */ sll $t8, $t8, 3 /* AB806C 80040ECC 0311C021 */ addu $t8, $t8, $s1 /* AB8070 80040ED0 0018C080 */ sll $t8, $t8, 2 /* AB8074 80040ED4 02788021 */ addu $s0, $s3, $t8 /* AB8078 80040ED8 8E190054 */ lw $t9, 0x54($s0) /* AB807C 80040EDC 260400A8 */ addiu $a0, $s0, 0xa8 /* AB8080 80040EE0 52B9001D */ beql $s5, $t9, .L80040F58 /* AB8084 80040EE4 26310001 */ addiu $s1, $s1, 1 /* AB8088 80040EE8 8E450000 */ lw $a1, ($s2) /* AB808C 80040EEC 0C034120 */ jal func_800D0480 /* AB8090 80040EF0 8E460008 */ lw $a2, 8($s2) /* AB8094 80040EF4 10400017 */ beqz $v0, .L80040F54 /* AB8098 80040EF8 02602025 */ move $a0, $s3 /* AB809C 80040EFC 27A80070 */ addiu $t0, $sp, 0x70 /* AB80A0 80040F00 27A90068 */ addiu $t1, $sp, 0x68 /* AB80A4 80040F04 AFA9001C */ sw $t1, 0x1c($sp) /* AB80A8 80040F08 AFA80010 */ sw $t0, 0x10($sp) /* AB80AC 80040F0C 97A50086 */ lhu $a1, 0x86($sp) /* AB80B0 80040F10 26660050 */ addiu $a2, $s3, 0x50 /* AB80B4 80040F14 2607005E */ addiu $a3, $s0, 0x5e /* AB80B8 80040F18 AFB20014 */ sw $s2, 0x14($sp) /* AB80BC 80040F1C 0C0102F9 */ jal func_80040BE4 /* AB80C0 80040F20 E7B60018 */ swc1 $f22, 0x18($sp) /* AB80C4 80040F24 24010001 */ li $at, 1 /* AB80C8 80040F28 1441000A */ bne $v0, $at, .L80040F54 /* AB80CC 80040F2C C7A80070 */ lwc1 $f8, 0x70($sp) /* AB80D0 80040F30 4614403C */ c.lt.s $f8, $f20 /* AB80D4 80040F34 8FAA0068 */ lw $t2, 0x68($sp) /* AB80D8 80040F38 240B0001 */ li $t3, 1 /* AB80DC 80040F3C 45020006 */ bc1fl .L80040F58 /* AB80E0 80040F40 26310001 */ addiu $s1, $s1, 1 /* AB80E4 80040F44 AECA0000 */ sw $t2, ($s6) /* AB80E8 80040F48 AEF10000 */ sw $s1, ($s7) /* AB80EC 80040F4C 46004506 */ mov.s $f20, $f8 /* AB80F0 80040F50 AFAB0078 */ sw $t3, 0x78($sp) .L80040F54: /* AB80F4 80040F54 26310001 */ addiu $s1, $s1, 1 .L80040F58: /* AB80F8 80040F58 163EFFD6 */ bne $s1, $fp, .L80040EB4 /* AB80FC 80040F5C 26940002 */ addiu $s4, $s4, 2 /* AB8100 80040F60 8FAC0088 */ lw $t4, 0x88($sp) /* AB8104 80040F64 E5940000 */ swc1 $f20, ($t4) /* AB8108 80040F68 8FBF005C */ lw $ra, 0x5c($sp) /* AB810C 80040F6C 8FBE0058 */ lw $fp, 0x58($sp) /* AB8110 80040F70 8FB70054 */ lw $s7, 0x54($sp) /* AB8114 80040F74 8FB60050 */ lw $s6, 0x50($sp) /* AB8118 80040F78 8FB5004C */ lw $s5, 0x4c($sp) /* AB811C 80040F7C 8FB40048 */ lw $s4, 0x48($sp) /* AB8120 80040F80 8FB30044 */ lw $s3, 0x44($sp) /* AB8124 80040F84 8FB20040 */ lw $s2, 0x40($sp) /* AB8128 80040F88 8FB1003C */ lw $s1, 0x3c($sp) /* AB812C 80040F8C 8FB00038 */ lw $s0, 0x38($sp) /* AB8130 80040F90 D7B60030 */ ldc1 $f22, 0x30($sp) /* AB8134 80040F94 D7B40028 */ ldc1 $f20, 0x28($sp) /* AB8138 80040F98 8FA20078 */ lw $v0, 0x78($sp) /* AB813C 80040F9C 03E00008 */ jr $ra /* AB8140 80040FA0 27BD0080 */ addiu $sp, $sp, 0x80