Function at 0x100054c0
Capabilities:
Create new key via cryptacquirecontext
Encode data using xor
Encrypt data using rc4 via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
mov eax, dword [0x1003400c]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileA]
or ebx, 0xffffffff
push edi
push 0
push 0x80
push 3
push 0
push 1
push 1
push ecx
mov edi, edx
mov byte [ebp - 0x9d], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
call esi
mov dword [ebp - 0xb8], eax
cmp eax, ebx
je 0x10005965
push 0
push 0x80
push 4
push 0
push 1
push 2
push edi
call esi
mov ebx, eax
mov dword [ebp - 0xa4], ebx
cmp ebx, 0xffffffff
je 0x1000595b
mov esi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
lea eax, [ebp - 0xb0]
push 0
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push 0
push eax
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100055a3
call ebx
cmp eax, 0x80090016
jne 0x10005640
push 8
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push 0
lea eax, [ebp - 0xb0]
push eax
call esi
test eax, eax
je 0x10005631
push str.A_new_key_container_has_been_created._n
call fcn.10001410
add esp, 4
cmp byte [0x10035f80], 0
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
je 0x1000564f
lea eax, [ebp - 0xb4]
push eax
push 0
push 0
push 0x8003
push dword [ebp - 0xb0]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x10005955
push 0
push 0x10035f80
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x10035f80
push dword [ebp - 0xb4]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x10005955
lea eax, [ebp - 0xbc]
push eax
push 0x800000
push dword [ebp - 0xb4]
push 0x6801
push dword [ebp - 0xb0]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x100056da
jmp 0x10005955
push str.Could_not_create_a_new_key_container._n
call fcn.10001410
jmp 0x10005952
push str.A_cryptographic_service_handle_could_not_be_acquired._n
call fcn.10001410
jmp 0x10005952
mov edi, dword [ebp - 0xb8]
lea eax, [ebp - 0xac]
push 0
push eax
push 4
lea eax, [ebp - 0xa8]
push eax
push edi
call esi
test eax, eax
je 0x10005955
push dword [ebp - 0xa8]
call fcn.1000b1f7
add esp, 4
mov esi, eax
lea eax, [ebp - 0xac]
push 0
push eax
push dword [ebp - 0xa8]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10005955
lea eax, [ebp - 0xbc]
push eax
push 0
push 0
push dword [ebp - 0xa8]
push esi
push dword [ebp - 0xb0]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
je 0x10005955
test esi, esi
je 0x100056d4
push esi
call fcn.1000b103
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0x3e8
call fcn.1000b1f7
mov edi, eax
add esp, 4
test edi, edi
je 0x10005955
push 0x80
lea eax, [ebp - 0x9c]
push 0
push eax
call fcn.10007e60
add esp, 0xc
lea eax, [ebp - 0xa8]
push 0
push eax
push 0x80
lea eax, [ebp - 0x9c]
push eax
push dword [ebp - 0xb8]
call esi
test eax, eax
jne 0x1000577f
call ebx
push str.An_error_occurred_in_the_program.__n
push 2
mov esi, eax
call fcn.1000beed
add esp, 4
push eax
call fcn.10005490
add esp, 8
push str.Error_reading_plaintext__n
push 0x100300c4
push 2
call fcn.1000beed
add esp, 4
push eax
call fcn.10005490
add esp, 0xc
push esi
push str.Error_number__x._n
push 2
call fcn.1000beed
add esp, 4
push eax
call fcn.10005490
add esp, 0xc
jmp 0x1000594c
push 0xffffffffffffffff
push str._____BEGIN_RSA_PRIVATE_KEY______nMIICXQIBAAKBgQC999WKQzpYwCc55OHjbdE32SURGMqSIVkzf4MdINYlCGiz5RUe_n8nY2gaXfVextxr7zn95hooz_vS4ynYEPKdaYA1uw3l2ZNnUwHkOIXWNvO_7MOjRS_nicTFwBRqFHQETm1XrKQmQXR0qqPJBTAI1RoHumaBpwIxs7yH4o4LI_towIDAQAB_nAoGBAI1ALF2EI2wZGxdzcBntXtLUI5n2qfReBwcogcUlWYv3Hp2ybbFV7uA8IO_nh6AQeYd4xcffLwwZJtqFb6Ko25XAei8Os3xjb9k5fCcyrmyY5oeXdQHlcbd_f8_niy8_rOEHZTr4iBXe_8ADlQZlRUkYCblPZ4i4BgzBUB6HzhxhAkEA8wJRx_FjOo6F_noO1aTewbvFIv4Dckqq5j_pBu9fkv1AhMxSfdGnsYcuIn15Y1_RlnpxrmJNWgryvd_n6LJGDgjWQJBAMgfoINe80YiPCdMoboMd_u1uf1BhwujbiJPSrS40lc3jfyPmHA4_n8hppo8QuELI4rXRE_im4czmyphxEyULpVsCQQDnD96JGin65MeE1AsYqpdYwmEJ_ndgVkUXt88wK2ZizqMyubpAa_M6rdgTiRc7CASUAzF_myEYIKdLh0NAbOk3JAkAE_nxEQVfPh8bipSoUk19EvzKdOcfYef9kKtirIXTKdYzRdlKoD2kdh6wr6xD4vcLb_n5xzKr5sLRIAE24SiOEHLAkB1TBlvvvIltttSc9lOpq3UhmtHQJaS32lD2Lk2_zNx_nW6JbsksCQXM0ww4GTCpHMISfokEPtqOPikPcVFs98Oj_n_____END_RSA_PRIVATE_KEY______n
call dword [0x100281cc]
push 0
push 0
push 0
push eax
call dword [0x100281c0]
mov esi, eax
add esp, 0x18
test esi, esi
je 0x1000594c
push 1
push esi
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x9c]
push eax
push 0x80
movups xmmword [ebp - 0x18], xmm0
call dword [0x100281c4]
add esp, 0x14
test eax, eax
jle 0x1000594c
push esi
call dword [0x100281c8]
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0xa8]
add esp, 4
push 0
push eax
push 0x10
lea eax, [ebp - 0x18]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x10005821
call ebx
push str.An_error_occurred_in_the_program.__n
push 2
mov esi, eax
call fcn.1000beed
add esp, 4
push eax
call fcn.10005490
add esp, 8
push str.Error_writing_ciphertext._n
jmp 0x10005749
xor bl, bl
mov dword [ebp - 0xa8], ebx
nop dword [eax]
push 0
lea eax, [ebp - 0xac]
push eax
push 0x3e8
push edi
push dword [ebp - 0xb8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1000594c
mov edx, dword [ebp - 0xac]
xor eax, eax
test edx, edx
je 0x100058e7
mov bl, byte [0x10035ce7]
cmp edx, 0x40
jb 0x100058d2
movsx ecx, bl
mov esi, edx
and esi, 0xffffffc0
movd xmm0, ecx
lea ecx, [edi + 0x20]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm2, xmm0, 0
nop word [eax + eax]
movups xmm0, xmmword [ecx - 0x20]
lea ecx, [ecx + 0x40]
add eax, 0x40
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ecx - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [ecx - 0x50]
xorps xmm0, xmm2
movups xmmword [ecx - 0x50], xmm0
movups xmm0, xmmword [ecx - 0x40]
xorps xmm0, xmm2
movups xmmword [ecx - 0x40], xmm0
movups xmm0, xmmword [ecx - 0x30]
xorps xmm1, xmm0
movups xmmword [ecx - 0x30], xmm1
cmp eax, esi
jb 0x10005890
mov esi, dword [ebp - 0xa4]
cmp eax, edx
jae 0x100058e1
xor byte [eax + edi], bl
lea ecx, [eax + edi]
inc eax
cmp eax, edx
jb 0x100058d6
mov ebx, dword [ebp - 0xa8]
cmp edx, 0x3e8
movzx ebx, bl
mov eax, 1
cmovb ebx, eax
mov dword [ebp - 0xa8], ebx
test edx, edx
je 0x1000593d
lea eax, [ebp - 0xac]
push eax
push edi
push 0
movzx eax, bl
push eax
push 0
push dword [ebp - 0xbc]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x1000594c
push 0
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xac]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1000594c
test bl, bl
je 0x10005830
mov byte [ebp - 0x9d], 1
push edi
call fcn.1000b103
add esp, 4
mov ebx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x1000596c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x10005977
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x10005992
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xbc]
test eax, eax
je 0x100059a3
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
je 0x100059b6
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 8]
mov al, byte [ebp - 0x9d]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.100059cd
mov esp, ebp
pop ebp
ret