Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __cdecl encrypt(char *input, int a2, int a3)
- {
- int result; // eax@9
- int MOD; // [sp+38h] [bp-50h]@1
- signed int v5; // [sp+3Ch] [bp-4Ch]@1
- int i; // [sp+40h] [bp-48h]@1
- int KEY[4]; // [sp+44h] [bp-44h]@1
- int v8; // [sp+54h] [bp-34h]@1
- char IV[20]; // [sp+58h] [bp-30h]@1
- char output; // [sp+6Ch] [bp-1Ch]@2
- char v11; // [sp+7Bh] [bp-Dh]@4
- int v12; // [sp+7Ch] [bp-Ch]@1
- v12 = *MK_FP(__GS__, 20);
- v5 = 0;
- MOD = 0;
- KEY[0] = 'w0hs';
- KEY[1] = 'us3m';
- KEY[2] = 'nukm';
- KEY[3] = '00fg';
- v8 = 0;
- memset(IV, 0, 0x10u);
- memcpy(IV, "cl1q-cl4q-k4-p0w", 0x11u);
- for ( i = 0; i < a3; i += 16 )
- {
- memset(&output, 0, 0x10u);
- if ( !(i & 0x1FF) )
- {
- ++v5;
- printf(
- " [%c] encrypting..\r",
- spinner[((((unsigned int)(v5 >> 31) >> 30) + (_BYTE)v5) & 3) - ((unsigned int)(v5 >> 31) >> 30)]);
- fflush(stdout);
- usleep(0x2710u);
- }
- do_evp(&input[i], &output, 16, MOD, (char *)KEY, IV);
- MOD = v11 & 3;
- if ( a3 - i <= 15 )
- memcpy((void *)(a2 + i), &output, a3 - i);
- else
- memcpy((void *)(a2 + i), &output, 0x10u);
- }
- result = *MK_FP(__GS__, 20) ^ v12;
- if ( *MK_FP(__GS__, 20) != v12 )
- __stack_chk_fail();
- return result;
- }
- _DWORD __cdecl do_evp(char *input, char *output, int len, int MOD, char *KEY, char *IV)
- {
- int v6; // eax@8
- int v7; // eax@9
- int v8; // eax@10
- int v9; // eax@11
- int result; // eax@14
- int *outputLen; // [sp+3Ch] [bp-ACh]@1
- char Crypt_Context; // [sp+40h] [bp-A8h]@1
- int v13; // [sp+DCh] [bp-Ch]@1
- v13 = *MK_FP(__GS__, 20);
- outputLen = 0;
- EVP_CIPHER_CTX_init(&Crypt_Context);
- if ( MOD == 1 )
- {
- v7 = EVP_aes_128_ecb();
- EVP_EncryptInit(&Crypt_Context, v7, KEY, IV);
- }
- else
- {
- if ( MOD > 1 )
- {
- if ( MOD == 2 )
- {
- v8 = EVP_aes_128_cfb128();
- EVP_EncryptInit(&Crypt_Context, v8, KEY, IV);
- }
- else
- {
- if ( MOD != 3 )
- goto LABEL_12;
- v9 = EVP_aes_128_cfb1();
- EVP_EncryptInit(&Crypt_Context, v9, KEY, IV);
- }
- }
- else
- {
- if ( MOD )
- {
- LABEL_12:
- puts("unknown enctype");
- exit(-1);
- }
- v6 = EVP_aes_128_ecb();
- EVP_EncryptInit(&Crypt_Context, v6, KEY, IV);
- }
- }
- EVP_EncryptUpdate(&Crypt_Context, output, &outputLen, input, len);
- EVP_CIPHER_CTX_cleanup(&Crypt_Context);
- result = *MK_FP(__GS__, 20) ^ v13;
- if ( *MK_FP(__GS__, 20) != v13 )
- __stack_chk_fail();
- return result;
- }
Add Comment
Please, Sign In to add comment