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

Disassembly:
push 0xb8
mov eax, 0x5a1a0e
call fcn.004348d9
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xc0], eax
and dword [ebp - 4], 0
call fcn.0043ab03
test al, al
je 0x4222fb
invalid
sti
invalid
call fcn.0043aa79
test al, al
je 0x42231f
mov eax, 0xbf87776a
add ch, al
inc edi
ja 0x422380
jnp 0x4222d8
imul esp, dword [edx + edi*2], 0x36
adc dword [ebx], 0xf9a45f1d
sub al, 0xa3
clc
inc esi
pop ss
call fcn.0043aa34
test al, al
je 0x422341
sal byte [ecx + ebx - 0x4e], 0x1e
mov dl, 0x1e
movsb byte es:[edi], byte [esi]
mov ebx, 0x866d3d9d
mov dh, dh
adc eax, 0xc5b87952
mov ebx, 0x21645ea2
sbb esi, dword [esi - 0x1a]
mov eax, 0x5ea2bbc5
and dword fs:[ebx], ebx
jbe 0x422325
jp 0x42238c
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x14], 7
push eax
push 0x61f778
mov word [ebp - 0x28], ax
call fcn.00401a60
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 1
call fcn.004416fd
and dword [ebp - 0xb8], 0
call fcn.0043a920
test al, al
je 0x42239c
sal byte [ebp + ebx + 0x25], 0x5f
and eax, 0xe1c3835f
pop edi
add ebx, 0xffffffe1
mov bh, 0xe2
sbb eax, 0x453f1d3
cmp dword [edx + 0x45716329], ebp
stosb byte es:[edi], al
sub dword [ebx + 0x71], esp
inc ebp
cdq
push es
add dword [eax - 0x2c], 0x1c
jp 0x422335
pop eax
add ah, byte [eax - 0x18]
push edi
add dword [ecx], 0
call fcn.0043a6f8
test al, al
je 0x4223c5
enter 0xfffffffffffff81f, 0x7c
lcall 0x1ff3, 0xbc7d8d6e
out dx, al
out 0x17, al
sbb al, 0x70
jnp 0x42237c
push ss
push ds
mov eax, 0x4af4bdac
jge 0x4223e0
test dword [edx + 0x17], ebp
lodsd eax, dword [esi]
fild dword [ebx - 0x72f7e383]
inc ebp
or byte [edi], cl
inc ebx
inc ebp
or byte [eax - 1], dl
adc eax, sym.imp.SHLWAPI.dll_PathFileExistsW
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 0x4224ae
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 0
jge 0x4223fe
or byte [ebp + 0x6a0845], cl
cmovae eax, dword [ebp + 8]
push 0x80
push 4
push 0
push 1
push accept
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
adc eax, sym.imp.KERNEL32.dll_CreateFileW
mov dword [ebp - 0xbc], eax
cmp eax, 0xffffffff
je 0x4224a7
call fcn.0043aa79
test al, al
je 0x422431
fmul dword [ebx - 0x4f]
retf 0xee5a
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.004341c5
mov dword [ebp - 0xb8], eax
pop ecx
test eax, eax
jne 0x4224d2
call fcn.0043a920
test al, al
je 0x42247e
popfd
mov edx, 0x248338a4
sub eax, 0x1d1f469b
wait
xor byte [esi + 0x5c], 0x79
call 0x4a466e6d
stc
pop ebp
jmp 0xdb9d326
call fcn.0043a6f8
test al, al
je 0x4224a7
wait
mov cl, 0x8c
cld
clc
sub dword [eax - 0x2b], eax
aaa
int1
imul ecx, dword [0x5191188b], 0xfc973aa1
or al, 0x71
pmaxub mm1, qword [0xa199dff2]
jno 0x4224d2
and dword [ebp - 0xb8], 0
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.004019a0
push 0
push 1
lea ecx, [ebp + 8]
call fcn.004019a0
mov eax, dword [ebp - 0xb8]
call fcn.00434894
ret
push dword [ebx]
push 0
push eax
call fcn.00445350
add esp, 0xc
call fcn.0043aa79
test al, al
je 0x422504
jmp 0x42254b
mov dh, 0x87
push edi
xor ch, byte [edx - 0x40]
push ss
mov ebx, 0x9d8b4e28
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.0043a9ef
test al, al
je 0x422549
jno 0x4224f4
stc
mov ah, 0xd7
mov cl, 0x44
xchg dword [ebx + 0x3312b87c], ebx
pop ds
stosd dword es:[edi], eax
mov bh, 0x63
in al, dx
xchg edi, eax
xor dword [edx + 0xa0820b0], eax
cld
sbb byte [ebx], 6
xor byte [eax - 0x3f5f7e0], 0x82
pop ebx
add byte [esi], al
and al, 0xe8
cmp eax, 0x8400017f
sal byte [ecx + ebx + 0x1b], 0x36
call fcn.0043a48b
jg 0x42254e
add byte [eax + eax*8 + 0x361b1974], al
test al, al
je 0x42256b
sbb esi, dword [esi]
sahf
cmpsd dword [esi], dword es:[edi]
pop edi
adc eax, 0x4b79bc76
xchg edi, eax
retf 0xc5c8
call fcn.0043a73d
test al, al
je 0x422590
loopne 0x422528
pop ebp
jns 0x42254e
xor ah, bh
or dword [edx + 0x66], edi
add byte [eax], cl
xchg ebp, eax
in al, dx
pushal
jge 0x42253e
mov ebx, 0xa6242978
leave
pushal
push ebx
mov ebx, 0xb5ff77fc
inc esp
push dword [ebp - 0xbc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4224ae