Function at 0x44ef90
Capabilities:
Compute adler32 checksum
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
xor al, al
mov dword [ebp - 0xc], 0
xor edi, edi
mov byte [ebp - 1], al
push 0x2000
mov dword [ebp - 8], edi
call fcn.005247b4
mov esi, eax
add esp, 4
mov dword [ebp - 0x10], esi
nop dword [eax]
push 0
lea eax, [ebp - 0xc]
push eax
push 0x2000
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, dword [ebp - 0xc]
test eax, eax
jne 0x44efe6
test ebx, ebx
je 0x44efee
mov byte [ebp - 1], 1
jmp 0x44efee
test ebx, ebx
je 0x44f256
mov edi, esi
xor esi, esi
lea ecx, [esi + 1]
cmp ebx, ecx
jne 0x44f018
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
movzx ecx, byte [esi]
inc ecx
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + edi], eax
add edi, 4
mov dword [ebp - 8], edi
jmp 0x44efc0
cmp ebx, 0x10
jae 0x44f06d
test ebx, ebx
je 0x44f03e
movzx eax, byte [edi]
lea edi, [edi + 1]
add ecx, eax
add esi, ecx
sub ebx, 1
jne 0x44f021
cmp ecx, 0xfff1
jb 0x44f03e
sub ecx, 0xfff1
mov edi, dword [ebp - 8]
mov eax, 0x80078071
mul esi
shr edx, 0xf
mov eax, edx
shl eax, 4
sub eax, edx
add eax, esi
mov esi, dword [ebp - 0x10]
shl eax, 0x10
or eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + edi], eax
add edi, 4
mov dword [ebp - 8], edi
jmp 0x44efc0
cmp ebx, 0x15b0
jb 0x44f16a
mov eax, 0x5e6ea9af
mul ebx
shr edx, 0xb
mov dword [ebp - 0x14], edx
nop word [eax + eax]
sub ebx, 0x15b0
mov edx, 0x15b
nop dword [eax + eax]
movzx eax, byte [edi]
add ecx, eax
movzx eax, byte [edi + 1]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 2]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 3]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 4]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 5]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 6]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 7]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 8]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 9]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xa]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xb]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xc]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xd]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xe]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xf]
add esi, ecx
add edi, 0x10
add ecx, eax
add esi, ecx
sub edx, 1
jne 0x44f0a0
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul eax, edx, 0xffff000f
add esi, eax
sub dword [ebp - 0x14], 1
jne 0x44f090
test ebx, ebx
je 0x44f23a
cmp ebx, 0x10
jb 0x44f207
mov edx, ebx
shr edx, 4
nop
movzx eax, byte [edi]
sub ebx, 0x10
add ecx, eax
movzx eax, byte [edi + 1]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 2]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 3]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 4]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 5]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 6]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 7]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 8]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 9]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xa]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xb]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xc]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xd]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xe]
add esi, ecx
add ecx, eax
movzx eax, byte [edi + 0xf]
add esi, ecx
add edi, 0x10
add ecx, eax
add esi, ecx
sub edx, 1
jne 0x44f170
mov eax, ebx
mov dword [ebp - 0x14], ebx
test eax, eax
je 0x44f216
movzx eax, byte [edi]
lea edi, [edi + 1]
add ecx, eax
add esi, ecx
sub ebx, 1
jne 0x44f207
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul eax, edx, 0xffff000f
add esi, eax
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
shl esi, 0x10
or esi, ecx
mov dword [eax + edi], esi
add edi, 4
mov esi, dword [ebp - 0x10]
mov dword [ebp - 8], edi
jmp 0x44efc0
push 0
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
call fcn.00524771
add esp, 4
or ecx, 0xffffffff
cmp byte [ebp - 1], 0
cmovne edi, ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc