char __userpurge sub_10006BF0@<al>(int a1@<ebx>, _DWORD *a2, _DWORD *a3, int a4, int a5, int a6, int a7)
{
__m128i *v7; // eax
__int128 *v8; // ecx
__int128 *v9; // edi
unsigned int v10; // esi
unsigned int v11; // esi
unsigned __int64 v12; // kr10_8
unsigned int v13; // ecx
__int64 v14; // rax
__int64 v15; // rax
unsigned int v16; // edx
unsigned int v17; // edi
unsigned int v18; // esi
unsigned __int64 v19; // kr20_8
int v20; // edi
unsigned int v21; // ecx
unsigned __int64 v22; // kr38_8
__int32 v23; // ecx
unsigned int v24; // ecx
__int32 v25; // edi
unsigned __int64 v26; // kr48_8
int v27; // edi
__int32 v28; // esi
unsigned int v29; // ecx
int v30; // edi
unsigned __int64 v31; // kr50_8
_DWORD *v32; // eax
int *v33; // esi
char v34; // al
int *v35; // ecx
__int32 *v36; // eax
unsigned __int8 *v37; // eax
char v38; // al
int *v39; // ecx
__int32 *v40; // eax
char v41; // al
int *v42; // ecx
unsigned __int8 *v43; // eax
void *v44; // edx
unsigned int v46; // [esp+Ch] [ebp-84h]
__m128 v47; // [esp+14h] [ebp-7Ch] BYREF
__m128i v48; // [esp+24h] [ebp-6Ch] BYREF
unsigned __int8 v49; // [esp+34h] [ebp-5Ch] BYREF
__int128 v50; // [esp+38h] [ebp-58h] BYREF
__int64 v51; // [esp+48h] [ebp-48h]
__int128 v52; // [esp+50h] [ebp-40h] BYREF
__int64 v53; // [esp+60h] [ebp-30h]
__m128 v54; // [esp+68h] [ebp-28h] BYREF
char v55[4]; // [esp+78h] [ebp-18h] BYREF
__m128i v56; // [esp+7Ch] [ebp-14h] BYREF
int v57; // [esp+8Ch] [ebp-4h]
if ( *a2 != 0x19 )
return 1;
a3[2] = 0x28;
if ( sub_1000A180(a3, (__m128i *)&v49, 8, 1) )
{
sub_10006AE0(&v50, v49, 0);
v7 = (__m128i *)&v50;
if ( HIDWORD(v51) > 0xF )
v7 = (__m128i *)v50;
v57 = 0;
sub_1000A120(a3, v7, v49);
v52 = v50;
v53 = v51;
}
else
{
v53 = 0xF00000000i64;
v52 = 0i64;
LOBYTE(v52) = 0;
}
v57 = 1;
v48.m128i_i32[0] = 0xFD9;
if ( sub_1000A0B0() )
{
if ( sub_1000A180(a3, &v56, 0x20, 1) )
sub_1000A360((int)&v56, (int)&v48, 4);
}
else
{
sub_1000A180(a3, &v48, 0x20, 1);
}
v8 = &v52;
v9 = &v52;
if ( HIDWORD(v53) > 0xF )
v9 = (__int128 *)v52;
if ( HIDWORD(v53) > 0xF )
v8 = (__int128 *)v52;
v47.m128_u64[1] = 0i64;
v10 = 0;
v56.m128i_i32[0] = (__int32)v8 + v53;
*(__int64 *)((char *)v48.m128i_i64 + 4) = (unsigned int)v9;
if ( v9 != (__int128 *)((char *)v8 + v53) )
{
do
{
v12 = 0xD3i64 * *(unsigned __int8 *)v9 + __PAIR64__(v48.m128i_u32[2], v10);
v11 = 0xD3 * *(unsigned __int8 *)v9 + v10;
v13 = (__PAIR64__(
((unsigned int)((HIDWORD(v12) >> 0x1F) ^ HIDWORD(v12)) >> 0x1B) ^ (HIDWORD(v12) >> 0x1F) ^ HIDWORD(v12) ^ (((unsigned int)(__PAIR64__((HIDWORD(v12) >> 0x1F) ^ HIDWORD(v12), (unsigned int)(__PAIR64__(HIDWORD(v12), v11) >> 0x1F) ^ v11) >> 0x1B) ^ (unsigned int)(__PAIR64__(HIDWORD(v12), v11) >> 0x1F) ^ v11) << 8),
(__PAIR64__(
(HIDWORD(v12) >> 0x1F) ^ HIDWORD(v12),
(unsigned int)(__PAIR64__(HIDWORD(v12), v11) >> 0x1F) ^ v11) >> 0x1B) ^ (__PAIR64__(HIDWORD(v12), v11) >> 0x1F) ^ v11)
+ 0x4E7D18C2) >> 0x20;
v10 = ((__PAIR64__(
(HIDWORD(v12) >> 0x1F) ^ HIDWORD(v12),
(unsigned int)(__PAIR64__(HIDWORD(v12), v11) >> 0x1F) ^ v11) >> 0x1B) ^ (__PAIR64__(HIDWORD(v12), v11) >> 0x1F) ^ v11)
+ 0x4E7D18C2;
v9 = (__int128 *)(v48.m128i_i32[1] + 1);
*(__int64 *)((char *)v48.m128i_i64 + 4) = __PAIR64__(v13, (unsigned int)v9);
}
while ( v9 != (__int128 *)v56.m128i_i32[0] );
}
v14 = sub_1000AFA1();
LODWORD(v15) = sub_1000B6A0(v14, 0xAi64);
v56.m128i_i32[0] = v15;
v46 = v16;
v48.m128i_i32[1] = (unsigned __int16)word_10025E9C;
HIDWORD(v15) = v16 ^ (__PAIR64__(v48.m128i_u32[2], v10) >> 5);
v17 = (unsigned __int16)word_10025E9C ^ v15 ^ (v10 << 0x1B);
v48.m128i_i32[3] = (unsigned __int16)word_10025E9C ^ ((v15 ^ (v10 << 0x1B) ^ (unsigned __int64)(unsigned __int16)word_10025E9C) >> 0x17) ^ (v10 + v48.m128i_i32[0]);
v18 = (HIDWORD(v15) >> 0x17) ^ ((v10 + __PAIR64__(v48.m128i_u32[2], v48.m128i_u32[0])) >> 0x20);
v19 = __PAIR64__(HIDWORD(v15), v17) - v48.m128i_u32[0];
v20 = (v18 >> 9) ^ v19;
v48.m128i_i32[2] = (0x10 * v20) ^ ((__PAIR64__(v18, v48.m128i_u32[3]) + 0x1977) >> 0x20);
HIDWORD(v15) = (unsigned __int16)word_10025E9C ^ v20 ^ ((v48.m128i_i32[3] + 0x1977) << 0x1B);
v21 = HIDWORD(v19) ^ (__PAIR64__(v48.m128i_u32[2], v48.m128i_i32[3] + 0x1977) >> 5);
v48.m128i_i32[2] = (__PAIR64__(v48.m128i_u32[2], v48.m128i_u32[0]) + (unsigned int)(v48.m128i_i32[3] + 0x1977)) >> 0x20;
v48.m128i_i32[3] = (__PAIR64__(v21, HIDWORD(v15)) >> 0x17) ^ (v48.m128i_i32[0] + v48.m128i_i32[3] + 0x1977);
v48.m128i_i32[3] ^= (unsigned __int16)word_10025E9C;
v48.m128i_i32[2] ^= v21 >> 0x17;
v22 = __PAIR64__(v21, HIDWORD(v15)) - v48.m128i_u32[0];
HIDWORD(v15) = ((unsigned __int32)v48.m128i_i32[2] >> 9) ^ v22;
v23 = (0x10 * HIDWORD(v15)) ^ (__CFADD__(v48.m128i_i32[3], 0x1977) + v48.m128i_i32[2]);
v48.m128i_i32[3] += 0x1977;
v48.m128i_i32[2] = v23;
v24 = HIDWORD(v22) ^ (__PAIR64__(v23, v48.m128i_u32[3]) >> 5);
v25 = (unsigned __int16)word_10025E9C ^ HIDWORD(v15) ^ (v48.m128i_i32[3] << 0x1B);
v48.m128i_i32[2] = (__PAIR64__(v48.m128i_u32[2], v48.m128i_u32[0]) + v48.m128i_u32[3]) >> 0x20;
v48.m128i_i32[3] = (__PAIR64__(v24, v25) >> 0x17) ^ (v48.m128i_i32[0] + v48.m128i_i32[3]);
v48.m128i_i32[3] ^= (unsigned __int16)word_10025E9C;
v48.m128i_i32[2] ^= v24 >> 0x17;
v26 = __PAIR64__(v24, v25) - v48.m128i_u32[0];
v27 = ((unsigned __int32)v48.m128i_i32[2] >> 9) ^ v26;
v48.m128i_i32[2] = (0x10 * v27) ^ (__CFADD__(v48.m128i_i32[3], 0x1977) + v48.m128i_i32[2]);
v48.m128i_i32[3] += 0x1977;
v28 = (unsigned __int16)word_10025E9C ^ v27 ^ (v48.m128i_i32[3] << 0x1B);
v29 = HIDWORD(v26) ^ (__PAIR64__(v48.m128i_u32[2], v48.m128i_u32[3]) >> 5);
v30 = v48.m128i_i32[0];
v31 = v48.m128i_u32[0] + __PAIR64__(v48.m128i_u32[2], v48.m128i_u32[3]);
v48.m128i_i32[3] += v48.m128i_i32[0];
v48.m128i_i32[3] ^= __PAIR64__(v29, v28) >> 0x17;
v48.m128i_i32[2] = (v29 >> 0x17) ^ HIDWORD(v31);
v48.m128i_i32[3] ^= (unsigned __int16)word_10025E9C;
v54.m128_u64[0] = ((unsigned __int32)v48.m128i_i32[2] >> 9) ^ (__PAIR64__(v29, v28) - v48.m128i_u32[0]);
v54.m128_i32[2] = v48.m128i_i32[3] + 0x1977;
v54.m128_i32[3] = ((__PAIR64__(v48.m128i_u32[2], v48.m128i_u32[3]) + 0x1977) >> 0x20) ^ (0x10 * v54.m128_i32[0]);
v47.m128_u64[0] = 0x8D04F84DAF03B5F0ui64;
v47.m128_u64[1] = 0xF5044604496D460Dui64;
v54 = _mm_xor_ps(v54, v47);
v32 = sub_1000B073(0x114u);
v47.m128_i32[3] = (__int32)v32;
LOBYTE(v57) = 2;
if ( v32 )
v33 = sub_10009F90(v32);
else
v33 = 0;
LOBYTE(v57) = 1;
v48.m128i_i32[1] = 0xFD9;
v34 = sub_1000A0B0();
v35 = v33;
if ( v34 )
{
sub_1000A360((int)&v48.m128i_i32[1], (int)&v47.m128_i32[3], 4);
v36 = &v47.m128_i32[3];
v35 = v33;
}
else
{
v36 = &v48.m128i_i32[1];
}
sub_1000A400(v35, (unsigned __int8 *)v36, 0x20, 1);
v49 = 1;
sub_1000A400(v33, &v49, 8, 1);
v49 = v53;
sub_1000A400(v33, &v49, 8, 1);
v37 = (unsigned __int8 *)&v52;
if ( HIDWORD(v53) > 0xF )
v37 = (unsigned __int8 *)v52;
sub_1000A3A0(v33, v37, v53);
v48.m128i_i32[1] = v48.m128i_i32[0];
v38 = sub_1000A0B0();
v39 = v33;
if ( v38 )
{
sub_1000A360((int)&v48.m128i_i32[1], (int)&v47.m128_i32[3], 4);
v40 = &v47.m128_i32[3];
v39 = v33;
}
else
{
v40 = &v48.m128i_i32[1];
}
sub_1000A400(v39, (unsigned __int8 *)v40, 0x20, 1);
v49 = 0x2A;
sub_1000A400(v33, &v49, 8, 1);
sub_1000A3A0(v33, "E02262CF28BC542486C558D4BE9EFB716592AFAF8B", 0x2Au);
v49 = 5;
sub_1000A400(v33, &v49, 8, 1);
sub_1000A3A0(v33, "0.3.7", 5u);
v47.m128_u64[1] = sub_1000B750(__SPAIR64__(v46, v56.m128i_u32[0]), 0x2FE1AAA6C5F27i64) ^ 0x95DF73A7F484CEF5ui64;
v41 = sub_1000A0B0();
v42 = v33;
if ( v41 )
{
sub_1000A360((int)&v47.m128_i32[2], (int)v55, 8);
v43 = (unsigned __int8 *)v55;
v42 = v33;
}
else
{
v43 = &v47.m128_u8[8];
}
sub_1000A400(v42, v43, 0x40, 1);
sub_1000A3A0(v33, (unsigned __int8 *)&v54, 0x10u);
sub_10009CF0(0x19, (int)v33, 1, 9, 0, 0);
if ( v33 )
{
sub_10009FC0((int)v33);
sub_1000B0A3(v33);
}
if ( HIDWORD(v53) > 0xF )
{
v44 = (void *)v52;
if ( (unsigned int)(HIDWORD(v53) + 1) >= 0x1000 )
{
v44 = *(void **)(v52 - 4);
if ( (unsigned int)(v52 - (_DWORD)v44 - 4) > 0x1F )
{
sub_1000E83F(a1, v30);
JUMPOUT(0x10007188);
}
}
sub_1000B0A3(v44);
}
return 0;
}