Function at 0x420a10
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59eae0
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 4], 0
call fcn.004360f0
test al, al
je 0x420a61
out dx, eax
lea esp, [edi]
pop edx
xchg ecx, eax
fstpnce st(5), st(0)
push esi
mov edx, 0xebdd069c
int3
call fcn.00436010
test al, al
je 0x420a85
dec edx
jle 0x420a97
mov byte [ebx], 0x7b
adc al, 0x3d
sal esp, 1
fdiv qword [edi + ecx*2]
push 0x42
and al, 0xd1
dec esp
das
invalid
hlt
call fcn.00435fa0
test al, al
je 0x420aa7
mov al, byte [0xd95da5c1]
pushfd
mov gs, word [ebp - 0x5b]
movsd dword es:[edi], dword [esi]
salc
sahf
jo 0x420b18
leave
inc ebx
in al, dx
xor dword [ebx + 0x46], edi
cld
add ebp, dword [esi - 0x3fccfb38]
xor eax, eax
mov dword [ebp - 0x14], 7
push eax
push 0x619488
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
call fcn.00403d10
xor eax, eax
mov byte [ebp - 4], 1
mov dword [ebp - 0x30], eax
call fcn.00435e50
test al, al
je 0x420af8
movsd dword es:[edi], dword [esi]
loopne 0x420a73
dec edi
rol byte [edi], 0x3f
cdq
jp 0x420b10
jno 0x420b16
add al, 0x1b
aad 2
lodsb al, byte [esi]
fdiv qword [ebx + 0x68a9cfb]
dec esp
push ss
xor dl, al
sbb byte [ecx], bh
call fcn.00436550
test al, al
je 0x420b21
out dx, al
leave
mov esp, 0x87567a96
xchg esi, eax
and dl, dl
mov ebp, 0xe2dff15b
mov eax, dword [0x514734c6]
mov byte [ebp - 0x7bf73635], 0
pop esi
test dword [edi + 0x20], edi
test ebx, ecx
leave
or byte [eax + eax + 0x207f855e], al
jae 0x8d4a27a3
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
inc ebp
or byte [edi], cl
inc ebx
inc ebp
or byte [eax - 1], dl
adc eax, sym.imp.SHLWAPI.dll_PathFileExistsW
test eax, eax
je 0x420cbc
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 0
cmovae eax, dword [ebp + 8]
push 0x80
push 4
push 0
push 1
push bind
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x2c], eax
cmp eax, 0xffffffff
je 0x420bf9
call fcn.00436010
test al, al
je 0x420b8a
inc ebx
push es
in al, 0x12
add bh, byte [eax + ebp]
inc ecx
xchg esi, eax
invalid
push 0
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, dword [ebp - 0x34]
push eax
mov dword [ebx], eax
call fcn.005713c7
add esp, 4
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x420c00
call fcn.00435e50
test al, al
je 0x420bd0
mov bh, 0xac
adc eax, 0xc20b835b
push ss
add ah, al
scasb al, byte es:[edi]
inc edi
cmp al, 0x13
ja 0x420c01
fadd dword [ecx + 0x66]
inc edx
mov ebp, 0x22ef700
cmpsd dword [esi], dword es:[edi]
sub dword [edx + ecx*8 + 0x1597be8], esp
add byte [eax + eax*8 + 0x7522074], al
call fcn.00436550
test al, al
je 0x420bf9
push edx
pop es
mov ecx, 0xd41e52d1
xor dl, byte [edx]
pop ds
rcl dword [edx + 0x1e]
aam 0x32
adc bl, byte [edi]
sbb edi, dword [ebp + ebx*4 + 0x72]
popfd
lea ecx, [edx - 0x41]
jmp 0x9f96a3d4
xor ebx, ebx
jmp 0x420cbf
push dword [ebx]
push 0
xor ebp, dword [edx]
push eax
call fcn.00576f50
add esp, 0xc
call fcn.00436010
add byte [ebx - 0x117f33c], al
push ebx
add dword [eax], eax
test al, al
je 0x420c2f
daa
jecxz 0x420bdc
popfd
aas
fbstp tbyte ss:[edi]
pop edx
push 0x70
add byte [esp + ebp*8], 0x46
adc al, byte [ebx - 0x66fc4177]
mov ebx, dword [ebp - 0x34]
push 0
lea eax, [ebp - 0x38]
push eax
push dword [ebx]
mov eax, dword [ebp - 0x30]
push eax
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.00435f30
test al, al
je 0x420c6c
mov al, 0x6f
adc ah, 0x62
retf
call fcn.004361d0
add dword [eax], eax
test al, al
je 0x420c8e
call 0xfe1aa4f
into
insd dword es:[edi], dx
push 0x11
dec edi
pop edx
jno 0x420c09
dec edi
adc byte [ecx - 0x13], 0xd0
xchg esi, eax
movsb byte es:[edi], byte [esi]
xchg ebx, eax
ja 0x420c6f
call fcn.004365c0
test al, al
je 0x420cb3
cwde
push ecx
mov ah, 0xfd
adc al, 0x3b
aad 0xf5
jle 0x420cf7
ret 0xa6d3
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x420cd4
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00404090
mov ecx, dword [ebp + 0x1c]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp ecx, 8
jb 0x420cfd
inc ecx
push ecx
push dword [ebp + 8]
lea ecx, [ebp + 8]
call fcn.00404090
or al, ch
xchg ebx, eax
mov eax, ebx
mov ecx, dword [ebp - 0xc]