.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8005736C /* 3276C 8005736C 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 32770 80057370 AFB50024 */ sw $s5, 0x24($sp) /* 32774 80057374 00C0A82D */ daddu $s5, $a2, $zero /* 32778 80057378 AFB3001C */ sw $s3, 0x1c($sp) /* 3277C 8005737C 00A0982D */ daddu $s3, $a1, $zero /* 32780 80057380 AFB40020 */ sw $s4, 0x20($sp) /* 32784 80057384 00E0A02D */ daddu $s4, $a3, $zero /* 32788 80057388 308400FF */ andi $a0, $a0, 0xff /* 3278C 8005738C 00041140 */ sll $v0, $a0, 5 /* 32790 80057390 00441023 */ subu $v0, $v0, $a0 /* 32794 80057394 3C038008 */ lui $v1, 0x8008 /* 32798 80057398 8C638E54 */ lw $v1, -0x71ac($v1) /* 3279C 8005739C 00021080 */ sll $v0, $v0, 2 /* 327A0 800573A0 AFBF0028 */ sw $ra, 0x28($sp) /* 327A4 800573A4 AFB20018 */ sw $s2, 0x18($sp) /* 327A8 800573A8 AFB10014 */ sw $s1, 0x14($sp) /* 327AC 800573AC AFB00010 */ sw $s0, 0x10($sp) /* 327B0 800573B0 8C63001C */ lw $v1, 0x1c($v1) /* 327B4 800573B4 93B20043 */ lbu $s2, 0x43($sp) /* 327B8 800573B8 00628021 */ addu $s0, $v1, $v0 /* 327BC 800573BC 8E050064 */ lw $a1, 0x64($s0) /* 327C0 800573C0 8E030068 */ lw $v1, 0x68($s0) /* 327C4 800573C4 00A3102A */ slt $v0, $a1, $v1 /* 327C8 800573C8 14400029 */ bnez $v0, .L80057470 /* 327CC 800573CC 26110048 */ addiu $s1, $s0, 0x48 /* 327D0 800573D0 3C028008 */ lui $v0, 0x8008 /* 327D4 800573D4 24428181 */ addiu $v0, $v0, -0x7e7f /* 327D8 800573D8 90420000 */ lbu $v0, ($v0) /* 327DC 800573DC 1440000E */ bnez $v0, .L80057418 /* 327E0 800573E0 AE030064 */ sw $v1, 0x64($s0) /* 327E4 800573E4 3C048008 */ lui $a0, 0x8008 /* 327E8 800573E8 24848E60 */ addiu $a0, $a0, -0x71a0 /* 327EC 800573EC 8603004E */ lh $v1, 0x4e($s0) /* 327F0 800573F0 84820080 */ lh $v0, 0x80($a0) /* 327F4 800573F4 00620018 */ mult $v1, $v0 /* 327F8 800573F8 00004012 */ mflo $t0 /* 327FC 800573FC 000813C3 */ sra $v0, $t0, 0xf /* 32800 80057400 A6020050 */ sh $v0, 0x50($s0) /* 32804 80057404 84820080 */ lh $v0, 0x80($a0) /* 32808 80057408 00620018 */ mult $v1, $v0 /* 3280C 8005740C 00004012 */ mflo $t0 /* 32810 80057410 08015D26 */ j .L80057498 /* 32814 80057414 000813C3 */ sra $v0, $t0, 0xf .L80057418: /* 32818 80057418 8602004C */ lh $v0, 0x4c($s0) /* 3281C 8005741C 8603004E */ lh $v1, 0x4e($s0) /* 32820 80057420 00021040 */ sll $v0, $v0, 1 /* 32824 80057424 3C018008 */ lui $at, 0x8008 /* 32828 80057428 00220821 */ addu $at, $at, $v0 /* 3282C 8005742C 84228E60 */ lh $v0, -0x71a0($at) /* 32830 80057430 00620018 */ mult $v1, $v0 /* 32834 80057434 8603004C */ lh $v1, 0x4c($s0) /* 32838 80057438 00004012 */ mflo $t0 /* 3283C 8005743C 000813C3 */ sra $v0, $t0, 0xf /* 32840 80057440 A6020050 */ sh $v0, 0x50($s0) /* 32844 80057444 2402007F */ addiu $v0, $zero, 0x7f /* 32848 80057448 00431023 */ subu $v0, $v0, $v1 /* 3284C 8005744C 00021040 */ sll $v0, $v0, 1 /* 32850 80057450 8603004E */ lh $v1, 0x4e($s0) /* 32854 80057454 3C018008 */ lui $at, 0x8008 /* 32858 80057458 00220821 */ addu $at, $at, $v0 /* 3285C 8005745C 84228E60 */ lh $v0, -0x71a0($at) /* 32860 80057460 00620018 */ mult $v1, $v0 /* 32864 80057464 00004012 */ mflo $t0 /* 32868 80057468 08015D26 */ j .L80057498 /* 3286C 8005746C 000813C3 */ sra $v0, $t0, 0xf .L80057470: /* 32870 80057470 86040050 */ lh $a0, 0x50($s0) /* 32874 80057474 8606005A */ lh $a2, 0x5a($s0) /* 32878 80057478 0C016001 */ jal func_80058004 /* 3287C 8005747C 96070058 */ lhu $a3, 0x58($s0) /* 32880 80057480 86040052 */ lh $a0, 0x52($s0) /* 32884 80057484 8E050064 */ lw $a1, 0x64($s0) /* 32888 80057488 86060060 */ lh $a2, 0x60($s0) /* 3288C 8005748C 9607005E */ lhu $a3, 0x5e($s0) /* 32890 80057490 0C016001 */ jal func_80058004 /* 32894 80057494 A6020050 */ sh $v0, 0x50($s0) .L80057498: /* 32898 80057498 A6020052 */ sh $v0, 0x52($s0) /* 3289C 8005749C 86220008 */ lh $v0, 8($s1) /* 328A0 800574A0 14400002 */ bnez $v0, .L800574AC /* 328A4 800574A4 24020001 */ addiu $v0, $zero, 1 /* 328A8 800574A8 A6220008 */ sh $v0, 8($s1) .L800574AC: /* 328AC 800574AC 8622000A */ lh $v0, 0xa($s1) /* 328B0 800574B0 14400004 */ bnez $v0, .L800574C4 /* 328B4 800574B4 00131400 */ sll $v0, $s3, 0x10 /* 328B8 800574B8 24020001 */ addiu $v0, $zero, 1 /* 328BC 800574BC A622000A */ sh $v0, 0xa($s1) /* 328C0 800574C0 00131400 */ sll $v0, $s3, 0x10 .L800574C4: /* 328C4 800574C4 00021403 */ sra $v0, $v0, 0x10 /* 328C8 800574C8 00420018 */ mult $v0, $v0 /* 328CC 800574CC 328200FF */ andi $v0, $s4, 0xff /* 328D0 800574D0 324300FF */ andi $v1, $s2, 0xff /* 328D4 800574D4 AE20001C */ sw $zero, 0x1c($s1) /* 328D8 800574D8 AE350020 */ sw $s5, 0x20($s1) /* 328DC 800574DC A6220004 */ sh $v0, 4($s1) /* 328E0 800574E0 00004012 */ mflo $t0 /* 328E4 800574E4 000813C3 */ sra $v0, $t0, 0xf /* 328E8 800574E8 A6220006 */ sh $v0, 6($s1) /* 328EC 800574EC 00031040 */ sll $v0, $v1, 1 /* 328F0 800574F0 3C018008 */ lui $at, 0x8008 /* 328F4 800574F4 00220821 */ addu $at, $at, $v0 /* 328F8 800574F8 94228E60 */ lhu $v0, -0x71a0($at) /* 328FC 800574FC A622000C */ sh $v0, 0xc($s1) /* 32900 80057500 2402007F */ addiu $v0, $zero, 0x7f /* 32904 80057504 00431023 */ subu $v0, $v0, $v1 /* 32908 80057508 00021040 */ sll $v0, $v0, 1 /* 3290C 8005750C 3C038008 */ lui $v1, 0x8008 /* 32910 80057510 00621821 */ addu $v1, $v1, $v0 /* 32914 80057514 94638E60 */ lhu $v1, -0x71a0($v1) /* 32918 80057518 24020001 */ addiu $v0, $zero, 1 /* 3291C 8005751C AE220024 */ sw $v0, 0x24($s1) /* 32920 80057520 A623000E */ sh $v1, 0xe($s1) /* 32924 80057524 8FBF0028 */ lw $ra, 0x28($sp) /* 32928 80057528 8FB50024 */ lw $s5, 0x24($sp) /* 3292C 8005752C 8FB40020 */ lw $s4, 0x20($sp) /* 32930 80057530 8FB3001C */ lw $s3, 0x1c($sp) /* 32934 80057534 8FB20018 */ lw $s2, 0x18($sp) /* 32938 80057538 8FB10014 */ lw $s1, 0x14($sp) /* 3293C 8005753C 8FB00010 */ lw $s0, 0x10($sp) /* 32940 80057540 03E00008 */ jr $ra /* 32944 80057544 27BD0030 */ addiu $sp, $sp, 0x30