* chomp_drop_appendGfx

* stars_shimmer_main & stars_shimmer_update

* clean
This commit is contained in:
Ethan Roseman 2023-01-24 12:33:04 +09:00 committed by GitHub
parent ebe5fbd0f6
commit 8b27ed01ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 134 additions and 1296 deletions

View File

@ -679,7 +679,7 @@ typedef struct StarsBurstFXData {
typedef struct StarsShimmerFXData {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x02 */ s16 state;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;

View File

@ -6,8 +6,12 @@ void chomp_drop_update(EffectInstance* effect);
void chomp_drop_render(EffectInstance* effect);
void chomp_drop_appendGfx(void* effect);
EffectInstance* chomp_drop_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, f32 arg6, s32 arg7,
f32 arg8, s32 arg9)
extern Gfx D_09001040_398080[];
extern Gfx D_090010E8_398128[];
extern Gfx D_09001190_3981D0[];
EffectInstance* chomp_drop_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, f32 arg6, s32 arg7,
f32 arg8, s32 arg9)
{
EffectBlueprint bp;
EffectInstance* effect;
@ -127,50 +131,18 @@ void chomp_drop_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
#ifdef WIP
extern Gfx D_09001040[];
extern Gfx D_090010E8[];
extern Gfx D_09001190[];
// wip
void chomp_drop_appendGfx(void* effect) {
EffectInstance* effectTemp = effect;
ChompDropFXData* data = effectTemp->data.chompDrop;
f32 temp_f22 = data->unk_34;
s32 temp_s7 = data->unk_38;
s32 primA = data->unk_3C;
s32 temp_s6 = data->unk_44;
Matrix4f sp20, sp60;
s32 primA;
Gfx* gfxPos;
Vtx* temp_v0_2;
Vtx* temp_s0_2;
Vtx* temp_s0_3;
f32 sinTheta;
f32 sinTheta2;
Gfx* savedGfxPos;
Vtx_t* vtxTemp;
s32 i;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f20_3;
f32 temp_f22;
s16 temp_v0_3;
s16 temp_v1_4;
s32 temp_a1;
s32 temp_s1;
s32 temp_s6;
s32 temp_s7;
s32 temp_v0;
s32 temp_v1_2;
s32 var_a2;
s32 var_a3;
s32 var_s3;
s32 var_s4;
s32 var_s5;
s32 var_t0;
u8 primR;
u8 primG;
temp_f22 = data->unk_34;
temp_s7 = data->unk_38;
primA = data->unk_3C;
temp_s6 = data->unk_44;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effectTemp)->graphics->data));
@ -179,92 +151,64 @@ void chomp_drop_appendGfx(void* effect) {
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
sinTheta = shim_sin_deg(temp_s6 * 30);
sinTheta2 = shim_sin_deg(temp_s6 * 30);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(
gMasterGfxPos++, 0, 0,
(shim_sin_deg(temp_s6 * 30) * 25.0f) + 225.0f,
(shim_sin_deg(temp_s6 * 30) * 25.0f) + 225.0f,
255,
primA
);
primR = (sinTheta * 25.0f) + 225.0f;
primG = (sinTheta2 * 25.0f) + 225.0f;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, 255, primA);
temp_v1_2 = data->unk_2C;
if (temp_v1_2 == 1) {
gSPDisplayList(gMasterGfxPos++, D_09001040);
gSPDisplayList(gMasterGfxPos++, D_09001190);
if (data->unk_2C == 1) {
gSPDisplayList(gMasterGfxPos++, D_09001040_398080);
gSPDisplayList(gMasterGfxPos++, D_09001190_3981D0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, ((30 - data->unk_30) * 255) / 30);
gSPDisplayList(gMasterGfxPos++, D_090010E8);
gSPDisplayList(gMasterGfxPos++, D_09001190);
gSPDisplayList(gMasterGfxPos++, D_090010E8_398128);
gSPDisplayList(gMasterGfxPos++, D_09001190_3981D0);
} else {
if (temp_v1_2 > 0) {
gSPDisplayList(gMasterGfxPos++, D_090010E8);
if (data->unk_2C > 0) {
gSPDisplayList(gMasterGfxPos++, D_090010E8_398128);
} else {
gSPDisplayList(gMasterGfxPos++, D_09001040);
gSPDisplayList(gMasterGfxPos++, D_09001040_398080);
}
temp_v0_2 = gMasterGfxPos;
var_s5 = 0;
var_s3 = temp_s6 * 10;
var_s4 = var_s3;
gfxPos = gMasterGfxPos;
gSPBranchList(gMasterGfxPos++, gMasterGfxPos + 0x208);
gMasterGfxPos = temp_v0_2;
savedGfxPos = gMasterGfxPos + 1;
gSPBranchList(gMasterGfxPos, gMasterGfxPos + 0x41);
gMasterGfxPos = savedGfxPos;
vtxTemp = (Vtx_t*) savedGfxPos;
for (i = 0; i < 16; i++) {
temp_s0_2 = &temp_v0_2[i];
temp_s1 = (s32) (shim_sin_deg(var_s4 + temp_s7) * 500.0f * temp_f22);
var_s3 += 6;
var_s4 += 50;
temp_v1_4 = i << 7;
temp_f0_2 = shim_sin_deg(var_s3 + temp_s7) * 200.0f * temp_f22;
temp_s0_2->v.ob[0] = temp_s1 - 3200;
temp_s0_2->v.ob[2] = 0;
temp_s0_2->v.tc[1] = 0;
temp_s0_2->v.tc[2] = temp_v1_4;
temp_v0_3 = var_s5 + (s32) temp_f0_2;
temp_s0_2->v.ob[1] = temp_v0_3;
temp_s0_3 = temp_s0_2 + 0x10;
var_s5 += 0x190;
temp_s0_3->v.ob[1] = temp_v0_3;
temp_s0_3->v.tc[1] = 0x800;
temp_s0_3->v.ob[0] = temp_s1 + 3200;
temp_s0_3->v.ob[2] = 0;
temp_s0_3->v.tc[2] = temp_v1_4;
Vtx_t* vtx = &vtxTemp[i * 2];
s32 temp_s1 = shim_sin_deg(((temp_s6 * 10) + (i * 60)) + temp_s7) * 500.0f * temp_f22;
s32 temp_v0_3 = (i * 400) + (s32) (shim_sin_deg(((temp_s6 * 10) + (i * 6)) + temp_s7) * 200.0f * temp_f22);
vtx->ob[0] = temp_s1 - 3200;
vtx->ob[1] = temp_v0_3;
vtx->ob[2] = 0;
vtx->tc[0] = 0;
vtx->tc[1] = i * 128;
vtx++;
vtx->ob[0] = temp_s1 + 3200;
vtx->ob[1] = temp_v0_3;
vtx->ob[2] = 0;
vtx->tc[0] = 2048;
vtx->tc[1] = i * 128;
}
gMasterGfxPos = gfxPos;
gSPVertex(gMasterGfxPos++, temp_v0_2, 32, 0);
gMasterGfxPos += 0x40;
gSPVertex(gMasterGfxPos++, vtxTemp, 32, 0);
for (i = 0; i < 15; i++) {
temp_a1 = i * 2;
if (temp_a1 == 0) {
//var_v0_3 = (i << 0x11) | 0x402;
// temp_a0_5->words.w0 = var_v0_3 | 06000000
// temp_a0_5->words.w1 = 00020406
gSP2Triangles(gMasterGfxPos++, i, 2, 1, 0, 1, 2, 3, 0);
} else if (temp_a1 == 1) {
gSP2Triangles(gMasterGfxPos++, 3, 2, 1, 0, 3, 4, 2, 0);
} else {
// var_v0_3 = ((var_a2 & 0xFF) << 0x10) | ((i << 0xA) & 0xFC00) | (var_a3 & 0xFF);
// temp_a0_5->words.w0 = var_v0_3 | 06000000
// temp_a0_5->words.w1 = ((var_t0 & 0xFF) << 0x10) | ((var_a2 & 0xFF) << 8) | (var_a3 & 0xFF);
gSP2Triangles(gMasterGfxPos++,
i,
1 + 4 * i,
2 + 4 * i,
0,
3 + 4 * i,
1 + 4 * i,
2 + 4 * i,
0
);
}
}
s32 i2 = i * 2;
gSP2Triangles(gMasterGfxPos++,
i2 , i2 + 2, i2 + 1, i2,
i2 + 1, i2 + 2, i2 + 3, i2);
};
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}
#else
INCLUDE_ASM(s32, "effects/chomp_drop", chomp_drop_appendGfx);
#endif

View File

@ -44,26 +44,23 @@ u8 D_E0044E04[] = {
30, 60, 90, 100, 104, 106, 108, 110, 112, 113, 113, 110, 107, 103, 0x00, 0x00
};
// ordering crap
#ifdef NON_EQUIVALENT
void stars_shimmer_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, s32 arg6, s32 arg7) {
void stars_shimmer_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, s32 numParts, s32 arg7) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
StarsShimmerFXData* part;
s32 numParts = arg6;
f32 theta;
f32 cosTheta;
f32 sinTheta;
f32 temp_f22;
f32 temp_f8;
f32 temp_ft;
f32 sinT3;
f32 theta;
f32 temp5;
f32 t3;
f32 new_var;
s32 i;
numParts = arg6 + 1;
numParts++;
bpPtr->init = stars_shimmer_init;
bpPtr->update = stars_shimmer_update;
@ -74,8 +71,8 @@ void stars_shimmer_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, s32 a
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.starsBurst = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.starsBurst != NULL);
part = effect->data.starsShimmer = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.starsShimmer != NULL);
if (type == 6) {
part->unk_00 = 1;
@ -87,7 +84,7 @@ void stars_shimmer_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, s32 a
part->pos.y = y;
part->pos.z = z;
part->lifeTime = 0;
part->unk_02 = type;
part->state = type;
part->timeLeft = arg7;
part++;
@ -101,14 +98,15 @@ void stars_shimmer_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, s32 a
t3 = (temp_f22 * 10.0f) - 90.0f;
sinTheta = shim_sin_deg(theta);
cosTheta = shim_cos_deg(theta);
sinT3 = shim_sin_deg(t3);
temp_f8 = (arg4 * 0.4) - (arg4 * 0.1 * sinT3);
temp_ft = (arg5 * 0.4) - (arg5 * 0.1 * sinT3);
temp_f22 = shim_sin_deg(t3);
temp_f8 = (arg4 * 0.4) - (arg4 * 0.1 * temp_f22);
temp_ft = (arg5 * 0.4) - (arg5 * 0.1 * temp_f22);
new_var = 1.0f; // TODO dumb temp and cast later required to match
temp5 = (arg5 / (numParts - 1)) * (i - 1);
part->timeLeft = i + 30;
part->unk_1C = (u8) new_var;
part->lifeTime = 0;
part->unk_1C = 1.0f;
part->timeLeft = i + 30;
switch (type) {
case 0:
@ -140,84 +138,70 @@ void stars_shimmer_main(s32 type, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, s32 a
}
}
}
#else
INCLUDE_ASM(s32, "effects/stars_shimmer", stars_shimmer_main);
#endif
void stars_shimmer_init(EffectInstance* effect) {
}
// tons of issues
#ifdef NON_EQUIVALENT
void stars_shimmer_update(EffectInstance* effect) {
StarsShimmerFXData* data = effect->data.starsShimmer;
u8** new_var = &D_E0044E04;
s32 count = 0;
f32 temp_f0;
f32 temp_f8;
f32 var_f20;
s32 temp_s3;
s32 temp_v1;
s32 temp_v1_2;
s32 new_var2;
s32 temp_v1_4;
s32 var_s2;
s32 var_v0;
StarsShimmerFXData* it = data;
s32 deadParts = 0;
s32 state = it->state;
s32 lifeTime;
s32 i;
temp_s3 = data->unk_02;
data->timeLeft--;
data->lifeTime++;
var_s2 = data->lifeTime;
new_var2 = var_s2;
if (!(temp_s3 != 0 && temp_s3 != 1) || temp_s3 == 3 || temp_s3 >= 10) {
if (data->timeLeft < 0) {
it->timeLeft--;
it->lifeTime++;
lifeTime = it->lifeTime;
if (state == 0 || state == 1 || state == 3 || state >= 10) {
if (it->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
}
for (i = 0; i < effect->numParts - 1; i++, data++) {
var_v0 = var_s2 + i;
switch (temp_s3) {
it++;
for (i = 0; i < effect->numParts - 1; i++, it++) {
switch (state) {
case 0:
case 1:
temp_v1 = var_s2 - 1;
data->unk_28 = (var_s2 + i) & 7;
data->unk_18 += -0.02;
if (temp_v1 < 14) {
temp_f0 = (f32) D_E0044DF4[temp_v1] * 0.01;
data->pos.x = data->unk_10 * temp_f0;
data->pos.y = (data->unk_14 * temp_f0) + data->unk_18;
data->unk_1C = (f32) (*new_var)[var_s2 - 1] * 0.01;
it->unk_28 = (lifeTime + i) & 7;
it->unk_18 += -0.02;
if (lifeTime - 1 < 14) {
f32 temp_f0 = (f32) D_E0044DF4[lifeTime - 1] * 0.01;
it->pos.x = it->unk_10 * temp_f0;
it->pos.y = (it->unk_14 * temp_f0) + it->unk_18;
it->unk_1C = (f32) D_E0044E04[lifeTime - 1] * 0.01;
} else {
var_f20 = ((360.0f / (effect->numParts - 1)) * i) + 60.0f;
if (i % 2) {
f32 var_f20 = ((360.0f / (effect->numParts - 1)) * i) + 60.0f;
if (i % 2 != 0) {
var_f20 -= 120.0f;
}
data->unk_02 = 10;
data->unk_10 = shim_sin_deg(var_f20);
data->unk_14 = shim_cos_deg(var_f20);
data->unk_18 = -0.05f;
data->state = 10;
it->unk_10 = shim_sin_deg(var_f20);
it->unk_14 = shim_cos_deg(var_f20);
it->unk_18 = -0.05f;
}
break;
case 10:
case 30:
data->unk_10 *= 0.96;
data->unk_14 *= 0.96;
data->unk_14 += data->unk_18;
data->unk_28 = (var_s2 + i) & 7;
data->unk_1C += (0.1 - data->unk_1C) * 0.1;
data->pos.x += data->unk_10;
data->pos.y += data->unk_14;
it->unk_28 = (lifeTime + i) & 7;
it->unk_10 *= 0.96;
it->unk_14 *= 0.96;
it->unk_14 += it->unk_18;
it->unk_1C += (0.1 - it->unk_1C) * 0.1;
it->pos.x += it->unk_10;
it->pos.y += it->unk_14;
break;
case 3:
data->unk_28 = (var_s2 + i + i) & 7;
if (var_s2 - 1 < 14) {
data->unk_1C = (f32) D_E0044E04[new_var2 - 1] * 0.01;
it->unk_28 = (lifeTime + i + i) & 7;
if (lifeTime - 1 < 14) {
it->unk_1C = (f32) D_E0044E04[lifeTime - 1] * 0.01;
break;
}
data->unk_02 = 30;
data->state = 30;
break;
case 2:
case 4:
@ -245,48 +229,43 @@ void stars_shimmer_update(EffectInstance* effect) {
case 27:
case 28:
case 29:
var_v0 = var_s2 + i;
/* fallthrough */
default:
data->unk_28 = (var_v0 + i) & 7;
if (data->timeLeft < 0) {
count++;
it->unk_28 = (lifeTime + i + i) & 7;
if (it->timeLeft < 0) {
deadParts++;
}
data->timeLeft--;
if (data->timeLeft >= 0x1FU) {
data->unk_28 = -1;
it->timeLeft--;
if ((u32) it->timeLeft > 30) {
it->unk_28 = -1;
} else {
var_s2 = data->lifeTime + 1;
data->lifeTime++;
if (data->lifeTime < 14) {
data->unk_1C = (f32) D_E0044E04[data->lifeTime] * 0.01;
if (temp_s3 == 5) {
data->unk_14 += data->unk_18;
data->pos.y += data->unk_14;
it->lifeTime++;
lifeTime = it->lifeTime;
if (lifeTime - 1 < 14) {
it->unk_1C = (f32) D_E0044E04[lifeTime - 1] * 0.01;
if (state == 5) {
it->unk_14 += it->unk_18;
it->pos.y += it->unk_14;
}
} else {
data->unk_14 += data->unk_18;
data->pos.y += data->unk_14;
data->unk_1C += (0.1 - data->unk_1C) * 0.1;
it->unk_14 += it->unk_18;
it->pos.y += it->unk_14;
it->unk_1C += (0.1 - it->unk_1C) * 0.1;
}
if (temp_s3 == 4) {
data->pos.x = data->unk_10 * shim_sin_deg(var_s2 * 12);
data->pos.z = data->unk_10 * shim_cos_deg(var_s2 * 12);
if (state == 4) {
it->pos.x = (it->unk_10 * shim_sin_deg(lifeTime * 12));
it->pos.z = (it->unk_10 * shim_cos_deg(lifeTime * 12));
} else {
data->pos.x = data->unk_10;
it->pos.x = it->unk_10;
}
data->unk_14 *= 0.96;
it->unk_14 *= 0.96;
}
break;
}
}
if (!(temp_s3 == 0 || temp_s3 == 1) && temp_s3 != 3 && temp_s3 < 10 && (count >= effect->numParts - 1)) {
if (state != 0 && state != 1 && state != 3 && state < 10 && deadParts >= effect->numParts - 1) {
shim_remove_effect(effect);
}
}
#else
INCLUDE_ASM(s32, "effects/stars_shimmer", stars_shimmer_update);
#endif
void stars_shimmer_render(EffectInstance* effect) {
RenderTask renderTask;
@ -310,7 +289,7 @@ void stars_shimmer_appendGfx(void* effect) {
s32 r, g, b;
s32 i;
type = data->unk_02;
type = data->state;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));

View File

@ -1,437 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel chomp_drop_appendGfx
/* 396990 E009A3E0 27BDFF20 */ addiu $sp, $sp, -0xe0
/* 396994 E009A3E4 0080482D */ daddu $t1, $a0, $zero
/* 396998 E009A3E8 3C0ADB06 */ lui $t2, 0xdb06
/* 39699C E009A3EC 354A0024 */ ori $t2, $t2, 0x24
/* 3969A0 E009A3F0 27A40020 */ addiu $a0, $sp, 0x20
/* 3969A4 E009A3F4 AFB200B0 */ sw $s2, 0xb0($sp)
/* 3969A8 E009A3F8 3C12800A */ lui $s2, %hi(gMasterGfxPos)
/* 3969AC E009A3FC 2652A66C */ addiu $s2, $s2, %lo(gMasterGfxPos)
/* 3969B0 E009A400 3C013C23 */ lui $at, 0x3c23
/* 3969B4 E009A404 3421D70A */ ori $at, $at, 0xd70a
/* 3969B8 E009A408 44810000 */ mtc1 $at, $f0
/* 3969BC E009A40C 3C02E700 */ lui $v0, 0xe700
/* 3969C0 E009A410 AFBF00CC */ sw $ra, 0xcc($sp)
/* 3969C4 E009A414 AFBE00C8 */ sw $fp, 0xc8($sp)
/* 3969C8 E009A418 AFB700C4 */ sw $s7, 0xc4($sp)
/* 3969CC E009A41C AFB600C0 */ sw $s6, 0xc0($sp)
/* 3969D0 E009A420 AFB500BC */ sw $s5, 0xbc($sp)
/* 3969D4 E009A424 AFB400B8 */ sw $s4, 0xb8($sp)
/* 3969D8 E009A428 AFB300B4 */ sw $s3, 0xb4($sp)
/* 3969DC E009A42C AFB100AC */ sw $s1, 0xac($sp)
/* 3969E0 E009A430 AFB000A8 */ sw $s0, 0xa8($sp)
/* 3969E4 E009A434 F7B600D8 */ sdc1 $f22, 0xd8($sp)
/* 3969E8 E009A438 F7B400D0 */ sdc1 $f20, 0xd0($sp)
/* 3969EC E009A43C 8E430000 */ lw $v1, ($s2)
/* 3969F0 E009A440 8D35000C */ lw $s5, 0xc($t1)
/* 3969F4 E009A444 0060402D */ daddu $t0, $v1, $zero
/* 3969F8 E009A448 44050000 */ mfc1 $a1, $f0
/* 3969FC E009A44C 24630008 */ addiu $v1, $v1, 8
/* 396A00 E009A450 AE430000 */ sw $v1, ($s2)
/* 396A04 E009A454 C6B60034 */ lwc1 $f22, 0x34($s5)
/* 396A08 E009A458 8EB70038 */ lw $s7, 0x38($s5)
/* 396A0C E009A45C 8EAF003C */ lw $t7, 0x3c($s5)
/* 396A10 E009A460 3C1E8000 */ lui $fp, 0x8000
/* 396A14 E009A464 AFAF00A0 */ sw $t7, 0xa0($sp)
/* 396A18 E009A468 8EB60044 */ lw $s6, 0x44($s5)
/* 396A1C E009A46C 00A0302D */ daddu $a2, $a1, $zero
/* 396A20 E009A470 AD020000 */ sw $v0, ($t0)
/* 396A24 E009A474 AD000004 */ sw $zero, 4($t0)
/* 396A28 E009A478 AC6A0000 */ sw $t2, ($v1)
/* 396A2C E009A47C 8D280010 */ lw $t0, 0x10($t1)
/* 396A30 E009A480 24620008 */ addiu $v0, $v1, 8
/* 396A34 E009A484 AE420000 */ sw $v0, ($s2)
/* 396A38 E009A488 8D02001C */ lw $v0, 0x1c($t0)
/* 396A3C E009A48C 00A0382D */ daddu $a3, $a1, $zero
/* 396A40 E009A490 005E1021 */ addu $v0, $v0, $fp
/* 396A44 E009A494 0C080110 */ jal shim_guScaleF
/* 396A48 E009A498 AC620004 */ sw $v0, 4($v1)
/* 396A4C E009A49C C6A00024 */ lwc1 $f0, 0x24($s5)
/* 396A50 E009A4A0 3C0142C8 */ lui $at, 0x42c8
/* 396A54 E009A4A4 44812000 */ mtc1 $at, $f4
/* 396A58 E009A4A8 E7A00010 */ swc1 $f0, 0x10($sp)
/* 396A5C E009A4AC C6A00004 */ lwc1 $f0, 4($s5)
/* 396A60 E009A4B0 46040002 */ mul.s $f0, $f0, $f4
/* 396A64 E009A4B4 00000000 */ nop
/* 396A68 E009A4B8 E7A00014 */ swc1 $f0, 0x14($sp)
/* 396A6C E009A4BC C6A00008 */ lwc1 $f0, 8($s5)
/* 396A70 E009A4C0 46040002 */ mul.s $f0, $f0, $f4
/* 396A74 E009A4C4 00000000 */ nop
/* 396A78 E009A4C8 3C140001 */ lui $s4, 1
/* 396A7C E009A4CC 36941630 */ ori $s4, $s4, 0x1630
/* 396A80 E009A4D0 27B00060 */ addiu $s0, $sp, 0x60
/* 396A84 E009A4D4 E7A00018 */ swc1 $f0, 0x18($sp)
/* 396A88 E009A4D8 C6A0000C */ lwc1 $f0, 0xc($s5)
/* 396A8C E009A4DC 44801000 */ mtc1 $zero, $f2
/* 396A90 E009A4E0 46040002 */ mul.s $f0, $f0, $f4
/* 396A94 E009A4E4 00000000 */ nop
/* 396A98 E009A4E8 44051000 */ mfc1 $a1, $f2
/* 396A9C E009A4EC 0200202D */ daddu $a0, $s0, $zero
/* 396AA0 E009A4F0 00A0302D */ daddu $a2, $a1, $zero
/* 396AA4 E009A4F4 00A0382D */ daddu $a3, $a1, $zero
/* 396AA8 E009A4F8 0C080180 */ jal shim_guPositionF
/* 396AAC E009A4FC E7A0001C */ swc1 $f0, 0x1c($sp)
/* 396AB0 E009A500 0200202D */ daddu $a0, $s0, $zero
/* 396AB4 E009A504 27A50020 */ addiu $a1, $sp, 0x20
/* 396AB8 E009A508 0C080114 */ jal shim_guMtxCatF
/* 396ABC E009A50C 00A0302D */ daddu $a2, $a1, $zero
/* 396AC0 E009A510 27A40020 */ addiu $a0, $sp, 0x20
/* 396AC4 E009A514 3C118007 */ lui $s1, %hi(gMatrixListPos)
/* 396AC8 E009A518 263141F0 */ addiu $s1, $s1, %lo(gMatrixListPos)
/* 396ACC E009A51C 3C13800A */ lui $s3, %hi(gDisplayContext)
/* 396AD0 E009A520 2673A674 */ addiu $s3, $s3, %lo(gDisplayContext)
/* 396AD4 E009A524 96250000 */ lhu $a1, ($s1)
/* 396AD8 E009A528 8E620000 */ lw $v0, ($s3)
/* 396ADC E009A52C 00052980 */ sll $a1, $a1, 6
/* 396AE0 E009A530 00B42821 */ addu $a1, $a1, $s4
/* 396AE4 E009A534 0C080118 */ jal shim_guMtxF2L
/* 396AE8 E009A538 00452821 */ addu $a1, $v0, $a1
/* 396AEC E009A53C 3C03DA38 */ lui $v1, 0xda38
/* 396AF0 E009A540 34630002 */ ori $v1, $v1, 2
/* 396AF4 E009A544 00161100 */ sll $v0, $s6, 4
/* 396AF8 E009A548 00561023 */ subu $v0, $v0, $s6
/* 396AFC E009A54C 00021040 */ sll $v0, $v0, 1
/* 396B00 E009A550 4482A000 */ mtc1 $v0, $f20
/* 396B04 E009A554 00000000 */ nop
/* 396B08 E009A558 4680A520 */ cvt.s.w $f20, $f20
/* 396B0C E009A55C 4600A306 */ mov.s $f12, $f20
/* 396B10 E009A560 8E500000 */ lw $s0, ($s2)
/* 396B14 E009A564 96220000 */ lhu $v0, ($s1)
/* 396B18 E009A568 0200202D */ daddu $a0, $s0, $zero
/* 396B1C E009A56C 26100008 */ addiu $s0, $s0, 8
/* 396B20 E009A570 AE500000 */ sw $s0, ($s2)
/* 396B24 E009A574 AC830000 */ sw $v1, ($a0)
/* 396B28 E009A578 24430001 */ addiu $v1, $v0, 1
/* 396B2C E009A57C 3042FFFF */ andi $v0, $v0, 0xffff
/* 396B30 E009A580 00021180 */ sll $v0, $v0, 6
/* 396B34 E009A584 A6230000 */ sh $v1, ($s1)
/* 396B38 E009A588 8E630000 */ lw $v1, ($s3)
/* 396B3C E009A58C 00541021 */ addu $v0, $v0, $s4
/* 396B40 E009A590 00621821 */ addu $v1, $v1, $v0
/* 396B44 E009A594 26020008 */ addiu $v0, $s0, 8
/* 396B48 E009A598 AC830004 */ sw $v1, 4($a0)
/* 396B4C E009A59C AE420000 */ sw $v0, ($s2)
/* 396B50 E009A5A0 3C02FA00 */ lui $v0, 0xfa00
/* 396B54 E009A5A4 0C080140 */ jal shim_sin_deg
/* 396B58 E009A5A8 AE020000 */ sw $v0, ($s0)
/* 396B5C E009A5AC 4600A306 */ mov.s $f12, $f20
/* 396B60 E009A5B0 0C080140 */ jal shim_sin_deg
/* 396B64 E009A5B4 46000506 */ mov.s $f20, $f0
/* 396B68 E009A5B8 3C0141C8 */ lui $at, 0x41c8
/* 396B6C E009A5BC 44811000 */ mtc1 $at, $f2
/* 396B70 E009A5C0 00000000 */ nop
/* 396B74 E009A5C4 4602A502 */ mul.s $f20, $f20, $f2
/* 396B78 E009A5C8 00000000 */ nop
/* 396B7C E009A5CC 3C014361 */ lui $at, 0x4361
/* 396B80 E009A5D0 44811000 */ mtc1 $at, $f2
/* 396B84 E009A5D4 46000106 */ mov.s $f4, $f0
/* 396B88 E009A5D8 4602A500 */ add.s $f20, $f20, $f2
/* 396B8C E009A5DC 3C014F00 */ lui $at, 0x4f00
/* 396B90 E009A5E0 44811000 */ mtc1 $at, $f2
/* 396B94 E009A5E4 00000000 */ nop
/* 396B98 E009A5E8 4614103E */ c.le.s $f2, $f20
/* 396B9C E009A5EC 00000000 */ nop
/* 396BA0 E009A5F0 45010005 */ bc1t .LE009A608
/* 396BA4 E009A5F4 26100004 */ addiu $s0, $s0, 4
/* 396BA8 E009A5F8 4600A18D */ trunc.w.s $f6, $f20
/* 396BAC E009A5FC 44023000 */ mfc1 $v0, $f6
/* 396BB0 E009A600 08026987 */ j .LE009A61C
/* 396BB4 E009A604 00000000 */ nop
.LE009A608:
/* 396BB8 E009A608 4602A001 */ sub.s $f0, $f20, $f2
/* 396BBC E009A60C 4600018D */ trunc.w.s $f6, $f0
/* 396BC0 E009A610 44023000 */ mfc1 $v0, $f6
/* 396BC4 E009A614 00000000 */ nop
/* 396BC8 E009A618 005E1025 */ or $v0, $v0, $fp
.LE009A61C:
/* 396BCC E009A61C 3C0141C8 */ lui $at, 0x41c8
/* 396BD0 E009A620 44810000 */ mtc1 $at, $f0
/* 396BD4 E009A624 00000000 */ nop
/* 396BD8 E009A628 46002002 */ mul.s $f0, $f4, $f0
/* 396BDC E009A62C 00000000 */ nop
/* 396BE0 E009A630 3C014361 */ lui $at, 0x4361
/* 396BE4 E009A634 44811000 */ mtc1 $at, $f2
/* 396BE8 E009A638 00000000 */ nop
/* 396BEC E009A63C 46020000 */ add.s $f0, $f0, $f2
/* 396BF0 E009A640 3C014F00 */ lui $at, 0x4f00
/* 396BF4 E009A644 44811000 */ mtc1 $at, $f2
/* 396BF8 E009A648 00000000 */ nop
/* 396BFC E009A64C 4600103E */ c.le.s $f2, $f0
/* 396C00 E009A650 00000000 */ nop
/* 396C04 E009A654 45010005 */ bc1t .LE009A66C
/* 396C08 E009A658 00022600 */ sll $a0, $v0, 0x18
/* 396C0C E009A65C 4600018D */ trunc.w.s $f6, $f0
/* 396C10 E009A660 44033000 */ mfc1 $v1, $f6
/* 396C14 E009A664 080269A2 */ j .LE009A688
/* 396C18 E009A668 306200FF */ andi $v0, $v1, 0xff
.LE009A66C:
/* 396C1C E009A66C 46020001 */ sub.s $f0, $f0, $f2
/* 396C20 E009A670 3C028000 */ lui $v0, 0x8000
/* 396C24 E009A674 4600018D */ trunc.w.s $f6, $f0
/* 396C28 E009A678 44033000 */ mfc1 $v1, $f6
/* 396C2C E009A67C 00000000 */ nop
/* 396C30 E009A680 00621825 */ or $v1, $v1, $v0
/* 396C34 E009A684 306200FF */ andi $v0, $v1, 0xff
.LE009A688:
/* 396C38 E009A688 00021400 */ sll $v0, $v0, 0x10
/* 396C3C E009A68C 8FAF00A0 */ lw $t7, 0xa0($sp)
/* 396C40 E009A690 00821025 */ or $v0, $a0, $v0
/* 396C44 E009A694 31E300FF */ andi $v1, $t7, 0xff
/* 396C48 E009A698 3463FF00 */ ori $v1, $v1, 0xff00
/* 396C4C E009A69C 00431025 */ or $v0, $v0, $v1
/* 396C50 E009A6A0 AE020000 */ sw $v0, ($s0)
/* 396C54 E009A6A4 8EA3002C */ lw $v1, 0x2c($s5)
/* 396C58 E009A6A8 24020001 */ addiu $v0, $zero, 1
/* 396C5C E009A6AC 1462002F */ bne $v1, $v0, .LE009A76C
/* 396C60 E009A6B0 3C088888 */ lui $t0, 0x8888
/* 396C64 E009A6B4 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 396C68 E009A6B8 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 396C6C E009A6BC 35088889 */ ori $t0, $t0, 0x8889
/* 396C70 E009A6C0 3C06DE00 */ lui $a2, 0xde00
/* 396C74 E009A6C4 3C020900 */ lui $v0, 0x900
/* 396C78 E009A6C8 24421040 */ addiu $v0, $v0, 0x1040
/* 396C7C E009A6CC 8CA40000 */ lw $a0, ($a1)
/* 396C80 E009A6D0 3C070900 */ lui $a3, 0x900
/* 396C84 E009A6D4 24E71190 */ addiu $a3, $a3, 0x1190
/* 396C88 E009A6D8 0080182D */ daddu $v1, $a0, $zero
/* 396C8C E009A6DC 24840008 */ addiu $a0, $a0, 8
/* 396C90 E009A6E0 ACA40000 */ sw $a0, ($a1)
/* 396C94 E009A6E4 AC620004 */ sw $v0, 4($v1)
/* 396C98 E009A6E8 24820008 */ addiu $v0, $a0, 8
/* 396C9C E009A6EC AC660000 */ sw $a2, ($v1)
/* 396CA0 E009A6F0 ACA20000 */ sw $v0, ($a1)
/* 396CA4 E009A6F4 24820010 */ addiu $v0, $a0, 0x10
/* 396CA8 E009A6F8 AC860000 */ sw $a2, ($a0)
/* 396CAC E009A6FC AC870004 */ sw $a3, 4($a0)
/* 396CB0 E009A700 ACA20000 */ sw $v0, ($a1)
/* 396CB4 E009A704 3C02FA00 */ lui $v0, 0xfa00
/* 396CB8 E009A708 AC820008 */ sw $v0, 8($a0)
/* 396CBC E009A70C 8EA30030 */ lw $v1, 0x30($s5)
/* 396CC0 E009A710 24820018 */ addiu $v0, $a0, 0x18
/* 396CC4 E009A714 ACA20000 */ sw $v0, ($a1)
/* 396CC8 E009A718 3C020900 */ lui $v0, 0x900
/* 396CCC E009A71C 244210E8 */ addiu $v0, $v0, 0x10e8
/* 396CD0 E009A720 AC820014 */ sw $v0, 0x14($a0)
/* 396CD4 E009A724 2402001E */ addiu $v0, $zero, 0x1e
/* 396CD8 E009A728 AC860010 */ sw $a2, 0x10($a0)
/* 396CDC E009A72C 00431023 */ subu $v0, $v0, $v1
/* 396CE0 E009A730 00021A00 */ sll $v1, $v0, 8
/* 396CE4 E009A734 00621823 */ subu $v1, $v1, $v0
/* 396CE8 E009A738 00680018 */ mult $v1, $t0
/* 396CEC E009A73C 24820020 */ addiu $v0, $a0, 0x20
/* 396CF0 E009A740 ACA20000 */ sw $v0, ($a1)
/* 396CF4 E009A744 AC860018 */ sw $a2, 0x18($a0)
/* 396CF8 E009A748 AC87001C */ sw $a3, 0x1c($a0)
/* 396CFC E009A74C 00007810 */ mfhi $t7
/* 396D00 E009A750 01E31021 */ addu $v0, $t7, $v1
/* 396D04 E009A754 00021103 */ sra $v0, $v0, 4
/* 396D08 E009A758 00031FC3 */ sra $v1, $v1, 0x1f
/* 396D0C E009A75C 00431023 */ subu $v0, $v0, $v1
/* 396D10 E009A760 304200FF */ andi $v0, $v0, 0xff
/* 396D14 E009A764 08026A77 */ j .LE009A9DC
/* 396D18 E009A768 AC82000C */ sw $v0, 0xc($a0)
.LE009A76C:
/* 396D1C E009A76C 1860000D */ blez $v1, .LE009A7A4
/* 396D20 E009A770 00000000 */ nop
/* 396D24 E009A774 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 396D28 E009A778 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 396D2C E009A77C 8C620000 */ lw $v0, ($v1)
/* 396D30 E009A780 0040202D */ daddu $a0, $v0, $zero
/* 396D34 E009A784 24420008 */ addiu $v0, $v0, 8
/* 396D38 E009A788 AC620000 */ sw $v0, ($v1)
/* 396D3C E009A78C 3C02DE00 */ lui $v0, 0xde00
/* 396D40 E009A790 AC820000 */ sw $v0, ($a0)
/* 396D44 E009A794 3C020900 */ lui $v0, 0x900
/* 396D48 E009A798 244210E8 */ addiu $v0, $v0, 0x10e8
/* 396D4C E009A79C 080269F4 */ j .LE009A7D0
/* 396D50 E009A7A0 AC820004 */ sw $v0, 4($a0)
.LE009A7A4:
/* 396D54 E009A7A4 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 396D58 E009A7A8 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 396D5C E009A7AC 8C620000 */ lw $v0, ($v1)
/* 396D60 E009A7B0 0040202D */ daddu $a0, $v0, $zero
/* 396D64 E009A7B4 24420008 */ addiu $v0, $v0, 8
/* 396D68 E009A7B8 AC620000 */ sw $v0, ($v1)
/* 396D6C E009A7BC 3C02DE00 */ lui $v0, 0xde00
/* 396D70 E009A7C0 AC820000 */ sw $v0, ($a0)
/* 396D74 E009A7C4 3C020900 */ lui $v0, 0x900
/* 396D78 E009A7C8 24421040 */ addiu $v0, $v0, 0x1040
/* 396D7C E009A7CC AC820004 */ sw $v0, 4($a0)
.LE009A7D0:
/* 396D80 E009A7D0 0000902D */ daddu $s2, $zero, $zero
/* 396D84 E009A7D4 0240A82D */ daddu $s5, $s2, $zero
/* 396D88 E009A7D8 00161080 */ sll $v0, $s6, 2
/* 396D8C E009A7DC 00561021 */ addu $v0, $v0, $s6
/* 396D90 E009A7E0 00029840 */ sll $s3, $v0, 1
/* 396D94 E009A7E4 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 396D98 E009A7E8 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 396D9C E009A7EC 8C830000 */ lw $v1, ($a0)
/* 396DA0 E009A7F0 0260A02D */ daddu $s4, $s3, $zero
/* 396DA4 E009A7F4 24620008 */ addiu $v0, $v1, 8
/* 396DA8 E009A7F8 0040B02D */ daddu $s6, $v0, $zero
/* 396DAC E009A7FC 3C02DE01 */ lui $v0, 0xde01
/* 396DB0 E009A800 AC620000 */ sw $v0, ($v1)
/* 396DB4 E009A804 24620208 */ addiu $v0, $v1, 0x208
/* 396DB8 E009A808 AC620004 */ sw $v0, 4($v1)
/* 396DBC E009A80C AC960000 */ sw $s6, ($a0)
.LE009A810:
/* 396DC0 E009A810 00128140 */ sll $s0, $s2, 5
/* 396DC4 E009A814 02971021 */ addu $v0, $s4, $s7
/* 396DC8 E009A818 44826000 */ mtc1 $v0, $f12
/* 396DCC E009A81C 00000000 */ nop
/* 396DD0 E009A820 46806320 */ cvt.s.w $f12, $f12
/* 396DD4 E009A824 0C080140 */ jal shim_sin_deg
/* 396DD8 E009A828 02D08021 */ addu $s0, $s6, $s0
/* 396DDC E009A82C 3C0143FA */ lui $at, 0x43fa
/* 396DE0 E009A830 44811000 */ mtc1 $at, $f2
/* 396DE4 E009A834 00000000 */ nop
/* 396DE8 E009A838 46020002 */ mul.s $f0, $f0, $f2
/* 396DEC E009A83C 00000000 */ nop
/* 396DF0 E009A840 46160002 */ mul.s $f0, $f0, $f22
/* 396DF4 E009A844 00000000 */ nop
/* 396DF8 E009A848 02771021 */ addu $v0, $s3, $s7
/* 396DFC E009A84C 44826000 */ mtc1 $v0, $f12
/* 396E00 E009A850 00000000 */ nop
/* 396E04 E009A854 46806320 */ cvt.s.w $f12, $f12
/* 396E08 E009A858 4600018D */ trunc.w.s $f6, $f0
/* 396E0C E009A85C 44113000 */ mfc1 $s1, $f6
/* 396E10 E009A860 0C080140 */ jal shim_sin_deg
/* 396E14 E009A864 26730006 */ addiu $s3, $s3, 6
/* 396E18 E009A868 3C014348 */ lui $at, 0x4348
/* 396E1C E009A86C 44811000 */ mtc1 $at, $f2
/* 396E20 E009A870 2694003C */ addiu $s4, $s4, 0x3c
/* 396E24 E009A874 46020002 */ mul.s $f0, $f0, $f2
/* 396E28 E009A878 00000000 */ nop
/* 396E2C E009A87C 001219C0 */ sll $v1, $s2, 7
/* 396E30 E009A880 26520001 */ addiu $s2, $s2, 1
/* 396E34 E009A884 2622F380 */ addiu $v0, $s1, -0xc80
/* 396E38 E009A888 26310C80 */ addiu $s1, $s1, 0xc80
/* 396E3C E009A88C 46160002 */ mul.s $f0, $f0, $f22
/* 396E40 E009A890 00000000 */ nop
/* 396E44 E009A894 A6020000 */ sh $v0, ($s0)
/* 396E48 E009A898 A6000004 */ sh $zero, 4($s0)
/* 396E4C E009A89C A6000008 */ sh $zero, 8($s0)
/* 396E50 E009A8A0 A603000A */ sh $v1, 0xa($s0)
/* 396E54 E009A8A4 4600018D */ trunc.w.s $f6, $f0
/* 396E58 E009A8A8 44023000 */ mfc1 $v0, $f6
/* 396E5C E009A8AC 00000000 */ nop
/* 396E60 E009A8B0 02A21021 */ addu $v0, $s5, $v0
/* 396E64 E009A8B4 A6020002 */ sh $v0, 2($s0)
/* 396E68 E009A8B8 26100010 */ addiu $s0, $s0, 0x10
/* 396E6C E009A8BC 26B50190 */ addiu $s5, $s5, 0x190
/* 396E70 E009A8C0 A6020002 */ sh $v0, 2($s0)
/* 396E74 E009A8C4 24020800 */ addiu $v0, $zero, 0x800
/* 396E78 E009A8C8 A6020008 */ sh $v0, 8($s0)
/* 396E7C E009A8CC 2A420010 */ slti $v0, $s2, 0x10
/* 396E80 E009A8D0 A6110000 */ sh $s1, ($s0)
/* 396E84 E009A8D4 A6000004 */ sh $zero, 4($s0)
/* 396E88 E009A8D8 1440FFCD */ bnez $v0, .LE009A810
/* 396E8C E009A8DC A603000A */ sh $v1, 0xa($s0)
/* 396E90 E009A8E0 3C040102 */ lui $a0, 0x102
/* 396E94 E009A8E4 34840040 */ ori $a0, $a0, 0x40
/* 396E98 E009A8E8 0000902D */ daddu $s2, $zero, $zero
/* 396E9C E009A8EC 3C02800A */ lui $v0, %hi(gMasterGfxPos)
/* 396EA0 E009A8F0 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos)
/* 396EA4 E009A8F4 0040482D */ daddu $t1, $v0, $zero
/* 396EA8 E009A8F8 3C0B0600 */ lui $t3, 0x600
/* 396EAC E009A8FC 240A0001 */ addiu $t2, $zero, 1
/* 396EB0 E009A900 3C0E0606 */ lui $t6, 0x606
/* 396EB4 E009A904 35CE0402 */ ori $t6, $t6, 0x402
/* 396EB8 E009A908 3C0D0002 */ lui $t5, 2
/* 396EBC E009A90C 35AD0406 */ ori $t5, $t5, 0x406
/* 396EC0 E009A910 3C0C0006 */ lui $t4, 6
/* 396EC4 E009A914 358C0804 */ ori $t4, $t4, 0x804
/* 396EC8 E009A918 24070004 */ addiu $a3, $zero, 4
/* 396ECC E009A91C 24060002 */ addiu $a2, $zero, 2
/* 396ED0 E009A920 8D230000 */ lw $v1, ($t1)
/* 396ED4 E009A924 24080006 */ addiu $t0, $zero, 6
/* 396ED8 E009A928 24620208 */ addiu $v0, $v1, 0x208
/* 396EDC E009A92C AD220000 */ sw $v0, ($t1)
/* 396EE0 E009A930 AC640200 */ sw $a0, 0x200($v1)
/* 396EE4 E009A934 AC760204 */ sw $s6, 0x204($v1)
.LE009A938:
/* 396EE8 E009A938 8D240000 */ lw $a0, ($t1)
/* 396EEC E009A93C 00122840 */ sll $a1, $s2, 1
/* 396EF0 E009A940 24820008 */ addiu $v0, $a0, 8
/* 396EF4 E009A944 14A00004 */ bnez $a1, .LE009A958
/* 396EF8 E009A948 AD220000 */ sw $v0, ($t1)
/* 396EFC E009A94C 00121440 */ sll $v0, $s2, 0x11
/* 396F00 E009A950 08026A60 */ j .LE009A980
/* 396F04 E009A954 34420402 */ ori $v0, $v0, 0x402
.LE009A958:
/* 396F08 E009A958 14AA0003 */ bne $a1, $t2, .LE009A968
/* 396F0C E009A95C 30C200FF */ andi $v0, $a2, 0xff
/* 396F10 E009A960 08026A62 */ j .LE009A988
/* 396F14 E009A964 AC8E0000 */ sw $t6, ($a0)
.LE009A968:
/* 396F18 E009A968 00021400 */ sll $v0, $v0, 0x10
/* 396F1C E009A96C 00121A80 */ sll $v1, $s2, 0xa
/* 396F20 E009A970 3063FC00 */ andi $v1, $v1, 0xfc00
/* 396F24 E009A974 00431025 */ or $v0, $v0, $v1
/* 396F28 E009A978 30E300FF */ andi $v1, $a3, 0xff
/* 396F2C E009A97C 00431025 */ or $v0, $v0, $v1
.LE009A980:
/* 396F30 E009A980 004B1025 */ or $v0, $v0, $t3
/* 396F34 E009A984 AC820000 */ sw $v0, ($a0)
.LE009A988:
/* 396F38 E009A988 14A00003 */ bnez $a1, .LE009A998
/* 396F3C E009A98C 00000000 */ nop
/* 396F40 E009A990 08026A71 */ j .LE009A9C4
/* 396F44 E009A994 AC8D0004 */ sw $t5, 4($a0)
.LE009A998:
/* 396F48 E009A998 14AA0003 */ bne $a1, $t2, .LE009A9A8
/* 396F4C E009A99C 310200FF */ andi $v0, $t0, 0xff
/* 396F50 E009A9A0 08026A71 */ j .LE009A9C4
/* 396F54 E009A9A4 AC8C0004 */ sw $t4, 4($a0)
.LE009A9A8:
/* 396F58 E009A9A8 00021400 */ sll $v0, $v0, 0x10
/* 396F5C E009A9AC 30C300FF */ andi $v1, $a2, 0xff
/* 396F60 E009A9B0 00031A00 */ sll $v1, $v1, 8
/* 396F64 E009A9B4 00431025 */ or $v0, $v0, $v1
/* 396F68 E009A9B8 30E300FF */ andi $v1, $a3, 0xff
/* 396F6C E009A9BC 00431025 */ or $v0, $v0, $v1
/* 396F70 E009A9C0 AC820004 */ sw $v0, 4($a0)
.LE009A9C4:
/* 396F74 E009A9C4 24E70004 */ addiu $a3, $a3, 4
/* 396F78 E009A9C8 24C60004 */ addiu $a2, $a2, 4
/* 396F7C E009A9CC 26520001 */ addiu $s2, $s2, 1
/* 396F80 E009A9D0 2A42000F */ slti $v0, $s2, 0xf
/* 396F84 E009A9D4 1440FFD8 */ bnez $v0, .LE009A938
/* 396F88 E009A9D8 25080004 */ addiu $t0, $t0, 4
.LE009A9DC:
/* 396F8C E009A9DC 3C03D838 */ lui $v1, 0xd838
/* 396F90 E009A9E0 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 396F94 E009A9E4 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 396F98 E009A9E8 8C820000 */ lw $v0, ($a0)
/* 396F9C E009A9EC 34630002 */ ori $v1, $v1, 2
/* 396FA0 E009A9F0 0040282D */ daddu $a1, $v0, $zero
/* 396FA4 E009A9F4 24420008 */ addiu $v0, $v0, 8
/* 396FA8 E009A9F8 AC820000 */ sw $v0, ($a0)
/* 396FAC E009A9FC ACA30000 */ sw $v1, ($a1)
/* 396FB0 E009AA00 24030040 */ addiu $v1, $zero, 0x40
/* 396FB4 E009AA04 ACA30004 */ sw $v1, 4($a1)
/* 396FB8 E009AA08 24430008 */ addiu $v1, $v0, 8
/* 396FBC E009AA0C AC830000 */ sw $v1, ($a0)
/* 396FC0 E009AA10 3C03E700 */ lui $v1, 0xe700
/* 396FC4 E009AA14 AC430000 */ sw $v1, ($v0)
/* 396FC8 E009AA18 AC400004 */ sw $zero, 4($v0)
/* 396FCC E009AA1C 8FBF00CC */ lw $ra, 0xcc($sp)
/* 396FD0 E009AA20 8FBE00C8 */ lw $fp, 0xc8($sp)
/* 396FD4 E009AA24 8FB700C4 */ lw $s7, 0xc4($sp)
/* 396FD8 E009AA28 8FB600C0 */ lw $s6, 0xc0($sp)
/* 396FDC E009AA2C 8FB500BC */ lw $s5, 0xbc($sp)
/* 396FE0 E009AA30 8FB400B8 */ lw $s4, 0xb8($sp)
/* 396FE4 E009AA34 8FB300B4 */ lw $s3, 0xb4($sp)
/* 396FE8 E009AA38 8FB200B0 */ lw $s2, 0xb0($sp)
/* 396FEC E009AA3C 8FB100AC */ lw $s1, 0xac($sp)
/* 396FF0 E009AA40 8FB000A8 */ lw $s0, 0xa8($sp)
/* 396FF4 E009AA44 D7B600D8 */ ldc1 $f22, 0xd8($sp)
/* 396FF8 E009AA48 D7B400D0 */ ldc1 $f20, 0xd0($sp)
/* 396FFC E009AA4C 03E00008 */ jr $ra
/* 397000 E009AA50 27BD00E0 */ addiu $sp, $sp, 0xe0
/* 397004 E009AA54 00000000 */ nop
/* 397008 E009AA58 00000000 */ nop
/* 39700C E009AA5C 00000000 */ nop

View File

@ -1,299 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0044E20
.double 0.1
dlabel D_E0044E28
.double 0.005
dlabel D_E0044E30
.double 0.4
dlabel D_E0044E38
.double 0.4
dlabel jtbl_E0044E40
.word .LE0044284, .LE0044284, .LE0044344, .LE00442A8, .LE0044344, .LE0044344
dlabel D_E0044E58
.double 0.01
.section .text
glabel stars_shimmer_main
/* 354F60 E0044000 27BDFF80 */ addiu $sp, $sp, -0x80
/* 354F64 E0044004 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 354F68 E0044008 4485A000 */ mtc1 $a1, $f20
/* 354F6C E004400C F7B60058 */ sdc1 $f22, 0x58($sp)
/* 354F70 E0044010 4486B000 */ mtc1 $a2, $f22
/* 354F74 E0044014 AFB3003C */ sw $s3, 0x3c($sp)
/* 354F78 E0044018 0080982D */ daddu $s3, $a0, $zero
/* 354F7C E004401C F7B80060 */ sdc1 $f24, 0x60($sp)
/* 354F80 E0044020 4487C000 */ mtc1 $a3, $f24
/* 354F84 E0044024 27A40010 */ addiu $a0, $sp, 0x10
/* 354F88 E0044028 AFB20038 */ sw $s2, 0x38($sp)
/* 354F8C E004402C 8FB20098 */ lw $s2, 0x98($sp)
/* 354F90 E0044030 3C02E004 */ lui $v0, %hi(stars_shimmer_init)
/* 354F94 E0044034 2442441C */ addiu $v0, $v0, %lo(stars_shimmer_init)
/* 354F98 E0044038 AFA20018 */ sw $v0, 0x18($sp)
/* 354F9C E004403C 3C02E004 */ lui $v0, %hi(stars_shimmer_update)
/* 354FA0 E0044040 24424424 */ addiu $v0, $v0, %lo(stars_shimmer_update)
/* 354FA4 E0044044 AFA2001C */ sw $v0, 0x1c($sp)
/* 354FA8 E0044048 3C02E004 */ lui $v0, %hi(stars_shimmer_render)
/* 354FAC E004404C 244248E4 */ addiu $v0, $v0, %lo(stars_shimmer_render)
/* 354FB0 E0044050 AFA20020 */ sw $v0, 0x20($sp)
/* 354FB4 E0044054 24020022 */ addiu $v0, $zero, 0x22
/* 354FB8 E0044058 AFBF0048 */ sw $ra, 0x48($sp)
/* 354FBC E004405C AFB50044 */ sw $s5, 0x44($sp)
/* 354FC0 E0044060 AFB40040 */ sw $s4, 0x40($sp)
/* 354FC4 E0044064 AFB10034 */ sw $s1, 0x34($sp)
/* 354FC8 E0044068 AFB00030 */ sw $s0, 0x30($sp)
/* 354FCC E004406C F7BE0078 */ sdc1 $f30, 0x78($sp)
/* 354FD0 E0044070 F7BC0070 */ sdc1 $f28, 0x70($sp)
/* 354FD4 E0044074 F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 354FD8 E0044078 AFA00010 */ sw $zero, 0x10($sp)
/* 354FDC E004407C AFA00024 */ sw $zero, 0x24($sp)
/* 354FE0 E0044080 AFA20014 */ sw $v0, 0x14($sp)
/* 354FE4 E0044084 0C080124 */ jal shim_create_effect_instance
/* 354FE8 E0044088 26520001 */ addiu $s2, $s2, 1
/* 354FEC E004408C 00122040 */ sll $a0, $s2, 1
/* 354FF0 E0044090 00922021 */ addu $a0, $a0, $s2
/* 354FF4 E0044094 00042080 */ sll $a0, $a0, 2
/* 354FF8 E0044098 00922023 */ subu $a0, $a0, $s2
/* 354FFC E004409C 00042080 */ sll $a0, $a0, 2
/* 355000 E00440A0 0040802D */ daddu $s0, $v0, $zero
/* 355004 E00440A4 0C08012C */ jal shim_general_heap_malloc
/* 355008 E00440A8 AE120008 */ sw $s2, 8($s0)
/* 35500C E00440AC 0040182D */ daddu $v1, $v0, $zero
/* 355010 E00440B0 14600003 */ bnez $v1, .LE00440C0
/* 355014 E00440B4 AE03000C */ sw $v1, 0xc($s0)
.LE00440B8:
/* 355018 E00440B8 0801102E */ j .LE00440B8
/* 35501C E00440BC 00000000 */ nop
.LE00440C0:
/* 355020 E00440C0 24020006 */ addiu $v0, $zero, 6
/* 355024 E00440C4 56620004 */ bnel $s3, $v0, .LE00440D8
/* 355028 E00440C8 A4600000 */ sh $zero, ($v1)
/* 35502C E00440CC 24020001 */ addiu $v0, $zero, 1
/* 355030 E00440D0 A4620000 */ sh $v0, ($v1)
/* 355034 E00440D4 24130003 */ addiu $s3, $zero, 3
.LE00440D8:
/* 355038 E00440D8 E4740004 */ swc1 $f20, 4($v1)
/* 35503C E00440DC E4760008 */ swc1 $f22, 8($v1)
/* 355040 E00440E0 E478000C */ swc1 $f24, 0xc($v1)
/* 355044 E00440E4 AC600020 */ sw $zero, 0x20($v1)
/* 355048 E00440E8 A4730002 */ sh $s3, 2($v1)
/* 35504C E00440EC 8FA2009C */ lw $v0, 0x9c($sp)
/* 355050 E00440F0 24110001 */ addiu $s1, $zero, 1
/* 355054 E00440F4 AC620024 */ sw $v0, 0x24($v1)
/* 355058 E00440F8 0232102A */ slt $v0, $s1, $s2
/* 35505C E00440FC 104000B8 */ beqz $v0, .LE00443E0
/* 355060 E0044100 2463002C */ addiu $v1, $v1, 0x2c
/* 355064 E0044104 3C15E004 */ lui $s5, %hi(jtbl_E0044E40)
/* 355068 E0044108 26B54E40 */ addiu $s5, $s5, %lo(jtbl_E0044E40)
/* 35506C E004410C 24700018 */ addiu $s0, $v1, 0x18
/* 355070 E0044110 2654FFFF */ addiu $s4, $s2, -1
/* 355074 E0044114 44940000 */ mtc1 $s4, $f0
/* 355078 E0044118 00000000 */ nop
/* 35507C E004411C 46800020 */ cvt.s.w $f0, $f0
/* 355080 E0044120 4480D000 */ mtc1 $zero, $f26
/* 355084 E0044124 3C01E004 */ lui $at, %hi(D_E0044E20)
/* 355088 E0044128 D43E4E20 */ ldc1 $f30, %lo(D_E0044E20)($at)
/* 35508C E004412C 3C0143B4 */ lui $at, 0x43b4
/* 355090 E0044130 44811000 */ mtc1 $at, $f2
/* 355094 E0044134 3C01E004 */ lui $at, %hi(D_E0044E28)
/* 355098 E0044138 D43C4E28 */ ldc1 $f28, %lo(D_E0044E28)($at)
/* 35509C E004413C 46001083 */ div.s $f2, $f2, $f0
/* 3550A0 E0044140 E7A20028 */ swc1 $f2, 0x28($sp)
.LE0044144:
/* 3550A4 E0044144 44910000 */ mtc1 $s1, $f0
/* 3550A8 E0044148 00000000 */ nop
/* 3550AC E004414C 46800020 */ cvt.s.w $f0, $f0
/* 3550B0 E0044150 C7AA0028 */ lwc1 $f10, 0x28($sp)
/* 3550B4 E0044154 2A620002 */ slti $v0, $s3, 2
/* 3550B8 E0044158 46005582 */ mul.s $f22, $f10, $f0
/* 3550BC E004415C 00000000 */ nop
/* 3550C0 E0044160 54400007 */ bnel $v0, $zero, .LE0044180
/* 3550C4 E0044164 461AB600 */ add.s $f24, $f22, $f26
/* 3550C8 E0044168 0C080138 */ jal shim_rand_int
/* 3550CC E004416C 24040167 */ addiu $a0, $zero, 0x167
/* 3550D0 E0044170 44820000 */ mtc1 $v0, $f0
/* 3550D4 E0044174 00000000 */ nop
/* 3550D8 E0044178 46800020 */ cvt.s.w $f0, $f0
/* 3550DC E004417C 4600B600 */ add.s $f24, $f22, $f0
.LE0044180:
/* 3550E0 E0044180 3C014120 */ lui $at, 0x4120
/* 3550E4 E0044184 4481A000 */ mtc1 $at, $f20
/* 3550E8 E0044188 00000000 */ nop
/* 3550EC E004418C 4614B502 */ mul.s $f20, $f22, $f20
/* 3550F0 E0044190 00000000 */ nop
/* 3550F4 E0044194 3C0142B4 */ lui $at, 0x42b4
/* 3550F8 E0044198 44810000 */ mtc1 $at, $f0
/* 3550FC E004419C 4600C306 */ mov.s $f12, $f24
/* 355100 E00441A0 0C080140 */ jal shim_sin_deg
/* 355104 E00441A4 4600A501 */ sub.s $f20, $f20, $f0
/* 355108 E00441A8 4600C306 */ mov.s $f12, $f24
/* 35510C E00441AC 0C080144 */ jal shim_cos_deg
/* 355110 E00441B0 46000586 */ mov.s $f22, $f0
/* 355114 E00441B4 4600A306 */ mov.s $f12, $f20
/* 355118 E00441B8 0C080140 */ jal shim_sin_deg
/* 35511C E00441BC 46000506 */ mov.s $f20, $f0
/* 355120 E00441C0 C7AA0090 */ lwc1 $f10, 0x90($sp)
/* 355124 E00441C4 460050A1 */ cvt.d.s $f2, $f10
/* 355128 E00441C8 3C01E004 */ lui $at, %hi(D_E0044E30)
/* 35512C E00441CC D42A4E30 */ ldc1 $f10, %lo(D_E0044E30)($at)
/* 355130 E00441D0 462A1202 */ mul.d $f8, $f2, $f10
/* 355134 E00441D4 00000000 */ nop
/* 355138 E00441D8 463E1082 */ mul.d $f2, $f2, $f30
/* 35513C E00441DC 00000000 */ nop
/* 355140 E00441E0 C7AA0094 */ lwc1 $f10, 0x94($sp)
/* 355144 E00441E4 46005121 */ cvt.d.s $f4, $f10
/* 355148 E00441E8 463E2182 */ mul.d $f6, $f4, $f30
/* 35514C E00441EC 00000000 */ nop
/* 355150 E00441F0 3C01E004 */ lui $at, %hi(D_E0044E38)
/* 355154 E00441F4 D42A4E38 */ ldc1 $f10, %lo(D_E0044E38)($at)
/* 355158 E00441F8 462A2102 */ mul.d $f4, $f4, $f10
/* 35515C E00441FC 00000000 */ nop
/* 355160 E0044200 46000021 */ cvt.d.s $f0, $f0
/* 355164 E0044204 46201082 */ mul.d $f2, $f2, $f0
/* 355168 E0044208 00000000 */ nop
/* 35516C E004420C 46203182 */ mul.d $f6, $f6, $f0
/* 355170 E0044210 00000000 */ nop
/* 355174 E0044214 2622001E */ addiu $v0, $s1, 0x1e
/* 355178 E0044218 AE02000C */ sw $v0, 0xc($s0)
/* 35517C E004421C 3C013F80 */ lui $at, 0x3f80
/* 355180 E0044220 44810000 */ mtc1 $at, $f0
/* 355184 E0044224 2622FFFF */ addiu $v0, $s1, -1
/* 355188 E0044228 AE000008 */ sw $zero, 8($s0)
/* 35518C E004422C E6000004 */ swc1 $f0, 4($s0)
/* 355190 E0044230 C7AA0094 */ lwc1 $f10, 0x94($sp)
/* 355194 E0044234 46224201 */ sub.d $f8, $f8, $f2
/* 355198 E0044238 44940000 */ mtc1 $s4, $f0
/* 35519C E004423C 00000000 */ nop
/* 3551A0 E0044240 46800020 */ cvt.s.w $f0, $f0
/* 3551A4 E0044244 46005003 */ div.s $f0, $f10, $f0
/* 3551A8 E0044248 46262101 */ sub.d $f4, $f4, $f6
/* 3551AC E004424C 44821000 */ mtc1 $v0, $f2
/* 3551B0 E0044250 00000000 */ nop
/* 3551B4 E0044254 468010A0 */ cvt.s.w $f2, $f2
/* 3551B8 E0044258 2E620006 */ sltiu $v0, $s3, 6
/* 3551BC E004425C 46020182 */ mul.s $f6, $f0, $f2
/* 3551C0 E0044260 00000000 */ nop
/* 3551C4 E0044264 46204220 */ cvt.s.d $f8, $f8
/* 3551C8 E0044268 10400036 */ beqz $v0, .LE0044344
/* 3551CC E004426C 46202120 */ cvt.s.d $f4, $f4
/* 3551D0 E0044270 00131080 */ sll $v0, $s3, 2
/* 3551D4 E0044274 00551021 */ addu $v0, $v0, $s5
/* 3551D8 E0044278 8C420000 */ lw $v0, ($v0)
/* 3551DC E004427C 00400008 */ jr $v0
/* 3551E0 E0044280 00000000 */ nop
.LE0044284:
/* 3551E4 E0044284 4608B002 */ mul.s $f0, $f22, $f8
/* 3551E8 E0044288 00000000 */ nop
/* 3551EC E004428C 4604A082 */ mul.s $f2, $f20, $f4
/* 3551F0 E0044290 00000000 */ nop
/* 3551F4 E0044294 AE000000 */ sw $zero, ($s0)
/* 3551F8 E0044298 AE00FFF4 */ sw $zero, -0xc($s0)
/* 3551FC E004429C E600FFF8 */ swc1 $f0, -8($s0)
/* 355200 E00442A0 080110F4 */ j .LE00443D0
/* 355204 E00442A4 E602FFFC */ swc1 $f2, -4($s0)
.LE00442A8:
/* 355208 E00442A8 0C080138 */ jal shim_rand_int
/* 35520C E00442AC 24040064 */ addiu $a0, $zero, 0x64
/* 355210 E00442B0 C7AA0090 */ lwc1 $f10, 0x90($sp)
/* 355214 E00442B4 460AB002 */ mul.s $f0, $f22, $f10
/* 355218 E00442B8 00000000 */ nop
/* 35521C E00442BC 44821000 */ mtc1 $v0, $f2
/* 355220 E00442C0 00000000 */ nop
/* 355224 E00442C4 468010A0 */ cvt.s.w $f2, $f2
/* 355228 E00442C8 46020002 */ mul.s $f0, $f0, $f2
/* 35522C E00442CC 00000000 */ nop
/* 355230 E00442D0 46000021 */ cvt.d.s $f0, $f0
/* 355234 E00442D4 463C0002 */ mul.d $f0, $f0, $f28
/* 355238 E00442D8 00000000 */ nop
/* 35523C E00442DC 24040064 */ addiu $a0, $zero, 0x64
/* 355240 E00442E0 46200020 */ cvt.s.d $f0, $f0
/* 355244 E00442E4 0C080138 */ jal shim_rand_int
/* 355248 E00442E8 E600FFEC */ swc1 $f0, -0x14($s0)
/* 35524C E00442EC C7AA0094 */ lwc1 $f10, 0x94($sp)
/* 355250 E00442F0 460AA002 */ mul.s $f0, $f20, $f10
/* 355254 E00442F4 00000000 */ nop
/* 355258 E00442F8 44821000 */ mtc1 $v0, $f2
/* 35525C E00442FC 00000000 */ nop
/* 355260 E0044300 468010A0 */ cvt.s.w $f2, $f2
/* 355264 E0044304 46020002 */ mul.s $f0, $f0, $f2
/* 355268 E0044308 00000000 */ nop
/* 35526C E004430C 8E02000C */ lw $v0, 0xc($s0)
/* 355270 E0044310 46000021 */ cvt.d.s $f0, $f0
/* 355274 E0044314 463C0002 */ mul.d $f0, $f0, $f28
/* 355278 E0044318 00000000 */ nop
/* 35527C E004431C 00111840 */ sll $v1, $s1, 1
/* 355280 E0044320 AE00FFF4 */ sw $zero, -0xc($s0)
/* 355284 E0044324 E61AFFFC */ swc1 $f26, -4($s0)
/* 355288 E0044328 E61AFFF8 */ swc1 $f26, -8($s0)
/* 35528C E004432C E61A0000 */ swc1 $f26, ($s0)
/* 355290 E0044330 00431021 */ addu $v0, $v0, $v1
/* 355294 E0044334 AE02000C */ sw $v0, 0xc($s0)
/* 355298 E0044338 46200020 */ cvt.s.d $f0, $f0
/* 35529C E004433C 080110F4 */ j .LE00443D0
/* 3552A0 E0044340 E600FFF0 */ swc1 $f0, -0x10($s0)
.LE0044344:
/* 3552A4 E0044344 4608B002 */ mul.s $f0, $f22, $f8
/* 3552A8 E0044348 00000000 */ nop
/* 3552AC E004434C 4608A082 */ mul.s $f2, $f20, $f8
/* 3552B0 E0044350 00000000 */ nop
/* 3552B4 E0044354 2404000A */ addiu $a0, $zero, 0xa
/* 3552B8 E0044358 E606FFF0 */ swc1 $f6, -0x10($s0)
/* 3552BC E004435C E600FFF8 */ swc1 $f0, -8($s0)
/* 3552C0 E0044360 0C080138 */ jal shim_rand_int
/* 3552C4 E0044364 E602FFF4 */ swc1 $f2, -0xc($s0)
/* 3552C8 E0044368 00021023 */ negu $v0, $v0
/* 3552CC E004436C 3C013CF5 */ lui $at, 0x3cf5
/* 3552D0 E0044370 3421C28F */ ori $at, $at, 0xc28f
/* 3552D4 E0044374 44811000 */ mtc1 $at, $f2
/* 3552D8 E0044378 44820000 */ mtc1 $v0, $f0
/* 3552DC E004437C 00000000 */ nop
/* 3552E0 E0044380 46800020 */ cvt.s.w $f0, $f0
/* 3552E4 E0044384 46020002 */ mul.s $f0, $f0, $f2
/* 3552E8 E0044388 00000000 */ nop
/* 3552EC E004438C 2404000A */ addiu $a0, $zero, 0xa
/* 3552F0 E0044390 0C080138 */ jal shim_rand_int
/* 3552F4 E0044394 E600FFFC */ swc1 $f0, -4($s0)
/* 3552F8 E0044398 3C013D23 */ lui $at, 0x3d23
/* 3552FC E004439C 3421D70A */ ori $at, $at, 0xd70a
/* 355300 E00443A0 44811000 */ mtc1 $at, $f2
/* 355304 E00443A4 44820000 */ mtc1 $v0, $f0
/* 355308 E00443A8 00000000 */ nop
/* 35530C E00443AC 46800020 */ cvt.s.w $f0, $f0
/* 355310 E00443B0 46020002 */ mul.s $f0, $f0, $f2
/* 355314 E00443B4 00000000 */ nop
/* 355318 E00443B8 3C01E004 */ lui $at, %hi(D_E0044E58)
/* 35531C E00443BC D4224E58 */ ldc1 $f2, %lo(D_E0044E58)($at)
/* 355320 E00443C0 46000021 */ cvt.d.s $f0, $f0
/* 355324 E00443C4 46220000 */ add.d $f0, $f0, $f2
/* 355328 E00443C8 46200020 */ cvt.s.d $f0, $f0
/* 35532C E00443CC E6000000 */ swc1 $f0, ($s0)
.LE00443D0:
/* 355330 E00443D0 26310001 */ addiu $s1, $s1, 1
/* 355334 E00443D4 0232102A */ slt $v0, $s1, $s2
/* 355338 E00443D8 1440FF5A */ bnez $v0, .LE0044144
/* 35533C E00443DC 2610002C */ addiu $s0, $s0, 0x2c
.LE00443E0:
/* 355340 E00443E0 8FBF0048 */ lw $ra, 0x48($sp)
/* 355344 E00443E4 8FB50044 */ lw $s5, 0x44($sp)
/* 355348 E00443E8 8FB40040 */ lw $s4, 0x40($sp)
/* 35534C E00443EC 8FB3003C */ lw $s3, 0x3c($sp)
/* 355350 E00443F0 8FB20038 */ lw $s2, 0x38($sp)
/* 355354 E00443F4 8FB10034 */ lw $s1, 0x34($sp)
/* 355358 E00443F8 8FB00030 */ lw $s0, 0x30($sp)
/* 35535C E00443FC D7BE0078 */ ldc1 $f30, 0x78($sp)
/* 355360 E0044400 D7BC0070 */ ldc1 $f28, 0x70($sp)
/* 355364 E0044404 D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 355368 E0044408 D7B80060 */ ldc1 $f24, 0x60($sp)
/* 35536C E004440C D7B60058 */ ldc1 $f22, 0x58($sp)
/* 355370 E0044410 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 355374 E0044414 03E00008 */ jr $ra
/* 355378 E0044418 27BD0080 */ addiu $sp, $sp, 0x80

View File

@ -1,349 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0044E60
.double 0.01
dlabel D_E0044E68
.double 0.96
dlabel D_E0044E70
.double 0.1
dlabel jtbl_E0044E78
.word .LE0044514, .LE0044514, .LE0044704, .LE00446B0, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE004462C, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE0044704, .LE004462C
dlabel D_E0044EF8
.double -0.02
.section .text
glabel stars_shimmer_update
/* 355384 E0044424 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 355388 E0044428 AFB40020 */ sw $s4, 0x20($sp)
/* 35538C E004442C 0080A02D */ daddu $s4, $a0, $zero
/* 355390 E0044430 AFBF0034 */ sw $ra, 0x34($sp)
/* 355394 E0044434 AFBE0030 */ sw $fp, 0x30($sp)
/* 355398 E0044438 AFB7002C */ sw $s7, 0x2c($sp)
/* 35539C E004443C AFB60028 */ sw $s6, 0x28($sp)
/* 3553A0 E0044440 AFB50024 */ sw $s5, 0x24($sp)
/* 3553A4 E0044444 AFB3001C */ sw $s3, 0x1c($sp)
/* 3553A8 E0044448 AFB20018 */ sw $s2, 0x18($sp)
/* 3553AC E004444C AFB10014 */ sw $s1, 0x14($sp)
/* 3553B0 E0044450 AFB00010 */ sw $s0, 0x10($sp)
/* 3553B4 E0044454 F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3553B8 E0044458 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3553BC E004445C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3553C0 E0044460 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3553C4 E0044464 8E84000C */ lw $a0, 0xc($s4)
/* 3553C8 E0044468 0000A82D */ daddu $s5, $zero, $zero
/* 3553CC E004446C 0080B02D */ daddu $s6, $a0, $zero
/* 3553D0 E0044470 8C820020 */ lw $v0, 0x20($a0)
/* 3553D4 E0044474 8C830024 */ lw $v1, 0x24($a0)
/* 3553D8 E0044478 84930002 */ lh $s3, 2($a0)
/* 3553DC E004447C 24420001 */ addiu $v0, $v0, 1
/* 3553E0 E0044480 0040902D */ daddu $s2, $v0, $zero
/* 3553E4 E0044484 2463FFFF */ addiu $v1, $v1, -1
/* 3553E8 E0044488 2E620002 */ sltiu $v0, $s3, 2
/* 3553EC E004448C AC830024 */ sw $v1, 0x24($a0)
/* 3553F0 E0044490 14400006 */ bnez $v0, .LE00444AC
/* 3553F4 E0044494 AC920020 */ sw $s2, 0x20($a0)
/* 3553F8 E0044498 24020003 */ addiu $v0, $zero, 3
/* 3553FC E004449C 12620003 */ beq $s3, $v0, .LE00444AC
/* 355400 E00444A0 2A62000A */ slti $v0, $s3, 0xa
/* 355404 E00444A4 54400004 */ bnel $v0, $zero, .LE00444B8
/* 355408 E00444A8 2484002C */ addiu $a0, $a0, 0x2c
.LE00444AC:
/* 35540C E00444AC 8C820024 */ lw $v0, 0x24($a0)
/* 355410 E00444B0 044000FA */ bltz $v0, .LE004489C
/* 355414 E00444B4 2484002C */ addiu $a0, $a0, 0x2c
.LE00444B8:
/* 355418 E00444B8 8E820008 */ lw $v0, 8($s4)
/* 35541C E00444BC 2442FFFF */ addiu $v0, $v0, -1
/* 355420 E00444C0 184000EA */ blez $v0, .LE004486C
/* 355424 E00444C4 0000882D */ daddu $s1, $zero, $zero
/* 355428 E00444C8 3C03E004 */ lui $v1, %hi(jtbl_E0044E78)
/* 35542C E00444CC 24634E78 */ addiu $v1, $v1, %lo(jtbl_E0044E78)
/* 355430 E00444D0 00131080 */ sll $v0, $s3, 2
/* 355434 E00444D4 0043F021 */ addu $fp, $v0, $v1
/* 355438 E00444D8 3C17E004 */ lui $s7, %hi(D_E0044E04)
/* 35543C E00444DC 26F74E04 */ addiu $s7, $s7, %lo(D_E0044E04)
/* 355440 E00444E0 24900014 */ addiu $s0, $a0, 0x14
/* 355444 E00444E4 3C01E004 */ lui $at, %hi(D_E0044E60)
/* 355448 E00444E8 D4384E60 */ ldc1 $f24, %lo(D_E0044E60)($at)
/* 35544C E00444EC 3C01E004 */ lui $at, %hi(D_E0044E68)
/* 355450 E00444F0 D43A4E68 */ ldc1 $f26, %lo(D_E0044E68)($at)
/* 355454 E00444F4 3C01E004 */ lui $at, %hi(D_E0044E70)
/* 355458 E00444F8 D4364E70 */ ldc1 $f22, %lo(D_E0044E70)($at)
.LE00444FC:
/* 35545C E00444FC 2E62001F */ sltiu $v0, $s3, 0x1f
/* 355460 E0044500 10400081 */ beqz $v0, .LE0044708
/* 355464 E0044504 02511021 */ addu $v0, $s2, $s1
/* 355468 E0044508 8FC20000 */ lw $v0, ($fp)
/* 35546C E004450C 00400008 */ jr $v0
/* 355470 E0044510 00000000 */ nop
.LE0044514:
/* 355474 E0044514 02511021 */ addu $v0, $s2, $s1
/* 355478 E0044518 30420007 */ andi $v0, $v0, 7
/* 35547C E004451C 2643FFFF */ addiu $v1, $s2, -1
/* 355480 E0044520 C6000004 */ lwc1 $f0, 4($s0)
/* 355484 E0044524 3C01E004 */ lui $at, %hi(D_E0044EF8)
/* 355488 E0044528 D4224EF8 */ ldc1 $f2, %lo(D_E0044EF8)($at)
/* 35548C E004452C 46000021 */ cvt.d.s $f0, $f0
/* 355490 E0044530 46220000 */ add.d $f0, $f0, $f2
/* 355494 E0044534 AE020014 */ sw $v0, 0x14($s0)
/* 355498 E0044538 2862000E */ slti $v0, $v1, 0xe
/* 35549C E004453C 46200020 */ cvt.s.d $f0, $f0
/* 3554A0 E0044540 10400017 */ beqz $v0, .LE00445A0
/* 3554A4 E0044544 E6000004 */ swc1 $f0, 4($s0)
/* 3554A8 E0044548 3C02E004 */ lui $v0, %hi(D_E0044DF4)
/* 3554AC E004454C 00431021 */ addu $v0, $v0, $v1
/* 3554B0 E0044550 90424DF4 */ lbu $v0, %lo(D_E0044DF4)($v0)
/* 3554B4 E0044554 44820000 */ mtc1 $v0, $f0
/* 3554B8 E0044558 00000000 */ nop
/* 3554BC E004455C 46800020 */ cvt.s.w $f0, $f0
/* 3554C0 E0044560 46000021 */ cvt.d.s $f0, $f0
/* 3554C4 E0044564 46380002 */ mul.d $f0, $f0, $f24
/* 3554C8 E0044568 00000000 */ nop
/* 3554CC E004456C C604FFFC */ lwc1 $f4, -4($s0)
/* 3554D0 E0044570 46200020 */ cvt.s.d $f0, $f0
/* 3554D4 E0044574 46002102 */ mul.s $f4, $f4, $f0
/* 3554D8 E0044578 00000000 */ nop
/* 3554DC E004457C C6020000 */ lwc1 $f2, ($s0)
/* 3554E0 E0044580 46001082 */ mul.s $f2, $f2, $f0
/* 3554E4 E0044584 00000000 */ nop
/* 3554E8 E0044588 C6000004 */ lwc1 $f0, 4($s0)
/* 3554EC E004458C 46001080 */ add.s $f2, $f2, $f0
/* 3554F0 E0044590 00771021 */ addu $v0, $v1, $s7
/* 3554F4 E0044594 E604FFF0 */ swc1 $f4, -0x10($s0)
/* 3554F8 E0044598 080111B4 */ j .LE00446D0
/* 3554FC E004459C E602FFF4 */ swc1 $f2, -0xc($s0)
.LE00445A0:
/* 355500 E00445A0 8E820008 */ lw $v0, 8($s4)
/* 355504 E00445A4 3C0143B4 */ lui $at, 0x43b4
/* 355508 E00445A8 44811000 */ mtc1 $at, $f2
/* 35550C E00445AC 2442FFFF */ addiu $v0, $v0, -1
/* 355510 E00445B0 44820000 */ mtc1 $v0, $f0
/* 355514 E00445B4 00000000 */ nop
/* 355518 E00445B8 46800020 */ cvt.s.w $f0, $f0
/* 35551C E00445BC 46001083 */ div.s $f2, $f2, $f0
/* 355520 E00445C0 44910000 */ mtc1 $s1, $f0
/* 355524 E00445C4 00000000 */ nop
/* 355528 E00445C8 46800020 */ cvt.s.w $f0, $f0
/* 35552C E00445CC 46001082 */ mul.s $f2, $f2, $f0
/* 355530 E00445D0 00000000 */ nop
/* 355534 E00445D4 3C014270 */ lui $at, 0x4270
/* 355538 E00445D8 44810000 */ mtc1 $at, $f0
/* 35553C E00445DC 32220001 */ andi $v0, $s1, 1
/* 355540 E00445E0 10400005 */ beqz $v0, .LE00445F8
/* 355544 E00445E4 46001500 */ add.s $f20, $f2, $f0
/* 355548 E00445E8 3C0142F0 */ lui $at, 0x42f0
/* 35554C E00445EC 44810000 */ mtc1 $at, $f0
/* 355550 E00445F0 00000000 */ nop
/* 355554 E00445F4 4600A501 */ sub.s $f20, $f20, $f0
.LE00445F8:
/* 355558 E00445F8 4600A306 */ mov.s $f12, $f20
/* 35555C E00445FC 2402000A */ addiu $v0, $zero, 0xa
/* 355560 E0044600 0C080140 */ jal shim_sin_deg
/* 355564 E0044604 A6C20002 */ sh $v0, 2($s6)
/* 355568 E0044608 4600A306 */ mov.s $f12, $f20
/* 35556C E004460C 0C080144 */ jal shim_cos_deg
/* 355570 E0044610 E600FFFC */ swc1 $f0, -4($s0)
/* 355574 E0044614 3C01BD4C */ lui $at, 0xbd4c
/* 355578 E0044618 3421CCCD */ ori $at, $at, 0xcccd
/* 35557C E004461C 44811000 */ mtc1 $at, $f2
/* 355580 E0044620 E6000000 */ swc1 $f0, ($s0)
/* 355584 E0044624 08011215 */ j .LE0044854
/* 355588 E0044628 E6020004 */ swc1 $f2, 4($s0)
.LE004462C:
/* 35558C E004462C C6020000 */ lwc1 $f2, ($s0)
/* 355590 E0044630 460010A1 */ cvt.d.s $f2, $f2
/* 355594 E0044634 463A1082 */ mul.d $f2, $f2, $f26
/* 355598 E0044638 00000000 */ nop
/* 35559C E004463C C600FFFC */ lwc1 $f0, -4($s0)
/* 3555A0 E0044640 46000021 */ cvt.d.s $f0, $f0
/* 3555A4 E0044644 463A0002 */ mul.d $f0, $f0, $f26
/* 3555A8 E0044648 00000000 */ nop
/* 3555AC E004464C C6040008 */ lwc1 $f4, 8($s0)
/* 3555B0 E0044650 46002121 */ cvt.d.s $f4, $f4
/* 3555B4 E0044654 4624B181 */ sub.d $f6, $f22, $f4
/* 3555B8 E0044658 46363182 */ mul.d $f6, $f6, $f22
/* 3555BC E004465C 00000000 */ nop
/* 3555C0 E0044660 02511021 */ addu $v0, $s2, $s1
/* 3555C4 E0044664 30420007 */ andi $v0, $v0, 7
/* 3555C8 E0044668 C6080004 */ lwc1 $f8, 4($s0)
/* 3555CC E004466C 462010A0 */ cvt.s.d $f2, $f2
/* 3555D0 E0044670 E6020000 */ swc1 $f2, ($s0)
/* 3555D4 E0044674 46081200 */ add.s $f8, $f2, $f8
/* 3555D8 E0044678 C602FFF0 */ lwc1 $f2, -0x10($s0)
/* 3555DC E004467C 46200020 */ cvt.s.d $f0, $f0
/* 3555E0 E0044680 46001080 */ add.s $f2, $f2, $f0
/* 3555E4 E0044684 E600FFFC */ swc1 $f0, -4($s0)
/* 3555E8 E0044688 C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 3555EC E004468C 46262100 */ add.d $f4, $f4, $f6
/* 3555F0 E0044690 AE020014 */ sw $v0, 0x14($s0)
/* 3555F4 E0044694 E6080000 */ swc1 $f8, ($s0)
/* 3555F8 E0044698 46080000 */ add.s $f0, $f0, $f8
/* 3555FC E004469C E602FFF0 */ swc1 $f2, -0x10($s0)
/* 355600 E00446A0 46202120 */ cvt.s.d $f4, $f4
/* 355604 E00446A4 E6040008 */ swc1 $f4, 8($s0)
/* 355608 E00446A8 08011215 */ j .LE0044854
/* 35560C E00446AC E600FFF4 */ swc1 $f0, -0xc($s0)
.LE00446B0:
/* 355610 E00446B0 02511021 */ addu $v0, $s2, $s1
/* 355614 E00446B4 00511021 */ addu $v0, $v0, $s1
/* 355618 E00446B8 30420007 */ andi $v0, $v0, 7
/* 35561C E00446BC AE020014 */ sw $v0, 0x14($s0)
/* 355620 E00446C0 2643FFFF */ addiu $v1, $s2, -1
/* 355624 E00446C4 2862000E */ slti $v0, $v1, 0xe
/* 355628 E00446C8 1040000B */ beqz $v0, .LE00446F8
/* 35562C E00446CC 00771021 */ addu $v0, $v1, $s7
.LE00446D0:
/* 355630 E00446D0 90420000 */ lbu $v0, ($v0)
/* 355634 E00446D4 44820000 */ mtc1 $v0, $f0
/* 355638 E00446D8 00000000 */ nop
/* 35563C E00446DC 46800020 */ cvt.s.w $f0, $f0
/* 355640 E00446E0 46000021 */ cvt.d.s $f0, $f0
/* 355644 E00446E4 46380002 */ mul.d $f0, $f0, $f24
/* 355648 E00446E8 00000000 */ nop
/* 35564C E00446EC 46200020 */ cvt.s.d $f0, $f0
/* 355650 E00446F0 08011215 */ j .LE0044854
/* 355654 E00446F4 E6000008 */ swc1 $f0, 8($s0)
.LE00446F8:
/* 355658 E00446F8 2402001E */ addiu $v0, $zero, 0x1e
/* 35565C E00446FC 08011215 */ j .LE0044854
/* 355660 E0044700 A6C20002 */ sh $v0, 2($s6)
.LE0044704:
/* 355664 E0044704 02511021 */ addu $v0, $s2, $s1
.LE0044708:
/* 355668 E0044708 00511021 */ addu $v0, $v0, $s1
/* 35566C E004470C 8E030010 */ lw $v1, 0x10($s0)
/* 355670 E0044710 30420007 */ andi $v0, $v0, 7
/* 355674 E0044714 04610002 */ bgez $v1, .LE0044720
/* 355678 E0044718 AE020014 */ sw $v0, 0x14($s0)
/* 35567C E004471C 26B50001 */ addiu $s5, $s5, 1
.LE0044720:
/* 355680 E0044720 2462FFFF */ addiu $v0, $v1, -1
/* 355684 E0044724 AE020010 */ sw $v0, 0x10($s0)
/* 355688 E0044728 2C42001F */ sltiu $v0, $v0, 0x1f
/* 35568C E004472C 14400003 */ bnez $v0, .LE004473C
/* 355690 E0044730 2402FFFF */ addiu $v0, $zero, -1
/* 355694 E0044734 08011215 */ j .LE0044854
/* 355698 E0044738 AE020014 */ sw $v0, 0x14($s0)
.LE004473C:
/* 35569C E004473C 8E03000C */ lw $v1, 0xc($s0)
/* 3556A0 E0044740 24620001 */ addiu $v0, $v1, 1
/* 3556A4 E0044744 0040902D */ daddu $s2, $v0, $zero
/* 3556A8 E0044748 2862000E */ slti $v0, $v1, 0xe
/* 3556AC E004474C 10400015 */ beqz $v0, .LE00447A4
/* 3556B0 E0044750 AE12000C */ sw $s2, 0xc($s0)
/* 3556B4 E0044754 00771021 */ addu $v0, $v1, $s7
/* 3556B8 E0044758 90420000 */ lbu $v0, ($v0)
/* 3556BC E004475C 44820000 */ mtc1 $v0, $f0
/* 3556C0 E0044760 00000000 */ nop
/* 3556C4 E0044764 46800020 */ cvt.s.w $f0, $f0
/* 3556C8 E0044768 46000021 */ cvt.d.s $f0, $f0
/* 3556CC E004476C 46380002 */ mul.d $f0, $f0, $f24
/* 3556D0 E0044770 00000000 */ nop
/* 3556D4 E0044774 24020005 */ addiu $v0, $zero, 5
/* 3556D8 E0044778 46200020 */ cvt.s.d $f0, $f0
/* 3556DC E004477C 16620018 */ bne $s3, $v0, .LE00447E0
/* 3556E0 E0044780 E6000008 */ swc1 $f0, 8($s0)
/* 3556E4 E0044784 C6000000 */ lwc1 $f0, ($s0)
/* 3556E8 E0044788 C6020004 */ lwc1 $f2, 4($s0)
/* 3556EC E004478C 46020000 */ add.s $f0, $f0, $f2
/* 3556F0 E0044790 C602FFF4 */ lwc1 $f2, -0xc($s0)
/* 3556F4 E0044794 46001080 */ add.s $f2, $f2, $f0
/* 3556F8 E0044798 E6000000 */ swc1 $f0, ($s0)
/* 3556FC E004479C 080111F8 */ j .LE00447E0
/* 355700 E00447A0 E602FFF4 */ swc1 $f2, -0xc($s0)
.LE00447A4:
/* 355704 E00447A4 C6000008 */ lwc1 $f0, 8($s0)
/* 355708 E00447A8 46000021 */ cvt.d.s $f0, $f0
/* 35570C E00447AC 4620B101 */ sub.d $f4, $f22, $f0
/* 355710 E00447B0 46362102 */ mul.d $f4, $f4, $f22
/* 355714 E00447B4 00000000 */ nop
/* 355718 E00447B8 C6060000 */ lwc1 $f6, ($s0)
/* 35571C E00447BC C6020004 */ lwc1 $f2, 4($s0)
/* 355720 E00447C0 46023180 */ add.s $f6, $f6, $f2
/* 355724 E00447C4 C602FFF4 */ lwc1 $f2, -0xc($s0)
/* 355728 E00447C8 46061080 */ add.s $f2, $f2, $f6
/* 35572C E00447CC 46240000 */ add.d $f0, $f0, $f4
/* 355730 E00447D0 E6060000 */ swc1 $f6, ($s0)
/* 355734 E00447D4 E602FFF4 */ swc1 $f2, -0xc($s0)
/* 355738 E00447D8 46200020 */ cvt.s.d $f0, $f0
/* 35573C E00447DC E6000008 */ swc1 $f0, 8($s0)
.LE00447E0:
/* 355740 E00447E0 24020004 */ addiu $v0, $zero, 4
/* 355744 E00447E4 16620013 */ bne $s3, $v0, .LE0044834
/* 355748 E00447E8 00121040 */ sll $v0, $s2, 1
/* 35574C E00447EC 00521021 */ addu $v0, $v0, $s2
/* 355750 E00447F0 00021080 */ sll $v0, $v0, 2
/* 355754 E00447F4 4482A000 */ mtc1 $v0, $f20
/* 355758 E00447F8 00000000 */ nop
/* 35575C E00447FC 4680A520 */ cvt.s.w $f20, $f20
/* 355760 E0044800 0C080140 */ jal shim_sin_deg
/* 355764 E0044804 4600A306 */ mov.s $f12, $f20
/* 355768 E0044808 C602FFFC */ lwc1 $f2, -4($s0)
/* 35576C E004480C 46001082 */ mul.s $f2, $f2, $f0
/* 355770 E0044810 00000000 */ nop
/* 355774 E0044814 4600A306 */ mov.s $f12, $f20
/* 355778 E0044818 0C080144 */ jal shim_cos_deg
/* 35577C E004481C E602FFF0 */ swc1 $f2, -0x10($s0)
/* 355780 E0044820 C602FFFC */ lwc1 $f2, -4($s0)
/* 355784 E0044824 46001082 */ mul.s $f2, $f2, $f0
/* 355788 E0044828 00000000 */ nop
/* 35578C E004482C 0801120F */ j .LE004483C
/* 355790 E0044830 E602FFF8 */ swc1 $f2, -8($s0)
.LE0044834:
/* 355794 E0044834 C600FFFC */ lwc1 $f0, -4($s0)
/* 355798 E0044838 E600FFF0 */ swc1 $f0, -0x10($s0)
.LE004483C:
/* 35579C E004483C C6000000 */ lwc1 $f0, ($s0)
/* 3557A0 E0044840 46000021 */ cvt.d.s $f0, $f0
/* 3557A4 E0044844 463A0002 */ mul.d $f0, $f0, $f26
/* 3557A8 E0044848 00000000 */ nop
/* 3557AC E004484C 46200020 */ cvt.s.d $f0, $f0
/* 3557B0 E0044850 E6000000 */ swc1 $f0, ($s0)
.LE0044854:
/* 3557B4 E0044854 26310001 */ addiu $s1, $s1, 1
/* 3557B8 E0044858 8E820008 */ lw $v0, 8($s4)
/* 3557BC E004485C 2442FFFF */ addiu $v0, $v0, -1
/* 3557C0 E0044860 0222102A */ slt $v0, $s1, $v0
/* 3557C4 E0044864 1440FF25 */ bnez $v0, .LE00444FC
/* 3557C8 E0044868 2610002C */ addiu $s0, $s0, 0x2c
.LE004486C:
/* 3557CC E004486C 2E620002 */ sltiu $v0, $s3, 2
/* 3557D0 E0044870 1440000C */ bnez $v0, .LE00448A4
/* 3557D4 E0044874 24020003 */ addiu $v0, $zero, 3
/* 3557D8 E0044878 1262000A */ beq $s3, $v0, .LE00448A4
/* 3557DC E004487C 2A62000A */ slti $v0, $s3, 0xa
/* 3557E0 E0044880 10400008 */ beqz $v0, .LE00448A4
/* 3557E4 E0044884 00000000 */ nop
/* 3557E8 E0044888 8E820008 */ lw $v0, 8($s4)
/* 3557EC E004488C 2442FFFF */ addiu $v0, $v0, -1
/* 3557F0 E0044890 02A2102A */ slt $v0, $s5, $v0
/* 3557F4 E0044894 14400003 */ bnez $v0, .LE00448A4
/* 3557F8 E0044898 00000000 */ nop
.LE004489C:
/* 3557FC E004489C 0C080128 */ jal shim_remove_effect
/* 355800 E00448A0 0280202D */ daddu $a0, $s4, $zero
.LE00448A4:
/* 355804 E00448A4 8FBF0034 */ lw $ra, 0x34($sp)
/* 355808 E00448A8 8FBE0030 */ lw $fp, 0x30($sp)
/* 35580C E00448AC 8FB7002C */ lw $s7, 0x2c($sp)
/* 355810 E00448B0 8FB60028 */ lw $s6, 0x28($sp)
/* 355814 E00448B4 8FB50024 */ lw $s5, 0x24($sp)
/* 355818 E00448B8 8FB40020 */ lw $s4, 0x20($sp)
/* 35581C E00448BC 8FB3001C */ lw $s3, 0x1c($sp)
/* 355820 E00448C0 8FB20018 */ lw $s2, 0x18($sp)
/* 355824 E00448C4 8FB10014 */ lw $s1, 0x14($sp)
/* 355828 E00448C8 8FB00010 */ lw $s0, 0x10($sp)
/* 35582C E00448CC D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 355830 E00448D0 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 355834 E00448D4 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 355838 E00448D8 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 35583C E00448DC 03E00008 */ jr $ra
/* 355840 E00448E0 27BD0058 */ addiu $sp, $sp, 0x58