Function at 0x4436f9
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
xor ecx, ecx
cmp dword [ebp + 0x40], ecx
mov eax, 0x200
setl byte [ebp - 1]
cmp byte [ebp - 1], cl
mov dword [ebp - 8], eax
je 0x443718
neg dword [ebp + 0x40]
cmp dword [ebp + 0x34], ecx
je 0x443723
mov eax, dword [ebp + 0x34]
mov dword [ebp - 8], eax
cmp dword [ebp + 0x38], ecx
mov edx, dword [ebp + 0x2c]
push ebx
mov ebx, dword [ebp + 0x24]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
je 0x443760
or edx, dword [ebp + 0x30]
je 0x443747
mov edi, dword [ebp + 0x28]
mov esi, ebx
add esi, dword [ebp + 0x2c]
adc edi, dword [ebp + 0x30]
cmp eax, 1
jle 0x4437b6
cdq
push edx
push eax
push dword [ebp + 0x28]
mov dword [ebp - 0x24], eax
push ebx
mov dword [ebp - 0x20], edx
call fcn.00491da0
jmp 0x44378b
or edx, dword [ebp + 0x30]
je 0x443770
mov edi, dword [ebp + 0x28]
mov esi, ebx
add esi, dword [ebp + 0x2c]
adc edi, dword [ebp + 0x30]
cmp eax, 1
jle 0x4437b6
cdq
push edx
push eax
push dword [ebp + 0x28]
mov dword [ebp - 0x24], eax
push ebx
mov dword [ebp - 0x20], edx
call fcn.00491da0
mov dword [ebp + 0x38], eax
cdq
push dword [ebp - 0x20]
sub ebx, eax
sbb dword [ebp + 0x28], edx
mov eax, dword [ebp + 0x38]
push dword [ebp - 0x24]
cdq
add ebx, eax
adc dword [ebp + 0x28], edx
push dword [ebp + 0x28]
push ebx
call fcn.00491da0
mov dword [ebp + 0x38], eax
cdq
sub ebx, eax
sbb dword [ebp + 0x28], edx
mov dword [ebp + 0x24], ebx
jmp 0x4437b9
mov dword [ebp + 0x38], ecx
cmp edi, dword [ebp + 0x14]
jl 0x4437cb
jg 0x4437c5
cmp esi, dword [ebp + 0x10]
jbe 0x4437cb
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov edx, 0xfffffe00
mov eax, ebx
and eax, edx
mov dword [ebp - 0x1c], eax
mov ecx, esi
add ecx, 0x1ff
mov eax, edi
adc eax, 0
and ecx, edx
cmp eax, dword [ebp + 0x14]
mov dword [ebp - 0x40], eax
jl 0x4437fe
jg 0x4437f5
cmp ecx, dword [ebp + 0x10]
jbe 0x4437fe
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x38]
cdq
mov dword [ebp - 0x3c], eax
add eax, ebx
mov dword [ebp + 0x10], eax
mov eax, edx
adc eax, dword [ebp + 0x28]
mov dword [ebp - 0x38], edx
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
cdq
mov ebx, eax
mov eax, esi
sub eax, ebx
mov ebx, edi
sbb ebx, edx
sub eax, dword [ebp + 0x10]
sbb ebx, dword [ebp + 0x14]
and dword [ebp - 0x2c], 0
and dword [ebp - 0x28], 0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x3c]
test eax, eax
jne 0x44385c
mov edx, dword [ebp + 0x28]
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
push edx
push dword [ebp - 0x1c]
sbb eax, edx
push 2
push eax
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2c]
call fcn.0043782e
mov eax, dword [ebp - 0x28]
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
test eax, eax
je 0x443961
mov esi, dword [ebp + 0x10]
sub esi, dword [ebp - 0x1c]
and dword [ebp + 0x24], 0
add esi, eax
xor edi, edi
cmp byte [ebp - 1], 0
je 0x4438b4
cmp dword [ebp - 8], 1
mov eax, dword [ebp - 0x34]
mov edx, ebx
jle 0x4438aa
mov eax, dword [ebp - 8]
cdq
push edx
mov edi, eax
push edi
push ebx
push dword [ebp - 0x34]
mov dword [ebp - 0x20], edx
call fcn.0048f770
push dword [ebp - 0x20]
push edi
push edx
push eax
call fcn.0048f820
add esi, eax
neg dword [ebp - 8]
mov dword [ebp + 0x24], eax
mov edi, edx
cmp edi, ebx
jg 0x443bce
jge 0x44392b
test edi, edi
jl 0x443bce
jg 0x4438d2
cmp dword [ebp + 0x24], 0
jb 0x443bce
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
call fcn.0043d677
add esp, 0xc
test eax, eax
je 0x443915
cmp dword [ebp + 8], 0
je 0x443949
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x10]
mov ecx, edi
adc ecx, dword [ebp + 0x14]
push ecx
push eax
push dword [ebp + 8]
call fcn.004433f5
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x40], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
jle 0x443915
dec dword [ebp + 0x40]
je 0x443938
mov eax, dword [ebp - 8]
cdq
add dword [ebp + 0x24], eax
adc edi, edx
add esi, dword [ebp - 8]
cmp edi, ebx
jl 0x4438be
jg 0x443bce
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jbe 0x4438be
jmp 0x443bce
lea ecx, [ebp - 0x2c]
call fcn.0040dcb7
xor eax, eax
xor edx, edx
jmp 0x443bdc
lea ecx, [ebp - 0x2c]
call fcn.0040dcb7
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x10]
mov edx, edi
adc edx, dword [ebp + 0x14]
jmp 0x443bdc
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x38]
lea ebx, [eax + ecx]
mov eax, ebx
cdq
mov ecx, esi
sub ecx, eax
mov eax, edi
sbb eax, edx
cmp byte [ebp - 1], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
je 0x443991
mov esi, 0x80070057
or edi, 0xffffffff
jmp 0x443bed
push 0
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0xc]
call fcn.004389fe
add esp, 0x10
cmp dword [ebp + 0x24], eax
jne 0x4439ae
cmp dword [ebp + 0x28], edx
je 0x4439b8
or edi, 0xffffffff
mov esi, edi
jmp 0x443bed
sub esi, dword [ebp + 0x24]
sbb edi, dword [ebp + 0x28]
mov ecx, esi
mov esi, ebx
shl esi, 2
mov eax, esi
cdq
cmp edx, edi
jl 0x4439d4
jg 0x4439d2
cmp eax, ecx
jbe 0x4439d4
mov esi, ecx
mov edi, dword [ebp - 0x18]
mov ebx, 0xfffffe00
add edi, 0x1ff
lea ecx, [esi + 0x1ff]
and ecx, ebx
mov eax, 0x200000
and edi, ebx
cmp ecx, eax
mov dword [ebp - 0xc], ecx
jge 0x4439fb
mov dword [ebp - 0xc], eax
and dword [ebp + 0x14], 0
mov eax, dword [ebp - 0xc]
add eax, 0x100000
push eax
lea ecx, [ebp + 0x14]
call fcn.0043d2c0
test eax, eax
mov dword [ebp - 0x10], eax
je 0x443a26
add eax, 0x100000
and eax, 0xfff00000
mov dword [ebp - 0x10], eax
jne 0x443a46
mov eax, dword [ebp - 0xc]
cmp eax, esi
jl 0x443bc6
cdq
sub eax, edx
sar eax, 1
add eax, 0x1ff
and eax, ebx
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
je 0x4439ff
cmp dword [ebp - 0xc], edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
jl 0x443bc6
and dword [ebp + 0x3c], 0
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x30]
cmp dword [ebp + 0x28], eax
mov dword [ebp - 0x14], 0x3e8
jg 0x443bc6
jl 0x443a82
mov eax, dword [ebp - 0x34]
cmp dword [ebp + 0x24], eax
ja 0x443bc6
mov ecx, dword [ebp - 0x34]
sub ecx, dword [ebp + 0x24]
mov esi, dword [ebp - 0x30]
sbb esi, dword [ebp + 0x28]
mov edi, dword [ebp - 0xc]
add ecx, 0x1ff
adc esi, 0
sub edi, dword [ebp + 0x3c]
and ecx, ebx
mov eax, edi
cdq
cmp esi, edx
jl 0x443ab0
jg 0x443aac
cmp ecx, eax
jbe 0x443ab0
mov ecx, eax
mov esi, edx
test esi, esi
jl 0x443bc6
jg 0x443ac2
test ecx, ecx
jbe 0x443bc6
mov esi, dword [ebp + 0x3c]
and dword [ebp + 0x34], 0
push 0
lea eax, [ebp + 0x34]
push eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, esi
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x443ae9
cmp dword [ebp + 0x34], 0
jg 0x443afa
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0
jle 0x443bc6
and dword [ebp + 0x34], 0
cmp dword [ebp + 0x34], edi
jle 0x443b02
mov dword [ebp + 0x34], edi
add dword [ebp + 0x34], esi
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x18]
mov dword [ebp + 0x3c], eax
jl 0x443bac
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp - 0x20]
lea edi, [ecx + eax]
mov eax, dword [ebp + 0x3c]
sub eax, dword [ebp - 0x18]
and dword [ebp - 0x10], 0
add eax, dword [ebp - 8]
cdq
idiv dword [ebp - 8]
mov esi, eax
test esi, esi
jle 0x443b8a
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
call fcn.0043d677
add esp, 0xc
test eax, eax
je 0x443b75
cmp dword [ebp + 8], 0
je 0x443bfb
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x38]
adc ecx, dword [ebp + 0x28]
push ecx
push eax
push dword [ebp + 8]
call fcn.004433f5
add esp, 0xc
cmp dword [ebp + 0x40], 0
jle 0x443b75
dec dword [ebp + 0x40]
je 0x443be1
mov eax, dword [ebp - 8]
inc dword [ebp - 0x10]
cdq
add dword [ebp + 0x24], eax
adc dword [ebp + 0x28], edx
add edi, dword [ebp - 8]
cmp dword [ebp - 0x10], esi
jl 0x443b34
imul esi, dword [ebp - 8]
sub dword [ebp + 0x3c], esi
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
jle 0x443bac
push dword [ebp + 0x3c]
add esi, eax
push esi
push eax
call fcn.00412515
add esp, 0xc
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x30]
jl 0x443a82
jg 0x443bc6
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jbe 0x443a82
lea ecx, [ebp + 0x14]
call fcn.00437884
lea ecx, [ebp - 0x2c]
call fcn.0040dcb7
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
pop edi
pop esi
pop ebx
leave
ret
lea ecx, [ebp + 0x14]
call fcn.00437884
xor esi, esi
xor edi, edi
lea ecx, [ebp - 0x2c]
call fcn.0040dcb7
mov eax, esi
mov edx, edi
jmp 0x443bdc
lea ecx, [ebp + 0x14]
call fcn.00437884
lea ecx, [ebp - 0x2c]
call fcn.0040dcb7
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x38]
adc edx, dword [ebp + 0x28]
jmp 0x443bdc