Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void FUN_0045dd30(GlobalContext *param_1,int param_2,int param_3,undefined4 param_4,ushort*param_5)
- {
- byte bVar1;
- byte bVar2;
- char cVar3;
- short sVar4;
- dword dVar5;
- u8 uVar6;
- u32 uVar7;
- dword dVar8;
- int iVar9;
- uint uVar10;
- undefined *puVar11;
- float *pfVar12;
- uint uVar13;
- undefined *puVar14;
- float *pfVar15;
- ushort *puVar16;
- short sVar17;
- uint uVar18;
- int iVar19;
- int iVar20;
- bool bVar21;
- bool bVar22;
- uint in_fpscr;
- undefined4 in_cr0;
- undefined4 in_cr1;
- undefined4 in_cr8;
- undefined4 in_cr9;
- undefined4 uVar23;
- uint uVar24;
- float fVar25;
- float fVar26;
- float fVar27;
- float fVar28;
- ulonglong uVar29;
- float fVar30;
- iVar20 = *(int *)¶m_1->field_0x3230;
- uVar7 = FUN_003695f8();
- if (uVar7 != 0) {
- return;
- }
- FUN_003695f8();
- bVar2 = param_1->unk_326E[0];
- if (param_1->unk_326E[0] <= *(byte *)¶m_1->field_0x3272) {
- bVar2 = *(byte *)¶m_1->field_0x3272;
- }
- bVar1 = param_1->unk_326E[1];
- if ((bVar1 != bVar2) && (((param_1->state).frames & 7) == 0)) {
- if (bVar1 < bVar2) {
- uVar6 = bVar1 + 2;
- }
- else {
- uVar6 = bVar1 - 2;
- }
- param_1->unk_326E[1] = uVar6;
- }
- FUN_00470b08(param_1);
- if ((0xfeff < gSaveContext.nextDayTime) && (gSaveContext.nextDayTime != 0xffff)) {
- gSaveContext.nextDayTime = gSaveContext.nextDayTime - 0x10;
- if (gSaveContext.nextDayTime == 0xff0e) {
- Audio_PlaySoundGeneral(0x16a,NULL,4,&FLOAT_0054ac20,&FLOAT_0054ac20,(float*)&DAT_0054ac24);
- gSaveContext.nextDayTime = 0xffff;
- }
- else {
- if (gSaveContext.nextDayTime == 0xff0d) {
- Audio_PlaySoundGeneral(0x205,NULL,4,&FLOAT_0054ac20,&FLOAT_0054ac20,(float*)&DAT_0054ac24);
- gSaveContext.nextDayTime = 0xffff;
- }
- }
- }
- uVar7 = FUN_003695f8();
- bVar21 = uVar7 == 0;
- if (bVar21) {
- uVar7 = (u32)*param_5;
- }
- if (bVar21 && uVar7 == 0) {
- dVar8 = FUN_00366748(param_1);
- dVar5 = dVar8;
- if (dVar8 != 0) {
- dVar5 = gSaveContext.gameMode;
- }
- if ((((dVar8 == 0 || dVar5 == 3) && (*(short *)(param_2 + 0x1c) == 0)) &&
- (iVar9 = FrameAdvance_IsEnabled(param_1), iVar9 == 0)) &&
- ((iVar9 = FUN_00374be8(param_1,4), iVar9 == 0 &&
- ((param_1->transitionMode == '\0' || (gSaveContext.gameMode != 0)))))) {
- bVar21 = gSaveContext.nightFlag != 0;
- if (bVar21) {
- gSaveContext.nightFlag = (dword)DAT_00531ebe;
- }
- if (bVar21 && gSaveContext.nightFlag < 400) {
- if (gSaveContext.nightFlag == 0) {
- fVar27 = (float)VectorSignedToFloat((int)*(short *)(DAT_0051b2f4 + 0x110),
- (byte)(in_fpscr >> 0x15) & 3);
- coprocessor_function(10,2,0,in_cr1,in_cr1,in_cr9);
- uVar23 = VectorFloatToSigned(fVar27 * 0.3333333 - 0.5,3);
- sVar17 = (short)uVar23;
- }
- else {
- fVar27 = (float)VectorUnsignedToFloat(gSaveContext.nightFlag,(byte)(in_fpscr >> 0x15) &3)
- ;
- VectorSignedToFloat((int)*(short *)(DAT_0051b2f4 + 0x110),(byte)(in_fpscr >> 0x15) & 3);
- coprocessor_function(10,2,4,in_cr1,in_cr1,in_cr1);
- uVar23 = VectorFloatToSigned(fVar27 * 0.3333333 + 0.5,3);
- sVar17 = (short)uVar23;
- }
- sVar17 = sVar17 * 2;
- }
- else {
- if (DAT_00531ebe == 0) {
- fVar27 = (float)VectorSignedToFloat((int)*(short *)(DAT_0051b2f4 + 0x110),
- (byte)(in_fpscr >> 0x15) & 3);
- coprocessor_function(10,2,0,in_cr1,in_cr1,in_cr9);
- uVar23 = VectorFloatToSigned(fVar27 * 0.3333333 - 0.5,3);
- sVar17 = (short)uVar23;
- }
- else {
- fVar27 = (float)VectorUnsignedToFloat((uint)DAT_00531ebe,(byte)(in_fpscr >> 0x15) & 3);
- VectorSignedToFloat((int)*(short *)(DAT_0051b2f4 + 0x110),(byte)(in_fpscr >> 0x15) & 3);
- coprocessor_function(10,2,4,in_cr1,in_cr1,in_cr1);
- uVar23 = VectorFloatToSigned(fVar27 * 0.3333333 + 0.5,3);
- sVar17 = (short)uVar23;
- }
- }
- gSaveContext.dayTime = sVar17 + gSaveContext.dayTime;
- }
- }
- uVar10 = (uint)gSaveContext.dayTime;
- if ((gSaveContext.environmentTime < uVar10) || (uVar10 < 0xaab)) {
- gSaveContext.environmentTime = gSaveContext.dayTime;
- }
- gSaveContext.nightFlag = (dword)(0x7aab < uVar10 - 0x4555);
- bVar2 = *(byte *)(param_2 + 0xa7);
- if (bVar2 != 0xff) {
- bVar1 = *(byte *)(param_2 + 0xcc);
- bVar21 = bVar1 != 2;
- if (bVar21) {
- bVar1 = *(byte *)(param_2 + 0xa5);
- }
- if (((bVar21 && bVar1 != bVar2) && (0x3f7fffff < *(int *)(param_2 + 200))) && (bVar2 < 0x20)){
- *(undefined4 *)(param_2 + 200) = 0;
- *(byte *)(param_2 + 0xa6) = bVar1;
- *(byte *)(param_2 + 0xa5) = bVar2;
- }
- if (bVar2 == 0xfe) goto LAB_0045eeb8;
- }
- uVar29 = 0x3f800000;
- if (*(char *)(param_2 + 0x20) == '\0' && bVar2 == 0xff) {
- uVar18 = (uint)gSaveContext.environmentTime;
- uVar10 = 0;
- do {
- puVar16 = (ushort *)(&DAT_00531efc + (uint)*(byte *)(param_2 + 0x21) * 0x36 + uVar10 * 6);
- if (*puVar16 <= uVar18) {
- uVar13 = (uint)puVar16[1];
- bVar21 = uVar13 == uVar18;
- if ((uVar18 < uVar13) || (bVar21 = uVar13 == 0xffff, bVar21)) {
- uVar13 = (uint)*(ushort *)
- (&DAT_00531efc + (uint)*(byte *)(param_2 + 0x21) * 0x36 + uVar10 * 6 +2);
- fVar27 = (float)VectorSignedToFloat(uVar13 - *puVar16,(byte)(in_fpscr >> 0x15) & 3);
- in_fpscr = in_fpscr & 0xfffffff;
- if (!bVar21) {
- fVar25 = (float)VectorSignedToFloat(uVar13 - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = 1.0 - fVar25 / fVar27;
- if ((int)fVar27 < 0x3f800000) {
- uVar29 = (ulonglong)(uint)fVar27;
- }
- }
- DAT_00531edc = (undefined4)uVar29;
- DAT_00531ebb = *(byte *)(puVar16 + 2);
- DAT_00531ebc = *(byte *)((int)puVar16 + 5);
- DAT_00531eb8 = DAT_00531ebb & 3;
- DAT_00531eb9 = DAT_00531ebc & 3;
- DAT_00531ef0 = DAT_00531edc;
- if (*(char *)(param_2 + 0x23) != '\0') {
- fVar25 = (float)VectorUnsignedToFloat
- ((uint)*(ushort *)(param_2 + 0x26),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(ushort *)(param_2 + 0x24),
- (byte)(in_fpscr >> 0x15) & 3);
- uVar18 = *(ushort *)(param_2 + 0x24) - 1;
- fVar26 = (float)VectorUnsignedToFloat
- ((uint)*(ushort *)(param_2 + 0x26),
- (byte)(in_fpscr >> 0x15) & 3);
- *(short *)(param_2 + 0x24) = (short)(uVar18 * 0x10000 >> 0x10);
- uVar29 = uVar29 | (ulonglong)(uint)((fVar25 - fVar27) / fVar26) << 0x20;
- if ((uVar18 & 0xffff) == 0) {
- *(undefined *)(param_2 + 0x23) = 0;
- *(undefined *)(param_2 + 0x21) = *(undefined *)(param_2 + 0x22);
- }
- }
- puVar11 = &DAT_00531efc + uVar10 * 6 + (uint)*(byte *)(param_2 + 0x21) * 0x36;
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 10);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c +10)
- - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar26 = (float)uVar29;
- uVar13 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- puVar14 = &DAT_00531efc + uVar10 * 6 + (uint)*(byte *)(param_2 + 0x22) * 0x36;
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 10);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c +10)
- - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- uVar18 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar18 & 0xff) - (uVar13 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- fVar30 = (float)(uVar29 >> 0x20);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(param_2 + 0xb2) = (char)uVar23;
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 0xb);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c +0xb
- ) - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- uVar13 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 0xb);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c +0xb
- ) - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- uVar18 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar18 & 0xff) - (uVar13 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(param_2 + 0xb3) = (char)uVar23;
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 0xc);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c +0xc
- ) - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- uVar13 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 0xc);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c +0xc
- ) - uVar18,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- uVar18 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar18 & 0xff) - (uVar13 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(param_2 + 0xb4) = (char)uVar23;
- fVar27 = Math_Sins(gSaveContext.dayTime + 0x8000);
- coprocessor_function(10,2,1,in_cr0,in_cr0,in_cr0);
- uVar23 = VectorFloatToSigned(fVar27,3);
- *(char *)(param_2 + 0xb5) = (char)uVar23;
- fVar27 = Math_Coss(gSaveContext.dayTime + 0x8000);
- coprocessor_function(10,2,1,in_cr0,in_cr0,in_cr0);
- uVar23 = VectorFloatToSigned(fVar27,3);
- *(char *)(param_2 + 0xb6) = (char)uVar23;
- fVar27 = Math_Coss(gSaveContext.dayTime + 0x8000);
- coprocessor_function(10,2,1,in_cr0,in_cr0,in_cr0);
- uVar23 = VectorFloatToSigned(fVar27,3);
- *(char *)(param_2 + 0xb7) = (char)uVar23;
- *(char *)(param_2 + 0xbb) = -*(char *)(param_2 + 0xb5);
- *(char *)(param_2 + 0xbc) = -*(char *)(param_2 + 0xb6);
- *(char *)(param_2 + 0xbd) = -(char)uVar23;
- uVar18 = 0;
- do {
- uVar13 = (uint)*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(param_2 + 0x21) *0x36)[4]
- * 0x1c + uVar18 + 0x10);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(
- param_2 + 0x21) * 0x36)[5] * 0x1c + uVar18 +0x10)
- - uVar13,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13,(byte)(in_fpscr >> 0x15) & 3);
- uVar24 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- uVar13 = (uint)*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(param_2 + 0x22) *0x36)[4]
- * 0x1c + uVar18 + 0x10);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(
- param_2 + 0x22) * 0x36)[5] * 0x1c + uVar18 +0x10)
- - uVar13,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13,(byte)(in_fpscr >> 0x15) & 3);
- uVar13 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- iVar19 = param_2 + uVar18;
- fVar25 = (float)VectorSignedToFloat((uVar13 & 0xff) - (uVar24 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar24 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(iVar19 + 0xb8) = (char)uVar23;
- uVar13 = (uint)*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(param_2 + 0x21) *0x36)[4]
- * 0x1c + uVar18 + 0x16);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(
- param_2 + 0x21) * 0x36)[5] * 0x1c + uVar18 +0x16)
- - uVar13,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13,(byte)(in_fpscr >> 0x15) & 3);
- uVar24 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- iVar9 = iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 + (uint)*(byte *)(param_2 + 0x22) * 0x36)[5] *
- 0x1c + uVar18;
- uVar13 = (uint)*(byte *)(iVar20 + (uint)(byte)(&DAT_00531efc +
- uVar10 * 6 +
- (uint)*(byte *)(param_2 + 0x22) *0x36)[4]
- * 0x1c + uVar18 + 0x16);
- uVar18 = uVar18 + 1 & 0xffff;
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar9 + 0x16) - uVar13,
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar13,(byte)(in_fpscr >> 0x15) & 3);
- uVar13 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar13 & 0xff) - (uVar24 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar24 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(iVar19 + 0xbe) = (char)uVar23;
- } while (uVar18 < 3);
- puVar11 = &DAT_00531efc + uVar10 * 6 + (uint)*(byte *)(param_2 + 0x21) * 0x36;
- uVar18 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 0x19);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c +
- 0x19) - uVar18,(byte)(in_fpscr >> 0x15) &3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18,(byte)(in_fpscr >> 0x15) & 3);
- uVar18 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- puVar14 = &DAT_00531efc + uVar10 * 6 + (uint)*(byte *)(param_2 + 0x22) * 0x36;
- uVar10 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 0x19);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c +
- 0x19) - uVar10,(byte)(in_fpscr >> 0x15) &3);
- fVar27 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- uVar10 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar10 & 0xff) - (uVar18 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(param_2 + 0xc1) = (char)uVar23;
- uVar10 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 0x1a);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c +
- 0x1a) - uVar10,(byte)(in_fpscr >> 0x15) &3);
- fVar27 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- uVar18 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- uVar10 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 0x1a);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c +
- 0x1a) - uVar10,(byte)(in_fpscr >> 0x15) &3);
- fVar27 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- uVar10 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar10 & 0xff) - (uVar18 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(param_2 + 0xc2) = (char)uVar23;
- uVar10 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 0x1b);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c +
- 0x1b) - uVar10,(byte)(in_fpscr >> 0x15) &3);
- fVar27 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- uVar18 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- uVar10 = (uint)*(byte *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 0x1b);
- fVar25 = (float)VectorSignedToFloat(*(byte *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c +
- 0x1b) - uVar10,(byte)(in_fpscr >> 0x15) &3);
- fVar27 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- uVar10 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar26,3);
- fVar25 = (float)VectorSignedToFloat((uVar10 & 0xff) - (uVar18 & 0xff),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar18 & 0xff,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar25 * fVar30,3);
- *(char *)(param_2 + 0xc3) = (char)uVar23;
- uVar10 = *(ushort *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 8) & 0xffff03ff;
- fVar25 = (float)VectorSignedToFloat((*(ushort *)
- (iVar20 + (uint)(byte)puVar11[5] * 0x1c + 8) &
- 0xffff03ff) - uVar10,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = fVar27 + fVar25 * fVar26;
- uVar10 = *(ushort *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 8) & 0xffff03ff;
- fVar28 = (float)VectorSignedToFloat((*(ushort *)
- (iVar20 + (uint)(byte)puVar14[5] * 0x1c + 8) &
- 0xffff03ff) - uVar10,(byte)(in_fpscr >> 0x15) & 3);
- fVar25 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + ((fVar25 + fVar28 * fVar26) - fVar27) *fVar30,3);
- *(short *)(param_2 + 0xb0) = (short)uVar23;
- fVar27 = *(float *)(iVar20 + (uint)(byte)puVar11[4] * 0x1c + 4);
- fVar27 = fVar27 + (*(float *)(iVar20 + (uint)(byte)puVar11[5] * 0x1c + 4) - fVar27) *
- fVar26;
- fVar25 = *(float *)(iVar20 + (uint)(byte)puVar14[4] * 0x1c + 4);
- *(float *)(param_2 + 0xac) =
- fVar27 + ((fVar25 + (*(float *)(iVar20 + (uint)(byte)puVar14[5] * 0x1c + 4) -fVar25)
- * fVar26) - fVar27) * fVar30;
- *(undefined4 *)(param_2 + 0xa8) =
- *(undefined4 *)(iVar20 + (uint)*(byte *)(param_2 + 0xa5) * 0x1c);
- break;
- }
- }
- uVar10 = uVar10 + 1 & 0xffff;
- } while (uVar10 < 9);
- }
- else {
- pfVar12 = (float *)(iVar20 + (uint)*(byte *)(param_2 + 0xa5) * 0x1c);
- if (*(char *)(param_2 + 0xa4) == '\0') {
- *(undefined *)(param_2 + 0xb2) = *(undefined *)((int)pfVar12 + 10);
- *(undefined *)(param_2 + 0xb5) = *(undefined *)((int)pfVar12 + 0xd);
- *(undefined *)(param_2 + 0xb8) = *(undefined *)(pfVar12 + 4);
- *(undefined *)(param_2 + 0xbb) = *(undefined *)((int)pfVar12 + 0x13);
- *(undefined *)(param_2 + 0xbe) = *(undefined *)((int)pfVar12 + 0x16);
- *(undefined *)(param_2 + 0xc1) = *(undefined *)((int)pfVar12 + 0x19);
- *(undefined *)(param_2 + 0xb3) = *(undefined *)((int)pfVar12 + 0xb);
- *(undefined *)(param_2 + 0xb6) = *(undefined *)((int)pfVar12 + 0xe);
- *(undefined *)(param_2 + 0xb9) = *(undefined *)((int)pfVar12 + 0x11);
- *(undefined *)(param_2 + 0xbc) = *(undefined *)(pfVar12 + 5);
- *(undefined *)(param_2 + 0xbf) = *(undefined *)((int)pfVar12 + 0x17);
- *(undefined *)(param_2 + 0xc2) = *(undefined *)((int)pfVar12 + 0x1a);
- *(undefined *)(param_2 + 0xb4) = *(undefined *)(pfVar12 + 3);
- *(undefined *)(param_2 + 0xb7) = *(undefined *)((int)pfVar12 + 0xf);
- *(undefined *)(param_2 + 0xba) = *(undefined *)((int)pfVar12 + 0x12);
- *(undefined *)(param_2 + 0xbd) = *(undefined *)((int)pfVar12 + 0x15);
- *(undefined *)(param_2 + 0xc0) = *(undefined *)(pfVar12 + 6);
- *(undefined *)(param_2 + 0xc3) = *(undefined *)((int)pfVar12 + 0x1b);
- *(ushort *)(param_2 + 0xb0) = *(ushort *)(pfVar12 + 2) & 0x3ff;
- *(float *)(param_2 + 0xac) = pfVar12[1];
- *(float *)(param_2 + 0xa8) = *pfVar12;
- *(undefined4 *)(param_2 + 200) = 0x3f800000;
- }
- else {
- fVar27 = *(float *)(param_2 + 200);
- uVar10 = (uint)(*(ushort *)(pfVar12 + 2) >> 10) << 2;
- if (*(ushort *)(pfVar12 + 2) >> 10 == 0) {
- uVar10 = 1;
- }
- if (*(ushort *)(param_2 + 0xc4) != 0xffff) {
- uVar10 = *(ushort *)(param_2 + 0xc4) & 0xff;
- }
- if (*(char *)(param_2 + 0xcc) == '\0') {
- fVar25 = (float)VectorUnsignedToFloat(uVar10,(byte)(in_fpscr >> 0x15) & 3);
- fVar27 = fVar27 + fVar25 * 0.003921569;
- *(float *)(param_2 + 200) = fVar27;
- }
- fVar25 = 1.0;
- if ((int)fVar27 < 0x3f800001) {
- fVar25 = fVar27;
- }
- *(float *)(param_2 + 200) = fVar25;
- pfVar15 = (float *)(iVar20 + (uint)*(byte *)(param_2 + 0xa6) * 0x1c);
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 10) -
- (uint)*(byte *)((int)pfVar15 + 10),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 10),(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xb2) = (char)uVar23;
- uVar23 = VectorSignedToFloat((int)*(char *)((int)pfVar12 + 0xd) -
- (int)*(char *)((int)pfVar15 + 0xd),(byte)(in_fpscr >> 0x15) &3);
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(char *)(param_2 + 0xb5) = *(char *)((int)pfVar15 + 0xd) + (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)(pfVar12 + 4) -
- (uint)*(byte *)(pfVar15 + 4),(byte)(in_fpscr >> 0x15) &3)
- ;
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)(pfVar15 + 4),(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xb8) = (char)uVar23;
- uVar23 = VectorSignedToFloat((int)*(char *)((int)pfVar12 + 0x13) -
- (int)*(char *)((int)pfVar15 + 0x13),(byte)(in_fpscr >> 0x15) &3)
- ;
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(char *)(param_2 + 0xbb) = *(char *)((int)pfVar15 + 0x13) + (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x16) -
- (uint)*(byte *)((int)pfVar15 + 0x16),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x16),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xbe) = (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x19) -
- (uint)*(byte *)((int)pfVar15 + 0x19),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x19),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xc1) = (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0xb) -
- (uint)*(byte *)((int)pfVar15 + 0xb),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0xb),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xb3) = (char)uVar23;
- uVar23 = VectorSignedToFloat((int)*(char *)((int)pfVar12 + 0xe) -
- (int)*(char *)((int)pfVar15 + 0xe),(byte)(in_fpscr >> 0x15) &3);
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(char *)(param_2 + 0xb6) = *(char *)((int)pfVar15 + 0xe) + (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x11) -
- (uint)*(byte *)((int)pfVar15 + 0x11),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x11),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xb9) = (char)uVar23;
- uVar23 = VectorSignedToFloat((int)*(char *)(pfVar12 + 5) - (int)*(char *)(pfVar15 + 5),
- (byte)(in_fpscr >> 0x15) & 3);
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(char *)(param_2 + 0xbc) = *(char *)(pfVar15 + 5) + (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x17) -
- (uint)*(byte *)((int)pfVar15 + 0x17),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x17),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xbf) = (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x1a) -
- (uint)*(byte *)((int)pfVar15 + 0x1a),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x1a),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xc2) = (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)(pfVar12 + 3) -
- (uint)*(byte *)(pfVar15 + 3),(byte)(in_fpscr >> 0x15) &3)
- ;
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)(pfVar15 + 3),(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xb4) = (char)uVar23;
- uVar23 = VectorSignedToFloat((int)*(char *)((int)pfVar12 + 0xf) -
- (int)*(char *)((int)pfVar15 + 0xf),(byte)(in_fpscr >> 0x15) &3);
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(char *)(param_2 + 0xb7) = *(char *)((int)pfVar15 + 0xf) + (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x12) -
- (uint)*(byte *)((int)pfVar15 + 0x12),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x12),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xba) = (char)uVar23;
- uVar23 = VectorSignedToFloat((int)*(char *)((int)pfVar12 + 0x15) -
- (int)*(char *)((int)pfVar15 + 0x15),(byte)(in_fpscr >> 0x15) &3)
- ;
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(char *)(param_2 + 0xbd) = *(char *)((int)pfVar15 + 0x15) + (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)(pfVar12 + 6) -
- (uint)*(byte *)(pfVar15 + 6),(byte)(in_fpscr >> 0x15) &3)
- ;
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)(pfVar15 + 6),(byte)(in_fpscr >> 0x15) & 3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xc0) = (char)uVar23;
- fVar26 = (float)VectorSignedToFloat((uint)*(byte *)((int)pfVar12 + 0x1b) -
- (uint)*(byte *)((int)pfVar15 + 0x1b),
- (byte)(in_fpscr >> 0x15) & 3);
- fVar27 = (float)VectorUnsignedToFloat
- ((uint)*(byte *)((int)pfVar15 + 0x1b),(byte)(in_fpscr >> 0x15) &3);
- uVar23 = VectorFloatToUnsigned(fVar27 + fVar26 * fVar25,3);
- *(char *)(param_2 + 0xc3) = (char)uVar23;
- *(float *)(param_2 + 0xa8) = *pfVar15 + (*pfVar12 - *pfVar15) * fVar25;
- *(float *)(param_2 + 0xac) = pfVar15[1] + (pfVar12[1] - pfVar15[1]) * fVar25;
- uVar23 = VectorSignedToFloat((*(ushort *)(pfVar12 + 2) & 0xffff03ff) -
- (*(ushort *)(pfVar15 + 2) & 0xffff03ff),
- (byte)(in_fpscr >> 0x15) & 3);
- coprocessor_function(10,2,0,in_cr0,in_cr0,in_cr8);
- uVar23 = VectorFloatToSigned(uVar23,3);
- *(short *)(param_2 + 0xb0) = (short)(*(ushort *)(pfVar15 + 2) & 0xffff03ff) + (short)uVar23;
- }
- }
- LAB_0045eeb8:
- iVar20 = 0;
- *(undefined *)(param_2 + 0xa4) = 1;
- do {
- iVar9 = param_2 + iVar20;
- iVar19 = param_2 + iVar20 * 2;
- sVar17 = (ushort)*(byte *)(iVar9 + 0xb2) + *(short *)(iVar19 + 0x6c);
- if (sVar17 < 0x100) {
- if (sVar17 < 0) {
- *(undefined *)(param_3 + iVar20 + 0xe) = 0;
- }
- else {
- *(char *)(param_3 + iVar20 + 0xe) = (char)sVar17;
- }
- }
- else {
- *(undefined *)(param_3 + iVar20 + 0xe) = 0xff;
- }
- sVar17 = (ushort)*(byte *)(iVar9 + 0xb8) + *(short *)(iVar19 + 0x72);
- if (sVar17 < 0x100) {
- if (sVar17 < 0) {
- *(undefined *)(iVar9 + 0x33) = 0;
- }
- else {
- *(char *)(iVar9 + 0x33) = (char)sVar17;
- }
- }
- else {
- *(undefined *)(iVar9 + 0x33) = 0xff;
- }
- sVar17 = (ushort)*(byte *)(iVar9 + 0xbe) + *(short *)(iVar19 + 0x72);
- if (sVar17 < 0x100) {
- if (sVar17 < 0) {
- *(undefined *)(iVar9 + 0x4b) = 0;
- }
- else {
- *(char *)(iVar9 + 0x4b) = (char)sVar17;
- }
- }
- else {
- *(undefined *)(iVar9 + 0x4b) = 0xff;
- }
- sVar17 = (ushort)*(byte *)(iVar9 + 0xc1) + *(short *)(iVar19 + 0x78);
- if (sVar17 < 0x100) {
- if (sVar17 < 0) {
- *(undefined *)(param_3 + iVar20 + 0x12) = 0;
- }
- else {
- *(char *)(param_3 + iVar20 + 0x12) = (char)sVar17;
- }
- }
- else {
- *(undefined *)(param_3 + iVar20 + 0x12) = 0xff;
- }
- iVar20 = iVar20 + 1;
- } while (iVar20 < 3);
- *(undefined *)(param_2 + 0x30) = *(undefined *)(param_2 + 0xb5);
- *(undefined *)(param_2 + 0x31) = *(undefined *)(param_2 + 0xb6);
- *(undefined *)(param_2 + 0x32) = *(undefined *)(param_2 + 0xb7);
- *(undefined *)(param_2 + 0x48) = *(undefined *)(param_2 + 0xbb);
- *(undefined *)(param_2 + 0x49) = *(undefined *)(param_2 + 0xbc);
- *(undefined *)(param_2 + 0x4a) = *(undefined *)(param_2 + 0xbd);
- *(undefined4 *)(param_3 + 4) = *(undefined4 *)(param_2 + 0xa8);
- sVar17 = *(short *)(param_2 + 0xb0);
- sVar4 = *(short *)(param_2 + 0x7e);
- iVar20 = (int)sVar17 + (int)sVar4;
- if (iVar20 < 0) {
- *(undefined2 *)(param_3 + 0xc) = 0;
- }
- else {
- *(short *)(param_3 + 0xc) = sVar4 + *(short *)(param_2 + 0xb0);
- }
- fVar27 = *(float *)(param_2 + 0xac) + *(float *)(param_2 + 0x84);
- *(float *)(param_3 + 8) = fVar27;
- if (iVar20 == 0 || iVar20 < 0 != SCARRY4((int)sVar17,(int)sVar4)) {
- fVar27 = 0.0;
- }
- *(float *)(param_3 + 8) = fVar27;
- cVar3 = *(char *)(param_2 + 0x30);
- bVar21 = cVar3 == '\0';
- if (bVar21) {
- cVar3 = *(char *)(param_2 + 0x31);
- }
- bVar22 = bVar21 && cVar3 == '\0';
- if (bVar21 && cVar3 == '\0') {
- bVar22 = *(char *)(param_2 + 0x32) == '\0';
- }
- if (bVar22) {
- *(undefined *)(param_2 + 0x30) = 1;
- }
- cVar3 = *(char *)(param_2 + 0x48);
- bVar21 = cVar3 == '\0';
- if (bVar21) {
- cVar3 = *(char *)(param_2 + 0x49);
- }
- bVar22 = bVar21 && cVar3 == '\0';
- if (bVar21 && cVar3 == '\0') {
- bVar22 = *(char *)(param_2 + 0x4a) == '\0';
- }
- if (bVar22) {
- *(undefined *)(param_2 + 0x48) = 1;
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement