Function at 0x44f950
Capabilities:
Create new key via cryptacquirecontext
Encrypt or decrypt via wincrypt

Disassembly:
push 0xffffffffffffffff
push 0x4da279
mov eax, dword fs:[0]
push eax
mov eax, 0xb4
call fcn.00468d20
mov eax, dword [0x5808f0]
xor eax, esp
mov dword [esp + 0xb0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5808f0]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov ebx, ecx
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebp
mov word [esp + 0x2c], ax
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0xd4], ebp
call fcn.0041ae00
add esp, 4
test eax, eax
jne 0x44f9ec
push 0x4e4598
call fcn.0041a700
add esp, 4
cmp dword [esp + 0x40], 8
jb 0x44fd70
mov edx, dword [esp + 0x2c]
push edx
call fcn.004699ce
add esp, 4
jmp 0x44fd70
mov edi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push 0x10
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push ebp
lea esi, [ebx + 0x24]
push esi
call edi
push 8
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push ebp
push esi
call edi
test eax, eax
jne 0x44fa62
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_acquiring_context__0x_X__n
push 0x3ff
push 0x584090
call fcn.00469c7b
push 0x584090
call fcn.0041a5a0
mov eax, dword [esp + 0x28]
push eax
call fcn.004690f0
add esp, 0x18
cmp dword [esp + 0x40], 8
jb 0x44fd70
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004699ce
add esp, 4
jmp 0x44fd70
mov eax, dword [esp + 0x14]
push ebp
push ebp
lea edx, [esp + 0x24]
push edx
push ebp
push ebp
push ebp
add eax, 5
mov dword [esp + 0x34], ebp
mov ebp, dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
push eax
call ebp
test eax, eax
jne 0x44fabb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_retrieving_memory_size_for_blob__0x_X__n
push 0x3ff
push 0x584090
call fcn.00469c7b
push 0x584090
call fcn.0041a5a0
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004690f0
add esp, 0x18
jmp 0x44fd67
mov edx, dword [esp + 0x1c]
push edx
call fcn.004691cd
mov edi, eax
add esp, 4
test edi, edi
jne 0x44fb03
mov eax, dword [esp + 0x1c]
push eax
push str.Error_allocating_0x_X_bytes_for_blob_n
push 0x3ff
push 0x584090
call fcn.00469c7b
push 0x584090
call fcn.0041a5a0
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004690f0
add esp, 0x18
jmp 0x44fd67
mov eax, dword [esp + 0x14]
push 0
push 0
lea edx, [esp + 0x24]
push edx
push edi
push 0
push 0
add eax, 5
push eax
call ebp
test eax, eax
jne 0x44fb5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_converting_key_to_blob__0x_X__n
push 0x3ff
push 0x584090
call fcn.00469c7b
push 0x584090
call fcn.0041a5a0
push edi
call fcn.004690f0
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004690f0
add esp, 0x1c
jmp 0x44fd67
mov edx, dword [esp + 0x1c]
mov eax, dword [esi]
lea ebp, [ebx + 0x28]
push ebp
push 0
push 0
push edx
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x44fbb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_importing_blob__0x_X__n
push 0x3ff
push 0x584090
call fcn.00469c7b
push 0x584090
call fcn.0041a5a0
push edi
call fcn.004690f0
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004690f0
add esp, 0x1c
jmp 0x44fd67
push edi
call fcn.004690f0
mov edx, dword [esp + 0x18]
push edx
call fcn.004690f0
add esp, 8
cmp dword [0x584064], 0
je 0x44fbdc
mov ecx, 0x4efd3c
mov eax, 0x4e4710
jmp 0x44fbe6
mov ecx, 0x4efd08
mov eax, str.Choose_encrypted_file
lea edx, [esp + 0x28]
push edx
push ecx
push eax
mov ecx, ebx
call fcn.0042bd50
test al, al
je 0x44fd67
push 0x24
call fcn.00469e21
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0xd0], 1
test eax, eax
je 0x44fc31
cmp dword [esp + 0x40], 8
mov ecx, dword [esp + 0x2c]
jae 0x44fc25
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call fcn.00424dc0
mov esi, eax
jmp 0x44fc33
xor esi, esi
mov ecx, esi
mov byte [esp + 0xd0], 0
call fcn.00424740
test al, al
jne 0x44fc70
push str.Error_opening_crypted_file_n
call fcn.0041a700
add esp, 4
test esi, esi
je 0x44fd67
mov ecx, esi
call fcn.00424ce0
push esi
call fcn.004699ce
add esp, 4
jmp 0x44fd67
mov ecx, esi
call fcn.00424be0
test edx, edx
jg 0x44fc8b
jl 0x44fc84
cmp eax, 0x80
jae 0x44fc8b
push str.File_is_too_small__n
jmp 0x44fc4b
push 0
push 0x80
lea eax, [esp + 0x4c]
push eax
push 0
push 0
mov ecx, esi
mov dword [esp + 0x2c], 0x80
call fcn.00424750
mov eax, dword [ebp]
mov edi, dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
push 0
push 1
push 0
push eax
call edi
test eax, eax
je 0x44fcd8
cmp dword [esp + 0x18], 0x38
jne 0x44fcd8
mov dword [ebx + 0x2c], 1
cmp dword [ebx + 0x2c], 0
jne 0x44fd3c
push 0
push 0x80
lea ecx, [esp + 0x4c]
push ecx
mov ecx, esi
mov dword [esp + 0x24], 0x80
call fcn.00424be0
mov ecx, dword [esp + 0x24]
xor ebx, ebx
sub eax, ecx
sbb edx, ebx
push edx
push eax
mov ecx, esi
call fcn.00424750
mov ecx, dword [ebp]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
push ebx
push 1
push ebx
push ecx
call edi
test eax, eax
je 0x44fd38
cmp dword [esp + 0x18], 0x38
jne 0x44fd38
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x2c], 2
jmp 0x44fd3c
mov ebx, dword [esp + 0x20]
test esi, esi
je 0x44fd50
mov ecx, esi
call fcn.00424ce0
push esi
call fcn.004699ce
add esp, 4
cmp dword [ebx + 0x2c], 0
je 0x44fd67
push 0x4efcc8
lea ecx, [ebx + 4]
call fcn.0041c900
mov byte [ebx + 0x20], 1
lea ecx, [esp + 0x28]
call fcn.0041b5b0
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.004690b5
add esp, 0xc0
ret