Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned __int64 __fastcall sub_1404E3380(__int64 a1, unsigned __int64 a2, unsigned __int64 a3)
- {
- unsigned __int64 v3; // r10@1
- unsigned __int64 v4; // rbx@1
- __int64 v5; // r9@1
- unsigned __int64 result; // rax@1
- _BYTE *v7; // r11@2
- signed __int64 v8; // rdi@2
- unsigned __int64 v9; // r10@3
- unsigned __int64 v10; // r8@3
- int v11; // edx@3
- char v12; // cl@6
- unsigned __int64 v13; // [sp+48h] [bp+10h]@1
- v13 = a2;
- v3 = a3;
- v4 = a2;
- v5 = a1;
- result = a2 & 0xFFFFFFFFFFFFFFF0ui64;
- if ( a2 & 0xFFFFFFFFFFFFFFF0ui64 )
- {
- v7 = (_BYTE *)(a1 + 7);
- v8 = -7 - a1;
- do
- {
- *(v7 - 7) ^= v3;
- *(v7 - 6) ^= BYTE1(v3);
- *(v7 - 5) ^= v3 >> 16;
- *(v7 - 4) ^= v3 >> 24;
- *(v7 - 3) ^= v3 >> 32;
- *(v7 - 2) ^= v3 >> 40;
- *(v7 - 1) ^= v3 >> 48;
- *v7 ^= BYTE7(v3);
- v9 = ((((v3 ^ 0x4E3362BF7A4C7C26i64) << 13) ^ v3 ^ 0x4E3362BF7A4C7C26i64) >> 7) ^ ((v3 ^ 0x4E3362BF7A4C7C26i64) << 13) ^ v3 ^ 0x4E3362BF7A4C7C26i64;
- v10 = (*(v7 - 1) << 8 * (((_BYTE)v7 + -9 - a1) & 7)) | (*(v7 - 5) << 8 * (((_BYTE)v7 + -5 - a1) & 7)) | (*(v7 - 7) << 8 * ((v8 + (_BYTE)v7) & 7)) | (*(v7 - 2) << 8 * ((-10 - a1 + (_BYTE)v7) & 7)) | (*(v7 - 6) << 8 * ((-6 - a1 + (_BYTE)v7) & 7)) | (*(v7 - 3) << 8 * ((-11 - a1 + (_BYTE)v7) & 7)) | (unsigned __int64)(*v7 << 8 * ((-8 - a1 + (_BYTE)v7) & 7));
- v11 = *(v7 - 4) << 8 * ((-4 - a1 + (_BYTE)v7) & 7);
- v7 += 8;
- v3 = (v9 << 17) ^ (v11 | v10) ^ v9;
- }
- while ( (unsigned __int64)&v7[v8] < result );
- v5 = a1;
- v4 = v13;
- }
- for ( ; result < v4; *(_BYTE *)(result + v5 - 1) ^= v3 >> 8 * (v12 & 7u) )
- v12 = result++;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment