Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned __int64 __fastcall sub_140382190(__int64 lpKey, int *dwLeft, int *dwRight)
- {
- int v4; // er10@1
- int *v5; // rdi@1
- unsigned __int64 v6; // r11@1
- int v7; // er10@1
- int v8; // esi@1
- int v9; // er10@1
- int v10; // esi@1
- int v11; // er10@1
- int v12; // esi@1
- int v13; // er10@1
- int v14; // esi@1
- int v15; // er10@1
- int v16; // esi@1
- int v17; // er10@1
- int v18; // esi@1
- int v19; // er10@1
- int v20; // esi@1
- int v21; // er10@1
- unsigned int v22; // er8@1
- unsigned __int64 result; // rax@1
- v4 = *dwRight + *(_DWORD *)(lpKey + 136);
- v5 = dwRight;
- v6 = (unsigned int)(v4 << *(_DWORD *)(lpKey + 140)) | ((unsigned __int64)(unsigned int)v4 >> (-*(_BYTE *)(lpKey + 140) & 0x1F));
- v7 = *dwLeft ^ (S4_SBox[(unsigned __int64)(unsigned __int8)(v6 >> 16)]
- + (S2_SBox[(unsigned __int64)(unsigned __int8)v6] ^ S1_SBox[(unsigned __int64)(unsigned __int8)(v6 >> 8)])
- - S3_SBox[v6 >> 24]);
- v8 = ((S3_SBox[((unsigned int)((*(_DWORD *)(lpKey + 128) - v7) << *(_DWORD *)(lpKey + 132)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 128) - v7) >> (-*(_BYTE *)(lpKey + 132) & 0x1F))) >> 24] ^ (S2_SBox[(unsigned __int64)(unsigned __int8)(((*(_DWORD *)(lpKey + 128) - v7) << *(_DWORD *)(lpKey + 132)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 128) - v7) >> (-*(_BYTE *)(lpKey + 132) & 0x1F)))] + S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 128) - v7) << *(_DWORD *)(lpKey + 132)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 128) - v7) >> (-*(_BYTE *)(lpKey + 132) & 0x1F))) >> 8)]))
- - S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 128) - v7) << *(_DWORD *)(lpKey + 132)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 128) - v7) >> (-*(_BYTE *)(lpKey + 132) & 0x1F))) >> 16)]) ^ *dwRight;
- v9 = S4_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) << *(_DWORD *)(lpKey + 124)) | ((unsigned __int64)((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) >> (-*(_BYTE *)(lpKey + 124) & 0x1F))) >> 16)] ^ (S3_SBox[((((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) << *(_DWORD *)(lpKey + 124)) | ((unsigned __int64)((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) >> (-*(_BYTE *)(lpKey + 124) & 0x1F))) >> 24] + S1_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) << *(_DWORD *)(lpKey + 124)) | ((unsigned __int64)((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) >> (-*(_BYTE *)(lpKey + 124) & 0x1F))) >> 8)] - S2_SBox[(unsigned __int64)(unsigned __int8)(((v8 ^ *(_DWORD *)(lpKey + 120)) << *(_DWORD *)(lpKey + 124)) | ((unsigned __int64)((unsigned int)v8 ^ *(_DWORD *)(lpKey + 120)) >> (-*(_BYTE *)(lpKey + 124) & 0x1F)))]) ^ v7;
- v10 = (S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v9 + *(_DWORD *)(lpKey + 112)) << *(_DWORD *)(lpKey + 116)) | ((unsigned __int64)(unsigned int)(v9 + *(_DWORD *)(lpKey + 112)) >> (-*(_BYTE *)(lpKey + 116) & 0x1F))) >> 16)]
- + (S2_SBox[(unsigned __int64)(unsigned __int8)(((v9 + *(_DWORD *)(lpKey + 112)) << *(_DWORD *)(lpKey + 116)) | ((unsigned __int64)(unsigned int)(v9 + *(_DWORD *)(lpKey + 112)) >> (-*(_BYTE *)(lpKey + 116) & 0x1F)))] ^ S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v9 + *(_DWORD *)(lpKey + 112)) << *(_DWORD *)(lpKey + 116)) | ((unsigned __int64)(unsigned int)(v9 + *(_DWORD *)(lpKey + 112)) >> (-*(_BYTE *)(lpKey + 116) & 0x1F))) >> 8)])
- - S3_SBox[((unsigned int)((v9 + *(_DWORD *)(lpKey + 112)) << *(_DWORD *)(lpKey + 116)) | ((unsigned __int64)(unsigned int)(v9 + *(_DWORD *)(lpKey + 112)) >> (-*(_BYTE *)(lpKey + 116) & 0x1F))) >> 24]) ^ v8;
- v11 = ((S3_SBox[((unsigned int)((*(_DWORD *)(lpKey + 104) - v10) << *(_DWORD *)(lpKey + 108)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 104) - v10) >> (-*(_BYTE *)(lpKey + 108) & 0x1F))) >> 24] ^ (S2_SBox[(unsigned __int64)(unsigned __int8)(((*(_DWORD *)(lpKey + 104) - v10) << *(_DWORD *)(lpKey + 108)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 104) - v10) >> (-*(_BYTE *)(lpKey + 108) & 0x1F)))] + S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 104) - v10) << *(_DWORD *)(lpKey + 108)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 104) - v10) >> (-*(_BYTE *)(lpKey + 108) & 0x1F))) >> 8)]))
- - S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 104) - v10) << *(_DWORD *)(lpKey + 108)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 104) - v10) >> (-*(_BYTE *)(lpKey + 108) & 0x1F))) >> 16)]) ^ v9;
- v12 = S4_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) << *(_DWORD *)(lpKey + 100)) | ((unsigned __int64)((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) >> (-*(_BYTE *)(lpKey + 100) & 0x1F))) >> 16)] ^ (S3_SBox[((((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) << *(_DWORD *)(lpKey + 100)) | ((unsigned __int64)((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) >> (-*(_BYTE *)(lpKey + 100) & 0x1F))) >> 24] + S1_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) << *(_DWORD *)(lpKey + 100)) | ((unsigned __int64)((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) >> (-*(_BYTE *)(lpKey + 100) & 0x1F))) >> 8)] - S2_SBox[(unsigned __int64)(unsigned __int8)(((v11 ^ *(_DWORD *)(lpKey + 96)) << *(_DWORD *)(lpKey + 100)) | ((unsigned __int64)((unsigned int)v11 ^ *(_DWORD *)(lpKey + 96)) >> (-*(_BYTE *)(lpKey + 100) & 0x1F)))]) ^ v10;
- v13 = (S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v12 + *(_DWORD *)(lpKey + 88)) << *(_DWORD *)(lpKey + 92)) | ((unsigned __int64)(unsigned int)(v12 + *(_DWORD *)(lpKey + 88)) >> (-*(_BYTE *)(lpKey + 92) & 0x1F))) >> 16)]
- + (S2_SBox[(unsigned __int64)(unsigned __int8)(((v12 + *(_DWORD *)(lpKey + 88)) << *(_DWORD *)(lpKey + 92)) | ((unsigned __int64)(unsigned int)(v12 + *(_DWORD *)(lpKey + 88)) >> (-*(_BYTE *)(lpKey + 92) & 0x1F)))] ^ S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v12 + *(_DWORD *)(lpKey + 88)) << *(_DWORD *)(lpKey + 92)) | ((unsigned __int64)(unsigned int)(v12 + *(_DWORD *)(lpKey + 88)) >> (-*(_BYTE *)(lpKey + 92) & 0x1F))) >> 8)])
- - S3_SBox[((unsigned int)((v12 + *(_DWORD *)(lpKey + 88)) << *(_DWORD *)(lpKey + 92)) | ((unsigned __int64)(unsigned int)(v12 + *(_DWORD *)(lpKey + 88)) >> (-*(_BYTE *)(lpKey + 92) & 0x1F))) >> 24]) ^ v11;
- v14 = ((S3_SBox[((unsigned int)((*(_DWORD *)(lpKey + 80) - v13) << *(_DWORD *)(lpKey + 84)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 80) - v13) >> (-*(_BYTE *)(lpKey + 84) & 0x1F))) >> 24] ^ (S2_SBox[(unsigned __int64)(unsigned __int8)(((*(_DWORD *)(lpKey + 80) - v13) << *(_DWORD *)(lpKey + 84)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 80) - v13) >> (-*(_BYTE *)(lpKey + 84) & 0x1F)))] + S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 80) - v13) << *(_DWORD *)(lpKey + 84)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 80) - v13) >> (-*(_BYTE *)(lpKey + 84) & 0x1F))) >> 8)]))
- - S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 80) - v13) << *(_DWORD *)(lpKey + 84)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 80) - v13) >> (-*(_BYTE *)(lpKey + 84) & 0x1F))) >> 16)]) ^ v12;
- v15 = S4_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) << *(_DWORD *)(lpKey + 76)) | ((unsigned __int64)((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) >> (-*(_BYTE *)(lpKey + 76) & 0x1F))) >> 16)] ^ (S3_SBox[((((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) << *(_DWORD *)(lpKey + 76)) | ((unsigned __int64)((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) >> (-*(_BYTE *)(lpKey + 76) & 0x1F))) >> 24] + S1_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) << *(_DWORD *)(lpKey + 76)) | ((unsigned __int64)((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) >> (-*(_BYTE *)(lpKey + 76) & 0x1F))) >> 8)] - S2_SBox[(unsigned __int64)(unsigned __int8)(((v14 ^ *(_DWORD *)(lpKey + 72)) << *(_DWORD *)(lpKey + 76)) | ((unsigned __int64)((unsigned int)v14 ^ *(_DWORD *)(lpKey + 72)) >> (-*(_BYTE *)(lpKey + 76) & 0x1F)))]) ^ v13;
- v16 = (S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v15 + *(_DWORD *)(lpKey + 64)) << *(_DWORD *)(lpKey + 68)) | ((unsigned __int64)(unsigned int)(v15 + *(_DWORD *)(lpKey + 64)) >> (-*(_BYTE *)(lpKey + 68) & 0x1F))) >> 16)]
- + (S2_SBox[(unsigned __int64)(unsigned __int8)(((v15 + *(_DWORD *)(lpKey + 64)) << *(_DWORD *)(lpKey + 68)) | ((unsigned __int64)(unsigned int)(v15 + *(_DWORD *)(lpKey + 64)) >> (-*(_BYTE *)(lpKey + 68) & 0x1F)))] ^ S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v15 + *(_DWORD *)(lpKey + 64)) << *(_DWORD *)(lpKey + 68)) | ((unsigned __int64)(unsigned int)(v15 + *(_DWORD *)(lpKey + 64)) >> (-*(_BYTE *)(lpKey + 68) & 0x1F))) >> 8)])
- - S3_SBox[((unsigned int)((v15 + *(_DWORD *)(lpKey + 64)) << *(_DWORD *)(lpKey + 68)) | ((unsigned __int64)(unsigned int)(v15 + *(_DWORD *)(lpKey + 64)) >> (-*(_BYTE *)(lpKey + 68) & 0x1F))) >> 24]) ^ v14;
- v17 = ((S3_SBox[((unsigned int)((*(_DWORD *)(lpKey + 56) - v16) << *(_DWORD *)(lpKey + 60)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 56) - v16) >> (-*(_BYTE *)(lpKey + 60) & 0x1F))) >> 24] ^ (S2_SBox[(unsigned __int64)(unsigned __int8)(((*(_DWORD *)(lpKey + 56) - v16) << *(_DWORD *)(lpKey + 60)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 56) - v16) >> (-*(_BYTE *)(lpKey + 60) & 0x1F)))] + S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 56) - v16) << *(_DWORD *)(lpKey + 60)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 56) - v16) >> (-*(_BYTE *)(lpKey + 60) & 0x1F))) >> 8)]))
- - S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 56) - v16) << *(_DWORD *)(lpKey + 60)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 56) - v16) >> (-*(_BYTE *)(lpKey + 60) & 0x1F))) >> 16)]) ^ v15;
- v18 = S4_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) << *(_DWORD *)(lpKey + 52)) | ((unsigned __int64)((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) >> (-*(_BYTE *)(lpKey + 52) & 0x1F))) >> 16)] ^ (S3_SBox[((((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) << *(_DWORD *)(lpKey + 52)) | ((unsigned __int64)((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) >> (-*(_BYTE *)(lpKey + 52) & 0x1F))) >> 24] + S1_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) << *(_DWORD *)(lpKey + 52)) | ((unsigned __int64)((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) >> (-*(_BYTE *)(lpKey + 52) & 0x1F))) >> 8)] - S2_SBox[(unsigned __int64)(unsigned __int8)(((v17 ^ *(_DWORD *)(lpKey + 48)) << *(_DWORD *)(lpKey + 52)) | ((unsigned __int64)((unsigned int)v17 ^ *(_DWORD *)(lpKey + 48)) >> (-*(_BYTE *)(lpKey + 52) & 0x1F)))]) ^ v16;
- v19 = (S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v18 + *(_DWORD *)(lpKey + 40)) << *(_DWORD *)(lpKey + 44)) | ((unsigned __int64)(unsigned int)(v18 + *(_DWORD *)(lpKey + 40)) >> (-*(_BYTE *)(lpKey + 44) & 0x1F))) >> 16)]
- + (S2_SBox[(unsigned __int64)(unsigned __int8)(((v18 + *(_DWORD *)(lpKey + 40)) << *(_DWORD *)(lpKey + 44)) | ((unsigned __int64)(unsigned int)(v18 + *(_DWORD *)(lpKey + 40)) >> (-*(_BYTE *)(lpKey + 44) & 0x1F)))] ^ S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((v18 + *(_DWORD *)(lpKey + 40)) << *(_DWORD *)(lpKey + 44)) | ((unsigned __int64)(unsigned int)(v18 + *(_DWORD *)(lpKey + 40)) >> (-*(_BYTE *)(lpKey + 44) & 0x1F))) >> 8)])
- - S3_SBox[((unsigned int)((v18 + *(_DWORD *)(lpKey + 40)) << *(_DWORD *)(lpKey + 44)) | ((unsigned __int64)(unsigned int)(v18 + *(_DWORD *)(lpKey + 40)) >> (-*(_BYTE *)(lpKey + 44) & 0x1F))) >> 24]) ^ v17;
- v20 = ((S3_SBox[((unsigned int)((*(_DWORD *)(lpKey + 32) - v19) << *(_DWORD *)(lpKey + 36)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 32) - v19) >> (-*(_BYTE *)(lpKey + 36) & 0x1F))) >> 24] ^ (S2_SBox[(unsigned __int64)(unsigned __int8)(((*(_DWORD *)(lpKey + 32) - v19) << *(_DWORD *)(lpKey + 36)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 32) - v19) >> (-*(_BYTE *)(lpKey + 36) & 0x1F)))] + S1_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 32) - v19) << *(_DWORD *)(lpKey + 36)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 32) - v19) >> (-*(_BYTE *)(lpKey + 36) & 0x1F))) >> 8)]))
- - S4_SBox[(unsigned __int64)(unsigned __int8)(((unsigned int)((*(_DWORD *)(lpKey + 32) - v19) << *(_DWORD *)(lpKey + 36)) | ((unsigned __int64)(unsigned int)(*(_DWORD *)(lpKey + 32) - v19) >> (-*(_BYTE *)(lpKey + 36) & 0x1F))) >> 16)]) ^ v18;
- v21 = S4_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) << *(_DWORD *)(lpKey + 28)) | ((unsigned __int64)((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) >> (-*(_BYTE *)(lpKey + 28) & 0x1F))) >> 16)] ^ (S3_SBox[((((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) << *(_DWORD *)(lpKey + 28)) | ((unsigned __int64)((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) >> (-*(_BYTE *)(lpKey + 28) & 0x1F))) >> 24] + S1_SBox[(unsigned __int64)(unsigned __int8)(((((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) << *(_DWORD *)(lpKey + 28)) | ((unsigned __int64)((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) >> (-*(_BYTE *)(lpKey + 28) & 0x1F))) >> 8)] - S2_SBox[(unsigned __int64)(unsigned __int8)(((v20 ^ *(_DWORD *)(lpKey + 24)) << *(_DWORD *)(lpKey + 28)) | ((unsigned __int64)((unsigned int)v20 ^ *(_DWORD *)(lpKey + 24)) >> (-*(_BYTE *)(lpKey + 28) & 0x1F)))]) ^ v19;
- v22 = ((v21 + *(_DWORD *)(lpKey + 16)) << *(_DWORD *)(lpKey + 20)) | ((unsigned int)(v21 + *(_DWORD *)(lpKey + 16)) >> (-*(_BYTE *)(lpKey + 20) & 0x1F));
- *v5 = v21;
- result = (unsigned __int64)v22 >> 16;
- *dwLeft = v20 ^ (S4_SBox[(unsigned __int64)(unsigned __int8)result]
- + (S2_SBox[(unsigned __int64)(unsigned __int8)v22] ^ S1_SBox[(unsigned __int64)(unsigned __int8)((unsigned __int64)v22 >> 8)])
- - S3_SBox[(unsigned __int64)v22 >> 24]);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement