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

Disassembly:
push 0xb8
mov eax, 0x5a3f60
call fcn.00437119
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xc0], eax
and dword [ebp - 4], 0
call fcn.00425114
test al, al
je 0x422e2d
rcr byte [eax + 0x15], 0x2a
jns 0x422e34
adc eax, dword [ebp - 0x5288626d]
adc byte [edx], bl
setae byte [ebp - 0x43]
mov bl, 0xe8
pop eax
and al, byte [eax]
add byte [eax + eax*8 - 0x7e91e48c], al
and esi, ebp
daa
pop edi
call fcn.0042508a
test al, al
je 0x422e51
outsb dx, byte [esi]
and dword [ebx], 0x5f2627f5
jp 0x422ea8
adc eax, esp
arpl di, sp
ret 0xddd7
call fcn.00425045
test al, al
je 0x422e73
jecxz 0x422e51
in al, 0xd4
daa
inc ecx
leave
enter 0xffffffffffffc878, 0xffffffffffffffbf
push cs
ja 0x422e9a
cmp al, 0xf0
pop esp
pop es
nop
invalid
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x14], 7
push eax
push 0x622454
mov word [ebp - 0x28], ax
call fcn.00401ac0
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 1
call fcn.00442db2
cld
add eax, ebp
adc edi, edi
add dword [eax], eax
inc dword [ecx]
add byte [ebx - 0xb75b], al
inc dword [eax]
and dword [ebp - 0xb8], 0
call fcn.00424f31
test al, al
je 0x422ece
jnp 0x422e9e
invalid
call fcn.00424d09
test al, al
je 0x422ef7
add dl, 0xe9
mov dl, 0x73
hlt
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x422fe0
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 closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xbc], eax
cmp eax, 0xffffffff
je 0x422fd9
call fcn.0042508a
test al, al
je 0x422f63
imul byte [0xbf1f5480]
invalid
push 0
push dword [ebp - 0xbc]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, dword [ebp - 0xc0]
push eax
mov dword [ebx], eax
call fcn.00436a01
mov dword [ebp - 0xb8], eax
pop ecx
test eax, eax
jne 0x423004
call fcn.00424f31
test al, al
je 0x422fb0
rol byte [edi - 0x78], 0xb2
mov dword [0x13bad17f], eax
movsd dword es:[edi], dword [esi]
xchg edx, eax
adc eax, 0xbfb389f8
ret 0x270f
call fcn.00424d09
test al, al
je 0x422fd9
jbe 0x422ff5
aaa
insb byte es:[edi], dx
in al, dx
mov edi, 0x546bba5c
inc ecx
enter 0x7b8e, 0xffffffffffffffd8
ror dword [edx + 0x53fa6c8e], 1
adc al, byte [ecx]
or eax, 0xe2ef8a55
xchg esi, eax
enter 0x4b13, 0xffffffffffffff83
movsd dword es:[edi], dword [esi]
dec eax
invalid
and dword [ebp - 0xb8], 0
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00401a00
push 0
push 1
lea ecx, [ebp + 8]
call fcn.00401a00
mov eax, dword [ebp - 0xb8]
call fcn.004370d4
ret
ljmp 0xff48:0x858bfffd
push dword [ebx]
push 0
push eax
call fcn.00446a10
add esp, 0xc
call fcn.0042508a
test al, al
je 0x423036
sub eax, 0xe7971ec5
mov ecx, dword [ebx - 0x23]
sub bh, byte [esi]
sbb edx, dword [ecx - 0x2782c3be]
lea eax, [ecx - 0x4a]
mov word [ebx + ecx*4 - 0x63], gs
inc eax
invalid
push 0
lea eax, [ebp - 0xc4]
push eax
push dword [ebx]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.00425000
test al, al
je 0x42307b
add byte [eax + eax*8 - 0x5faae08c], al
inc ecx
mov byte [0x23f221cd], al
ljmp 0xece1
push ebp
mov al, byte [0x21cda241]
and ebp, edx
mov ebp, 0xe19e50f8
in al, dx
clc
push eax
sahf
loope 0x423057
and edx, edi
cwde
push es
add cl, byte [ebx - 0x6e]
aad 0x7a
and esp, dword [ebp - 0x5a]
shr byte [esi], cl
jo 0x423066
call fcn.00424a9c
test al, al
je 0x42309d
ljmp 0x1f24:0xe797ed12
call fcn.00424d4e
test al, al
je 0x4230c2
invalid
push dword [ebp - 0xbc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x422fe0