Function at 0x448340
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 - 8], 0
xor esi, esi
mov byte [ebp - 1], al
push 0x2000
mov dword [ebp - 0x10], esi
call fcn.005194aa
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
nop dword [eax]
push 0
lea eax, [ebp - 8]
push eax
push 0x2000
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, dword [ebp - 8]
test eax, eax
jne 0x448396
test ebx, ebx
je 0x44839e
mov byte [ebp - 1], 1
jmp 0x44839e
test ebx, ebx
je 0x4485d3
xor esi, esi
lea ecx, [esi + 1]
cmp ebx, ecx
jne 0x4483ba
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
inc eax
mov edi, eax
shl edi, 0x10
or edi, eax
jmp 0x4485bc
cmp ebx, 0x10
jae 0x4483f8
test ebx, ebx
je 0x4483e0
movzx eax, byte [edi]
lea edi, [edi + 1]
add ecx, eax
add esi, ecx
sub ebx, 1
jne 0x4483c3
cmp ecx, 0xfff1
jb 0x4483e0
sub ecx, 0xfff1
mov eax, 0x80078071
mul esi
shr edx, 0xf
mov edi, edx
shl edi, 4
sub edi, edx
add edi, esi
jmp 0x4485b7
cmp ebx, 0x15b0
jb 0x4484ea
mov eax, 0x5e6ea9af
mul ebx
shr edx, 0xb
mov dword [ebp - 0xc], edx
sub ebx, 0x15b0
mov edx, 0x15b
nop dword [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 0x448420
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 - 0xc], 1
jne 0x448411
test ebx, ebx
je 0x4485b5
cmp ebx, 0x10
jb 0x448582
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 0x4484f0
test ebx, ebx
je 0x448591
movzx eax, byte [edi]
lea edi, [edi + 1]
add ecx, eax
add esi, ecx
sub ebx, 1
jne 0x448582
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, esi
shl edi, 0x10
or edi, ecx
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 0xc]
mov dword [esi + eax], edi
add esi, 4
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x10], esi
jmp 0x448370
push 0
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push edi
call fcn.00519467
add esp, 4
or ecx, 0xffffffff
cmp byte [ebp - 1], 0
cmovne esi, ecx
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc