Dark Mode
int __cdecl main(int argc, const char **argv, const char **envp)
{
__int64 v3; // r9
char *v4; // rdx
_QWORD *v5; // rax
__int128 *v6; // rdx
unsigned __int64 v7; // rcx
unsigned __int64 v8; // rcx
unsigned __int64 v9; // rcx
__int64 *v10; // rdx
unsigned __int64 v11; // rcx
int v12; // r11d
int v13; // esi
int v14; // ebx
__int64 v15; // r13
unsigned __int16 v16; // r12
int v17; // edi
unsigned __int16 v18; // r14
int v19; // r10d
unsigned __int16 v20; // r9
int v21; // edx
unsigned int v22; // ecx
int v23; // edx
unsigned int v24; // ecx
int v25; // edx
unsigned int v26; // ecx
int v27; // edx
unsigned int v28; // edi
int v29; // esi
char v30; // cl
__int16 v31; // r12
unsigned int v32; // r10d
int v33; // r11d
__int16 v34; // r14
unsigned __int16 v35; // r8
int v36; // ebx
unsigned __int16 v37; // r15
unsigned int v38; // ecx
int v39; // edx
unsigned int v40; // ecx
int v41; // edx
unsigned int v42; // ecx
char v43; // r11
char *v44; // rcx
__int64 v45; // rax
__int64 v46; // rdx
char *v47; // rdx
__int64 *v48; // rdx
unsigned __int64 v49; // rcx
unsigned __int64 v50; // rcx
unsigned __int64 v51; // rcx
__int128 *v52; // rdx
unsigned __int64 v53; // rcx
int v54; // r11d
int v55; // edi
int v56; // esi
__int64 v57; // r13
unsigned __int16 v58; // r12
int v59; // ebx
unsigned __int16 v60; // r14
unsigned __int16 v61; // dx
int v62; // r10d
unsigned __int16 v63; // r9
int v64; // r8d
unsigned int v65; // ecx
int v66; // r8d
unsigned int v67; // eax
int v68; // r8d
unsigned int v69; // ecx
int v70; // r8d
unsigned int v71; // ebx
int v72; // edi
char v73; // cl
__int16 v74; // r12
unsigned int v75; // r10d
int v76; // r11d
__int16 v77; // r14
unsigned __int16 v78; // dx
int v79; // esi
unsigned __int16 v80; // r15
unsigned int v81; // ecx
int v82; // r8d
unsigned int v83; // ecx
unsigned int v84; // ecx
int v85; // ecx
char v86; // r11
char v87; // r11
_QWORD *v88; // rcx
_DWORD *v89; // rbx
int v90; // eax
_QWORD *v91; // rcx
bool v92; // zf
__int64 v93; // rax
__int64 v94; // rdx
__int64 v96; // [rsp+20h] [rbp-60h]
unsigned __int64 v97; // [rsp+28h] [rbp-58h]
__int64 v98; // [rsp+30h] [rbp-50h]
__int64 v99; // [rsp+38h] [rbp-48h] BYREF
_DWORD *v100; // [rsp+40h] [rbp-40h]
__int64 v101; // [rsp+48h] [rbp-38h] BYREF
__int64 v102; // [rsp+50h] [rbp-30h] BYREF
__int128 v103; // [rsp+58h] [rbp-28h] BYREF
__int128 v104; // [rsp+68h] [rbp-18h] BYREF
__int64 v105; // [rsp+78h] [rbp-8h] BYREF
v4 = (char *)Block;
LODWORD(v96) = 0;
WORD2(v96) = 0;
v97 = 0i64;
v98 = 0i64;
LOBYTE(v99) = 0;
*(_DWORD *)((char *)&v99 + 1) = 0;
v5 = Block;
*(_WORD *)((char *)&v99 + 5) = 256;
if ( Block )
{
while ( *(_DWORD *)v5 != 5 )
{
v5 = (_QWORD *)v5[3];
if ( !v5 )
goto LABEL_4;
}
HIBYTE(v99) = 1;
LABEL_36:
v44 = v4;
if ( v4 )
{
while ( *(_DWORD *)v44 != 5 )
{
v44 = (char *)*((_QWORD *)v44 + 3);
if ( !v44 )
goto LABEL_39;
}
}
else
{
LABEL_39:
v44 = 0i64;
}
v45 = qword_1400056E8;
if ( v44 != (char *)qword_1400056E8 )
{
v3 = *((_QWORD *)v44 + 3);
if ( v44 == v4 )
{
Block = (void *)*((_QWORD *)v44 + 3);
}
else
{
*(_QWORD *)(*((_QWORD *)v44 + 2) + 24i64) = v3;
v45 = qword_1400056E8;
}
v46 = *((_QWORD *)v44 + 2);
if ( v44 == (char *)v45 )
{
qword_1400056E8 = *((_QWORD *)v44 + 2);
}
else
{
*(_QWORD *)(*((_QWORD *)v44 + 3) + 16i64) = v46;
v46 = qword_1400056E8;
}
if ( !v46 )
{
Block = v44;
v47 = v44 + 4;
qword_1400056E8 = (__int64)v44;
goto LABEL_107;
}
*(_QWORD *)(v46 + 24) = v44;
*((_QWORD *)v44 + 2) = qword_1400056E8;
qword_1400056E8 = (__int64)v44;
}
v47 = v44 + 4;
goto LABEL_107;
}
LABEL_4:
HIBYTE(v99) = 0;
v6 = &v103;
v7 = 0xC6BC279692B5CC93ui64;
v103 = 0i64;
do
{
v8 = 0xC6BC279692B5CC93ui64 * (((v7 + 127) >> 7) ^ (v7 + 127));
v7 = (v8 >> 8) ^ v8;
*(_BYTE *)v6 = v7;
v6 = (__int128 *)((char *)v6 + 1);
}
while ( v6 != &v104 );
v101 = 0i64;
v9 = 0xC6BC279692B5CC8Bui64;
v10 = &v101;
do
{
v11 = 0xC6BC279692B5CC8Bui64 * (((v9 + 127) >> 7) ^ (v9 + 127));
v9 = (v11 >> 8) ^ v11;
*(_BYTE *)v10 = v9;
v10 = (__int64 *)((char *)v10 + 1);
}
while ( v10 != &v102 );
v12 = 0;
v13 = 0;
v14 = 0;
v15 = 32i64;
v16 = v103 & 1 | (2 * (BYTE1(v103) & 1)) | (4 * (BYTE2(v103) & 1)) | (8 * (BYTE3(v103) & 1)) | (16 * (BYTE4(v103) & 1)) | (32 * (BYTE5(v103) & 1)) | ((BYTE6(v103) & 1) << 6) | ((BYTE7(v103) & 1) << 7);
v17 = v16;
envp = (const char **)(HIBYTE(v101) & 1);
v18 = BYTE8(v103) & 1 | (2 * (BYTE9(v103) & 1)) | (4 * (BYTE10(v103) & 1)) | (8 * (BYTE11(v103) & 1)) | (16 * (BYTE12(v103) & 1)) | (32 * (BYTE13(v103) & 1)) | ((BYTE14(v103) & 1) << 6) | ((HIBYTE(v103) & 1) << 7);
LOWORD(envp) = v101 & 1 | (2 * (BYTE1(v101) & 1)) | (4 * (BYTE2(v101) & 1)) | (8 * (BYTE3(v101) & 1)) | (16 * (BYTE4(v101) & 1)) | (32 * (BYTE5(v101) & 1)) | ((BYTE6(v101) & 1) << 6) | ((_WORD)envp << 7);
v19 = v18;
do
{
v20 = v18 & (unsigned __int16)envp ^ v16 & (v18 ^ (unsigned __int16)envp);
v21 = 0;
v22 = v17 & 1;
if ( (v17 & 1) != 0 )
{
do
{
v21 += v22 & 1;
v22 >>= 1;
}
while ( v22 );
if ( v21 == 1 )
v14 ^= v17;
}
v23 = 0;
v24 = v19 & 1;
if ( (v19 & 1) != 0 )
{
do
{
v23 += v24 & 1;
v24 >>= 1;
}
while ( v24 );
if ( v23 == 1 )
v13 ^= v19;
}
v25 = 0;
v26 = (unsigned __int8)envp & 1;
if ( ((unsigned __int8)envp & 1) != 0 )
{
do
{
v25 += v26 & 1;
v26 >>= 1;
}
while ( v26 );
if ( v25 == 1 )
v12 ^= (unsigned __int16)envp;
}
v27 = 0;
v28 = (unsigned __int16)(v20 ^ v16 ^ HIBYTE(v16));
v29 = v28 ^ v13;
v30 = v20 ^ v16 ^ HIBYTE(v16);
v31 = v20 ^ v16 ^ HIBYTE(v16);
v32 = (unsigned __int16)(v20 ^ v18 ^ (v18 >> 10));
v33 = v32 ^ v12;
v34 = v20 ^ v18 ^ (v18 >> 10);
v35 = v20 ^ ((unsigned __int16)envp >> 10) ^ (unsigned __int16)envp;
v36 = v20 ^ v14;
v37 = v32 & v35 ^ v28 & (v32 ^ v35);
v38 = v30 & 1;
if ( v38 )
{
do
{
v27 += v38 & 1;
v38 >>= 1;
}
while ( v38 );
if ( v27 == 1 )
v36 ^= v28;
}
v39 = 0;
v40 = v32 & 1;
if ( (v32 & 1) != 0 )
{
do
{
v39 += v40 & 1;
v40 >>= 1;
}
while ( v40 );
if ( v39 == 1 )
v29 ^= v32;
}
v41 = 0;
v42 = v35 & 1;
if ( (v35 & 1) != 0 )
{
do
{
v41 += v42 & 1;
v42 >>= 1;
}
while ( v42 );
if ( v41 == 1 )
v33 ^= v35;
}
v14 = v37 ^ v36;
v16 = v37 ^ (v28 >> 8) ^ v31;
v18 = v37 ^ (v32 >> 10) ^ v34;
v3 = v37 ^ (v35 >> 10);
v17 = v16;
v19 = v18;
v13 = v16 ^ v29;
v12 = v18 ^ v33;
LOWORD(v96) = v16;
LOWORD(envp) = v37 ^ (v35 >> 10) ^ v35;
WORD1(v96) = v18;
--v15;
}
while ( v15 );
LODWORD(v98) = v12;
WORD2(v96) = (_WORD)envp;
v97 = __PAIR64__(v13, v14);
v43 = v13 ^ v12 & 1;
BYTE4(v98) = v14 ^ v43 ^ 0x74;
BYTE5(v98) = v14 ^ v43 ^ 0x65;
BYTE6(v98) = v14 ^ v43 ^ 0x73;
HIBYTE(v98) = BYTE4(v98);
if ( HIBYTE(v99) )
{
v4 = (char *)Block;
goto LABEL_36;
}
v48 = (__int64 *)&v104;
v49 = 0xC6BC279692B5CC93ui64;
v104 = 0i64;
do
{
v50 = 0xC6BC279692B5CC93ui64 * (((v49 + 127) >> 7) ^ (v49 + 127));
v49 = (v50 >> 8) ^ v50;
*(_BYTE *)v48 = v49;
v48 = (__int64 *)((char *)v48 + 1);
}
while ( v48 != &v105 );
v102 = 0i64;
v51 = 0xC6BC279692B5CC8Bui64;
v52 = (__int128 *)&v102;
do
{
v53 = 0xC6BC279692B5CC8Bui64 * (((v51 + 127) >> 7) ^ (v51 + 127));
v51 = (v53 >> 8) ^ v53;
*(_BYTE *)v52 = v51;
v52 = (__int128 *)((char *)v52 + 1);
}
while ( v52 != &v103 );
v54 = 0;
v55 = 0;
v56 = 0;
v57 = 32i64;
v58 = v104 & 1 | (2 * (BYTE1(v104) & 1)) | (4 * (BYTE2(v104) & 1)) | (8 * (BYTE3(v104) & 1)) | (16 * (BYTE4(v104) & 1)) | (32 * (BYTE5(v104) & 1)) | ((BYTE6(v104) & 1) << 6) | ((BYTE7(v104) & 1) << 7);
v59 = v58;
v60 = BYTE8(v104) & 1 | (2 * (BYTE9(v104) & 1)) | (4 * (BYTE10(v104) & 1)) | (8 * (BYTE11(v104) & 1)) | (16 * (BYTE12(v104) & 1)) | (32 * (BYTE13(v104) & 1)) | ((BYTE14(v104) & 1) << 6) | ((HIBYTE(v104) & 1) << 7);
v61 = v102 & 1 | (2 * (BYTE1(v102) & 1)) | (4 * (BYTE2(v102) & 1)) | (8 * (BYTE3(v102) & 1)) | (16 * (BYTE4(v102) & 1)) | (32 * (BYTE5(v102) & 1)) | ((BYTE6(v102) & 1) << 6) | ((HIBYTE(v102) & 1) << 7);
v62 = v60;
do
{
v63 = v60 & v61 ^ v58 & (v60 ^ v61);
v64 = 0;
v65 = v59 & 1;
if ( (v59 & 1) != 0 )
{
do
{
v64 += v65 & 1;
v65 >>= 1;
}
while ( v65 );
if ( v64 == 1 )
v56 ^= v59;
}
v66 = 0;
v67 = v62 & 1;
if ( (v62 & 1) != 0 )
{
do
{
v66 += v67 & 1;
v67 >>= 1;
}
while ( v67 );
if ( v66 == 1 )
v55 ^= v62;
}
v68 = 0;
v69 = v61 & 1;
if ( (v61 & 1) != 0 )
{
do
{
v68 += v69 & 1;
v69 >>= 1;
}
while ( v69 );
if ( v68 == 1 )
v54 ^= v61;
}
v70 = 0;
v71 = (unsigned __int16)(v63 ^ v58 ^ HIBYTE(v58));
v72 = v71 ^ v55;
v73 = v63 ^ v58 ^ HIBYTE(v58);
v74 = v63 ^ v58 ^ HIBYTE(v58);
v75 = (unsigned __int16)(v63 ^ v60 ^ (v60 >> 10));
v76 = v75 ^ v54;
v77 = v63 ^ v60 ^ (v60 >> 10);
v78 = v63 ^ (v61 >> 10) ^ v61;
v79 = v63 ^ v56;
v80 = v75 & v78 ^ v71 & (v75 ^ v78);
v81 = v73 & 1;
if ( v81 )
{
do
{
v70 += v81 & 1;
v81 >>= 1;
}
while ( v81 );
if ( v70 == 1 )
v79 ^= v71;
}
v82 = 0;
v83 = v75 & 1;
if ( (v75 & 1) != 0 )
{
do
{
v82 += v83 & 1;
v83 >>= 1;
}
while ( v83 );
if ( v82 == 1 )
v72 ^= v75;
}
envp = 0i64;
v84 = v78 & 1;
if ( (v78 & 1) != 0 )
{
do
{
envp = (const char **)((v84 & 1) + (unsigned int)envp);
v84 >>= 1;
}
while ( v84 );
if ( (_DWORD)envp == 1 )
v76 ^= v78;
}
v58 = v80 ^ (v71 >> 8) ^ v74;
v60 = v80 ^ (v75 >> 10) ^ v77;
v3 = v80 ^ (v78 >> 10);
v59 = v58;
v85 = v79 ^ v80;
v62 = v60;
v55 = v58 ^ v72;
LOWORD(v96) = v58;
v54 = v60 ^ v76;
WORD1(v96) = v60;
v61 = v80 ^ (v78 >> 10) ^ v78;
v56 = v85;
--v57;
}
while ( v57 );
LODWORD(v98) = v54;
v86 = v54 & 1;
WORD2(v96) = v61;
v97 = __PAIR64__(v55, v85);
BYTE1(v99) = v55 ^ BYTE4(v98) ^ v85 ^ v86;
BYTE2(v99) = v55 ^ BYTE5(v98) ^ v85 ^ v86;
v87 = v85 ^ v86;
BYTE3(v99) = v55 ^ BYTE6(v98) ^ v87;
BYTE4(v99) = v55 ^ BYTE4(v98) ^ v87;
if ( BYTE6(v99) )
{
v88 = Block;
if ( Block )
{
while ( *(_DWORD *)v88 != 5 )
{
v88 = (_QWORD *)v88[3];
if ( !v88 )
goto LABEL_86;
}
*((_DWORD *)v88 + 1) = *(_DWORD *)((char *)&v99 + 1);
*((_BYTE *)v88 + 8) = BYTE5(v99);
v93 = qword_1400056E8;
if ( v88 != (_QWORD *)qword_1400056E8 )
{
if ( v88 == Block )
{
Block = (void *)v88[3];
}
else
{
*(_QWORD *)(v88[2] + 24i64) = v88[3];
v93 = qword_1400056E8;
}
v94 = v88[2];
if ( v88 == (_QWORD *)v93 )
{
qword_1400056E8 = v88[2];
}
else
{
*(_QWORD *)(v88[3] + 16i64) = v94;
v94 = qword_1400056E8;
}
if ( v94 )
{
*(_QWORD *)(v94 + 24) = v88;
v88[2] = qword_1400056E8;
}
else
{
Block = v88;
}
qword_1400056E8 = (__int64)v88;
}
}
else
{
LABEL_86:
v89 = operator new(0x20ui64);
v100 = v89;
*v89 = 5;
v89[1] = *(_DWORD *)((char *)&v99 + 1);
*((_BYTE *)v89 + 8) = BYTE5(v99);
*((_QWORD *)v89 + 2) = 0i64;
*((_QWORD *)v89 + 3) = 0i64;
v90 = dword_1400056F0;
if ( (unsigned int)dword_1400056F0 >= 0x3E8 )
{
v91 = Block;
v92 = Block == (void *)qword_1400056E8;
Block = (void *)*((_QWORD *)Block + 3);
if ( v92 )
qword_1400056E8 = v91[2];
else
*(_QWORD *)(v91[3] + 16i64) = v91[2];
j_j_free(v91);
v90 = --dword_1400056F0;
}
if ( qword_1400056E8 )
{
*(_QWORD *)(qword_1400056E8 + 24) = v89;
*((_QWORD *)v89 + 2) = qword_1400056E8;
v90 = dword_1400056F0;
}
else
{
Block = v89;
}
qword_1400056E8 = (__int64)v89;
dword_1400056F0 = v90 + 1;
}
}
v47 = (char *)&v99 + 1;
LABEL_107:
printf(&unk_140003328, v47, envp, v3, v96, v97, v98, v99, v100);
return 0;
}