Function at 0x493a13
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4094
call fcn.00401910
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x407c], 0
push ebx
push esi
mov dword [ebp - 0x4090], eax
mov esi, ecx
mov eax, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x4088], eax
mov edi, edx
mov eax, dword [ebp + 0x14]
push esi
push 0x4000
mov dword [ebp - 0x4080], eax
and dword [eax], 0
lea eax, [ebp - 0x4018]
push 1
push eax
mov dword [ebp - 0x4094], edi
call dword [sym.imp.msvcrt.dll_fread]
push esi
mov ebx, eax
call dword [sym.imp.msvcrt.dll_fclose]
mov eax, dword [ebp - 0x4080]
add esp, 0x14
cmp ebx, 0x4000
je 0x493d62
mov dword [eax], str.file_format_error
cmp ebx, 1
jb 0x493d68
cmp byte [ebp - 0x4018], 0
jne 0x493d68
lea eax, [ebx - 1]
cmp eax, 1
jb 0x493d68
movzx eax, byte [ebp - 0x4017]
mov dword [ebp - 0x408c], eax
test eax, eax
je 0x493ad1
cmp eax, 3
jne 0x493d68
lea eax, [ebx - 2]
cmp eax, 4
jb 0x493d68
cmp byte [ebp - 0x4016], 0
jne 0x493d68
cmp byte [ebp - 0x4015], 0
jne 0x493d68
cmp byte [ebp - 0x4014], 0
jne 0x493d68
cmp byte [ebp - 0x4013], 0
jne 0x493d68
push 1
push 0
push edi
mov edx, ebx
lea ecx, [ebp - 0x4012]
call fcn.00494e0e
mov esi, eax
add esp, 0xc
add esi, 6
js 0x493d68
movzx edi, byte [ebp + esi - 0x4018]
movzx eax, byte [ebp + esi - 0x4017]
shl edi, 8
or edi, eax
movzx eax, byte [ebp + esi - 0x4016]
shl edi, 8
or edi, eax
movzx eax, byte [ebp + esi - 0x4015]
shl edi, 8
add esi, 4
or edi, eax
mov eax, ebx
sub eax, esi
cmp eax, edi
jb 0x493d68
xor edx, edx
lea ecx, [edi + 1]
inc edx
call fcn.004802d5
mov ecx, eax
mov dword [ebp - 0x4084], ecx
test ecx, ecx
je 0x493ba4
lea eax, [ebp - 0x4018]
push edi
add eax, esi
push eax
push ecx
call dword [sym.imp.msvcrt.dll_memcpy]
mov ecx, dword [ebp - 0x4084]
add esp, 0xc
mov byte [ecx + edi], 0
add esi, edi
mov edi, dword [ebp - 0x4090]
test edi, edi
je 0x493bb7
call fcn.00480110
mov dword [edi], eax
mov edi, dword [ebp - 0x4094]
mov ecx, dword [ebp - 0x4084]
test edi, edi
je 0x493bcc
mov dword [edi + 0x20], ecx
jmp 0x493bd1
call fcn.004803c4
cmp dword [ebp + 8], 0
jne 0x493d41
test edi, edi
jne 0x493bfd
xor eax, eax
cmp dword [ebp - 0x408c], eax
setne al
mov dword [ebp - 0x407c], eax
mov eax, dword [ebp - 0x4080]
and dword [eax], edi
jmp 0x493d68
cmp dword [ebp - 0x408c], 0
je 0x493c6c
lea ecx, [ebp - 0x4078]
call fcn.00493575
push dword [ebp - 0x4088]
call dword [sym.imp.msvcrt.dll_strlen]
mov edx, dword [ebp - 0x4088]
pop ecx
push eax
lea ecx, [ebp - 0x4078]
call fcn.0049359c
pop ecx
lea edx, [ebp - 0x4078]
lea ecx, [ebp - 0x14]
call fcn.0049367f
mov eax, ebx
lea edx, [ebp - 0x4018]
sub eax, esi
lea ecx, [ebp - 0x14]
add eax, 7
add edx, esi
and eax, 0xfffffff8
push eax
call fcn.00491553
pop ecx
push 0x10
lea eax, [ebp - 0x14]
push 0
push eax
call dword [sym.imp.msvcrt.dll_memset]
add esp, 0xc
mov eax, ebx
sub eax, esi
cmp eax, 4
jb 0x493d68
mov al, byte [ebp + esi - 0x4018]
cmp al, byte [ebp + esi - 0x4016]
jne 0x493d4d
mov al, byte [ebp + esi - 0x4017]
cmp al, byte [ebp + esi - 0x4015]
jne 0x493d4d
add esi, 4
lea eax, [edi + 0x10]
mov edx, ebx
lea ecx, [ebp - 0x4018]
push eax
sub edx, esi
add ecx, esi
call fcn.0048f04a
pop ecx
test eax, eax
js 0x493d68
add esi, eax
lea ecx, [ebp - 0x4018]
lea eax, [edi + 0x1c]
mov edx, ebx
push eax
sub edx, esi
add ecx, esi
call fcn.0048f04a
pop ecx
test eax, eax
js 0x493d68
add esi, eax
lea ecx, [ebp - 0x4018]
lea eax, [edi + 0x18]
mov edx, ebx
push eax
sub edx, esi
add ecx, esi
call fcn.0048f04a
pop ecx
test eax, eax
js 0x493d68
add esi, eax
lea ecx, [ebp - 0x4018]
lea eax, [edi + 0x14]
sub ebx, esi
push eax
add ecx, esi
mov edx, ebx
call fcn.0048f04a
pop ecx
test eax, eax
js 0x493d68
mov ecx, edi
call fcn.004955e1
test eax, eax
jne 0x493d41
mov eax, dword [ebp - 0x4080]
mov ecx, edi
mov dword [eax], str.rsa_verify_failed
call fcn.00495782
and dword [ebp - 0x407c], 0
jmp 0x493d68
mov dword [ebp - 0x407c], 1
jmp 0x493d68
mov eax, dword [ebp - 0x4080]
or dword [ebp - 0x407c], 0xffffffff
mov dword [eax], str.wrong_passphrase
jmp 0x493d68
mov dword [eax], str.error_reading_file
push 0x4000
lea eax, [ebp - 0x4018]
push 0
push eax
call dword [sym.imp.msvcrt.dll_memset]
mov ecx, dword [ebp - 4]
add esp, 0xc
mov eax, dword [ebp - 0x407c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00401000
mov esp, ebp
pop ebp
ret