Function at 0x10017f60
Capabilities:
Encrypt data using rc4 via winapi
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
movaps xmm0, xmmword [0x10132240]
movups xmmword [ebp - 0x34], xmm0
push ebx
movaps xmm0, xmmword [0x10132170]
movups xmmword [ebp - 0x24], xmm0
push esi
movaps xmm0, xmmword [str.XekITMR_IeM_n]
xor esi, esi
movups xmmword [ebp - 0x14], xmm0
nop dword [eax + eax]
cmp esi, 0x2f
jb 0x10017fac
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.1005ff50
add esp, 0xc
mov bl, byte [ebp + esi - 0x33]
xor bl, byte [ebp - 0x34]
cmp esi, 0x2f
jb 0x10017fcf
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.1005ff50
add esp, 0xc
mov byte [ebp + esi - 0x33], bl
inc esi
cmp esi, 0x2e
jb 0x10017f90
push 0
push 1
lea eax, [ebp - 0x33]
mov byte [ebp - 5], 0
push eax
push 0
push 0x10146680
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x100180f8
push 0x1014667c
push 0
push 0
push 0x8004
push dword [0x10146680]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x100180f8
movaps xmm0, xmmword [0x101321a0]
xor esi, esi
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x10], 0x4f174146
movaps xmm0, xmmword [str.wqa_qT]
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0xc], 0x45135567
movaps xmm0, xmmword [0x101318e0]
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 8], 0x6575d72
mov word [ebp - 4], 0x5a
nop word [eax + eax]
cmp esi, 0x3d
jb 0x1001807c
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.1005ff50
add esp, 0xc
mov bl, byte [ebp + esi - 0x3f]
xor bl, byte [ebp - 0x40]
cmp esi, 0x3d
jb 0x1001809f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.1005ff50
add esp, 0xc
mov byte [ebp + esi - 0x3f], bl
inc esi
cmp esi, 0x3c
jb 0x10018060
push 1
push 0x3c
lea eax, [ebp - 0x3f]
mov byte [ebp - 3], 0
push eax
push dword [0x1014667c]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x100180f8
push 0x10146678
push 0x800000
push dword [0x1014667c]
push 0x6801
push dword [0x10146680]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x100180f8
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x10146674], eax
call fcn.1006e6e0
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
call esi
push eax
call fcn.1006ebb0
push 0x10017e50
push 0x10146670
call fcn.1006e3f0
call fcn.1006e740
push 4
push 0x60f6e0
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10018166
mov dword [0x10146670], 0x60f6e0
call fcn.1006e6e0
call esi
push eax
call fcn.1006ebb0
push 0x10017e50
push 0x10146670
call fcn.1006df60
call fcn.1006e740
call fcn.1006e6e0
call esi
push eax
call fcn.1006ebb0
push 0x10017e80
push 0x1014666c
call fcn.1006e3f0
call fcn.1006e740
push 4
push 0x60eab0
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100181c3
mov dword [0x1014666c], 0x60eab0
call fcn.1006e6e0
call esi
push eax
call fcn.1006ebb0
push 0x10017e80
push 0x1014666c
call fcn.1006df60
call fcn.1006e740
pop esi
pop ebx
mov esp, ebp
pop ebp
ret