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

Disassembly:
push 0x2c
mov eax, 0x507ae6
call fcn.004d9926
mov edi, ecx
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.00433b20
xor ebx, ebx
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
mov dword [ebp - 4], ebx
push dword [ebp - 0x20]
mov byte [ebp - 0xd], bl
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x14], esi
cmp esi, 0xffffffff
jne 0x433de2
cmp dword [0x5500d4], ebx
je 0x433f84
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x5500d4]
push eax
push str._ERROR___d___read_download_info__open_file_failed_
call fcn.00427581
pop ecx
pop ecx
jmp 0x433f84
lea eax, [ebp - 0x28]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x433e0e
cmp dword [0x5500d4], ebx
je 0x433f75
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push str._ERROR___d___read_download_info__get_file_size_failed_
jmp 0x433f68
mov ebx, dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push 0xfffffffffffffffc
pop eax
push 2
lea edx, [ebp - 0x30]
push edx
or ecx, 0xffffffff
push ecx
push eax
push esi
call ebx
test eax, eax
jne 0x433e46
cmp dword [0x5500d4], eax
je 0x433f75
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push str._ERROR___d___read_download_info__set_base_down_info_pointer_failed_
jmp 0x433f68
and dword [ebp - 0x1c], 0
push 0
lea eax, [ebp - 0x1c]
push eax
push 4
lea esi, [edi + 0x5c]
push esi
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x433f53
cmp dword [ebp - 0x1c], 4
jne 0x433f53
mov esi, dword [esi]
test esi, esi
je 0x433f75
cmp esi, 0x3f
ja 0x433f75
test esi, esi
jle 0x433e8f
call fcn.004320bb
jmp 0x433e91
xor al, al
test al, al
je 0x433f75
push edi
call fcn.00432ac9
test al, al
je 0x433f75
mov ecx, dword [edi + 0x50]
imul ecx, ecx, 0x18
push 0xfffffffffffffffc
pop eax
push 2
sub eax, ecx
cdq
lea ecx, [ebp - 0x38]
push ecx
push edx
push eax
push dword [ebp - 0x14]
call ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test eax, eax
jne 0x433eeb
xor esi, esi
cmp dword [0x5500d4], esi
je 0x433eed
call ebx
mov ecx, dword [0x5500d4]
push eax
push str._ERROR___d___read_download_info__set_info_pointer_failed_
call fcn.00427581
pop ecx
pop ecx
jmp 0x433eed
xor esi, esi
push esi
lea eax, [ebp - 0x18]
push eax
mov eax, dword [edi + 0x50]
imul eax, eax, 0x18
push eax
push dword [edi + 0x60]
mov dword [ebp - 0x18], esi
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x433f1d
mov eax, dword [edi + 0x50]
imul eax, eax, 0x18
cmp dword [ebp - 0x18], eax
jne 0x433f1d
mov byte [ebp - 0xd], 1
jmp 0x433f75
cmp dword [0x5500d4], esi
je 0x433f3e
push dword [ebp - 0x18]
call ebx
mov ecx, dword [0x5500d4]
push eax
push str._ERROR___d___read_download_info__read_info_failed__read_size__d_
call fcn.00427581
add esp, 0xc
mov eax, dword [edi + 0x50]
imul eax, eax, 0x18
push eax
push esi
push dword [edi + 0x60]
call fcn.004d8c50
add esp, 0xc
jmp 0x433f75
cmp dword [0x5500d4], 0
je 0x433f75
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push str._ERROR___d___read_download_info__read_base_down_info_failed_
mov ecx, dword [0x5500d4]
call fcn.00427581
pop ecx
pop ecx
cmp dword [ebp - 0x14], 0
je 0x433f84
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
call fcn.00403e7d
mov al, byte [ebp - 0xd]
call fcn.004d99fe
ret