Function at 0x4437d1
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 0x4437f0
neg dword [ebp + 0x40]
cmp dword [ebp + 0x34], ecx
je 0x4437fb
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 0x443838
or edx, dword [ebp + 0x30]
je 0x44381f
mov edi, dword [ebp + 0x28]
mov esi, ebx
add esi, dword [ebp + 0x2c]
adc edi, dword [ebp + 0x30]
cmp eax, 1
jle 0x44388e
cdq
push edx
push eax
push dword [ebp + 0x28]
mov dword [ebp - 0x24], eax
push ebx
mov dword [ebp - 0x20], edx
call fcn.00491e30
jmp 0x443863
or edx, dword [ebp + 0x30]
je 0x443848
mov edi, dword [ebp + 0x28]
mov esi, ebx
add esi, dword [ebp + 0x2c]
adc edi, dword [ebp + 0x30]
cmp eax, 1
jle 0x44388e
cdq
push edx
push eax
push dword [ebp + 0x28]
mov dword [ebp - 0x24], eax
push ebx
mov dword [ebp - 0x20], edx
call fcn.00491e30
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.00491e30
mov dword [ebp + 0x38], eax
cdq
sub ebx, eax
sbb dword [ebp + 0x28], edx
mov dword [ebp + 0x24], ebx
jmp 0x443891
mov dword [ebp + 0x38], ecx
cmp edi, dword [ebp + 0x14]
jl 0x4438a3
jg 0x44389d
cmp esi, dword [ebp + 0x10]
jbe 0x4438a3
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 0x4438d6
jg 0x4438cd
cmp ecx, dword [ebp + 0x10]
jbe 0x4438d6
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 0x443934
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.0043790a
mov eax, dword [ebp - 0x28]
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
test eax, eax
je 0x443a39
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 0x44398c
cmp dword [ebp - 8], 1
mov eax, dword [ebp - 0x34]
mov edx, ebx
jle 0x443982
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.0048f800
push dword [ebp - 0x20]
push edi
push edx
push eax
call fcn.0048f8b0
add esi, eax
neg dword [ebp - 8]
mov dword [ebp + 0x24], eax
mov edi, edx
cmp edi, ebx
jg 0x443ca6
jge 0x443a03
test edi, edi
jl 0x443ca6
jg 0x4439aa
cmp dword [ebp + 0x24], 0
jb 0x443ca6
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
call fcn.0043d74f
add esp, 0xc
test eax, eax
je 0x4439ed
cmp dword [ebp + 8], 0
je 0x443a21
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.004434cd
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x40], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
jle 0x4439ed
dec dword [ebp + 0x40]
je 0x443a10
mov eax, dword [ebp - 8]
cdq
add dword [ebp + 0x24], eax
adc edi, edx
add esi, dword [ebp - 8]
cmp edi, ebx
jl 0x443996
jg 0x443ca6
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jbe 0x443996
jmp 0x443ca6
lea ecx, [ebp - 0x2c]
call fcn.004378de
xor eax, eax
xor edx, edx
jmp 0x443cb4
lea ecx, [ebp - 0x2c]
call fcn.004378de
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x10]
mov edx, edi
adc edx, dword [ebp + 0x14]
jmp 0x443cb4
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 0x443a69
mov esi, 0x80070057
or edi, 0xffffffff
jmp 0x443cc5
push 0
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0xc]
call fcn.00438aec
add esp, 0x10
cmp dword [ebp + 0x24], eax
jne 0x443a86
cmp dword [ebp + 0x28], edx
je 0x443a90
or edi, 0xffffffff
mov esi, edi
jmp 0x443cc5
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 0x443aac
jg 0x443aaa
cmp eax, ecx
jbe 0x443aac
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 0x443ad3
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.0043d398
test eax, eax
mov dword [ebp - 0x10], eax
je 0x443afe
add eax, 0x100000
and eax, 0xfff00000
mov dword [ebp - 0x10], eax
jne 0x443b1e
mov eax, dword [ebp - 0xc]
cmp eax, esi
jl 0x443c9e
cdq
sub eax, edx
sar eax, 1
add eax, 0x1ff
and eax, ebx
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
je 0x443ad7
cmp dword [ebp - 0xc], edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
jl 0x443c9e
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 0x443c9e
jl 0x443b5a
mov eax, dword [ebp - 0x34]
cmp dword [ebp + 0x24], eax
ja 0x443c9e
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 0x443b88
jg 0x443b84
cmp ecx, eax
jbe 0x443b88
mov ecx, eax
mov esi, edx
test esi, esi
jl 0x443c9e
jg 0x443b9a
test ecx, ecx
jbe 0x443c9e
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 0x443bc1
cmp dword [ebp + 0x34], 0
jg 0x443bd2
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0
jle 0x443c9e
and dword [ebp + 0x34], 0
cmp dword [ebp + 0x34], edi
jle 0x443bda
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 0x443c84
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 0x443c62
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
call fcn.0043d74f
add esp, 0xc
test eax, eax
je 0x443c4d
cmp dword [ebp + 8], 0
je 0x443cd3
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.004434cd
add esp, 0xc
cmp dword [ebp + 0x40], 0
jle 0x443c4d
dec dword [ebp + 0x40]
je 0x443cb9
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 0x443c0c
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 0x443c84
push dword [ebp + 0x3c]
add esi, eax
push esi
push eax
call fcn.004125af
add esp, 0xc
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x30]
jl 0x443b5a
jg 0x443c9e
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jbe 0x443b5a
lea ecx, [ebp + 0x14]
call fcn.00437960
lea ecx, [ebp - 0x2c]
call fcn.004378de
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
pop edi
pop esi
pop ebx
leave
ret
lea ecx, [ebp + 0x14]
call fcn.00437960
xor esi, esi
xor edi, edi
lea ecx, [ebp - 0x2c]
call fcn.004378de
mov eax, esi
mov edx, edi
jmp 0x443cb4
lea ecx, [ebp + 0x14]
call fcn.00437960
lea ecx, [ebp - 0x2c]
call fcn.004378de
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x38]
adc edx, dword [ebp + 0x28]
jmp 0x443cb4