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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1070
call fcn.00609980
mov eax, dword [0x7286bc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1030], eax
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x102c], eax
mov eax, dword [ebp + 0x10]
push eax
mov dword [ebp - 0x1034], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x423101
xor eax, eax
jmp 0x42338c
push ebx
push edi
mov edi, esi
xor ebx, ebx
push ebx
and edi, 0x10
mov eax, edi
shl eax, 0x15
push eax
push 3
push ebx
push 1
push SysReAllocString
push dword [ebp - 0x1034]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ecx, eax
mov dword [ebp - 0x1048], ecx
cmp ecx, 0xffffffff
jne 0x42313b
xor eax, eax
jmp 0x42338a
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x105c], eax
lea eax, [ebp - 0x1068]
push eax
push ebx
push ebx
push ecx
mov byte [ebp - 0x1060], bl
mov dword [ebp - 0x1058], ecx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
lea eax, [ebp - 0x1070]
push eax
lea eax, [ebp - 0x1068]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
lea eax, [ebp - 0x1044]
push eax
lea eax, [ebp - 0x1040]
push eax
lea eax, [ebp - 0x1070]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
push 0x24
lea eax, [ebp - 0x1028]
push ebx
push eax
call fcn.0060b7a0
movzx ecx, word [ebp - 0x1040]
add esp, 0xc
movzx eax, word [ebp - 0x1044]
or dword [ebp - 0x1008], esi
shl ecx, 0x10
push dword [ebp - 0x102c]
or ecx, eax
mov dword [ebp - 0x1010], ecx
lea ecx, [ebp - 0x102c]
call fcn.004177e7
lea eax, [ebp - 0x102c]
cmp byte [ebp + 0x14], bl
je 0x423236
push 0xfde9
push eax
lea eax, [ebp - 0x1034]
push eax
call fcn.00423017
mov ecx, dword [ebp - 0x102c]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.00419521
push 0x800
push ebx
push ebx
push ebx
push ebx
push 8
mov esi, dword [ebp - 0x1034]
lea eax, [ebp - 0x1028]
push 0xfffffffffffffff1
push ebx
push 9
push 8
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push esi
push dword [ebp - 0x1030]
call fcn.0040b460
add esp, 0x48
jmp 0x42327a
push ebx
push eax
lea eax, [ebp - 0x1034]
push eax
call fcn.00423017
mov ecx, dword [ebp - 0x102c]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.00419521
mov esi, dword [ebp - 0x1034]
lea eax, [ebp - 0x1028]
push 9
push 8
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push esi
push dword [ebp - 0x1030]
call fcn.0040b5f0
add esp, 0x28
lea ecx, [esi - 0x10]
test eax, eax
je 0x42328b
call fcn.00419521
jmp 0x42337b
call fcn.00419521
mov esi, dword [ebp - 0x1030]
mov byte [ebp - 0x1054], bl
mov dword [ebp - 0x1050], fcn.0040c080
mov dword [ebp - 0x104c], esi
test edi, edi
jne 0x42336b
mov edi, dword [ebp - 0x1048]
lea eax, [ebp - 0x103c]
push eax
push edi
mov dword [ebp - 0x103c], ebx
mov dword [ebp - 0x1038], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x42336e
mov ecx, dword [ebp - 0x1038]
cmp ecx, ebx
jl 0x42336b
mov eax, dword [ebp - 0x103c]
jg 0x423301
jmp 0x423367
cmp ecx, ebx
jl 0x423306
jg 0x423301
cmp eax, 0x1000
jbe 0x423306
mov eax, 0x1000
push ebx
lea ecx, [ebp - 0x1030]
mov dword [ebp - 0x1030], ebx
push ecx
push eax
lea eax, [ebp - 0x1004]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42336e
push dword [ebp - 0x1030]
lea eax, [ebp - 0x1004]
push eax
push esi
call fcn.0040b730
add esp, 0xc
test eax, eax
js 0x42336e
mov eax, dword [ebp - 0x103c]
sub eax, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1038]
sbb ecx, ebx
mov dword [ebp - 0x103c], eax
mov dword [ebp - 0x1038], ecx
cmp ecx, ebx
jg 0x423301
jl 0x42336b
cmp eax, ebx
ja 0x4232f4
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x1054]
push eax
call fcn.00422699
pop ecx
lea eax, [ebp - 0x1060]
push eax
call fcn.004226c8
pop ecx
mov eax, ebx
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00609802
mov esp, ebp
pop ebp
ret