Function at 0x457810
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
push 0xffffffffffffffff
push 0x4da996
mov eax, dword fs:[0]
push eax
mov eax, 0x884
call fcn.00468d20
mov eax, dword [0x5808f0]
xor eax, esp
mov dword [esp + 0x880], eax
push ebx
push esi
push edi
mov eax, dword [0x5808f0]
xor eax, esp
push eax
lea eax, [esp + 0x894]
mov dword fs:[0], eax
mov edi, dword [esp + 0x8a4]
xor ebx, ebx
xor eax, eax
mov esi, ecx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], ax
lea ecx, [esp + 0x34]
mov dword [esp + 0x89c], ebx
call fcn.00424cc0
push 0x827
lea ecx, [esp + 0x6d]
push ebx
push ecx
mov byte [esp + 0x8a8], 1
mov byte [esp + 0x74], bl
call fcn.00468ca0
add esp, 0xc
cmp dword [0x584064], ebx
je 0x4578af
mov ecx, 0x4e4748
mov eax, 0x4e4710
jmp 0x4578b9
mov ecx, 0x4e46e4
mov eax, str.Choose_encrypted_file
lea edx, [esp + 0x18]
push edx
push ecx
push eax
mov ecx, esi
call fcn.0042bd50
test al, al
jne 0x4578f8
lea ecx, [esp + 0x34]
mov byte [esp + 0x89c], bl
call fcn.00424ce0
cmp dword [esp + 0x30], 8
jb 0x457adc
mov eax, dword [esp + 0x1c]
push eax
call fcn.004699ce
add esp, 4
jmp 0x457adc
push 2
push 0x4f13a8
lea ecx, [esi + 4]
call fcn.0041c510
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
jae 0x457916
lea eax, [esp + 0x1c]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test al, al
jne 0x45795e
push str.File_is_not_crypted_by_V4_V5_n
call fcn.0041a700
add esp, 4
lea ecx, [esp + 0x34]
mov byte [esp + 0x89c], bl
call fcn.00424ce0
cmp dword [esp + 0x30], 8
jb 0x457adc
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004699ce
add esp, 4
jmp 0x457adc
push 0x254
add edi, 8
push edi
mov ecx, esi
call fcn.00455e40
test al, al
je 0x457ac3
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
jae 0x457985
lea eax, [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x3c]
call fcn.00424d40
lea ecx, [esp + 0x34]
call fcn.00424740
test al, al
jne 0x4579af
push str.Error_reading_file_for_test_n
call fcn.0041a700
add esp, 4
jmp 0x457ac3
cmp dword [esi + 0x2c], 4
jne 0x4579f6
lea ecx, [esp + 0x34]
call fcn.00424be0
sub eax, 0x80c
sbb edx, ebx
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.004249e0
push ebx
mov edi, eax
push edi
lea edx, [esp + 0x70]
push edx
lea ecx, [esp + 0x40]
call fcn.00424be0
sub eax, 0x808
sbb edx, ebx
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.00424750
jmp 0x4579fa
mov edi, dword [esp + 0x14]
cmp dword [esi + 0x2c], 5
jne 0x457a3f
lea ecx, [esp + 0x34]
call fcn.00424be0
sub eax, 0x814
sbb edx, ebx
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.004249e0
mov edi, eax
push ebx
push edi
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x40]
call fcn.00424be0
sub eax, 0x810
sbb edx, ebx
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.00424750
lea ecx, [esp + 0x10]
push ecx
push edi
lea edx, [esp + 0x70]
push edx
mov ecx, esi
call fcn.00456090
lea ecx, [esp + 0x34]
test al, al
je 0x457ac7
push ebx
push 0x10
lea eax, [esp + 0x60]
push eax
push ebx
push ebx
call fcn.00424750
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x5c]
push edx
push ebx
push ebx
push ebx
push eax
mov dword [esp + 0x2c], 0x10
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x457aa6
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push str.Error_decrypting_header_n
call fcn.0041a700
add esp, 4
jmp 0x457ac3
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
lea eax, [esp + 0x58]
push 0x10
push eax
call fcn.0041a7a0
add esp, 8
mov byte [esi + 0x20], al
lea ecx, [esp + 0x34]
mov byte [esp + 0x89c], bl
call fcn.00424ce0
lea ecx, [esp + 0x18]
call fcn.0041b5b0
mov ecx, dword [esp + 0x894]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x880]
xor ecx, esp
call fcn.004690b5
add esp, 0x890
ret 4