Function at 0x433895
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push edi
xor eax, eax
lea edi, [ebp - 0xc]
stosd dword es:[edi], eax
xor ebx, ebx
stosd dword es:[edi], eax
cmp dword [ebp + 0xc], ebx
jne 0x4338c7
mov eax, 0x80070057
push eax
push 0x2a7
push str.fileutil.cpp
mov edi, eax
call fcn.0042fdc3
jmp 0x433b65
cmp dword [ebp + 8], ebx
jne 0x4338d9
mov eax, 0x80070057
push eax
push 0x2a8
jmp 0x4338b6
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jne 0x4338ed
mov eax, 0x80070057
push eax
push 0x2a9
jmp 0x4338b6
xor ecx, ecx
cmp cx, word [eax]
jne 0x433901
mov eax, 0x80070057
push eax
push 0x2aa
jmp 0x4338b6
push esi
push ebx
push 0x8000080
push 3
push ebx
push 5
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp + 0x10], eax
cmp eax, 0xffffffff
jne 0x433977
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov edi, 0xffff
mov esi, 0x80070000
cmp eax, ebx
jle 0x43393b
and ecx, edi
or ecx, esi
mov edx, 0x80070002
cmp ecx, edx
jne 0x43394b
mov edi, edx
jmp 0x433b64
cmp eax, ebx
je 0x433981
jg 0x433955
mov edi, eax
jmp 0x433959
and edi, eax
or edi, esi
cmp edi, ebx
jl 0x433962
mov edi, 0x80004005
push edi
push 0x2b4
push str.fileutil.cpp
call fcn.0042fdc3
jmp 0x433b64
mov edi, 0xffff
mov esi, 0x80070000
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x4339c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jg 0x4339a0
mov edi, eax
jmp 0x4339a4
and edi, eax
or edi, esi
cmp edi, ebx
jl 0x4339ad
mov edi, 0x80004005
push edi
push 0x2b9
push str.fileutil.cpp
call fcn.0042fdc3
jmp 0x433b55
cmp dword [ebp + 0x14], ebx
je 0x433a12
mov ebx, dword [ebp + 0x18]
xor eax, eax
cmp eax, dword [ebp - 8]
jl 0x4339e2
jg 0x4339d8
cmp ebx, dword [ebp - 0xc]
jbe 0x4339e2
mov edi, 0x80070057
jmp 0x433b55
push 1
push eax
push ebx
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x433a12
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x433a02
mov edi, eax
jmp 0x433a06
and edi, eax
or edi, esi
test edi, edi
jns 0x433a12
push edi
push 0x2c7
jmp 0x4339b3
cmp dword [ebp + 0x20], 0
je 0x433a41
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 8]
mov eax, dword [edi]
test eax, eax
je 0x433ade
test esi, esi
jne 0x433a70
push eax
call fcn.004300fa
and dword [edi], esi
mov eax, dword [ebp + 0xc]
and dword [eax], 0
xor edi, edi
jmp 0x433b55
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov esi, ecx
xor edx, edx
sub esi, ebx
sub ecx, ebx
sbb eax, edx
mov edx, dword [ebp + 0x1c]
xor edi, edi
cmp edi, eax
jg 0x433a1b
jl 0x433a60
cmp edx, ecx
jae 0x433a1b
mov edi, 0x8007007a
push edi
push 0x2d9
jmp 0x4339b3
push 1
push esi
push eax
call fcn.0042ff8c
test eax, eax
jne 0x433a8d
mov edi, 0x8007000e
push edi
push 0x2e7
jmp 0x4339b3
mov dword [ebp + 0x1c], eax
xor ebx, ebx
and dword [ebp - 4], ebx
and dword [ebp + 0x14], 0
lea eax, [ebp + 0x14]
push eax
push ebx
push esi
call fcn.00430195
mov edi, eax
test edi, edi
js 0x433b47
push 0
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x14]
mov eax, dword [ebp + 0x1c]
add eax, ebx
push eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x433b05
add ebx, dword [ebp - 4]
cmp dword [ebp - 4], 0
jne 0x433a95
cmp ebx, esi
je 0x433b36
mov edi, 0x8000ffff
jmp 0x433b47
test esi, esi
je 0x433a34
push 1
push esi
call fcn.0042ff6a
mov dword [ebp + 0x1c], eax
test eax, eax
jne 0x433a90
mov edi, 0x8007000e
push edi
push 0x2f4
jmp 0x4339b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x433b19
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
js 0x433b24
mov edi, 0x80004005
push edi
push 0x301
push str.fileutil.cpp
call fcn.0042fdc3
jmp 0x433b47
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
and dword [ebp + 0x1c], 0
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
cmp dword [ebp + 0x1c], 0
je 0x433b55
push dword [ebp + 0x1c]
call fcn.004300fa
cmp dword [ebp + 0x10], 0xffffffff
je 0x433b64
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
mov eax, edi
pop edi
pop ebx
leave
ret 0x1c