### RAW ASSEMBLY INSTRUCTIONS:

glabel appendGfx_pulse_stone_icon
/* E21A44 802B71D4 3C028011 */  lui       $v0, %hi(gPlayerStatus + 0x4)
/* E21A48 802B71D8 8C42EFCC */  lw        $v0, %lo(gPlayerStatus + 0x4)($v0)
/* E21A4C 802B71DC 27BDFF38 */  addiu     $sp, $sp, -0xC8
/* E21A50 802B71E0 AFBF00C0 */  sw        $ra, 0xC0($sp)
/* E21A54 802B71E4 AFB300BC */  sw        $s3, 0xBC($sp)
glabel appendGfx_interact_prompt
/* E21A58 802B71E8 AFB200B8 */  sw        $s2, 0xB8($sp)
/* E21A5C 802B71EC AFB100B4 */  sw        $s1, 0xB4($sp)
/* E21A60 802B71F0 30420040 */  andi      $v0, $v0, 0x40
/* E21A64 802B71F4 104000B7 */  beqz      $v0, .L802B74D4
/* E21A68 802B71F8 AFB000B0 */   sw       $s0, 0xB0($sp)
/* E21A6C 802B71FC 3C13802B */  lui       $s3, %hi(PulseStonePtr)
/* E21A70 802B7200 26737D18 */  addiu     $s3, $s3, %lo(PulseStonePtr)
/* E21A74 802B7204 8E620000 */  lw        $v0, 0x0($s3)
.L802B7208:
/* E21A78 802B7208 27A40018 */  addiu     $a0, $sp, 0x18
/* E21A7C 802B720C 8C45000C */  lw        $a1, 0xC($v0)
/* E21A80 802B7210 3C120001 */  lui       $s2, (0x11630 >> 16)
/* E21A84 802B7214 00A0302D */  daddu     $a2, $a1, $zero
/* E21A88 802B7218 0C019DF0 */  jal       guScaleF
/* E21A8C 802B721C 00A0382D */   daddu    $a3, $a1, $zero
/* E21A90 802B7220 27B00058 */  addiu     $s0, $sp, 0x58
/* E21A94 802B7224 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
/* E21A98 802B7228 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* E21A9C 802B722C 44800000 */  mtc1      $zero, $f0
/* E21AA0 802B7230 00031080 */  sll       $v0, $v1, 2
/* E21AA4 802B7234 00431021 */  addu      $v0, $v0, $v1
/* E21AA8 802B7238 00021080 */  sll       $v0, $v0, 2
/* E21AAC 802B723C 00431023 */  subu      $v0, $v0, $v1
/* E21AB0 802B7240 000218C0 */  sll       $v1, $v0, 3
/* E21AB4 802B7244 00431021 */  addu      $v0, $v0, $v1
/* E21AB8 802B7248 000210C0 */  sll       $v0, $v0, 3
/* E21ABC 802B724C 44060000 */  mfc1      $a2, $f0
/* E21AC0 802B7250 3C01800B */  lui       $at, %hi(gCameras + 0x6C)
/* E21AC4 802B7254 00220821 */  addu      $at, $at, $v0
/* E21AC8 802B7258 C4201DEC */  lwc1      $f0, %lo(gCameras + 0x6C)($at)
/* E21ACC 802B725C 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* E21AD0 802B7260 46000007 */  neg.s     $f0, $f0
/* E21AD4 802B7264 44050000 */  mfc1      $a1, $f0
/* E21AD8 802B7268 0200202D */  daddu     $a0, $s0, $zero
/* E21ADC 802B726C 0C019EC8 */  jal       guRotateF
/* E21AE0 802B7270 AFA60010 */   sw       $a2, 0x10($sp)
/* E21AE4 802B7274 27A40018 */  addiu     $a0, $sp, 0x18
/* E21AE8 802B7278 0200282D */  daddu     $a1, $s0, $zero
/* E21AEC 802B727C 0C019D80 */  jal       guMtxCatF
/* E21AF0 802B7280 0080302D */   daddu    $a2, $a0, $zero
/* E21AF4 802B7284 8E620000 */  lw        $v0, 0x0($s3)
/* E21AF8 802B7288 36521630 */  ori       $s2, $s2, (0x11630 & 0xFFFF)
/* E21AFC 802B728C 8C450000 */  lw        $a1, 0x0($v0)
/* E21B00 802B7290 8C460004 */  lw        $a2, 0x4($v0)
/* E21B04 802B7294 8C470008 */  lw        $a3, 0x8($v0)
/* E21B08 802B7298 0C019E40 */  jal       guTranslateF
/* E21B0C 802B729C 0200202D */   daddu    $a0, $s0, $zero
/* E21B10 802B72A0 27A40018 */  addiu     $a0, $sp, 0x18
.L802B72A4:
/* E21B14 802B72A4 0200282D */  daddu     $a1, $s0, $zero
/* E21B18 802B72A8 0C019D80 */  jal       guMtxCatF
/* E21B1C 802B72AC 0200302D */   daddu    $a2, $s0, $zero
/* E21B20 802B72B0 0200202D */  daddu     $a0, $s0, $zero
/* E21B24 802B72B4 3C108007 */  lui       $s0, %hi(gMatrixListPos)
/* E21B28 802B72B8 261041F0 */  addiu     $s0, $s0, %lo(gMatrixListPos)
/* E21B2C 802B72BC 3C11800A */  lui       $s1, %hi(gDisplayContext)
glabel ispy_notification_setup
/* E21B30 802B72C0 2631A674 */  addiu     $s1, $s1, %lo(gDisplayContext)
/* E21B34 802B72C4 96050000 */  lhu       $a1, 0x0($s0)
/* E21B38 802B72C8 8E220000 */  lw        $v0, 0x0($s1)
/* E21B3C 802B72CC 00052980 */  sll       $a1, $a1, 6
/* E21B40 802B72D0 00B22821 */  addu      $a1, $a1, $s2
/* E21B44 802B72D4 0C019D40 */  jal       guMtxF2L
/* E21B48 802B72D8 00452821 */   addu     $a1, $v0, $a1
/* E21B4C 802B72DC 3C02DA38 */  lui       $v0, (0xDA380002 >> 16)
/* E21B50 802B72E0 34420002 */  ori       $v0, $v0, (0xDA380002 & 0xFFFF)
/* E21B54 802B72E4 3C07800A */  lui       $a3, %hi(gMainGfxPos)
/* E21B58 802B72E8 24E7A66C */  addiu     $a3, $a3, %lo(gMainGfxPos)
/* E21B5C 802B72EC 3C089249 */  lui       $t0, (0x92492493 >> 16)
/* E21B60 802B72F0 35082493 */  ori       $t0, $t0, (0x92492493 & 0xFFFF)
/* E21B64 802B72F4 8CE50000 */  lw        $a1, 0x0($a3)
/* E21B68 802B72F8 96060000 */  lhu       $a2, 0x0($s0)
/* E21B6C 802B72FC 00A0202D */  daddu     $a0, $a1, $zero
/* E21B70 802B7300 24A50008 */  addiu     $a1, $a1, 0x8
/* E21B74 802B7304 AC820000 */  sw        $v0, 0x0($a0)
/* E21B78 802B7308 30C2FFFF */  andi      $v0, $a2, 0xFFFF
/* E21B7C 802B730C 00021180 */  sll       $v0, $v0, 6
/* E21B80 802B7310 8E230000 */  lw        $v1, 0x0($s1)
/* E21B84 802B7314 00521021 */  addu      $v0, $v0, $s2
/* E21B88 802B7318 00621821 */  addu      $v1, $v1, $v0
/* E21B8C 802B731C AC830004 */  sw        $v1, 0x4($a0)
/* E21B90 802B7320 3C038007 */  lui       $v1, %hi(gGameStatusPtr)
/* E21B94 802B7324 8C63419C */  lw        $v1, %lo(gGameStatusPtr)($v1)
/* E21B98 802B7328 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* E21B9C 802B732C ACA20000 */  sw        $v0, 0x0($a1)
/* E21BA0 802B7330 3C02802B */  lui       $v0, %hi(pulse_stone_icon_gfx)
/* E21BA4 802B7334 24427CA0 */  addiu     $v0, $v0, %lo(pulse_stone_icon_gfx)
/* E21BA8 802B7338 ACA20004 */  sw        $v0, 0x4($a1)
/* E21BAC 802B733C 9462008C */  lhu       $v0, 0x8C($v1)
/* E21BB0 802B7340 24C60001 */  addiu     $a2, $a2, 0x1
/* E21BB4 802B7344 ACE50000 */  sw        $a1, 0x0($a3)
/* E21BB8 802B7348 00021400 */  sll       $v0, $v0, 16
/* E21BBC 802B734C 00022403 */  sra       $a0, $v0, 16
/* E21BC0 802B7350 00880018 */  mult      $a0, $t0
/* E21BC4 802B7354 24A50008 */  addiu     $a1, $a1, 0x8
/* E21BC8 802B7358 A6060000 */  sh        $a2, 0x0($s0)
glabel ispy_notification_update
/* E21BCC 802B735C 000217C3 */  sra       $v0, $v0, 31
/* E21BD0 802B7360 00004810 */  mfhi      $t1
/* E21BD4 802B7364 01241821 */  addu      $v1, $t1, $a0
/* E21BD8 802B7368 00031883 */  sra       $v1, $v1, 2
/* E21BDC 802B736C 00621823 */  subu      $v1, $v1, $v0
/* E21BE0 802B7370 000310C0 */  sll       $v0, $v1, 3
/* E21BE4 802B7374 00431023 */  subu      $v0, $v0, $v1
/* E21BE8 802B7378 00822023 */  subu      $a0, $a0, $v0
/* E21BEC 802B737C 00042400 */  sll       $a0, $a0, 16
/* E21BF0 802B7380 00042403 */  sra       $a0, $a0, 16
/* E21BF4 802B7384 2484FFFE */  addiu     $a0, $a0, -0x2
/* E21BF8 802B7388 04820001 */  bltzl     $a0, .L802B7390
/* E21BFC 802B738C 00042023 */   negu     $a0, $a0
.L802B7390:
/* E21C00 802B7390 00031C00 */  sll       $v1, $v1, 16
/* E21C04 802B7394 00031C03 */  sra       $v1, $v1, 16
/* E21C08 802B7398 00832021 */  addu      $a0, $a0, $v1
/* E21C0C 802B739C 2C820006 */  sltiu     $v0, $a0, 0x6
/* E21C10 802B73A0 10400013 */  beqz      $v0, .L802B73F0
/* E21C14 802B73A4 ACE50000 */   sw       $a1, 0x0($a3)
/* E21C18 802B73A8 00041080 */  sll       $v0, $a0, 2
/* E21C1C 802B73AC 3C01802B */  lui       $at, %hi(jtbl_802B7D20)
/* E21C20 802B73B0 00220821 */  addu      $at, $at, $v0
/* E21C24 802B73B4 8C227D20 */  lw        $v0, %lo(jtbl_802B7D20)($at)
/* E21C28 802B73B8 00400008 */  jr        $v0
/* E21C2C 802B73BC 00000000 */   nop
glabel .L802B73C0
/* E21C30 802B73C0 080ADCFF */  j         .L802B73FC
/* E21C34 802B73C4 24030004 */   addiu    $v1, $zero, 0x4
glabel .L802B73C8
/* E21C38 802B73C8 080ADCFF */  j         .L802B73FC
/* E21C3C 802B73CC 24030008 */   addiu    $v1, $zero, 0x8
glabel .L802B73D0
/* E21C40 802B73D0 080ADCFF */  j         .L802B73FC
/* E21C44 802B73D4 24030010 */   addiu    $v1, $zero, 0x10
glabel .L802B73D8
/* E21C48 802B73D8 080ADCFF */  j         .L802B73FC
/* E21C4C 802B73DC 24030020 */   addiu    $v1, $zero, 0x20
glabel .L802B73E0
/* E21C50 802B73E0 080ADCFF */  j         .L802B73FC
/* E21C54 802B73E4 24030040 */   addiu    $v1, $zero, 0x40
glabel .L802B73E8
/* E21C58 802B73E8 080ADCFF */  j         .L802B73FC
/* E21C5C 802B73EC 24030080 */   addiu    $v1, $zero, 0x80
.L802B73F0:
/* E21C60 802B73F0 8E620000 */  lw        $v0, 0x0($s3)
/* E21C64 802B73F4 2403FFFF */  addiu     $v1, $zero, -0x1
.L802B73F8:
/* E21C68 802B73F8 AC400020 */  sw        $zero, 0x20($v0)
.L802B73FC:
/* E21C6C 802B73FC 3C11802B */  lui       $s1, %hi(D_802B7C60)
/* E21C70 802B7400 26317C60 */  addiu     $s1, $s1, %lo(D_802B7C60)
/* E21C74 802B7404 04600017 */  bltz      $v1, .L802B7464
.L802B7408:
/* E21C78 802B7408 AFB1009C */   sw       $s1, 0x9C($sp)
/* E21C7C 802B740C 3C10802B */  lui       $s0, %hi(PulseStonePtr)
.L802B7410:
/* E21C80 802B7410 26107D18 */  addiu     $s0, $s0, %lo(PulseStonePtr)
/* E21C84 802B7414 8E040000 */  lw        $a0, 0x0($s0)
/* E21C88 802B7418 8C820020 */  lw        $v0, 0x20($a0)
/* E21C8C 802B741C 24630002 */  addiu     $v1, $v1, 0x2
/* E21C90 802B7420 24420001 */  addiu     $v0, $v0, 0x1
/* E21C94 802B7424 AC820020 */  sw        $v0, 0x20($a0)
/* E21C98 802B7428 0043102A */  slt       $v0, $v0, $v1
glabel interact_speech_update
/* E21C9C 802B742C 14400005 */  bnez      $v0, .L802B7444
/* E21CA0 802B7430 00000000 */   nop
/* E21CA4 802B7434 AC800020 */  sw        $zero, 0x20($a0)
.L802B7438:
/* E21CA8 802B7438 2404007D */  addiu     $a0, $zero, 0x7D
/* E21CAC 802B743C 0C052736 */  jal       sfx_play_sound_at_player
.L802B7440:
/* E21CB0 802B7440 0000282D */   daddu    $a1, $zero, $zero
.L802B7444:
/* E21CB4 802B7444 8E020000 */  lw        $v0, 0x0($s0)
/* E21CB8 802B7448 8C420020 */  lw        $v0, 0x20($v0)
/* E21CBC 802B744C 28420002 */  slti      $v0, $v0, 0x2
glabel should_continue_inspect
/* E21CC0 802B7450 50400004 */  beql      $v0, $zero, .L802B7464
/* E21CC4 802B7454 AFB1009C */   sw       $s1, 0x9C($sp)
/* E21CC8 802B7458 3C02802B */  lui       $v0, %hi(D_802B7C80)
/* E21CCC 802B745C 24427C80 */  addiu     $v0, $v0, %lo(D_802B7C80)
.L802B7460:
/* E21CD0 802B7460 AFA2009C */  sw        $v0, 0x9C($sp)
.L802B7464:
/* E21CD4 802B7464 0000202D */  daddu     $a0, $zero, $zero
/* E21CD8 802B7468 27A50098 */  addiu     $a1, $sp, 0x98
/* E21CDC 802B746C 0080302D */  daddu     $a2, $a0, $zero
/* E21CE0 802B7470 27A70058 */  addiu     $a3, $sp, 0x58
/* E21CE4 802B7474 3C02802B */  lui       $v0, %hi(D_802B7640)
.L802B7478:
/* E21CE8 802B7478 24427640 */  addiu     $v0, $v0, %lo(D_802B7640)
/* E21CEC 802B747C AFA20098 */  sw        $v0, 0x98($sp)
/* E21CF0 802B7480 24020038 */  addiu     $v0, $zero, 0x38
/* E21CF4 802B7484 A7A200A0 */  sh        $v0, 0xA0($sp)
/* E21CF8 802B7488 A7A200A2 */  sh        $v0, 0xA2($sp)
/* E21CFC 802B748C 2402FFE4 */  addiu     $v0, $zero, -0x1C
/* E21D00 802B7490 A7A200A4 */  sh        $v0, 0xA4($sp)
/* E21D04 802B7494 2402002E */  addiu     $v0, $zero, 0x2E
.L802B7498:
/* E21D08 802B7498 A7A200A6 */  sh        $v0, 0xA6($sp)
/* E21D0C 802B749C 240200FF */  addiu     $v0, $zero, 0xFF
/* E21D10 802B74A0 0C04EBDC */  jal       imgfx_appendGfx_component
/* E21D14 802B74A4 A3A200A8 */   sb       $v0, 0xA8($sp)
.L802B74A8:
/* E21D18 802B74A8 3C05D838 */  lui       $a1, (0xD8380002 >> 16)
/* E21D1C 802B74AC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
.L802B74B0:
/* E21D20 802B74B0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* E21D24 802B74B4 8C620000 */  lw        $v0, 0x0($v1)
/* E21D28 802B74B8 34A50002 */  ori       $a1, $a1, (0xD8380002 & 0xFFFF)
/* E21D2C 802B74BC 0040202D */  daddu     $a0, $v0, $zero
/* E21D30 802B74C0 24420008 */  addiu     $v0, $v0, 0x8
/* E21D34 802B74C4 AC620000 */  sw        $v0, 0x0($v1)
glabel .L802B74C8
/* E21D38 802B74C8 24020040 */  addiu     $v0, $zero, 0x40
/* E21D3C 802B74CC AC850000 */  sw        $a1, 0x0($a0)
.L802B74D0:
/* E21D40 802B74D0 AC820004 */  sw        $v0, 0x4($a0)
.L802B74D4:
/* E21D44 802B74D4 8FBF00C0 */  lw        $ra, 0xC0($sp)
/* E21D48 802B74D8 8FB300BC */  lw        $s3, 0xBC($sp)
.L802B74DC:
/* E21D4C 802B74DC 8FB200B8 */  lw        $s2, 0xB8($sp)
.L802B74E0:
/* E21D50 802B74E0 8FB100B4 */  lw        $s1, 0xB4($sp)
/* E21D54 802B74E4 8FB000B0 */  lw        $s0, 0xB0($sp)
/* E21D58 802B74E8 03E00008 */  jr        $ra
/* E21D5C 802B74EC 27BD00C8 */   addiu    $sp, $sp, 0xC8

### DECOMPILED C INSTRUCTIONS:

void appendGfx_pulse_stone_icon(void) {
    PlayerStatus* playerStatus = &gPlayerStatus;
    Matrix4f sp18, sp58;
    ImgFXTexture ifxImg;
    s32 pingDelay;
    s32 dx, dy;

    if (playerStatus->animFlags & PA_FLAG_PULSE_STONE_VISIBLE) {
        guScaleF(sp18, PulseStonePtr->scale, PulseStonePtr->scale, PulseStonePtr->scale);
        guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
        guMtxCatF(sp18, sp58, sp18);
        guTranslateF(sp58, PulseStonePtr->pos.x, PulseStonePtr->pos.y, PulseStonePtr->pos.z);
        guMtxCatF(sp18, sp58, sp58);
        guMtxF2L(sp58, &gDisplayContext->matrixStack[gMatrixListPos]);

        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
                    G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
        gSPDisplayList(gMainGfxPos++, pulse_stone_icon_gfx);

        dx = abs((gGameStatusPtr->mapID % 7) - 2);
        dy = gGameStatusPtr->mapID / 7;

        switch (dx + dy) {
            case 0:
                pingDelay = 4;
                break;
            case 1:
                pingDelay = 8;
                break;
            case 2:
                pingDelay = 16;
                break;
            case 3:
                pingDelay = 32;
                break;
            case 4:
                pingDelay = 64;
                break;
            case 5:
                pingDelay = 128;
                break;
            default:
                pingDelay = -1;
                PulseStonePtr->pingTime = 0;
                break;
        }

        ifxImg.palette = pulse_stone_icon_1_pal;
        if (pingDelay >= 0) {
            PulseStonePtr->pingTime++;
            if (PulseStonePtr->pingTime >= pingDelay + 2) {
                PulseStonePtr->pingTime = 0;
                sfx_play_sound_at_player(SOUND_7D, SOUND_SPACE_MODE_0);
            }
            if (PulseStonePtr->pingTime < 2) {
                ifxImg.palette = pulse_stone_icon_2_pal;
            } else {
                ifxImg.palette = pulse_stone_icon_1_pal;
            }
        }

        ifxImg.raster  = pulse_stone_icon_img;
        ifxImg.width   = pulse_stone_icon_img_width;
        ifxImg.height  = pulse_stone_icon_img_height;
        ifxImg.xOffset = -28;
        ifxImg.yOffset = 46;
        ifxImg.alpha = 255;
        imgfx_appendGfx_component(0, &ifxImg, 0, sp58);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel func_800F102C
/* 8A4DC 800F102C 27BDFF28 */  addiu     $sp, $sp, -0xD8
/* 8A4E0 800F1030 3C090050 */  lui       $t1, (0x5003C0 >> 16)
/* 8A4E4 800F1034 352903C0 */  ori       $t1, $t1, (0x5003C0 & 0xFFFF)
/* 8A4E8 800F1038 3C0ADC08 */  lui       $t2, (0xDC080008 >> 16)
/* 8A4EC 800F103C 354A0008 */  ori       $t2, $t2, (0xDC080008 & 0xFFFF)
/* 8A4F0 800F1040 27A40020 */  addiu     $a0, $sp, 0x20
/* 8A4F4 800F1044 AFB100A4 */  sw        $s1, 0xA4($sp)
/* 8A4F8 800F1048 3C110001 */  lui       $s1, (0x11630 >> 16)
/* 8A4FC 800F104C 36311630 */  ori       $s1, $s1, (0x11630 & 0xFFFF)
/* 8A500 800F1050 AFB700BC */  sw        $s7, 0xBC($sp)
/* 8A504 800F1054 0000B82D */  daddu     $s7, $zero, $zero
/* 8A508 800F1058 AFB600B8 */  sw        $s6, 0xB8($sp)
/* 8A50C 800F105C 27B60060 */  addiu     $s6, $sp, 0x60
/* 8A510 800F1060 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 8A514 800F1064 2442A674 */  addiu     $v0, $v0, %lo(gDisplayContext)
/* 8A518 800F1068 AFBE00C0 */  sw        $fp, 0xC0($sp)
/* 8A51C 800F106C 0040F02D */  daddu     $fp, $v0, $zero
/* 8A520 800F1070 3C028007 */  lui       $v0, %hi(gMatrixListPos)
/* 8A524 800F1074 244241F0 */  addiu     $v0, $v0, %lo(gMatrixListPos)
/* 8A528 800F1078 AFB300AC */  sw        $s3, 0xAC($sp)
/* 8A52C 800F107C 0040982D */  daddu     $s3, $v0, $zero
/* 8A530 800F1080 AFB500B4 */  sw        $s5, 0xB4($sp)
/* 8A534 800F1084 3C150001 */  lui       $s5, (0x11630 >> 16)
/* 8A538 800F1088 36B51630 */  ori       $s5, $s5, (0x11630 & 0xFFFF)
/* 8A53C 800F108C AFB400B0 */  sw        $s4, 0xB0($sp)
/* 8A540 800F1090 02E0A02D */  daddu     $s4, $s7, $zero
/* 8A544 800F1094 AFB000A0 */  sw        $s0, 0xA0($sp)
/* 8A548 800F1098 3C10800A */  lui       $s0, %hi(gMainGfxPos)
/* 8A54C 800F109C 2610A66C */  addiu     $s0, $s0, %lo(gMainGfxPos)
/* 8A550 800F10A0 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 8A554 800F10A4 AFBF00C4 */  sw        $ra, 0xC4($sp)
/* 8A558 800F10A8 AFB200A8 */  sw        $s2, 0xA8($sp)
/* 8A55C 800F10AC F7B600D0 */  sdc1      $f22, 0xD0($sp)
/* 8A560 800F10B0 F7B400C8 */  sdc1      $f20, 0xC8($sp)
/* 8A564 800F10B4 8E030000 */  lw        $v1, 0x0($s0)
/* 8A568 800F10B8 3C0643A0 */  lui       $a2, (0x43A00000 >> 16)
/* 8A56C 800F10BC 3C074370 */  lui       $a3, (0x43700000 >> 16)
/* 8A570 800F10C0 44800000 */  mtc1      $zero, $f0
/* 8A574 800F10C4 3C0142C8 */  lui       $at, (0x42C80000 >> 16)
/* 8A578 800F10C8 44811000 */  mtc1      $at, $f2
/* 8A57C 800F10CC 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 8A580 800F10D0 44812000 */  mtc1      $at, $f4
/* 8A584 800F10D4 0060402D */  daddu     $t0, $v1, $zero
/* 8A588 800F10D8 44050000 */  mfc1      $a1, $f0
/* 8A58C 800F10DC 3C01C2C8 */  lui       $at, (0xC2C80000 >> 16)
/* 8A590 800F10E0 44810000 */  mtc1      $at, $f0
/* 8A594 800F10E4 24630008 */  addiu     $v1, $v1, 0x8
/* 8A598 800F10E8 AE030000 */  sw        $v1, 0x0($s0)
/* 8A59C 800F10EC AD020000 */  sw        $v0, 0x0($t0)
/* 8A5A0 800F10F0 24620008 */  addiu     $v0, $v1, 0x8
/* 8A5A4 800F10F4 AD000004 */  sw        $zero, 0x4($t0)
/* 8A5A8 800F10F8 AE020000 */  sw        $v0, 0x0($s0)
/* 8A5AC 800F10FC 3C02DB06 */  lui       $v0, (0xDB060000 >> 16)
/* 8A5B0 800F1100 AC620000 */  sw        $v0, 0x0($v1)
/* 8A5B4 800F1104 24620010 */  addiu     $v0, $v1, 0x10
/* 8A5B8 800F1108 AC600004 */  sw        $zero, 0x4($v1)
/* 8A5BC 800F110C AE020000 */  sw        $v0, 0x0($s0)
/* 8A5C0 800F1110 3C02ED00 */  lui       $v0, (0xED000000 >> 16)
/* 8A5C4 800F1114 AC620008 */  sw        $v0, 0x8($v1)
/* 8A5C8 800F1118 24620018 */  addiu     $v0, $v1, 0x18
/* 8A5CC 800F111C AC69000C */  sw        $t1, 0xC($v1)
/* 8A5D0 800F1120 AE020000 */  sw        $v0, 0x0($s0)
/* 8A5D4 800F1124 4485B000 */  mtc1      $a1, $f22
/* 8A5D8 800F1128 3C028011 */  lui       $v0, %hi(D_801096B0)
/* 8A5DC 800F112C 244296B0 */  addiu     $v0, $v0, %lo(D_801096B0)
/* 8A5E0 800F1130 AC6A0010 */  sw        $t2, 0x10($v1)
/* 8A5E4 800F1134 AC620014 */  sw        $v0, 0x14($v1)
/* 8A5E8 800F1138 E7A20018 */  swc1      $f2, 0x18($sp)
/* 8A5EC 800F113C E7A4001C */  swc1      $f4, 0x1C($sp)
/* 8A5F0 800F1140 AFA50010 */  sw        $a1, 0x10($sp)
/* 8A5F4 800F1144 0C018E44 */  jal       guOrthoF
/* 8A5F8 800F1148 E7A00014 */   swc1     $f0, 0x14($sp)
/* 8A5FC 800F114C 27A40020 */  addiu     $a0, $sp, 0x20
/* 8A600 800F1150 96650000 */  lhu       $a1, 0x0($s3)
/* 8A604 800F1154 8FC20000 */  lw        $v0, 0x0($fp)
/* 8A608 800F1158 00052980 */  sll       $a1, $a1, 6
/* 8A60C 800F115C 00B12821 */  addu      $a1, $a1, $s1
/* 8A610 800F1160 0C019D40 */  jal       guMtxF2L
/* 8A614 800F1164 00452821 */   addu     $a1, $v0, $a1
/* 8A618 800F1168 3C03DA38 */  lui       $v1, (0xDA380007 >> 16)
/* 8A61C 800F116C 34630007 */  ori       $v1, $v1, (0xDA380007 & 0xFFFF)
/* 8A620 800F1170 3C067F7F */  lui       $a2, (0x7F7F7F7F >> 16)
/* 8A624 800F1174 34C67F7F */  ori       $a2, $a2, (0x7F7F7F7F & 0xFFFF)
/* 8A628 800F1178 8E040000 */  lw        $a0, 0x0($s0)
/* 8A62C 800F117C 96620000 */  lhu       $v0, 0x0($s3)
/* 8A630 800F1180 0080282D */  daddu     $a1, $a0, $zero
/* 8A634 800F1184 24840008 */  addiu     $a0, $a0, 0x8
/* 8A638 800F1188 AE040000 */  sw        $a0, 0x0($s0)
/* 8A63C 800F118C ACA30000 */  sw        $v1, 0x0($a1)
/* 8A640 800F1190 24430001 */  addiu     $v1, $v0, 0x1
/* 8A644 800F1194 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 8A648 800F1198 00021180 */  sll       $v0, $v0, 6
/* 8A64C 800F119C A6630000 */  sh        $v1, 0x0($s3)
/* 8A650 800F11A0 8FC30000 */  lw        $v1, 0x0($fp)
/* 8A654 800F11A4 00511021 */  addu      $v0, $v0, $s1
/* 8A658 800F11A8 00621821 */  addu      $v1, $v1, $v0
/* 8A65C 800F11AC 24820008 */  addiu     $v0, $a0, 0x8
/* 8A660 800F11B0 ACA30004 */  sw        $v1, 0x4($a1)
/* 8A664 800F11B4 AE020000 */  sw        $v0, 0x0($s0)
/* 8A668 800F11B8 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 8A66C 800F11BC AC820000 */  sw        $v0, 0x0($a0)
/* 8A670 800F11C0 3C028011 */  lui       $v0, %hi(D_80109710)
/* 8A674 800F11C4 24429710 */  addiu     $v0, $v0, %lo(D_80109710)
/* 8A678 800F11C8 AC820004 */  sw        $v0, 0x4($a0)
/* 8A67C 800F11CC 24820010 */  addiu     $v0, $a0, 0x10
/* 8A680 800F11D0 AE020000 */  sw        $v0, 0x0($s0)
/* 8A684 800F11D4 3C02FB00 */  lui       $v0, (0xFB000000 >> 16)
/* 8A688 800F11D8 AC820008 */  sw        $v0, 0x8($a0)
/* 8A68C 800F11DC AC86000C */  sw        $a2, 0xC($a0)
.L800F11E0:
/* 8A690 800F11E0 3C0B8011 */  lui       $t3, %hi(D_8010D000)
/* 8A694 800F11E4 256BD000 */  addiu     $t3, $t3, %lo(D_8010D000)
/* 8A698 800F11E8 028B1821 */  addu      $v1, $s4, $t3
/* 8A69C 800F11EC 90620000 */  lbu       $v0, 0x0($v1)
/* 8A6A0 800F11F0 5040005C */  beql      $v0, $zero, .L800F1364
/* 8A6A4 800F11F4 26F70001 */   addiu    $s7, $s7, 0x1
/* 8A6A8 800F11F8 C4740018 */  lwc1      $f20, 0x18($v1)
/* 8A6AC 800F11FC 24120001 */  addiu     $s2, $zero, 0x1
/* 8A6B0 800F1200 3C11800A */  lui       $s1, %hi(gMainGfxPos)
/* 8A6B4 800F1204 2631A66C */  addiu     $s1, $s1, %lo(gMainGfxPos)
/* 8A6B8 800F1208 24700022 */  addiu     $s0, $v1, 0x22
.L800F120C:
/* 8A6BC 800F120C 82020001 */  lb        $v0, 0x1($s0)
/* 8A6C0 800F1210 0440004F */  bltz      $v0, .L800F1350
/* 8A6C4 800F1214 02C0202D */   daddu    $a0, $s6, $zero
/* 8A6C8 800F1218 C6000012 */  lwc1      $f0, 0x12($s0)
/* 8A6CC 800F121C 4405B000 */  mfc1      $a1, $f22
/* 8A6D0 800F1220 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* 8A6D4 800F1224 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* 8A6D8 800F1228 4406B000 */  mfc1      $a2, $f22
/* 8A6DC 800F122C 94430134 */  lhu       $v1, 0x134($v0)
/* 8A6E0 800F1230 46140002 */  mul.s     $f0, $f0, $f20
/* 8A6E4 800F1234 00000000 */  nop
/* 8A6E8 800F1238 00031080 */  sll       $v0, $v1, 2
/* 8A6EC 800F123C 00431021 */  addu      $v0, $v0, $v1
/* 8A6F0 800F1240 00021040 */  sll       $v0, $v0, 1
/* 8A6F4 800F1244 44823000 */  mtc1      $v0, $f6
/* 8A6F8 800F1248 00000000 */  nop
/* 8A6FC 800F124C 468031A0 */  cvt.s.w   $f6, $f6
/* 8A700 800F1250 44073000 */  mfc1      $a3, $f6
/* 8A704 800F1254 E7A00010 */  swc1      $f0, 0x10($sp)
/* 8A708 800F1258 C6000002 */  lwc1      $f0, 0x2($s0)
/* 8A70C 800F125C E7A00014 */  swc1      $f0, 0x14($sp)
/* 8A710 800F1260 C6000006 */  lwc1      $f0, 0x6($s0)
/* 8A714 800F1264 E7B6001C */  swc1      $f22, 0x1C($sp)
/* 8A718 800F1268 0C018FC4 */  jal       guPositionF
/* 8A71C 800F126C E7A00018 */   swc1     $f0, 0x18($sp)
/* 8A720 800F1270 02C0202D */  daddu     $a0, $s6, $zero
/* 8A724 800F1274 96650000 */  lhu       $a1, 0x0($s3)
/* 8A728 800F1278 8FC20000 */  lw        $v0, 0x0($fp)
/* 8A72C 800F127C 00052980 */  sll       $a1, $a1, 6
/* 8A730 800F1280 00B52821 */  addu      $a1, $a1, $s5
/* 8A734 800F1284 0C019D40 */  jal       guMtxF2L
/* 8A738 800F1288 00452821 */   addu     $a1, $v0, $a1
/* 8A73C 800F128C 3C08D838 */  lui       $t0, (0xD8380002 >> 16)
/* 8A740 800F1290 8E240000 */  lw        $a0, 0x0($s1)
/* 8A744 800F1294 35080002 */  ori       $t0, $t0, (0xD8380002 & 0xFFFF)
/* 8A748 800F1298 0080282D */  daddu     $a1, $a0, $zero
/* 8A74C 800F129C 24840008 */  addiu     $a0, $a0, 0x8
/* 8A750 800F12A0 AE240000 */  sw        $a0, 0x0($s1)
/* 8A754 800F12A4 96620000 */  lhu       $v0, 0x0($s3)
/* 8A758 800F12A8 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 8A75C 800F12AC ACA30000 */  sw        $v1, 0x0($a1)
/* 8A760 800F12B0 24430001 */  addiu     $v1, $v0, 0x1
/* 8A764 800F12B4 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 8A768 800F12B8 00021180 */  sll       $v0, $v0, 6
/* 8A76C 800F12BC A6630000 */  sh        $v1, 0x0($s3)
/* 8A770 800F12C0 8FC30000 */  lw        $v1, 0x0($fp)
/* 8A774 800F12C4 00551021 */  addu      $v0, $v0, $s5
/* 8A778 800F12C8 00621821 */  addu      $v1, $v1, $v0
/* 8A77C 800F12CC 24820008 */  addiu     $v0, $a0, 0x8
/* 8A780 800F12D0 ACA30004 */  sw        $v1, 0x4($a1)
/* 8A784 800F12D4 AE220000 */  sw        $v0, 0x0($s1)
/* 8A788 800F12D8 82030001 */  lb        $v1, 0x1($s0)
/* 8A78C 800F12DC 24020050 */  addiu     $v0, $zero, 0x50
/* 8A790 800F12E0 00431023 */  subu      $v0, $v0, $v1
/* 8A794 800F12E4 304200FF */  andi      $v0, $v0, 0xFF
/* 8A798 800F12E8 3C03FA00 */  lui       $v1, (0xFA000000 >> 16)
/* 8A79C 800F12EC 00431025 */  or        $v0, $v0, $v1
/* 8A7A0 800F12F0 AC820000 */  sw        $v0, 0x0($a0)
/* 8A7A4 800F12F4 9203FFFD */  lbu       $v1, -0x3($s0)
/* 8A7A8 800F12F8 9205FFFE */  lbu       $a1, -0x2($s0)
/* 8A7AC 800F12FC 9206FFFF */  lbu       $a2, -0x1($s0)
/* 8A7B0 800F1300 92070000 */  lbu       $a3, 0x0($s0)
/* 8A7B4 800F1304 24820010 */  addiu     $v0, $a0, 0x10
/* 8A7B8 800F1308 AE220000 */  sw        $v0, 0x0($s1)
/* 8A7BC 800F130C 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 8A7C0 800F1310 AC820008 */  sw        $v0, 0x8($a0)
/* 8A7C4 800F1314 3C028011 */  lui       $v0, %hi(D_801097D8)
/* 8A7C8 800F1318 244297D8 */  addiu     $v0, $v0, %lo(D_801097D8)
/* 8A7CC 800F131C AC82000C */  sw        $v0, 0xC($a0)
/* 8A7D0 800F1320 24820018 */  addiu     $v0, $a0, 0x18
/* 8A7D4 800F1324 AE220000 */  sw        $v0, 0x0($s1)
/* 8A7D8 800F1328 24020040 */  addiu     $v0, $zero, 0x40
/* 8A7DC 800F132C AC880010 */  sw        $t0, 0x10($a0)
/* 8A7E0 800F1330 AC820014 */  sw        $v0, 0x14($a0)
/* 8A7E4 800F1334 00031E00 */  sll       $v1, $v1, 24
/* 8A7E8 800F1338 00052C00 */  sll       $a1, $a1, 16
/* 8A7EC 800F133C 00651825 */  or        $v1, $v1, $a1
/* 8A7F0 800F1340 00063200 */  sll       $a2, $a2, 8
/* 8A7F4 800F1344 00661825 */  or        $v1, $v1, $a2
/* 8A7F8 800F1348 00671825 */  or        $v1, $v1, $a3
/* 8A7FC 800F134C AC830004 */  sw        $v1, 0x4($a0)
.L800F1350:
/* 8A800 800F1350 26520001 */  addiu     $s2, $s2, 0x1
/* 8A804 800F1354 2A420039 */  slti      $v0, $s2, 0x39
/* 8A808 800F1358 1440FFAC */  bnez      $v0, .L800F120C
/* 8A80C 800F135C 2610001C */   addiu    $s0, $s0, 0x1C
/* 8A810 800F1360 26F70001 */  addiu     $s7, $s7, 0x1
.L800F1364:
/* 8A814 800F1364 1AE0FF9E */  blez      $s7, .L800F11E0
/* 8A818 800F1368 2694063C */   addiu    $s4, $s4, 0x63C
/* 8A81C 800F136C 8FBF00C4 */  lw        $ra, 0xC4($sp)
/* 8A820 800F1370 8FBE00C0 */  lw        $fp, 0xC0($sp)
/* 8A824 800F1374 8FB700BC */  lw        $s7, 0xBC($sp)
/* 8A828 800F1378 8FB600B8 */  lw        $s6, 0xB8($sp)
/* 8A82C 800F137C 8FB500B4 */  lw        $s5, 0xB4($sp)
/* 8A830 800F1380 8FB400B0 */  lw        $s4, 0xB0($sp)
/* 8A834 800F1384 8FB300AC */  lw        $s3, 0xAC($sp)
/* 8A838 800F1388 8FB200A8 */  lw        $s2, 0xA8($sp)
/* 8A83C 800F138C 8FB100A4 */  lw        $s1, 0xA4($sp)
/* 8A840 800F1390 8FB000A0 */  lw        $s0, 0xA0($sp)
/* 8A844 800F1394 D7B600D0 */  ldc1      $f22, 0xD0($sp)
/* 8A848 800F1398 D7B400C8 */  ldc1      $f20, 0xC8($sp)
/* 8A84C 800F139C 03E00008 */  jr        $ra
/* 8A850 800F13A0 27BD00D8 */   addiu    $sp, $sp, 0xD8
/* 8A854 800F13A4 00000000 */  nop
/* 8A858 800F13A8 00000000 */  nop
/* 8A85C 800F13AC 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void func_800F102C(void) {
    Matrix4f sp20, sp60;
    Unk8a160Outer* outer;
    s32 i;
    s32 j;

    gDPPipeSync(gMainGfxPos++);
    gSPSegment(gMainGfxPos++, 0x00, 0x00000000);
    gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    gSPViewport(gMainGfxPos++, &D_801096B0);

    guOrthoF(sp20, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, -100.0f, 100.0f, 1.0f);
    guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);

    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
    gSPDisplayList(gMainGfxPos++, D_80109710);
    gDPSetEnvColor(gMainGfxPos++, 127, 127, 127, 127);

    for (i = 0; i < ARRAY_COUNT(D_8010D000); i++, outer++) {
        outer = &D_8010D000[i];

        if (outer->subs[0].alive) {
            Unk8a160* it = &outer->subs[0];
            f32 baseScale = it->scale;

            it++;
            for (j = 1; j < ARRAY_COUNT(outer->subs); j++, it++) {
                if (it->lodVal >= 0) {
                    guPositionF(sp60, 0.0f, 0.0f, gGameStatusPtr->frameCounter * 10, it->scale * baseScale,
                                it->x, it->y, 0.0f);
                    guMtxF2L(sp60, &gDisplayContext->matrixStack[gMatrixListPos]);

                    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
                              G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
                    gDPSetPrimColor(gMainGfxPos++, 0, 80 - it->lodVal, it->rgba.r, it->rgba.g, it->rgba.b, it->rgba.a);
                    gSPDisplayList(gMainGfxPos++, D_801097D8);
                    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
                }
            }
        }
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel create_entity
/* A7FC4 801118C4 AFA40000 */  sw        $a0, 0x0($sp)
/* A7FC8 801118C8 AFA50004 */  sw        $a1, 0x4($sp)
/* A7FCC 801118CC AFA60008 */  sw        $a2, 0x8($sp)
/* A7FD0 801118D0 AFA7000C */  sw        $a3, 0xC($sp)
/* A7FD4 801118D4 27BDFFC0 */  addiu     $sp, $sp, -0x40
/* A7FD8 801118D8 AFBF001C */  sw        $ra, 0x1C($sp)
/* A7FDC 801118DC AFB20018 */  sw        $s2, 0x18($sp)
/* A7FE0 801118E0 AFB10014 */  sw        $s1, 0x14($sp)
/* A7FE4 801118E4 AFB00010 */  sw        $s0, 0x10($sp)
/* A7FE8 801118E8 F7BA0038 */  sdc1      $f26, 0x38($sp)
/* A7FEC 801118EC F7B80030 */  sdc1      $f24, 0x30($sp)
/* A7FF0 801118F0 F7B60028 */  sdc1      $f22, 0x28($sp)
/* A7FF4 801118F4 F7B40020 */  sdc1      $f20, 0x20($sp)
/* A7FF8 801118F8 0C044305 */  jal       load_area_specific_entity_data
/* A7FFC 801118FC AFA40040 */   sw       $a0, 0x40($sp)
/* A8000 80111900 27A40054 */  addiu     $a0, $sp, 0x54
/* A8004 80111904 3C038016 */  lui       $v1, %hi(CreateEntityVarArgBuffer2)
/* A8008 80111908 2463C7D8 */  addiu     $v1, $v1, %lo(CreateEntityVarArgBuffer2)
/* A800C 8011190C C7B60044 */  lwc1      $f22, 0x44($sp)
/* A8010 80111910 4680B5A0 */  cvt.s.w   $f22, $f22
/* A8014 80111914 C7B80048 */  lwc1      $f24, 0x48($sp)
/* A8018 80111918 4680C620 */  cvt.s.w   $f24, $f24
/* A801C 8011191C C7BA004C */  lwc1      $f26, 0x4C($sp)
/* A8020 80111920 4680D6A0 */  cvt.s.w   $f26, $f26
/* A8024 80111924 C7B40050 */  lwc1      $f20, 0x50($sp)
/* A8028 80111928 4680A520 */  cvt.s.w   $f20, $f20
/* A802C 8011192C AC600000 */  sw        $zero, 0x0($v1)
/* A8030 80111930 2463FFFC */  addiu     $v1, $v1, -0x4
/* A8034 80111934 AC600000 */  sw        $zero, 0x0($v1)
/* A8038 80111938 2463FFFC */  addiu     $v1, $v1, -0x4
/* A803C 8011193C 24110003 */  addiu     $s1, $zero, 0x3
/* A8040 80111940 3C058000 */  lui       $a1, (0x80000000 >> 16)
/* A8044 80111944 AC600000 */  sw        $zero, 0x0($v1)
.L80111948:
/* A8048 80111948 24840004 */  addiu     $a0, $a0, 0x4
/* A804C 8011194C 8C82FFFC */  lw        $v0, -0x4($a0)
/* A8050 80111950 10450004 */  beq       $v0, $a1, .L80111964
/* A8054 80111954 2631FFFF */   addiu    $s1, $s1, -0x1
/* A8058 80111958 AC620000 */  sw        $v0, 0x0($v1)
/* A805C 8011195C 1E20FFFA */  bgtz      $s1, .L80111948
/* A8060 80111960 24630004 */   addiu    $v1, $v1, 0x4
.L80111964:
/* A8064 80111964 0000882D */  daddu     $s1, $zero, $zero
/* A8068 80111968 3C128015 */  lui       $s2, %hi(gCurrentEntityListPtr)
/* A806C 8011196C 26521470 */  addiu     $s2, $s2, %lo(gCurrentEntityListPtr)
/* A8070 80111970 8E430000 */  lw        $v1, 0x0($s2)
.L80111974:
/* A8074 80111974 8C620000 */  lw        $v0, 0x0($v1)
/* A8078 80111978 10400006 */  beqz      $v0, .L80111994
/* A807C 8011197C 2A22001E */   slti     $v0, $s1, 0x1E
/* A8080 80111980 26310001 */  addiu     $s1, $s1, 0x1
/* A8084 80111984 2A22001E */  slti      $v0, $s1, 0x1E
/* A8088 80111988 1440FFFA */  bnez      $v0, .L80111974
/* A808C 8011198C 24630004 */   addiu    $v1, $v1, 0x4
/* A8090 80111990 2A22001E */  slti      $v0, $s1, 0x1E
.L80111994:
/* A8094 80111994 10400086 */  beqz      $v0, .L80111BB0
/* A8098 80111998 2402FFFF */   addiu    $v0, $zero, -0x1
/* A809C 8011199C 0C00AB39 */  jal       heap_malloc
/* A80A0 801119A0 240400F8 */   addiu    $a0, $zero, 0xF8
/* A80A4 801119A4 0040802D */  daddu     $s0, $v0, $zero
/* A80A8 801119A8 0200202D */  daddu     $a0, $s0, $zero
/* A80AC 801119AC 240500F8 */  addiu     $a1, $zero, 0xF8
/* A80B0 801119B0 8E420000 */  lw        $v0, 0x0($s2)
/* A80B4 801119B4 00111880 */  sll       $v1, $s1, 2
/* A80B8 801119B8 00621821 */  addu      $v1, $v1, $v0
/* A80BC 801119BC 0C00A580 */  jal       mem_clear
/* A80C0 801119C0 AC700000 */   sw       $s0, 0x0($v1)
/* A80C4 801119C4 8FA30040 */  lw        $v1, 0x40($sp)
/* A80C8 801119C8 AE000040 */  sw        $zero, 0x40($s0)
/* A80CC 801119CC 94620002 */  lhu       $v0, 0x2($v1)
/* A80D0 801119D0 10400008 */  beqz      $v0, .L801119F4
/* A80D4 801119D4 00000000 */   nop
/* A80D8 801119D8 0C00AB39 */  jal       heap_malloc
/* A80DC 801119DC 0040202D */   daddu    $a0, $v0, $zero
/* A80E0 801119E0 8FA30040 */  lw        $v1, 0x40($sp)
/* A80E4 801119E4 AE020040 */  sw        $v0, 0x40($s0)
/* A80E8 801119E8 94650002 */  lhu       $a1, 0x2($v1)
/* A80EC 801119EC 0C00A580 */  jal       mem_clear
/* A80F0 801119F0 0040202D */   daddu    $a0, $v0, $zero
.L801119F4:
/* A80F4 801119F4 8FA20040 */  lw        $v0, 0x40($sp)
/* A80F8 801119F8 90420020 */  lbu       $v0, 0x20($v0)
/* A80FC 801119FC A2110004 */  sb        $s1, 0x4($s0)
/* A8100 80111A00 A202000A */  sb        $v0, 0xA($s0)
/* A8104 80111A04 8FA20040 */  lw        $v0, 0x40($sp)
/* A8108 80111A08 AE000024 */  sw        $zero, 0x24($s0)
/* A810C 80111A0C AE000020 */  sw        $zero, 0x20($s0)
/* A8110 80111A10 AE020038 */  sw        $v0, 0x38($s0)
/* A8114 80111A14 8C430010 */  lw        $v1, 0x10($v0)
/* A8118 80111A18 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* A811C 80111A1C 44810000 */  mtc1      $at, $f0
/* A8120 80111A20 0003102B */  sltu      $v0, $zero, $v1
/* A8124 80111A24 A2020009 */  sb        $v0, 0x9($s0)
/* A8128 80111A28 8FA40040 */  lw        $a0, 0x40($sp)
/* A812C 80111A2C AE030018 */  sw        $v1, 0x18($s0)
/* A8130 80111A30 8C820010 */  lw        $v0, 0x10($a0)
/* A8134 80111A34 AE00001C */  sw        $zero, 0x1C($s0)
/* A8138 80111A38 AE02002C */  sw        $v0, 0x2C($s0)
/* A813C 80111A3C 94840000 */  lhu       $a0, 0x0($a0)
/* A8140 80111A40 3C028000 */  lui       $v0, (0x80000000 >> 16)
/* A8144 80111A44 A2000006 */  sb        $zero, 0x6($s0)
/* A8148 80111A48 A2000007 */  sb        $zero, 0x7($s0)
/* A814C 80111A4C AE00003C */  sw        $zero, 0x3C($s0)
/* A8150 80111A50 E6160048 */  swc1      $f22, 0x48($s0)
/* A8154 80111A54 E618004C */  swc1      $f24, 0x4C($s0)
/* A8158 80111A58 E61A0050 */  swc1      $f26, 0x50($s0)
/* A815C 80111A5C AE000060 */  sw        $zero, 0x60($s0)
/* A8160 80111A60 E6140064 */  swc1      $f20, 0x64($s0)
/* A8164 80111A64 AE000068 */  sw        $zero, 0x68($s0)
/* A8168 80111A68 E6000054 */  swc1      $f0, 0x54($s0)
/* A816C 80111A6C E6000058 */  swc1      $f0, 0x58($s0)
/* A8170 80111A70 E600005C */  swc1      $f0, 0x5C($s0)
/* A8174 80111A74 8FA30040 */  lw        $v1, 0x40($sp)
/* A8178 80111A78 00822025 */  or        $a0, $a0, $v0
/* A817C 80111A7C AE040000 */  sw        $a0, 0x0($s0)
/* A8180 80111A80 90620021 */  lbu       $v0, 0x21($v1)
/* A8184 80111A84 A602000C */  sh        $v0, 0xC($s0)
/* A8188 80111A88 90620022 */  lbu       $v0, 0x22($v1)
/* A818C 80111A8C A602000E */  sh        $v0, 0xE($s0)
/* A8190 80111A90 90630023 */  lbu       $v1, 0x23($v1)
/* A8194 80111A94 24020001 */  addiu     $v0, $zero, 0x1
/* A8198 80111A98 A2020005 */  sb        $v0, 0x5($s0)
/* A819C 80111A9C 240200FF */  addiu     $v0, $zero, 0xFF
/* A81A0 80111AA0 A2020008 */  sb        $v0, 0x8($s0)
/* A81A4 80111AA4 A202000B */  sb        $v0, 0xB($s0)
/* A81A8 80111AA8 8FA50040 */  lw        $a1, 0x40($sp)
/* A81AC 80111AAC 2402FFFF */  addiu     $v0, $zero, -0x1
/* A81B0 80111AB0 A6020014 */  sh        $v0, 0x14($s0)
/* A81B4 80111AB4 A6020016 */  sh        $v0, 0x16($s0)
/* A81B8 80111AB8 AE000044 */  sw        $zero, 0x44($s0)
/* A81BC 80111ABC A6030010 */  sh        $v1, 0x10($s0)
/* A81C0 80111AC0 94A20000 */  lhu       $v0, 0x0($a1)
/* A81C4 80111AC4 30420008 */  andi      $v0, $v0, 0x8
/* A81C8 80111AC8 14400012 */  bnez      $v0, .L80111B14
/* A81CC 80111ACC 0200202D */   daddu    $a0, $s0, $zero
/* A81D0 80111AD0 8CA20018 */  lw        $v0, 0x18($a1)
/* A81D4 80111AD4 10400003 */  beqz      $v0, .L80111AE4
/* A81D8 80111AD8 00000000 */   nop
/* A81DC 80111ADC 0C0444A9 */  jal       load_simple_entity_data
/* A81E0 80111AE0 0220302D */   daddu    $a2, $s1, $zero
.L80111AE4:
/* A81E4 80111AE4 8FA20040 */  lw        $v0, 0x40($sp)
/* A81E8 80111AE8 8C440004 */  lw        $a0, 0x4($v0)
/* A81EC 80111AEC 1080000C */  beqz      $a0, .L80111B20
/* A81F0 80111AF0 00000000 */   nop
/* A81F4 80111AF4 0C048338 */  jal       load_entity_model
/* A81F8 80111AF8 00000000 */   nop
/* A81FC 80111AFC A6020014 */  sh        $v0, 0x14($s0)
/* A8200 80111B00 00021400 */  sll       $v0, $v0, 16
/* A8204 80111B04 0C0483C1 */  jal       exec_entity_model_commandlist
/* A8208 80111B08 00022403 */   sra      $a0, $v0, 16
/* A820C 80111B0C 080446C7 */  j         .L80111B1C
/* A8210 80111B10 00000000 */   nop
.L80111B14:
/* A8214 80111B14 0C044502 */  jal       load_split_entity_data
/* A8218 80111B18 0220302D */   daddu    $a2, $s1, $zero
.L80111B1C:
/* A821C 80111B1C 8FA20040 */  lw        $v0, 0x40($sp)
.L80111B20:
/* A8220 80111B20 90430020 */  lbu       $v1, 0x20($v0)
/* A8224 80111B24 24020001 */  addiu     $v0, $zero, 0x1
/* A8228 80111B28 1062000A */  beq       $v1, $v0, .L80111B54
/* A822C 80111B2C 00000000 */   nop
/* A8230 80111B30 8E020000 */  lw        $v0, 0x0($s0)
/* A8234 80111B34 30420300 */  andi      $v0, $v0, 0x300
/* A8238 80111B38 10400006 */  beqz      $v0, .L80111B54
/* A823C 80111B3C 00000000 */   nop
/* A8240 80111B40 4405B000 */  mfc1      $a1, $f22
/* A8244 80111B44 4406C000 */  mfc1      $a2, $f24
/* A8248 80111B48 4407D000 */  mfc1      $a3, $f26
/* A824C 80111B4C 0C044873 */  jal       create_entity_shadow
/* A8250 80111B50 0200202D */   daddu    $a0, $s0, $zero
.L80111B54:
/* A8254 80111B54 8FA20040 */  lw        $v0, 0x40($sp)
/* A8258 80111B58 90420020 */  lbu       $v0, 0x20($v0)
/* A825C 80111B5C 2443FFF9 */  addiu     $v1, $v0, -0x7
/* A8260 80111B60 2C62002B */  sltiu     $v0, $v1, 0x2B
/* A8264 80111B64 10400009 */  beqz      $v0, .L80111B8C
/* A8268 80111B68 00031080 */   sll      $v0, $v1, 2
/* A826C 80111B6C 3C018015 */  lui       $at, %hi(jtbl_8014F878)
/* A8270 80111B70 00220821 */  addu      $at, $at, $v0
/* A8274 80111B74 8C22F878 */  lw        $v0, %lo(jtbl_8014F878)($at)
/* A8278 80111B78 00400008 */  jr        $v0
/* A827C 80111B7C 00000000 */   nop
glabel .L80111B80
/* A8280 80111B80 8E020000 */  lw        $v0, 0x0($s0)
/* A8284 80111B84 34424000 */  ori       $v0, $v0, 0x4000
/* A8288 80111B88 AE020000 */  sw        $v0, 0x0($s0)
glabel .L80111B8C
/* A828C 80111B8C 8FA20040 */  lw        $v0, 0x40($sp)
/* A8290 80111B90 8C42000C */  lw        $v0, 0xC($v0)
/* A8294 80111B94 10400003 */  beqz      $v0, .L80111BA4
/* A8298 80111B98 00000000 */   nop
/* A829C 80111B9C 0040F809 */  jalr      $v0
/* A82A0 80111BA0 0200202D */   daddu    $a0, $s0, $zero
.L80111BA4:
/* A82A4 80111BA4 0C04408B */  jal       update_entity_transform_matrix
/* A82A8 80111BA8 0200202D */   daddu    $a0, $s0, $zero
/* A82AC 80111BAC 92020004 */  lbu       $v0, 0x4($s0)
.L80111BB0:
/* A82B0 80111BB0 8FBF001C */  lw        $ra, 0x1C($sp)
/* A82B4 80111BB4 8FB20018 */  lw        $s2, 0x18($sp)
/* A82B8 80111BB8 8FB10014 */  lw        $s1, 0x14($sp)
/* A82BC 80111BBC 8FB00010 */  lw        $s0, 0x10($sp)
/* A82C0 80111BC0 D7BA0038 */  ldc1      $f26, 0x38($sp)
/* A82C4 80111BC4 D7B80030 */  ldc1      $f24, 0x30($sp)
/* A82C8 80111BC8 D7B60028 */  ldc1      $f22, 0x28($sp)
/* A82CC 80111BCC D7B40020 */  ldc1      $f20, 0x20($sp)
/* A82D0 80111BD0 03E00008 */  jr        $ra
/* A82D4 80111BD4 27BD0040 */   addiu    $sp, $sp, 0x40

### DECOMPILED C INSTRUCTIONS:

s32 create_entity(EntityBlueprint* bp, ...) {
    va_list ap;
    EntityBlueprint** bpPtr;
    f32 x, y, z;
    f32 rotY;
    s32 listIndex;
    Entity* entity;
    s32* args;

    va_start(ap, bp);
    // needed to match
    bpPtr = &bp;
    *bpPtr = bp;

    load_area_specific_entity_data();

    x = va_arg(ap, s32);
    y = va_arg(ap, s32);
    z = va_arg(ap, s32);
    rotY = va_arg(ap, s32);

    args = &CreateEntityVarArgBuffer[2];

    *args-- = 0;
    *args-- = 0;
    *args = 0;

    for (listIndex = 3; listIndex > 0; listIndex--) {
        s32 arg = va_arg(ap, s32);

        if (arg == MAKE_ENTITY_END) {
            break;
        }
        *args++ = arg;
    }

    va_end(ap);

    for (listIndex = 0; listIndex < ARRAY_COUNT(*gCurrentEntityListPtr); listIndex++) {
        if ((*gCurrentEntityListPtr)[listIndex] == NULL) {
            break;
        }
    }

    if (listIndex >= MAX_ENTITIES) {
        return -1;
    }

    (*gCurrentEntityListPtr)[listIndex] = entity = heap_malloc(sizeof(*entity));
    mem_clear(entity, sizeof(*entity));
    entity->dataBuf.any = NULL;
    if (bp->typeDataSize != 0) {
        entity->dataBuf.any = heap_malloc(bp->typeDataSize);
        mem_clear(entity->dataBuf.any, bp->typeDataSize);
    }
    entity->type = bp->entityType;
    entity->listIndex = listIndex;
    entity->boundScript = NULL;
    entity->updateMatrixOverride = NULL;
    entity->blueprint = bp;
    entity->scriptReadPos = bp->updateEntityScript;
    entity->scriptDelay = entity->scriptReadPos != NULL ? 1 : 0;
    entity->savedReadPos[0] = bp->updateEntityScript;
    entity->updateScriptCallback = NULL;
    entity->flags = bp->flags | ENTITY_FLAG_CREATED;
    entity->collisionFlags = 0;
    entity->collisionTimer = 0;
    entity->renderSetupFunc = NULL;
    entity->position.x = x;
    entity->position.y = y;
    entity->position.z = z;
    entity->rotation.x = 0.0f;
    entity->rotation.y = rotY;
    entity->rotation.z = 0.0f;
    entity->scale.x = 1.0f;
    entity->scale.y = 1.0f;
    entity->scale.z = 1.0f;
    entity->aabb.x = bp->aabbSize[0];
    entity->aabb.y = bp->aabbSize[1];
    entity->aabb.z = bp->aabbSize[2];
    entity->unk_05 = 1;
    entity->unk_08 = -1;
    entity->alpha = 255;
    entity->virtualModelIndex = -1;
    entity->shadowIndex = -1;
    entity->gfxBaseAddr = NULL;

    if (!(bp->flags & ENTITY_FLAG_HAS_ANIMATED_MODEL)) {
        if (bp->dma.start != 0) {
            load_simple_entity_data(entity, bp, listIndex);
        }
        if (bp->renderCommandList != NULL) {
            entity->virtualModelIndex = load_entity_model(bp->renderCommandList);
            exec_entity_model_commandlist(entity->virtualModelIndex);
        }
    } else {
        load_split_entity_data(entity, bp, listIndex);
    }

    if (bp->entityType != ENTITY_TYPE_SHADOW && (entity->flags & (ENTITY_FLAG_FIXED_SHADOW_SIZE | ENTITY_FLAG_HAS_SHADOW))) {
        create_entity_shadow(entity, x, y, z);
    }

    switch (bp->entityType) {
        case ENTITY_TYPE_BLUE_SWITCH:
        case ENTITY_TYPE_RED_SWITCH:
        case ENTITY_TYPE_SIMPLE_SPRING:
        case ENTITY_TYPE_SCRIPT_SPRING:
        case ENTITY_TYPE_STAR_BOX_LAUCHER:
            entity->flags |= ENTITY_FLAG_4000;
            break;
    }

    if (bp->fpInit != NULL) {
        bp->fpInit(entity);
    }

    update_entity_transform_matrix(entity);
    return entity->listIndex;
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel collision_lava_reset_check_additional_overlaps
/* 7E068 800E4BB8 27BDFFA8 */  addiu     $sp, $sp, -0x58
/* 7E06C 800E4BBC 3C038011 */  lui       $v1, %hi(gPlayerStatus)
/* 7E070 800E4BC0 2463EFC8 */  addiu     $v1, $v1, %lo(gPlayerStatus)
/* 7E074 800E4BC4 AFBF0040 */  sw        $ra, 0x40($sp)
/* 7E078 800E4BC8 AFB3003C */  sw        $s3, 0x3C($sp)
/* 7E07C 800E4BCC AFB20038 */  sw        $s2, 0x38($sp)
/* 7E080 800E4BD0 AFB10034 */  sw        $s1, 0x34($sp)
/* 7E084 800E4BD4 AFB00030 */  sw        $s0, 0x30($sp)
/* 7E088 800E4BD8 F7B60050 */  sdc1      $f22, 0x50($sp)
/* 7E08C 800E4BDC F7B40048 */  sdc1      $f20, 0x48($sp)
/* 7E090 800E4BE0 8C620004 */  lw        $v0, 0x4($v1)
/* 7E094 800E4BE4 30421000 */  andi      $v0, $v0, 0x1000
/* 7E098 800E4BE8 10400005 */  beqz      $v0, .L800E4C00
/* 7E09C 800E4BEC 0060982D */   daddu    $s3, $v1, $zero
/* 7E0A0 800E4BF0 0C0393C4 */  jal       func_800E4F10
/* 7E0A4 800E4BF4 00000000 */   nop
/* 7E0A8 800E4BF8 080393BB */  j         .L800E4EEC
/* 7E0AC 800E4BFC 00000000 */   nop
.L800E4C00:
/* 7E0B0 800E4C00 C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E0B4 800E4C04 3C01403E */  lui       $at, (0x403E0000 >> 16)
/* 7E0B8 800E4C08 4481A800 */  mtc1      $at, $f21
/* 7E0BC 800E4C0C 4480A000 */  mtc1      $zero, $f20
/* 7E0C0 800E4C10 46006321 */  cvt.d.s   $f12, $f12
/* 7E0C4 800E4C14 46346301 */  sub.d     $f12, $f12, $f20
/* 7E0C8 800E4C18 0C00A6C9 */  jal       clamp_angle
/* 7E0CC 800E4C1C 46206320 */   cvt.s.d  $f12, $f12
/* 7E0D0 800E4C20 0000202D */  daddu     $a0, $zero, $zero
/* 7E0D4 800E4C24 0260282D */  daddu     $a1, $s3, $zero
/* 7E0D8 800E4C28 27B20020 */  addiu     $s2, $sp, 0x20
/* 7E0DC 800E4C2C 0240302D */  daddu     $a2, $s2, $zero
/* 7E0E0 800E4C30 27B10024 */  addiu     $s1, $sp, 0x24
/* 7E0E4 800E4C34 0220382D */  daddu     $a3, $s1, $zero
/* 7E0E8 800E4C38 866200B0 */  lh        $v0, 0xB0($s3)
/* 7E0EC 800E4C3C 3C013F40 */  lui       $at, (0x3F400000 >> 16)
/* 7E0F0 800E4C40 4481B000 */  mtc1      $at, $f22
/* 7E0F4 800E4C44 44822000 */  mtc1      $v0, $f4
/* 7E0F8 800E4C48 00000000 */  nop
/* 7E0FC 800E4C4C 46802120 */  cvt.s.w   $f4, $f4
/* 7E100 800E4C50 46162102 */  mul.s     $f4, $f4, $f22
/* 7E104 800E4C54 00000000 */  nop
/* 7E108 800E4C58 27B00028 */  addiu     $s0, $sp, 0x28
/* 7E10C 800E4C5C C662002C */  lwc1      $f2, 0x2C($s3)
/* 7E110 800E4C60 C6660028 */  lwc1      $f6, 0x28($s3)
/* 7E114 800E4C64 C6680030 */  lwc1      $f8, 0x30($s3)
/* 7E118 800E4C68 46041080 */  add.s     $f2, $f2, $f4
/* 7E11C 800E4C6C E7A60020 */  swc1      $f6, 0x20($sp)
/* 7E120 800E4C70 E7A80028 */  swc1      $f8, 0x28($sp)
/* 7E124 800E4C74 E7A20024 */  swc1      $f2, 0x24($sp)
/* 7E128 800E4C78 AFB00010 */  sw        $s0, 0x10($sp)
/* 7E12C 800E4C7C AFA00014 */  sw        $zero, 0x14($sp)
/* 7E130 800E4C80 0C037B01 */  jal       player_test_lateral_overlap
/* 7E134 800E4C84 E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E138 800E4C88 C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E13C 800E4C8C C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E140 800E4C90 C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E144 800E4C94 46006321 */  cvt.d.s   $f12, $f12
/* 7E148 800E4C98 46346300 */  add.d     $f12, $f12, $f20
/* 7E14C 800E4C9C E6600028 */  swc1      $f0, 0x28($s3)
/* 7E150 800E4CA0 E6620030 */  swc1      $f2, 0x30($s3)
/* 7E154 800E4CA4 0C00A6C9 */  jal       clamp_angle
/* 7E158 800E4CA8 46206320 */   cvt.s.d  $f12, $f12
/* 7E15C 800E4CAC 0000202D */  daddu     $a0, $zero, $zero
/* 7E160 800E4CB0 0260282D */  daddu     $a1, $s3, $zero
/* 7E164 800E4CB4 866200B0 */  lh        $v0, 0xB0($s3)
/* 7E168 800E4CB8 0240302D */  daddu     $a2, $s2, $zero
/* 7E16C 800E4CBC 44821000 */  mtc1      $v0, $f2
/* 7E170 800E4CC0 00000000 */  nop
/* 7E174 800E4CC4 468010A0 */  cvt.s.w   $f2, $f2
/* 7E178 800E4CC8 46161082 */  mul.s     $f2, $f2, $f22
/* 7E17C 800E4CCC 00000000 */  nop
/* 7E180 800E4CD0 0220382D */  daddu     $a3, $s1, $zero
/* 7E184 800E4CD4 C664002C */  lwc1      $f4, 0x2C($s3)
/* 7E188 800E4CD8 C6660028 */  lwc1      $f6, 0x28($s3)
/* 7E18C 800E4CDC C6680030 */  lwc1      $f8, 0x30($s3)
/* 7E190 800E4CE0 46022100 */  add.s     $f4, $f4, $f2
/* 7E194 800E4CE4 E7A60020 */  swc1      $f6, 0x20($sp)
/* 7E198 800E4CE8 E7A80028 */  swc1      $f8, 0x28($sp)
/* 7E19C 800E4CEC E7A40024 */  swc1      $f4, 0x24($sp)
/* 7E1A0 800E4CF0 AFB00010 */  sw        $s0, 0x10($sp)
/* 7E1A4 800E4CF4 AFA00014 */  sw        $zero, 0x14($sp)
/* 7E1A8 800E4CF8 0C037B01 */  jal       player_test_lateral_overlap
/* 7E1AC 800E4CFC E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E1B0 800E4D00 C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E1B4 800E4D04 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E1B8 800E4D08 C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E1BC 800E4D0C 46006321 */  cvt.d.s   $f12, $f12
/* 7E1C0 800E4D10 46346301 */  sub.d     $f12, $f12, $f20
/* 7E1C4 800E4D14 E6600028 */  swc1      $f0, 0x28($s3)
/* 7E1C8 800E4D18 E6620030 */  swc1      $f2, 0x30($s3)
/* 7E1CC 800E4D1C 0C00A6C9 */  jal       clamp_angle
/* 7E1D0 800E4D20 46206320 */   cvt.s.d  $f12, $f12
/* 7E1D4 800E4D24 0000202D */  daddu     $a0, $zero, $zero
/* 7E1D8 800E4D28 0260282D */  daddu     $a1, $s3, $zero
/* 7E1DC 800E4D2C 0240302D */  daddu     $a2, $s2, $zero
/* 7E1E0 800E4D30 C6620028 */  lwc1      $f2, 0x28($s3)
/* 7E1E4 800E4D34 C664002C */  lwc1      $f4, 0x2C($s3)
/* 7E1E8 800E4D38 C6660030 */  lwc1      $f6, 0x30($s3)
/* 7E1EC 800E4D3C 0220382D */  daddu     $a3, $s1, $zero
/* 7E1F0 800E4D40 E7A20020 */  swc1      $f2, 0x20($sp)
/* 7E1F4 800E4D44 E7A40024 */  swc1      $f4, 0x24($sp)
/* 7E1F8 800E4D48 E7A60028 */  swc1      $f6, 0x28($sp)
/* 7E1FC 800E4D4C AFB00010 */  sw        $s0, 0x10($sp)
/* 7E200 800E4D50 AFA00014 */  sw        $zero, 0x14($sp)
/* 7E204 800E4D54 0C037B01 */  jal       player_test_lateral_overlap
/* 7E208 800E4D58 E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E20C 800E4D5C C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E210 800E4D60 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E214 800E4D64 C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E218 800E4D68 46006321 */  cvt.d.s   $f12, $f12
/* 7E21C 800E4D6C 46346300 */  add.d     $f12, $f12, $f20
/* 7E220 800E4D70 E6600028 */  swc1      $f0, 0x28($s3)
/* 7E224 800E4D74 E6620030 */  swc1      $f2, 0x30($s3)
/* 7E228 800E4D78 0C00A6C9 */  jal       clamp_angle
/* 7E22C 800E4D7C 46206320 */   cvt.s.d  $f12, $f12
/* 7E230 800E4D80 0000202D */  daddu     $a0, $zero, $zero
/* 7E234 800E4D84 0260282D */  daddu     $a1, $s3, $zero
/* 7E238 800E4D88 0240302D */  daddu     $a2, $s2, $zero
/* 7E23C 800E4D8C C6620028 */  lwc1      $f2, 0x28($s3)
/* 7E240 800E4D90 C664002C */  lwc1      $f4, 0x2C($s3)
/* 7E244 800E4D94 C6660030 */  lwc1      $f6, 0x30($s3)
/* 7E248 800E4D98 0220382D */  daddu     $a3, $s1, $zero
/* 7E24C 800E4D9C E7A20020 */  swc1      $f2, 0x20($sp)
/* 7E250 800E4DA0 E7A40024 */  swc1      $f4, 0x24($sp)
/* 7E254 800E4DA4 E7A60028 */  swc1      $f6, 0x28($sp)
/* 7E258 800E4DA8 AFB00010 */  sw        $s0, 0x10($sp)
/* 7E25C 800E4DAC AFA00014 */  sw        $zero, 0x14($sp)
/* 7E260 800E4DB0 0C037B01 */  jal       player_test_lateral_overlap
/* 7E264 800E4DB4 E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E268 800E4DB8 C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E26C 800E4DBC C7A20020 */  lwc1      $f2, 0x20($sp)
/* 7E270 800E4DC0 3C018011 */  lui       $at, %hi(D_8010BEF0)
/* 7E274 800E4DC4 D434BEF0 */  ldc1      $f20, %lo(D_8010BEF0)($at)
/* 7E278 800E4DC8 C7A00028 */  lwc1      $f0, 0x28($sp)
/* 7E27C 800E4DCC 46006321 */  cvt.d.s   $f12, $f12
/* 7E280 800E4DD0 46346300 */  add.d     $f12, $f12, $f20
/* 7E284 800E4DD4 E6620028 */  swc1      $f2, 0x28($s3)
/* 7E288 800E4DD8 E6600030 */  swc1      $f0, 0x30($s3)
/* 7E28C 800E4DDC 0C00A6C9 */  jal       clamp_angle
/* 7E290 800E4DE0 46206320 */   cvt.s.d  $f12, $f12
/* 7E294 800E4DE4 0000202D */  daddu     $a0, $zero, $zero
/* 7E298 800E4DE8 0260282D */  daddu     $a1, $s3, $zero
/* 7E29C 800E4DEC 0240302D */  daddu     $a2, $s2, $zero
/* 7E2A0 800E4DF0 C6620028 */  lwc1      $f2, 0x28($s3)
/* 7E2A4 800E4DF4 C664002C */  lwc1      $f4, 0x2C($s3)
/* 7E2A8 800E4DF8 C6660030 */  lwc1      $f6, 0x30($s3)
/* 7E2AC 800E4DFC 0220382D */  daddu     $a3, $s1, $zero
/* 7E2B0 800E4E00 E7A20020 */  swc1      $f2, 0x20($sp)
/* 7E2B4 800E4E04 E7A40024 */  swc1      $f4, 0x24($sp)
/* 7E2B8 800E4E08 E7A60028 */  swc1      $f6, 0x28($sp)
/* 7E2BC 800E4E0C AFB00010 */  sw        $s0, 0x10($sp)
/* 7E2C0 800E4E10 AFA00014 */  sw        $zero, 0x14($sp)
/* 7E2C4 800E4E14 0C037B01 */  jal       player_test_lateral_overlap
/* 7E2C8 800E4E18 E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E2CC 800E4E1C C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E2D0 800E4E20 C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E2D4 800E4E24 C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E2D8 800E4E28 46006321 */  cvt.d.s   $f12, $f12
/* 7E2DC 800E4E2C 46346301 */  sub.d     $f12, $f12, $f20
/* 7E2E0 800E4E30 E6600028 */  swc1      $f0, 0x28($s3)
/* 7E2E4 800E4E34 E6620030 */  swc1      $f2, 0x30($s3)
/* 7E2E8 800E4E38 0C00A6C9 */  jal       clamp_angle
/* 7E2EC 800E4E3C 46206320 */   cvt.s.d  $f12, $f12
/* 7E2F0 800E4E40 0000202D */  daddu     $a0, $zero, $zero
/* 7E2F4 800E4E44 0260282D */  daddu     $a1, $s3, $zero
/* 7E2F8 800E4E48 0240302D */  daddu     $a2, $s2, $zero
/* 7E2FC 800E4E4C C6620028 */  lwc1      $f2, 0x28($s3)
/* 7E300 800E4E50 C664002C */  lwc1      $f4, 0x2C($s3)
/* 7E304 800E4E54 C6660030 */  lwc1      $f6, 0x30($s3)
/* 7E308 800E4E58 0220382D */  daddu     $a3, $s1, $zero
/* 7E30C 800E4E5C E7A20020 */  swc1      $f2, 0x20($sp)
/* 7E310 800E4E60 E7A40024 */  swc1      $f4, 0x24($sp)
/* 7E314 800E4E64 E7A60028 */  swc1      $f6, 0x28($sp)
/* 7E318 800E4E68 AFB00010 */  sw        $s0, 0x10($sp)
/* 7E31C 800E4E6C AFA00014 */  sw        $zero, 0x14($sp)
/* 7E320 800E4E70 0C037B01 */  jal       player_test_lateral_overlap
/* 7E324 800E4E74 E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E328 800E4E78 C66C0080 */  lwc1      $f12, 0x80($s3)
/* 7E32C 800E4E7C C7A40020 */  lwc1      $f4, 0x20($sp)
/* 7E330 800E4E80 3C018011 */  lui       $at, %hi(D_8010BEF8)
/* 7E334 800E4E84 D420BEF8 */  ldc1      $f0, %lo(D_8010BEF8)($at)
/* 7E338 800E4E88 C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E33C 800E4E8C 46006321 */  cvt.d.s   $f12, $f12
/* 7E340 800E4E90 46206300 */  add.d     $f12, $f12, $f0
/* 7E344 800E4E94 E6640028 */  swc1      $f4, 0x28($s3)
/* 7E348 800E4E98 E6620030 */  swc1      $f2, 0x30($s3)
/* 7E34C 800E4E9C 0C00A6C9 */  jal       clamp_angle
/* 7E350 800E4EA0 46206320 */   cvt.s.d  $f12, $f12
/* 7E354 800E4EA4 0000202D */  daddu     $a0, $zero, $zero
/* 7E358 800E4EA8 0260282D */  daddu     $a1, $s3, $zero
/* 7E35C 800E4EAC 0240302D */  daddu     $a2, $s2, $zero
/* 7E360 800E4EB0 C6620028 */  lwc1      $f2, 0x28($s3)
/* 7E364 800E4EB4 C664002C */  lwc1      $f4, 0x2C($s3)
/* 7E368 800E4EB8 C6660030 */  lwc1      $f6, 0x30($s3)
/* 7E36C 800E4EBC 0220382D */  daddu     $a3, $s1, $zero
/* 7E370 800E4EC0 E7A20020 */  swc1      $f2, 0x20($sp)
/* 7E374 800E4EC4 E7A40024 */  swc1      $f4, 0x24($sp)
/* 7E378 800E4EC8 E7A60028 */  swc1      $f6, 0x28($sp)
/* 7E37C 800E4ECC AFB00010 */  sw        $s0, 0x10($sp)
/* 7E380 800E4ED0 AFA00014 */  sw        $zero, 0x14($sp)
/* 7E384 800E4ED4 0C037B01 */  jal       player_test_lateral_overlap
/* 7E388 800E4ED8 E7A00018 */   swc1     $f0, 0x18($sp)
/* 7E38C 800E4EDC C7A00020 */  lwc1      $f0, 0x20($sp)
/* 7E390 800E4EE0 C7A20028 */  lwc1      $f2, 0x28($sp)
/* 7E394 800E4EE4 E6600028 */  swc1      $f0, 0x28($s3)
/* 7E398 800E4EE8 E6620030 */  swc1      $f2, 0x30($s3)
.L800E4EEC:
/* 7E39C 800E4EEC 8FBF0040 */  lw        $ra, 0x40($sp)
/* 7E3A0 800E4EF0 8FB3003C */  lw        $s3, 0x3C($sp)
/* 7E3A4 800E4EF4 8FB20038 */  lw        $s2, 0x38($sp)
/* 7E3A8 800E4EF8 8FB10034 */  lw        $s1, 0x34($sp)
/* 7E3AC 800E4EFC 8FB00030 */  lw        $s0, 0x30($sp)
/* 7E3B0 800E4F00 D7B60050 */  ldc1      $f22, 0x50($sp)
/* 7E3B4 800E4F04 D7B40048 */  ldc1      $f20, 0x48($sp)
/* 7E3B8 800E4F08 03E00008 */  jr        $ra
/* 7E3BC 800E4F0C 27BD0058 */   addiu    $sp, $sp, 0x58

### DECOMPILED C INSTRUCTIONS:

void collision_lava_reset_check_additional_overlaps(void) {
    PlayerStatus* playerStatus = &gPlayerStatus;
    f32 x, y, z;
    f32 temp_f0;

    if (playerStatus->animFlags & PA_FLAG_USING_PEACH_PHYSICS) {
        collision_lateral_peach();
        return;
    }

    temp_f0 = clamp_angle(playerStatus->targetYaw - 30.0);
    y = playerStatus->position.y + (playerStatus->colliderHeight * 0.75f);
    x = playerStatus->position.x;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;

    temp_f0 = clamp_angle(playerStatus->targetYaw + 30.0);
    y = playerStatus->position.y + (playerStatus->colliderHeight * 0.75f);
    x = playerStatus->position.x;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;

    temp_f0 = clamp_angle(playerStatus->targetYaw - 30.0);
    x = playerStatus->position.x;
    y = playerStatus->position.y;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;

    temp_f0 = clamp_angle(playerStatus->targetYaw + 30.0);
    x = playerStatus->position.x;
    y = playerStatus->position.y;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;

    temp_f0 = clamp_angle(playerStatus->targetYaw + 90.0);
    x = playerStatus->position.x;
    y = playerStatus->position.y;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;
    temp_f0 = clamp_angle(playerStatus->targetYaw - 90.0);

    x = playerStatus->position.x;
    y = playerStatus->position.y;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;

    temp_f0 = clamp_angle(playerStatus->targetYaw + 180.0);
    x = playerStatus->position.x;
    y = playerStatus->position.y;
    z = playerStatus->position.z;
    player_test_lateral_overlap(0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0);
    playerStatus->position.x = x;
    playerStatus->position.z = z;
}


### RAW ASSEMBLY INSTRUCTIONS:

dlabel func_8024C338
/* 13F678 8024C338 27BDFFE0 */  addiu     $sp, $sp, -0x20
/* 13F67C 8024C33C AFB10014 */  sw        $s1, 0x14($sp)
/* 13F680 8024C340 3C118027 */  lui       $s1, %hi(gPausePartnersNumPartners)
/* 13F684 8024C344 263106B0 */  addiu     $s1, $s1, %lo(gPausePartnersNumPartners)
/* 13F688 8024C348 AFBF0018 */  sw        $ra, 0x18($sp)
/* 13F68C 8024C34C AFB00010 */  sw        $s0, 0x10($sp)
/* 13F690 8024C350 8E220000 */  lw        $v0, 0x0($s1)
/* 13F694 8024C354 28420002 */  slti      $v0, $v0, 0x2
/* 13F698 8024C358 14400047 */  bnez      $v0, .L8024C478
/* 13F69C 8024C35C 00000000 */   nop
.L8024C360:
/* 13F6A0 8024C360 3C028027 */  lui       $v0, %hi(gPausePartnersLevel)
/* 13F6A4 8024C364 8C4206AC */  lw        $v0, %lo(gPausePartnersLevel)($v0)
/* 13F6A8 8024C368 10400006 */  beqz      $v0, .L8024C384
/* 13F6AC 8024C36C 00000000 */   nop
/* 13F6B0 8024C370 3C028027 */  lui       $v0, %hi(gPauseHeldButtons)
/* 13F6B4 8024C374 8C4200C0 */  lw        $v0, %lo(gPauseHeldButtons)($v0)
/* 13F6B8 8024C378 30422010 */  andi      $v0, $v0, 0x2010
/* 13F6BC 8024C37C 1040003E */  beqz      $v0, .L8024C478
/* 13F6C0 8024C380 00000000 */   nop
.L8024C384:
/* 13F6C4 8024C384 3C038027 */  lui       $v1, %hi(gPauseHeldButtons)
/* 13F6C8 8024C388 8C6300C0 */  lw        $v1, %lo(gPauseHeldButtons)($v1)
.L8024C38C:
/* 13F6CC 8024C38C 3C020004 */  lui       $v0, (0x40000 >> 16)
/* 13F6D0 8024C390 00621024 */  and       $v0, $v1, $v0
/* 13F6D4 8024C394 10400002 */  beqz      $v0, .L8024C3A0
/* 13F6D8 8024C398 0000802D */   daddu    $s0, $zero, $zero
/* 13F6DC 8024C39C 2410FFFF */  addiu     $s0, $zero, -0x1
.L8024C3A0:
/* 13F6E0 8024C3A0 3C020008 */  lui       $v0, (0x80000 >> 16)
/* 13F6E4 8024C3A4 00621024 */  and       $v0, $v1, $v0
/* 13F6E8 8024C3A8 54400001 */  bnel      $v0, $zero, .L8024C3B0
/* 13F6EC 8024C3AC 26100001 */   addiu    $s0, $s0, 0x1
.L8024C3B0:
/* 13F6F0 8024C3B0 30622000 */  andi      $v0, $v1, 0x2000
/* 13F6F4 8024C3B4 54400001 */  bnel      $v0, $zero, .L8024C3BC
/* 13F6F8 8024C3B8 2610FFFF */   addiu    $s0, $s0, -0x1
.L8024C3BC:
/* 13F6FC 8024C3BC 30620010 */  andi      $v0, $v1, 0x10
/* 13F700 8024C3C0 54400001 */  bnel      $v0, $zero, .L8024C3C8
/* 13F704 8024C3C4 26100001 */   addiu    $s0, $s0, 0x1
.L8024C3C8:
/* 13F708 8024C3C8 1200002B */  beqz      $s0, .L8024C478
/* 13F70C 8024C3CC 00000000 */   nop
D_8024C3D0_C09C50:
/* 13F710 8024C3D0 0C05272D */  jal       sfx_play_sound
/* 13F714 8024C3D4 240400C7 */   addiu    $a0, $zero, 0xC7
/* 13F718 8024C3D8 3C048027 */  lui       $a0, %hi(gPausePartnersCurrentPartnerIdx)
/* 13F71C 8024C3DC 248406A0 */  addiu     $a0, $a0, %lo(gPausePartnersCurrentPartnerIdx)
/* 13F720 8024C3E0 8C820000 */  lw        $v0, 0x0($a0)
/* 13F724 8024C3E4 00501821 */  addu      $v1, $v0, $s0
/* 13F728 8024C3E8 0461000F */  bgez      $v1, .L8024C428
/* 13F72C 8024C3EC AC830000 */   sw       $v1, 0x0($a0)
/* 13F730 8024C3F0 3C038027 */  lui       $v1, %hi(gPausePartnersRotAngle)
/* 13F734 8024C3F4 246306A8 */  addiu     $v1, $v1, %lo(gPausePartnersRotAngle)
/* 13F738 8024C3F8 C4600000 */  lwc1      $f0, 0x0($v1)
/* 13F73C 8024C3FC 8E220000 */  lw        $v0, 0x0($s1)
/* 13F740 8024C400 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* 13F744 8024C404 44811000 */  mtc1      $at, $f2
/* 13F748 8024C408 2442FFFF */  addiu     $v0, $v0, -0x1
/* 13F74C 8024C40C 4602003C */  c.lt.s    $f0, $f2
/* 13F750 8024C410 00000000 */  nop
/* 13F754 8024C414 45000016 */  bc1f      .L8024C470
/* 13F758 8024C418 AC820000 */   sw       $v0, 0x0($a0)
D_8024C41C:
/* 13F75C 8024C41C 46020000 */  add.s     $f0, $f0, $f2
D_8024C420_C09CA0:
/* 13F760 8024C420 0809311C */  j         .L8024C470
/* 13F764 8024C424 E4600000 */   swc1     $f0, 0x0($v1)
.L8024C428:
/* 13F768 8024C428 8E220000 */  lw        $v0, 0x0($s1)
/* 13F76C 8024C42C 0062102A */  slt       $v0, $v1, $v0
/* 13F770 8024C430 1440000F */  bnez      $v0, .L8024C470
/* 13F774 8024C434 00000000 */   nop
/* 13F778 8024C438 3C028027 */  lui       $v0, %hi(gPausePartnersRotAngle)
/* 13F77C 8024C43C 244206A8 */  addiu     $v0, $v0, %lo(gPausePartnersRotAngle)
/* 13F780 8024C440 C4420000 */  lwc1      $f2, 0x0($v0)
/* 13F784 8024C444 44800000 */  mtc1      $zero, $f0
/* 13F788 8024C448 00000000 */  nop
/* 13F78C 8024C44C 4602003C */  c.lt.s    $f0, $f2
D_8024C450:
/* 13F790 8024C450 00000000 */  nop
/* 13F794 8024C454 45000006 */  bc1f      .L8024C470
/* 13F798 8024C458 AC800000 */   sw       $zero, 0x0($a0)
/* 13F79C 8024C45C 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* 13F7A0 8024C460 44810000 */  mtc1      $at, $f0
/* 13F7A4 8024C464 00000000 */  nop
/* 13F7A8 8024C468 46001001 */  sub.s     $f0, $f2, $f0
/* 13F7AC 8024C46C E4400000 */  swc1      $f0, 0x0($v0)
.L8024C470:
/* 13F7B0 8024C470 3C018027 */  lui       $at, %hi(gPausePartnersSelectedMove)
/* 13F7B4 8024C474 AC2006A4 */  sw        $zero, %lo(gPausePartnersSelectedMove)($at)
.L8024C478:
/* 13F7B8 8024C478 0C039D59 */  jal       get_player_data
/* 13F7BC 8024C47C 00000000 */   nop
/* 13F7C0 8024C480 3C038027 */  lui       $v1, %hi(gPausePartnersCurrentPartnerIdx)
/* 13F7C4 8024C484 8C6306A0 */  lw        $v1, %lo(gPausePartnersCurrentPartnerIdx)($v1)
/* 13F7C8 8024C488 00031880 */  sll       $v1, $v1, 2
/* 13F7CC 8024C48C 3C018027 */  lui       $at, %hi(gPausePartnersPartnerIdx)
/* 13F7D0 8024C490 00230821 */  addu      $at, $at, $v1
/* 13F7D4 8024C494 8C230680 */  lw        $v1, %lo(gPausePartnersPartnerIdx)($at)
/* 13F7D8 8024C498 00031880 */  sll       $v1, $v1, 2
/* 13F7DC 8024C49C 3C018025 */  lui       $at, %hi(D_8024F6B0)
/* 13F7E0 8024C4A0 00230821 */  addu      $at, $at, $v1
/* 13F7E4 8024C4A4 8C23F6B0 */  lw        $v1, %lo(D_8024F6B0)($at)
/* 13F7E8 8024C4A8 000318C0 */  sll       $v1, $v1, 3
/* 13F7EC 8024C4AC 00431021 */  addu      $v0, $v0, $v1
/* 13F7F0 8024C4B0 80430015 */  lb        $v1, 0x15($v0)
/* 13F7F4 8024C4B4 24020002 */  addiu     $v0, $zero, 0x2
/* 13F7F8 8024C4B8 14620003 */  bne       $v1, $v0, D_8024C4C8
/* 13F7FC 8024C4BC 24020001 */   addiu    $v0, $zero, 0x1
D_8024C4C0_C09D40:
/* 13F800 8024C4C0 08093138 */  j         .L8024C4E0
/* 13F804 8024C4C4 24030004 */   addiu    $v1, $zero, 0x4
D_8024C4C8:
/* 13F808 8024C4C8 14620003 */  bne       $v1, $v0, .L8024C4D8
/* 13F80C 8024C4CC 00000000 */   nop
/* 13F810 8024C4D0 08093138 */  j         .L8024C4E0
/* 13F814 8024C4D4 24030003 */   addiu    $v1, $zero, 0x3
.L8024C4D8:
/* 13F818 8024C4D8 50600001 */  beql      $v1, $zero, .L8024C4E0
/* 13F81C 8024C4DC 24030002 */   addiu    $v1, $zero, 0x2
.L8024C4E0:
/* 13F820 8024C4E0 00031040 */  sll       $v0, $v1, 1
/* 13F824 8024C4E4 00431021 */  addu      $v0, $v0, $v1
/* 13F828 8024C4E8 00021080 */  sll       $v0, $v0, 2
D_8024C4EC:
/* 13F82C 8024C4EC 00431021 */  addu      $v0, $v0, $v1
/* 13F830 8024C4F0 3C108027 */  lui       $s0, %hi(gPausePartnersLevel)
/* 13F834 8024C4F4 8E1006AC */  lw        $s0, %lo(gPausePartnersLevel)($s0)
/* 13F838 8024C4F8 2442001E */  addiu     $v0, $v0, 0x1E
/* 13F83C 8024C4FC 3C018016 */  lui       $at, %hi(D_8015A1E2)
/* 13F840 8024C500 A422A1E2 */  sh        $v0, %lo(D_8015A1E2)($at)
/* 13F844 8024C504 24020001 */  addiu     $v0, $zero, 0x1
/* 13F848 8024C508 16020043 */  bne       $s0, $v0, .L8024C618
/* 13F84C 8024C50C 00000000 */   nop
/* 13F850 8024C510 3C118027 */  lui       $s1, %hi(gPausePartnersSelectedMove)
/* 13F854 8024C514 8E3106A4 */  lw        $s1, %lo(gPausePartnersSelectedMove)($s1)
/* 13F858 8024C518 0C039D59 */  jal       get_player_data
/* 13F85C 8024C51C 00000000 */   nop
/* 13F860 8024C520 3C038027 */  lui       $v1, %hi(gPausePartnersCurrentPartnerIdx)
/* 13F864 8024C524 8C6306A0 */  lw        $v1, %lo(gPausePartnersCurrentPartnerIdx)($v1)
/* 13F868 8024C528 00031880 */  sll       $v1, $v1, 2
/* 13F86C 8024C52C 3C018027 */  lui       $at, %hi(gPausePartnersPartnerIdx)
/* 13F870 8024C530 00230821 */  addu      $at, $at, $v1
/* 13F874 8024C534 8C230680 */  lw        $v1, %lo(gPausePartnersPartnerIdx)($at)
/* 13F878 8024C538 00031880 */  sll       $v1, $v1, 2
/* 13F87C 8024C53C 3C018025 */  lui       $at, %hi(D_8024F6B0)
.L8024C540:
/* 13F880 8024C540 00230821 */  addu      $at, $at, $v1
.L8024C544:
/* 13F884 8024C544 8C23F6B0 */  lw        $v1, %lo(D_8024F6B0)($at)
/* 13F888 8024C548 000318C0 */  sll       $v1, $v1, 3
/* 13F88C 8024C54C 00431021 */  addu      $v0, $v0, $v1
/* 13F890 8024C550 80440015 */  lb        $a0, 0x15($v0)
D_8024C554:
/* 13F894 8024C554 24020002 */  addiu     $v0, $zero, 0x2
/* 13F898 8024C558 14820003 */  bne       $a0, $v0, .L8024C568
/* 13F89C 8024C55C 00000000 */   nop
D_8024C560_C09DE0:
/* 13F8A0 8024C560 08093160 */  j         D_8024C580
/* 13F8A4 8024C564 24040004 */   addiu    $a0, $zero, 0x4
.L8024C568:
/* 13F8A8 8024C568 14900003 */  bne       $a0, $s0, .L8024C578
/* 13F8AC 8024C56C 00000000 */   nop
glabel func_8024C570
/* 13F8B0 8024C570 08093160 */  j         D_8024C580
D_8024C574:
/* 13F8B4 8024C574 24040003 */   addiu    $a0, $zero, 0x3
.L8024C578:
/* 13F8B8 8024C578 50800001 */  beql      $a0, $zero, D_8024C580
/* 13F8BC 8024C57C 24040002 */   addiu    $a0, $zero, 0x2
D_8024C580:
/* 13F8C0 8024C580 3C058027 */  lui       $a1, %hi(gPauseHeldButtons)
/* 13F8C4 8024C584 24A500C0 */  addiu     $a1, $a1, %lo(gPauseHeldButtons)
/* 13F8C8 8024C588 8CA20000 */  lw        $v0, 0x0($a1)
/* 13F8CC 8024C58C 3C030001 */  lui       $v1, (0x10000 >> 16)
/* 13F8D0 8024C590 00431024 */  and       $v0, $v0, $v1
/* 13F8D4 8024C594 10400006 */  beqz      $v0, .L8024C5B0
/* 13F8D8 8024C598 00000000 */   nop
/* 13F8DC 8024C59C 3C038027 */  lui       $v1, %hi(gPausePartnersSelectedMove)
/* 13F8E0 8024C5A0 246306A4 */  addiu     $v1, $v1, %lo(gPausePartnersSelectedMove)
/* 13F8E4 8024C5A4 8C620000 */  lw        $v0, 0x0($v1)
/* 13F8E8 8024C5A8 2442FFFF */  addiu     $v0, $v0, -0x1
/* 13F8EC 8024C5AC AC620000 */  sw        $v0, 0x0($v1)
.L8024C5B0:
/* 13F8F0 8024C5B0 8CA20000 */  lw        $v0, 0x0($a1)
/* 13F8F4 8024C5B4 3C030002 */  lui       $v1, (0x20000 >> 16)
/* 13F8F8 8024C5B8 00431024 */  and       $v0, $v0, $v1
/* 13F8FC 8024C5BC 10400006 */  beqz      $v0, .L8024C5D8
/* 13F900 8024C5C0 00000000 */   nop
/* 13F904 8024C5C4 3C038027 */  lui       $v1, %hi(gPausePartnersSelectedMove)
/* 13F908 8024C5C8 246306A4 */  addiu     $v1, $v1, %lo(gPausePartnersSelectedMove)
/* 13F90C 8024C5CC 8C620000 */  lw        $v0, 0x0($v1)
/* 13F910 8024C5D0 24420001 */  addiu     $v0, $v0, 0x1
.L8024C5D4:
/* 13F914 8024C5D4 AC620000 */  sw        $v0, 0x0($v1)
.L8024C5D8:
/* 13F918 8024C5D8 3C038027 */  lui       $v1, %hi(gPausePartnersSelectedMove)
/* 13F91C 8024C5DC 246306A4 */  addiu     $v1, $v1, %lo(gPausePartnersSelectedMove)

### DECOMPILED C INSTRUCTIONS:

void pause_partners_handle_input(MenuPanel* panel) {
    s32 delta;
    s32 level, level2;
    s32 partnerID;
    s32 oldPos;

    if (gPausePartnersNumPartners >= 2 && (gPausePartnersLevel == 0 || (gPauseHeldButtons & (BUTTON_Z | BUTTON_R)))) {
        delta = 0;

        if (gPauseHeldButtons & BUTTON_STICK_LEFT) {
            delta = -1;
        }

        if (gPauseHeldButtons & BUTTON_STICK_RIGHT) {
            delta++;
        }

        if (gPauseHeldButtons & BUTTON_Z) {
            delta--;
        }

        if (gPauseHeldButtons & BUTTON_R) {
            delta++;
        }

        if (delta) {
            sfx_play_sound(SOUND_MENU_CHANGE_SELECTION);
            gPausePartnersCurrentPartnerIdx += delta;

            if (gPausePartnersCurrentPartnerIdx < 0) {
                gPausePartnersCurrentPartnerIdx = gPausePartnersNumPartners - 1;
                if (gPausePartnersRotAngle < 360.0f) {
                    gPausePartnersRotAngle += 360.0f;
                }
            } else if (gPausePartnersCurrentPartnerIdx >= gPausePartnersNumPartners) {
                gPausePartnersCurrentPartnerIdx = 0;
                if (gPausePartnersRotAngle > 0.0f) {
                    gPausePartnersRotAngle -= 360.0f;
                }
            }

            gPausePartnersSelectedMove = 0;
        }
    }

    level = get_player_data()->partners[gPausePartnersPartnerIDs[gPausePartnersPartnerIdx[gPausePartnersCurrentPartnerIdx]]].level;
    if (level == 2) {
        level = 4;
    } else if (level == 1) {
        level = 3;
    } else if (level == 0) {
        level = 2;
    }

    gWindows[WINDOW_ID_PAUSE_PARTNERS_MOVELIST].height = level * 13 + 30;

    if (gPausePartnersLevel == 1) {
        oldPos = gPausePartnersSelectedMove;

        level2 = get_player_data()->partners[gPausePartnersPartnerIDs[gPausePartnersPartnerIdx[gPausePartnersCurrentPartnerIdx]]].level;
        if (level2 == 2) {
            level2 = 4;
        } else if (level2 == 1) {
            level2 = 3;
        } else if (level2 == 0) {
            level2 = 2;
        }

        if (gPauseHeldButtons & BUTTON_STICK_UP) {
            gPausePartnersSelectedMove--;
        }
        if (gPauseHeldButtons & BUTTON_STICK_DOWN) {
            gPausePartnersSelectedMove++;
        }

        if (gPausePartnersSelectedMove < 0) {
            gPausePartnersSelectedMove = level2 - 1;
        } else if (gPausePartnersSelectedMove >= level2) {
            gPausePartnersSelectedMove = 0;
        }

        if (gPausePartnersSelectedMove != oldPos) {
            sfx_play_sound(SOUND_MENU_CHANGE_SELECTION);
        }
    }

    if ((gPausePressedButtons & BUTTON_A) && gPausePartnersLevel == 0) {
        gPausePartnersLevel = 1;
        sfx_play_sound(SOUND_MENU_NEXT);
        set_window_update(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, WINDOW_UPDATE_SHOW);
        return;
    }

    if (gPausePressedButtons & BUTTON_B) {
        if (gPausePartnersLevel == 0) {
            gPauseMenuCurrentTab = 0;
            sfx_play_sound(SOUND_MENU_BACK);
            return;
        } else {
            gPausePartnersLevel = 0;
            sfx_play_sound(SOUND_MENU_BACK);
            set_window_update(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, WINDOW_UPDATE_HIDE);
            return;
        }
    }

    gPauseCurrentDescIconScript = 0;

    if (gPausePartnersLevel == 0) {
        gPauseCurrentDescMsg = gPausePartnersMessages[gPausePartnersPartnerIdx[gPausePartnersCurrentPartnerIdx]];
    } else if (gPausePartnersSelectedMove == 0) {
        gPauseCurrentDescMsg = gMoveTable[gPausePartnersMoveBase[gPausePartnersPartnerIdx[gPausePartnersCurrentPartnerIdx]]].fullDescMsg;
    } else {
        gPauseCurrentDescMsg = gMoveTable[gPausePartnersMoveBase[gPausePartnersPartnerIdx[gPausePartnersCurrentPartnerIdx]] + 2 + gPausePartnersSelectedMove].fullDescMsg;
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel star_outline_update
/* 413494 E0126134 27BDFFC8 */  addiu     $sp, $sp, -0x38
/* 413498 E0126138 AFBF001C */  sw        $ra, 0x1C($sp)
/* 41349C E012613C AFB20018 */  sw        $s2, 0x18($sp)
/* 4134A0 E0126140 AFB10014 */  sw        $s1, 0x14($sp)
/* 4134A4 E0126144 AFB00010 */  sw        $s0, 0x10($sp)
/* 4134A8 E0126148 F7B80030 */  sdc1      $f24, 0x30($sp)
/* 4134AC E012614C F7B60028 */  sdc1      $f22, 0x28($sp)
/* 4134B0 E0126150 F7B40020 */  sdc1      $f20, 0x20($sp)
/* 4134B4 E0126154 8C830000 */  lw        $v1, 0x0($a0)
/* 4134B8 E0126158 8C90000C */  lw        $s0, 0xC($a0)
/* 4134BC E012615C 30620010 */  andi      $v0, $v1, 0x10
/* 4134C0 E0126160 86060002 */  lh        $a2, 0x2($s0)
/* 4134C4 E0126164 10400005 */  beqz      $v0, .LE012617C
/* 4134C8 E0126168 2402FFEF */   addiu    $v0, $zero, -0x11
/* 4134CC E012616C 00621024 */  and       $v0, $v1, $v0
/* 4134D0 E0126170 AC820000 */  sw        $v0, 0x0($a0)
/* 4134D4 E0126174 24020010 */  addiu     $v0, $zero, 0x10
/* 4134D8 E0126178 AE020010 */  sw        $v0, 0x10($s0)
.LE012617C:
/* 4134DC E012617C 8E030010 */  lw        $v1, 0x10($s0)
/* 4134E0 E0126180 286203E8 */  slti      $v0, $v1, 0x3E8
/* 4134E4 E0126184 10400002 */  beqz      $v0, .LE0126190
/* 4134E8 E0126188 2462FFFF */   addiu    $v0, $v1, -0x1
/* 4134EC E012618C AE020010 */  sw        $v0, 0x10($s0)
.LE0126190:
/* 4134F0 E0126190 8E020014 */  lw        $v0, 0x14($s0)
/* 4134F4 E0126194 8E050010 */  lw        $a1, 0x10($s0)
/* 4134F8 E0126198 24420001 */  addiu     $v0, $v0, 0x1
/* 4134FC E012619C 04A10005 */  bgez      $a1, .LE01261B4
/* 413500 E01261A0 AE020014 */   sw       $v0, 0x14($s0)
/* 413504 E01261A4 0C080128 */  jal       shim_remove_effect
/* 413508 E01261A8 00000000 */   nop
/* 41350C E01261AC 08049920 */  j         .LE0126480
/* 413510 E01261B0 00000000 */   nop
.LE01261B4:
/* 413514 E01261B4 0040882D */  daddu     $s1, $v0, $zero
/* 413518 E01261B8 28A20010 */  slti      $v0, $a1, 0x10
/* 41351C E01261BC 1040000B */  beqz      $v0, .LE01261EC
/* 413520 E01261C0 2A220010 */   slti     $v0, $s1, 0x10
/* 413524 E01261C4 8E020024 */  lw        $v0, 0x24($s0)
/* 413528 E01261C8 00051900 */  sll       $v1, $a1, 4
/* 41352C E01261CC 0062102A */  slt       $v0, $v1, $v0
/* 413530 E01261D0 54400001 */  bnel      $v0, $zero, .LE01261D8
/* 413534 E01261D4 AE030024 */   sw       $v1, 0x24($s0)
.LE01261D8:
/* 413538 E01261D8 8E020034 */  lw        $v0, 0x34($s0)
/* 41353C E01261DC 0062102A */  slt       $v0, $v1, $v0
/* 413540 E01261E0 54400001 */  bnel      $v0, $zero, .LE01261E8
/* 413544 E01261E4 AE030034 */   sw       $v1, 0x34($s0)
.LE01261E8:
/* 413548 E01261E8 2A220010 */  slti      $v0, $s1, 0x10
.LE01261EC:
/* 41354C E01261EC 1040000B */  beqz      $v0, .LE012621C
/* 413550 E01261F0 00000000 */   nop
/* 413554 E01261F4 00111900 */  sll       $v1, $s1, 4
/* 413558 E01261F8 8E020024 */  lw        $v0, 0x24($s0)
/* 41355C E01261FC 2463000F */  addiu     $v1, $v1, 0xF
/* 413560 E0126200 0043102A */  slt       $v0, $v0, $v1
/* 413564 E0126204 54400001 */  bnel      $v0, $zero, .LE012620C
/* 413568 E0126208 AE030024 */   sw       $v1, 0x24($s0)
.LE012620C:
/* 41356C E012620C 8E020034 */  lw        $v0, 0x34($s0)
/* 413570 E0126210 0043102A */  slt       $v0, $v0, $v1
/* 413574 E0126214 54400001 */  bnel      $v0, $zero, .LE012621C
/* 413578 E0126218 AE030034 */   sw       $v1, 0x34($s0)
.LE012621C:
/* 41357C E012621C C600003C */  lwc1      $f0, 0x3C($s0)
/* 413580 E0126220 C6020040 */  lwc1      $f2, 0x40($s0)
/* 413584 E0126224 C6040044 */  lwc1      $f4, 0x44($s0)
/* 413588 E0126228 C6060038 */  lwc1      $f6, 0x38($s0)
/* 41358C E012622C 24120001 */  addiu     $s2, $zero, 0x1
/* 413590 E0126230 E6000048 */  swc1      $f0, 0x48($s0)
/* 413594 E0126234 E602004C */  swc1      $f2, 0x4C($s0)
/* 413598 E0126238 E6040050 */  swc1      $f4, 0x50($s0)
/* 41359C E012623C 14D20086 */  bne       $a2, $s2, .LE0126458
/* 4135A0 E0126240 E6060054 */   swc1     $f6, 0x54($s0)
/* 4135A4 E0126244 3C014080 */  lui       $at, (0x40800000 >> 16)
/* 4135A8 E0126248 44810000 */  mtc1      $at, $f0
/* 4135AC E012624C 4491A000 */  mtc1      $s1, $f20
/* 4135B0 E0126250 00000000 */  nop
/* 4135B4 E0126254 4680A520 */  cvt.s.w   $f20, $f20
/* 4135B8 E0126258 4600A002 */  mul.s     $f0, $f20, $f0
/* 4135BC E012625C 00000000 */  nop
/* 4135C0 E0126260 3C01E012 */  lui       $at, (0xE0126BD0 >> 16)
/* 4135C4 E0126264 D42C6BD0 */  ldc1      $f12, (0xE0126BD0 & 0xFFFF)($at)
/* 4135C8 E0126268 4600A521 */  cvt.d.s   $f20, $f20
/* 4135CC E012626C 462CA302 */  mul.d     $f12, $f20, $f12
/* 4135D0 E0126270 00000000 */  nop
/* 4135D4 E0126274 3C01E012 */  lui       $at, (0xE0126BD8 >> 16)
/* 4135D8 E0126278 D4246BD8 */  ldc1      $f4, (0xE0126BD8 & 0xFFFF)($at)
/* 4135DC E012627C 46000021 */  cvt.d.s   $f0, $f0
/* 4135E0 E0126280 46240102 */  mul.d     $f4, $f0, $f4
/* 4135E4 E0126284 00000000 */  nop
/* 4135E8 E0126288 3C01E012 */  lui       $at, (0xE0126BE0 >> 16)
/* 4135EC E012628C D4226BE0 */  ldc1      $f2, (0xE0126BE0 & 0xFFFF)($at)
/* 4135F0 E0126290 46220002 */  mul.d     $f0, $f0, $f2
/* 4135F4 E0126294 00000000 */  nop
/* 4135F8 E0126298 00111080 */  sll       $v0, $s1, 2
/* 4135FC E012629C 44821000 */  mtc1      $v0, $f2
/* 413600 E01262A0 00000000 */  nop
/* 413604 E01262A4 468010A0 */  cvt.s.w   $f2, $f2
/* 413608 E01262A8 240200FF */  addiu     $v0, $zero, 0xFF
/* 41360C E01262AC E602003C */  swc1      $f2, 0x3C($s0)
/* 413610 E01262B0 AE020024 */  sw        $v0, 0x24($s0)
/* 413614 E01262B4 46206320 */  cvt.s.d   $f12, $f12
/* 413618 E01262B8 46202120 */  cvt.s.d   $f4, $f4
/* 41361C E01262BC 46200020 */  cvt.s.d   $f0, $f0
/* 413620 E01262C0 E6040040 */  swc1      $f4, 0x40($s0)
/* 413624 E01262C4 0C080140 */  jal       shim_sin_deg
/* 413628 E01262C8 E6000044 */   swc1     $f0, 0x44($s0)
/* 41362C E01262CC 3C01E012 */  lui       $at, (0xE0126BE8 >> 16)
/* 413630 E01262D0 D42C6BE8 */  ldc1      $f12, (0xE0126BE8 & 0xFFFF)($at)
/* 413634 E01262D4 462CA302 */  mul.d     $f12, $f20, $f12
/* 413638 E01262D8 00000000 */  nop
/* 41363C E01262DC 3C0142FE */  lui       $at, (0x42FE0000 >> 16)
/* 413640 E01262E0 4481C000 */  mtc1      $at, $f24
/* 413644 E01262E4 00000000 */  nop
/* 413648 E01262E8 46180002 */  mul.s     $f0, $f0, $f24
/* 41364C E01262EC 00000000 */  nop
/* 413650 E01262F0 3C014300 */  lui       $at, (0x43000000 >> 16)
/* 413654 E01262F4 44811000 */  mtc1      $at, $f2
/* 413658 E01262F8 00000000 */  nop
/* 41365C E01262FC 46020000 */  add.s     $f0, $f0, $f2
/* 413660 E0126300 4600020D */  trunc.w.s $f8, $f0
/* 413664 E0126304 E6080034 */  swc1      $f8, 0x34($s0)
/* 413668 E0126308 0C080140 */  jal       shim_sin_deg
/* 41366C E012630C 46206320 */   cvt.s.d  $f12, $f12
/* 413670 E0126310 3C01E012 */  lui       $at, (0xE0126BF0 >> 16)
/* 413674 E0126314 D42C6BF0 */  ldc1      $f12, (0xE0126BF0 & 0xFFFF)($at)
/* 413678 E0126318 462CA302 */  mul.d     $f12, $f20, $f12
/* 41367C E012631C 00000000 */  nop
/* 413680 E0126320 46180002 */  mul.s     $f0, $f0, $f24
/* 413684 E0126324 00000000 */  nop
/* 413688 E0126328 3C014357 */  lui       $at, (0x43570000 >> 16)
/* 41368C E012632C 4481B000 */  mtc1      $at, $f22
/* 413690 E0126330 00000000 */  nop
/* 413694 E0126334 46160000 */  add.s     $f0, $f0, $f22
/* 413698 E0126338 4600020D */  trunc.w.s $f8, $f0
/* 41369C E012633C E6080018 */  swc1      $f8, 0x18($s0)
/* 4136A0 E0126340 0C080140 */  jal       shim_sin_deg
/* 4136A4 E0126344 46206320 */   cvt.s.d  $f12, $f12
/* 4136A8 E0126348 3C01E012 */  lui       $at, (0xE0126BF8 >> 16)
/* 4136AC E012634C D42C6BF8 */  ldc1      $f12, (0xE0126BF8 & 0xFFFF)($at)
/* 4136B0 E0126350 462CA302 */  mul.d     $f12, $f20, $f12
/* 4136B4 E0126354 00000000 */  nop
/* 4136B8 E0126358 46180002 */  mul.s     $f0, $f0, $f24
/* 4136BC E012635C 00000000 */  nop
/* 4136C0 E0126360 46160000 */  add.s     $f0, $f0, $f22
/* 4136C4 E0126364 4600020D */  trunc.w.s $f8, $f0
/* 4136C8 E0126368 E608001C */  swc1      $f8, 0x1C($s0)
/* 4136CC E012636C 0C080140 */  jal       shim_sin_deg
/* 4136D0 E0126370 46206320 */   cvt.s.d  $f12, $f12
/* 4136D4 E0126374 3C01E012 */  lui       $at, (0xE0126C00 >> 16)
/* 4136D8 E0126378 D42C6C00 */  ldc1      $f12, (0xE0126C00 & 0xFFFF)($at)
/* 4136DC E012637C 462CA302 */  mul.d     $f12, $f20, $f12
/* 4136E0 E0126380 00000000 */  nop
/* 4136E4 E0126384 46180002 */  mul.s     $f0, $f0, $f24
/* 4136E8 E0126388 00000000 */  nop
/* 4136EC E012638C 46160000 */  add.s     $f0, $f0, $f22
/* 4136F0 E0126390 4600020D */  trunc.w.s $f8, $f0
/* 4136F4 E0126394 E6080020 */  swc1      $f8, 0x20($s0)
/* 4136F8 E0126398 0C080140 */  jal       shim_sin_deg
/* 4136FC E012639C 46206320 */   cvt.s.d  $f12, $f12
/* 413700 E01263A0 3C01E012 */  lui       $at, (0xE0126C08 >> 16)
/* 413704 E01263A4 D42C6C08 */  ldc1      $f12, (0xE0126C08 & 0xFFFF)($at)
/* 413708 E01263A8 462CA302 */  mul.d     $f12, $f20, $f12
/* 41370C E01263AC 00000000 */  nop
/* 413710 E01263B0 46180002 */  mul.s     $f0, $f0, $f24
/* 413714 E01263B4 00000000 */  nop
/* 413718 E01263B8 3C01433C */  lui       $at, (0x433C0000 >> 16)
/* 41371C E01263BC 4481B000 */  mtc1      $at, $f22
/* 413720 E01263C0 00000000 */  nop
/* 413724 E01263C4 46160000 */  add.s     $f0, $f0, $f22
/* 413728 E01263C8 4600020D */  trunc.w.s $f8, $f0
/* 41372C E01263CC E6080028 */  swc1      $f8, 0x28($s0)
/* 413730 E01263D0 0C080140 */  jal       shim_sin_deg
/* 413734 E01263D4 46206320 */   cvt.s.d  $f12, $f12
/* 413738 E01263D8 3C01E012 */  lui       $at, (0xE0126C10 >> 16)
/* 41373C E01263DC D42C6C10 */  ldc1      $f12, (0xE0126C10 & 0xFFFF)($at)
/* 413740 E01263E0 462CA302 */  mul.d     $f12, $f20, $f12
/* 413744 E01263E4 00000000 */  nop
/* 413748 E01263E8 46180002 */  mul.s     $f0, $f0, $f24
/* 41374C E01263EC 00000000 */  nop
/* 413750 E01263F0 46160000 */  add.s     $f0, $f0, $f22
/* 413754 E01263F4 4600020D */  trunc.w.s $f8, $f0
/* 413758 E01263F8 E608002C */  swc1      $f8, 0x2C($s0)
/* 41375C E01263FC 0C080140 */  jal       shim_sin_deg
/* 413760 E0126400 46206320 */   cvt.s.d  $f12, $f12
/* 413764 E0126404 3C01E012 */  lui       $at, (0xE0126C18 >> 16)
/* 413768 E0126408 D4226C18 */  ldc1      $f2, (0xE0126C18 & 0xFFFF)($at)
/* 41376C E012640C 4622A502 */  mul.d     $f20, $f20, $f2
/* 413770 E0126410 00000000 */  nop
/* 413774 E0126414 46180002 */  mul.s     $f0, $f0, $f24
/* 413778 E0126418 00000000 */  nop
/* 41377C E012641C 46160000 */  add.s     $f0, $f0, $f22
/* 413780 E0126420 4600020D */  trunc.w.s $f8, $f0
/* 413784 E0126424 E6080030 */  swc1      $f8, 0x30($s0)
/* 413788 E0126428 0C080140 */  jal       shim_sin_deg
/* 41378C E012642C 4620A320 */   cvt.s.d  $f12, $f20
/* 413790 E0126430 3C01E012 */  lui       $at, (0xE0126C20 >> 16)
/* 413794 E0126434 D4226C20 */  ldc1      $f2, (0xE0126C20 & 0xFFFF)($at)
/* 413798 E0126438 46000021 */  cvt.d.s   $f0, $f0
/* 41379C E012643C 46220002 */  mul.d     $f0, $f0, $f2
/* 4137A0 E0126440 00000000 */  nop
/* 4137A4 E0126444 3C01E012 */  lui       $at, (0xE0126C28 >> 16)
/* 4137A8 E0126448 D4226C28 */  ldc1      $f2, (0xE0126C28 & 0xFFFF)($at)
/* 4137AC E012644C 46220000 */  add.d     $f0, $f0, $f2
/* 4137B0 E0126450 46200020 */  cvt.s.d   $f0, $f0
/* 4137B4 E0126454 E6000038 */  swc1      $f0, 0x38($s0)
.LE0126458:
/* 4137B8 E0126458 16320009 */  bne       $s1, $s2, .LE0126480
/* 4137BC E012645C 00000000 */   nop
/* 4137C0 E0126460 C600003C */  lwc1      $f0, 0x3C($s0)
/* 4137C4 E0126464 C6020040 */  lwc1      $f2, 0x40($s0)
/* 4137C8 E0126468 C6040044 */  lwc1      $f4, 0x44($s0)
/* 4137CC E012646C C6060038 */  lwc1      $f6, 0x38($s0)
/* 4137D0 E0126470 E6000048 */  swc1      $f0, 0x48($s0)
/* 4137D4 E0126474 E602004C */  swc1      $f2, 0x4C($s0)
/* 4137D8 E0126478 E6040050 */  swc1      $f4, 0x50($s0)
/* 4137DC E012647C E6060054 */  swc1      $f6, 0x54($s0)
.LE0126480:
/* 4137E0 E0126480 8FBF001C */  lw        $ra, 0x1C($sp)
/* 4137E4 E0126484 8FB20018 */  lw        $s2, 0x18($sp)
/* 4137E8 E0126488 8FB10014 */  lw        $s1, 0x14($sp)
/* 4137EC E012648C 8FB00010 */  lw        $s0, 0x10($sp)
/* 4137F0 E0126490 D7B80030 */  ldc1      $f24, 0x30($sp)
/* 4137F4 E0126494 D7B60028 */  ldc1      $f22, 0x28($sp)
/* 4137F8 E0126498 D7B40020 */  ldc1      $f20, 0x20($sp)
/* 4137FC E012649C 03E00008 */  jr        $ra
/* 413800 E01264A0 27BD0038 */   addiu    $sp, $sp, 0x38

### DECOMPILED C INSTRUCTIONS:

void star_outline_update(EffectInstance* effect) {
    StarOutlineFXData* data = effect->data.starOutline;
    s32 temp_a2 = data->unk_02;
    s32 lifeTime;
    s32 temp;
    s32 temp2;

    if (effect->flags & FX_INSTANCE_FLAG_DISMISS) {
        effect->flags &= ~FX_INSTANCE_FLAG_DISMISS;
        data->timeLeft = 16;
    }
    if (data->timeLeft < 1000) {
        data->timeLeft--;
    }

    data->lifeTime++;

    if (data->timeLeft < 0) {
        shim_remove_effect(effect);
        return;
    }
    lifeTime = data->lifeTime;
    if (data->timeLeft < 16) {
        temp = data->timeLeft * 16;
        if (data->unk_24 > temp) {
            data->unk_24 = temp;
        }
        if (data->unk_34 > temp) {
            data->unk_34 = temp;
        }
    }
    if (lifeTime < 16) {
        temp2 = (lifeTime * 16) + 15;
        if (data->unk_24 < temp2) {
            data->unk_24 = temp2;
        }
        if (data->unk_34 < temp2) {
            data->unk_34 = temp2;
        }
    }
    data->unk_48 = data->unk_3C.x;
    data->unk_4C = data->unk_3C.y;
    data->unk_50 = data->unk_3C.z;
    data->unk_54 = data->unk_38;
    if (temp_a2 == 1) {
        f32 lifetimeF = lifeTime;

        data->unk_3C.x = lifeTime * 4;
        data->unk_24 = 255;
        data->unk_3C.y = (lifeTime * 4.0f * 0.4953);
        data->unk_3C.z = (lifeTime * 4.0f * 0.2234);
        data->unk_34 = ((shim_sin_deg (lifetimeF * 7.12343)) * 127.0f) + 128.0f;
        data->unk_18 = ((shim_sin_deg (lifetimeF * 1.231)) * 127.0f) + 215.0f;
        data->unk_1C = ((shim_sin_deg (lifetimeF * 0.531)) * 127.0f) + 215.0f;
        data->unk_20 = ((shim_sin_deg (lifetimeF * 3.231)) * 127.0f) + 215.0f;
        data->unk_28 = ((shim_sin_deg (lifetimeF * 0.298)) * 127.0f) + 188.0f;
        data->unk_2C = ((shim_sin_deg (lifetimeF * 0.831)) * 127.0f) + 188.0f;
        data->unk_30 = ((shim_sin_deg (lifetimeF * 2.231)) * 127.0f) + 188.0f;
        data->unk_38 = ((shim_sin_deg (lifetimeF * 2.044)) * 0.3) + 0.7;
    }
    if (lifeTime == 1) {
        data->unk_48 = data->unk_3C.x;
        data->unk_4C = data->unk_3C.y;
        data->unk_50 = data->unk_3C.z;
        data->unk_54 = data->unk_38;
    }
}