Function at 0x4c6309
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [esp + 4], 0x623c11
mov eax, dword [ebp + 0x1c]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x4c635d
mov dword [esp + 8], str.Unable_to_open_public_key_file
mov dword [esp + 4], 0xfffffff0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._feof
test eax, eax
jne 0x4c63a3
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 1
lea eax, [ebp - 0x21]
mov dword [esp], eax
call sym._fread
cmp eax, 1
jne 0x4c63a3
movzx eax, byte [ebp - 0x21]
cmp al, 0xd
je 0x4c63a3
movzx eax, byte [ebp - 0x21]
cmp al, 0xa
jne 0x4c6359
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._rewind
cmp dword [ebp - 0x10], 1
ja 0x4c63df
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._fclose
mov dword [esp + 8], str.Invalid_data_in_public_key_file
mov dword [esp + 4], 0xfffffff0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
call eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4c6428
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._fclose
mov dword [esp + 8], str.Unable_to_allocate_memory_for_public_key_data
mov dword [esp + 4], 0xfffffffa
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sym._fread
cmp eax, dword [ebp - 0x10]
je 0x4c648e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esp], edx
call eax
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._fclose
mov dword [esp + 8], str.Unable_to_read_public_key_from_file
mov dword [esp + 4], 0xfffffff0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._fclose
jmp 0x4c649f
sub dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
je 0x4c64c4
mov eax, dword [ebp - 0x10]
lea edx, [eax - 1]
mov eax, dword [ebp - 0x14]
add eax, edx
movzx eax, byte [eax]
movzx eax, al
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll_isspace]
call eax
test eax, eax
jne 0x4c649b
cmp dword [ebp - 0x10], 0
jne 0x4c64ff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esp], edx
call eax
mov dword [esp + 8], str.Missing_public_key_data
mov dword [esp + 4], 0xfffffff0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
mov eax, dword [ebp - 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sym._memchr
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x4c6557
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esp], edx
call eax
mov dword [esp + 8], str.Invalid_public_key_data
mov dword [esp + 4], 0xfffffff0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jbe 0x4c6572
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
sub edx, eax
mov eax, edx
sub eax, 1
jmp 0x4c6577
mov eax, 0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._memchr
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4c65ab
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
add eax, edx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
sub edx, eax
mov eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2c]
mov dword [esp + 8], eax
lea eax, [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._libssh2_base64_decode
test eax, eax
je 0x4c660f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esp], edx
call eax
mov dword [esp + 8], str.Invalid_key_data__not_base64_encoded
mov dword [esp + 4], 0xfffffff0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__libssh2_error
jmp 0x4c6640
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
sub edx, eax
mov eax, edx
sub eax, 1
mov edx, eax
mov eax, dword [ebp + 0x10]
mov dword [eax], edx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov eax, 0
leave
ret