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

Disassembly:
push 0x2c
mov eax, 0x507ba2
call fcn.004d99c6
mov edi, ecx
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.00433a56
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 0x433d18
cmp dword [0x5500d4], ebx
je 0x433eba
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.0042749e
pop ecx
pop ecx
jmp 0x433eba
lea eax, [ebp - 0x28]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x433d44
cmp dword [0x5500d4], ebx
je 0x433eab
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push str._ERROR___d___read_download_info__get_file_size_failed_
jmp 0x433e9e
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 0x433d7c
cmp dword [0x5500d4], eax
je 0x433eab
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push str._ERROR___d___read_download_info__set_base_down_info_pointer_failed_
jmp 0x433e9e
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 0x433e89
cmp dword [ebp - 0x1c], 4
jne 0x433e89
mov esi, dword [esi]
test esi, esi
je 0x433eab
cmp esi, 0x3f
ja 0x433eab
test esi, esi
jle 0x433dc5
call fcn.00431ff1
jmp 0x433dc7
xor al, al
test al, al
je 0x433eab
push edi
call fcn.004329ff
test al, al
je 0x433eab
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 0x433e21
xor esi, esi
cmp dword [0x5500d4], esi
je 0x433e23
call ebx
mov ecx, dword [0x5500d4]
push eax
push str._ERROR___d___read_download_info__set_info_pointer_failed_
call fcn.0042749e
pop ecx
pop ecx
jmp 0x433e23
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 0x433e53
mov eax, dword [edi + 0x50]
imul eax, eax, 0x18
cmp dword [ebp - 0x18], eax
jne 0x433e53
mov byte [ebp - 0xd], 1
jmp 0x433eab
cmp dword [0x5500d4], esi
je 0x433e74
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.0042749e
add esp, 0xc
mov eax, dword [edi + 0x50]
imul eax, eax, 0x18
push eax
push esi
push dword [edi + 0x60]
call fcn.004d8ce0
add esp, 0xc
jmp 0x433eab
cmp dword [0x5500d4], 0
je 0x433eab
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.0042749e
pop ecx
pop ecx
cmp dword [ebp - 0x14], 0
je 0x433eba
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
call fcn.00403eb2
mov al, byte [ebp - 0xd]
call fcn.004d9a9e
ret