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

Disassembly:
mov edi, edi
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 0x4353ec
mov eax, 0x80070057
push eax
push 0x2a6
push 0x44cdd2
mov edi, eax
call fcn.004315ca
jmp 0x435684
cmp dword [ebp + 8], ebx
jne 0x4353fe
mov eax, 0x80070057
push eax
push 0x2a7
jmp 0x4353db
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jne 0x435412
mov eax, 0x80070057
push eax
push 0x2a8
jmp 0x4353db
xor ecx, ecx
cmp cx, word [eax]
jne 0x435426
mov eax, 0x80070057
push eax
push 0x2a9
jmp 0x4353db
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 0x43549c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov edi, 0xffff
mov esi, 0x80070000
cmp eax, ebx
jle 0x435460
and ecx, edi
or ecx, esi
mov edx, 0x80070002
cmp ecx, edx
jne 0x435470
mov edi, edx
jmp 0x435683
cmp eax, ebx
je 0x4354a6
jg 0x43547a
mov edi, eax
jmp 0x43547e
and edi, eax
or edi, esi
cmp edi, ebx
jl 0x435487
mov edi, 0x80004005
push edi
push 0x2b3
push 0x44cdd2
call fcn.004315ca
jmp 0x435683
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 0x4354e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jg 0x4354c5
mov edi, eax
jmp 0x4354c9
and edi, eax
or edi, esi
cmp edi, ebx
jl 0x4354d2
mov edi, 0x80004005
push edi
push 0x2b8
push 0x44cdd2
call fcn.004315ca
jmp 0x435674
cmp dword [ebp + 0x14], ebx
je 0x435537
mov ebx, dword [ebp + 0x18]
xor eax, eax
cmp eax, dword [ebp - 8]
jl 0x435507
jg 0x4354fd
cmp ebx, dword [ebp - 0xc]
jbe 0x435507
mov edi, 0x80070057
jmp 0x435674
push 1
push eax
push ebx
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x435537
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x435527
mov edi, eax
jmp 0x43552b
and edi, eax
or edi, esi
test edi, edi
jns 0x435537
push edi
push 0x2c6
jmp 0x4354d8
cmp dword [ebp + 0x20], 0
je 0x435566
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 8]
mov eax, dword [edi]
test eax, eax
je 0x4355fd
test esi, esi
jne 0x43558f
push eax
call fcn.00431962
and dword [edi], esi
mov eax, dword [ebp + 0xc]
and dword [eax], 0
xor edi, edi
jmp 0x435674
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 0x435540
jl 0x435585
cmp edx, ecx
jae 0x435540
mov edi, 0x8007007a
jmp 0x435674
push 1
push esi
push eax
call fcn.004317f2
test eax, eax
jne 0x4355ac
mov edi, 0x8007000e
push edi
push 0x2e6
jmp 0x4354d8
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.00435104
mov edi, eax
test edi, edi
js 0x435666
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 0x435624
add ebx, dword [ebp - 4]
cmp dword [ebp - 4], 0
jne 0x4355b4
cmp ebx, esi
je 0x435655
mov edi, 0x8000ffff
jmp 0x435666
test esi, esi
je 0x435559
push 1
push esi
call fcn.004317d2
mov dword [ebp + 0x1c], eax
test eax, eax
jne 0x4355af
mov edi, 0x8007000e
push edi
push 0x2f3
jmp 0x4354d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x435638
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
js 0x435643
mov edi, 0x80004005
push edi
push 0x300
push 0x44cdd2
call fcn.004315ca
jmp 0x435666
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 0x435674
push dword [ebp + 0x1c]
call fcn.00431962
cmp dword [ebp + 0x10], 0xffffffff
je 0x435683
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
mov eax, edi
pop edi
pop ebx
leave
ret 0x1c