Function at 0x4a5510
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, dword [esp + 0x38]
xor ecx, ecx
push 0x51573c
push esi
mov dword [esp + 0x2c], ecx
xor ebx, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
call fcn.004be628
mov ebp, eax
add esp, 8
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x4a5563
push esi
push str.Couldnt_open_file__s
push str.stream_secure_channel
push eax
call fcn.00454e20
add esp, 0x10
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push edi
push 2
push 0
push ebp
call fcn.004ba660
push ebp
call fcn.004bb135
push 0
push 0
push ebp
mov edi, eax
call fcn.004ba660
add esp, 0x1c
cmp edi, 1
jge 0x4a55a7
push esi
push str.Couldnt_determine_file_size_of__s
push str.stream_secure_channel
push 0
call fcn.00454e20
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push edi
call fcn.00449bf0
push dword [esp + 0x20]
mov ebp, eax
push edi
push 1
push ebp
call fcn.004ba23c
push dword [esp + 0x30]
call fcn.004b9bcd
push str._____BEGIN_CERTIFICATE_____
push ebp
call fcn.004b5a20
push str._____BEGIN_ENCRYPTED_PRIVATE_KEY_____
push ebp
mov dword [esp + 0x44], eax
call fcn.004b5a20
add esp, 0x28
test eax, eax
je 0x4a5601
push str.Detected_unsupported_encrypted_private_key
push str.stream_secure_channel
push 0
call fcn.00454e20
add esp, 0xc
xor esi, esi
jmp 0x4a585f
push str._____BEGIN_RSA_PRIVATE_KEY_____
push ebp
call fcn.004b5a20
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4a5649
push str._____BEGIN_PRIVATE_KEY_____
push ebp
call fcn.004b5a20
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4a5649
push esi
push str.Cant_find_private_key_in__s
push str.stream_secure_channel
push 0
call fcn.00454e20
add esp, 0x10
xor esi, esi
jmp 0x4a585f
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5650
mov eax, dword [esp + 0x1c]
sub ecx, edx
mov dword [esp + 0x34], eax
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0xe
push 0x3ffe
lea eax, [esp + 0x54]
mov dword [esp + 0x54], ecx
push eax
push 2
call dword [sym.imp.CRYPT32.dll_CryptQueryObject]
cmp dword [esp + 0x18], ebx
jne 0x4a56b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.Failed_to_extract_public_key_from__s._Error_0x_.8X
push str.stream_secure_channel
push 0
call fcn.00454e20
add esp, 0x14
xor esi, esi
jmp 0x4a585f
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x10]
push 0
push 0
push eax
push 0
push 0
push 0
push esi
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x4a56e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_convert_base64_private_key._Error_0x_.8X
jmp 0x4a5633
push dword [esp + 0x10]
call fcn.00449bf0
add esp, 4
mov ebx, eax
lea eax, [esp + 0x10]
push 0
push 0
push eax
push ebx
push 0
push 0
push esi
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x4a571a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_convert_base64_private_key._Error_0x_.8X
jmp 0x4a5633
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 0
push dword [esp + 0x20]
push ebx
push 0x2b
push 0x10001
call dword [sym.imp.CRYPT32.dll_CryptDecodeObjectEx]
test eax, eax
jne 0x4a578a
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
push 0
call esi
push eax
push 0
push 0x3100
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
call esi
push eax
push dword [esp + 0x20]
push str.Failed_to_parse_private_key.__s__0x_.8X_
push str.stream_secure_channel
push 0
call fcn.00454e20
add esp, 0x14
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor esi, esi
jmp 0x4a585f
push dword [esp + 0x14]
call fcn.00449bf0
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
mov dword [esp + 0x28], esi
push eax
push esi
push 0
push 0
push dword [esp + 0x20]
push ebx
push 0x2b
push 0x10001
call dword [sym.imp.CRYPT32.dll_CryptDecodeObjectEx]
test eax, eax
jne 0x4a57cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_parse_private_key._Error_0x_.8X
jmp 0x4a5850
push 0xf0000000
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push 0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x4a57f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CryptAcquireContext_failed_with_error_0x_.8X
jmp 0x4a5850
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push dword [esp + 0x20]
push esi
push dword [esp + 0x38]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x4a5822
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CryptImportKey_for_private_key_failed_with_error_0x_.8X
jmp 0x4a5850
push dword [esp + 0x24]
push 0
push 1
push dword [esp + 0x24]
call dword [sym.imp.CRYPT32.dll_CertSetCertificateContextProperty]
test eax, eax
je 0x4a5844
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cant_associate_private_key_with_public_key:_0x_.8X
push str.stream_secure_channel
push 0
call fcn.00454e20
add esp, 0x10
mov eax, ebp
mov byte [eax], 0
lea eax, [eax + 1]
sub edi, 1
jne 0x4a5861
push ebp
call fcn.00449ba0
add esp, 4
test ebx, ebx
je 0x4a58a4
mov eax, dword [esp + 0x10]
mov edx, ebx
mov ecx, dword [esp + 0x28]
mov esi, ecx
test eax, eax
je 0x4a589b
nop dword [eax]
mov byte [ebx], 0
lea ebx, [ebx + 1]
sub eax, 1
jne 0x4a5890
push edx
call fcn.00449ba0
add esp, 4
test esi, esi
je 0x4a58c6
mov ecx, dword [esp + 0x14]
mov eax, esi
test ecx, ecx
je 0x4a58bd
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x4a58b2
push esi
call fcn.00449ba0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret