int __thiscall sub_426540(void *this, const char *a2, int a3)
{
FILE *v3; // eax@1
const char *v4; // edi@1
unsigned int v5; // eax@1
int v6; // eax@2
FILE *v7; // eax@3
int v8; // ebx@3
int v9; // eax@4
int v10; // eax@5
int v11; // esi@5
int v12; // esi@6
signed int v13; // eax@8
int v14; // ecx@8
int v15; // eax@12
int v16; // ebx@12
double v17; // st7@12
double v18; // ST08_8@12
int v19; // eax@12
int v20; // eax@12
int v21; // eax@12
int v22; // eax@12
int v23; // eax@12
const char *v24; // eax@14
int v25; // eax@14
int v26; // eax@14
char *v27; // eax@16
FILE *v28; // esi@16
char v29; // cl@17
const char *v30; // eax@18
int v32[4]; // [sp+0h] [bp-13Ch]@14
int v33; // [sp+8h] [bp-134h]@14
int v34; // [sp+Ch] [bp-130h]@14
double v35; // [sp+10h] [bp-12Ch]@12
double v36; // [sp+18h] [bp-124h]@12
char v37; // [sp+34h] [bp-108h]@26
double *v38; // [sp+38h] [bp-104h]@5
double v39; // [sp+3Ch] [bp-100h]@1
double v40; // [sp+44h] [bp-F8h]@1
char v41; // [sp+4Ch] [bp-F0h]@12
int v42; // [sp+50h] [bp-ECh]@13
unsigned int v43; // [sp+64h] [bp-D8h]@12
char v44; // [sp+68h] [bp-D4h]@18
char *v45; // [sp+6Ch] [bp-D0h]@16
int v46; // [sp+7Ch] [bp-C0h]@16
unsigned int v47; // [sp+80h] [bp-BCh]@16
char v48; // [sp+84h] [bp-B8h]@14
char *v49; // [sp+88h] [bp-B4h]@14
int v50; // [sp+98h] [bp-A4h]@24
unsigned int v51; // [sp+9Ch] [bp-A0h]@14
char v52; // [sp+A0h] [bp-9Ch]@12
int v53; // [sp+A4h] [bp-98h]@25
unsigned int v54; // [sp+B8h] [bp-84h]@24
char Src; // [sp+BCh] [bp-80h]@16
char v56; // [sp+BDh] [bp-7Fh]@18
int v57; // [sp+124h] [bp-18h]@26
unsigned int v58; // [sp+12Ch] [bp-10h]@1
int v59; // [sp+130h] [bp-Ch]@5
v58 = (unsigned int)&v39 ^ dword_472260;
v4 = (const char *)this;
LODWORD(v40) = a3;
v5 = _time64(0);
srand(v5);
v3 = fopen(v4, "rb");
if ( !v3 )
{
v6 = sub_401EE0((int)dword_474EA8, "Failed to open ");
sub_401EE0(v6, v4);
v3 = (FILE *)_LN32(0);
}
v8 = sub_40C300(v3);
v7 = fopen(a2, "rb");
if ( !v7 )
{
v9 = sub_401EE0((int)dword_474EA8, "Failed to open ");
sub_401EE0(v9, a2);
v7 = (FILE *)_LN32(0);
}
v11 = sub_40C300(v7);
v10 = operator new(0x68u);
v38 = (double *)v10;
v59 = 0;
if ( v10 )
v12 = sub_409080(v10, v8, v11, SLODWORD(v39));
else
v12 = 0;
v59 = -1;
v13 = 0;
v14 = v12 + 4;
while ( *(_DWORD *)v14 )
{
++v13;
v14 += 4;
if ( v13 >= 2 )
{
while ( !sub_409500(v12) )
;
break;
}
}
v15 = *(_DWORD *)v12;
v17 = *(double *)(*(_DWORD *)v12 + 24);
HIDWORD(v36) = L"\n";
v40 = v17;
v39 = *(double *)(v15 + 32);
v35 = v39;
v18 = v17;
v19 = sub_401EE0((int)dword_474EA8, "Score 1: ");
v20 = sub_426E20(v19, v18);
v21 = sub_401EE0(v20, " score 2: ");
v22 = sub_426E20(v21, v35);
sub_401EE0(v22, (const char *)L"\n");
v16 = *(_DWORD *)(v12 + 100);
*(_DWORD *)(v12 + 100) = 0;
sub_4263E0((char *)v4, (int)&v52);
v59 = 1;
sub_401860((int)&v52, "__", 2u);
v23 = sub_4263E0((char *)a2, (int)&v41);
LOBYTE(v59) = 2;
sub_401C40((int)&v52, v23, 0, 0xFFFFFFFFu);
LOBYTE(v59) = 1;
if ( v43 >= 0x10 )
sub_42E4A1(v42);
v25 = sub_401EE0((int)dword_474EA8, "Film saved at: ");
v26 = sub_4081E0(v25, (int)&v52);
sub_401EE0(v26, (const char *)L"\n");
v38 = (double *)&v32[1];
sub_408130(".aff", (int)&v32[1], (int)&v52);
sub_421130(v16, v32[1], v33, v34, SLODWORD(v35), SHIDWORD(v35), SLODWORD(v36), HIDWORD(v36));
sub_408130(".res", (int)&v48, (int)&v52);
LOBYTE(v59) = 3;
v24 = v49;
if ( v51 < 0x10 )
v24 = (const char *)&v49;
v28 = fopen(v24, L"w");
v36 = v39 * 0.001;
v35 = 0.001 * v40;
sprintf(&Src, "%f\n%f", 0.001 * v40, v39 * 0.001);
v27 = &Src;
v47 = 15;
v46 = 0;
LOBYTE(v45) = 0;
do
v29 = *v27++;
while ( v29 );
sub_401970((int)&v44, &Src, v27 - &v56);
v30 = v45;
if ( v47 < 0x10 )
v30 = (const char *)&v45;
fputs(v30, v28);
fclose(v28);
if ( v47 >= 0x10 )
sub_42E4A1((int)v45);
v47 = 15;
v46 = 0;
LOBYTE(v45) = 0;
if ( v51 >= 0x10 )
sub_42E4A1((int)v49);
v51 = 15;
v50 = 0;
LOBYTE(v49) = 0;
if ( v54 >= 0x10 )
sub_42E4A1(v53);
return sub_42DF3E((void *)((unsigned int)&v37 ^ v57), v37);
}