rendered paste bodyint __cdecl sub_104B3C20(int a1, int a2){ unsigned int v2; // edx@1 int v3; // ecx@1 int v4; // esi@1 int v5; // ecx@1 int v6; // edx@1 int v7; // eax@1 int v8; // ecx@1 int v9; // edx@1 int v10; // eax@1 int v11; // ecx@1 int v12; // eax@1 int v13; // edx@1 int v14; // esi@1 unsigned int v15; // ecx@1 int v16; // ecx@1 int v17; // eax@1 unsigned int v18; // ecx@1 int v19; // edx@1 int v20; // ebx@2 int v21; // eax@2 int v22; // eax@2 int result; // eax@3 int v25; // eax@3 int v26; // ecx@3 int v27; // eax@3 int v28; // esi@3 unsigned int v29; // ecx@3 unsigned int v30; // edx@3 int v31; // edx@3 int v32; // eax@3 int v33; // ecx@3 int v34; // edx@3 int v35; // eax@3 int v36; // ecx@3 int v37; // edx@3 int v38; // ecx@3 int v39; // eax@3 int v40; // edx@3 int v41; // esi@3 signed int osiem; // [sp+10h] [bp-4h]@1 v5 = *(_DWORD *)(a1 + 4) & 0xF0F0F0F ^ (*(_DWORD *)a1 >> 4) & 0xF0F0F0F; v6 = v5 ^ *(_DWORD *)(a1 + 4); osiem = 8; v7 = 16 * v5 ^ *(_DWORD *)a1; v8 = (unsigned __int16)v6 ^ ((unsigned int)v7 >> 16); v9 = v8 ^ v6; v10 = (v8 << 16) ^ v7; v11 = v10 & 0x33333333 ^ ((unsigned int)v9 >> 2) & 0x33333333; v12 = v11 ^ v10; v13 = 4 * v11 ^ v9; v14 = v12; v15 = (unsigned int)v13 >> 8; v16 = v14 & 0xFF00FF ^ v15 & 0xFF00FF; v4 = a2; v17 = v16 ^ v12; v18 = 2 * ((v16 << 8) ^ v13) | (((v16 << 8) ^ (unsigned int)v13) >> 31); v19 = (v17 ^ v18) & 0xAAAAAAAA; v3 = v19 ^ v18; v2 = 2 * (v19 ^ v17) | ((v19 ^ (unsigned int)v17) >> 31); do { v20 = *(_DWORD *)v4; v21 = *(_DWORD *)v4 ^ (((unsigned int)v3 >> 4) | (v3 << 28)); v4 += 16; v2 ^= byte_10647F68[v21 & 0x3F] | byte_10647D68[((v20 ^ (((unsigned int)v3 >> 4) | (v3 << 28))) >> 8) & 0x3F] | byte_10647B68[((unsigned int)v21 >> 16) & 0x3F] | *((_DWORD *)&DES_Sbox + (((unsigned int)v21 >> 24) & 0x3F)) | dword_10648068[(v3 ^ *(_DWORD *)(v4 - 12)) & 0x3F] | dword_10647E68[(((unsigned int)v3 ^ *(_DWORD *)(v4 - 12)) >> 8) & 0x3F] | byte_10647C68[(((unsigned int)v3 ^ *(_DWORD *)(v4 - 12)) >> 16) & 0x3F] | unk_10647A68[(((unsigned int)v3 ^ *(_DWORD *)(v4 - 12)) >> 24) & 0x3F]; v22 = *(_DWORD *)(v4 - 8) ^ ((v2 >> 4) | (v2 << 28)); v3 ^= byte_10647F68[v22 & 0x3F] | byte_10647D68[((*(_DWORD *)(v4 - 8) ^ ((v2 >> 4) | (v2 << 28))) >> 8) & 0x3F] | byte_10647B68[((unsigned int)v22 >> 16) & 0x3F] | *((_DWORD *)&DES_Sbox + (((*(_DWORD *)(v4 - 8) ^ ((v2 >> 4) | (v2 << 28))) >> 24) & 0x3F)) | dword_10648068[(v2 ^ *(_DWORD *)(v4 - 4)) & 0x3F] | dword_10647E68[((v2 ^ *(_DWORD *)(v4 - 4)) >> 8) & 0x3F] | byte_10647C68[((v2 ^ *(_DWORD *)(v4 - 4)) >> 16) & 0x3F] | unk_10647A68[((v2 ^ *(_DWORD *)(v4 - 4)) >> 24) & 0x3F]; } while ( osiem-- != 1 ); v25 = ((unsigned int)v3 >> 1) | (v3 << 31); v26 = (v2 ^ (((unsigned int)v3 >> 1) | (v3 << 31))) & 0xAAAAAAAA; v27 = v26 ^ v25; v28 = v27; v29 = ((v26 ^ v2) >> 1) | ((v26 ^ v2) << 31); v30 = v29 >> 8; v31 = v28 & 0xFF00FF ^ v30 & 0xFF00FF; v32 = v31 ^ v27; v33 = (v31 << 8) ^ v29; v34 = v32 & 0x33333333 ^ ((unsigned int)v33 >> 2) & 0x33333333; v35 = v34 ^ v32; v36 = 4 * v34 ^ v33; v37 = (unsigned __int16)v36 ^ ((unsigned int)v35 >> 16); v38 = v37 ^ v36; v39 = (v37 << 16) ^ v35; v40 = v38 & 0xF0F0F0F ^ ((unsigned int)v39 >> 4) & 0xF0F0F0F; v41 = v39 ^ 16 * (v38 & 0xF0F0F0F ^ ((unsigned int)v39 >> 4) & 0xF0F0F0F); result = a1; *(_DWORD *)a1 = v41; *(_DWORD *)(a1 + 4) = v38 ^ v40; return result;}