Function at 0x1000be30
Capabilities:
Compute adler32 checksum

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
lea ecx, [eax + 0x954]
mov dword [ebp - 8], ecx
cmp eax, ecx
jae 0x1000c2ce
mov esi, dword [ebp + 0x10]
cmp eax, 0xece
ja 0x1000c1d5
je 0x1000bfec
cmp eax, 0xcae
je 0x1000bfc0
add byte [edi], cl
test byte [ecx + eax], dl
add byte [0xd40], bh
cmp eax, 0xd40
je 0x1000bfab
cmp eax, 0xe3c
jne 0x1000c1bb
mov edi, dword [ebp + 0xc]
xor edx, edx
mov dword [ebp - 0x1c], edx
cmp dword [edi], edx
jle 0x1000bfa2
mov ecx, 0x1126
mov dword [ebp - 0x18], ecx
nop word [eax + eax]
cmp ecx, 0x1126
je 0x1000bf64
cmp ecx, 0x12fc
jne 0x1000bf78
add byte [edx], dh
pop edi
mov edi, dword [ebx + ecx*4 + 0x5d]
adc byte [ebx - 0x48f013b3], cl
ror dword [ecx + 0x38bd845], 0xff
jae 0x1000bed6
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
loopne 0x1000be65
inc ebp
loopne 0x1000bf2b
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
push 0x24e
push eax
call fcn.1000c2e0
mov edi, dword [ebp - 0x38]
mov esi, eax
push dword [ebx + 8]
movzx eax, di
mov dword [ebp - 0x34], eax
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push 0x24e
push eax
call fcn.1000c2e0
add esp, 0x28
mov dword [ebp - 0x10], eax
cmp esi, dword [ebx]
je 0x1000c29c
mov edx, dword [ebp - 0x14]
push ebp
in al, dx
mov ecx, edi
sub ecx, edx
sub eax, esi
cmp eax, ecx
jne 0x1000c29c
mov ecx, dword [ebx + 8]
movzx eax, word [ecx + esi*2]
cmp eax, edx
jne 0x1000c29c
mov eax, dword [ebp - 0x10]
movzx eax, word [ecx + eax*2]
cmp eax, edi
jne 0x1000c29c
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
jmp 0x1000bf78
mov eax, dword [edi + 8]
movzx ebx, word [eax + edx*4]
movzx eax, word [eax + edx*4 + 2]
add eax, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x38], eax
add ecx, 0x1d6
mov dword [ebp - 0x18], ecx
cmp ecx, 0x14d2
jb 0x1000bea0
inc edx
mov dword [ebp - 0x1c], edx
cmp edx, dword [edi]
jl 0x1000be92
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 8]
mov byte [ebp - 0xc], 1
jmp 0x1000c1bb
mov eax, dword [ebp + 0xc]
movzx ecx, word [eax + 2]
mov dword [ebp - 4], ecx
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x1000c1b5
push 0
push 0
push 0
push dword [ebp + 0xc]
push 0
push 0x8d5
call fcn.10011380
add esp, 0x18
cmp eax, dword [esi]
jg 0x1000c29c
mov dword [ebp - 0x10], 0xffffffff
jmp 0x1000c1b5
mov eax, dword [ebp + 8]
cmp dword [eax], 1
jne 0x1000c05c
mov edi, 0x98c
nop dword [eax]
mov eax, edi
sub eax, 0x98c
je 0x1000c022
sub eax, 1
jne 0x1000c053
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
shl ecx, 0x10
or ecx, dword [eax]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
movzx eax, byte [esi]
add dword [ecx], eax
mov edx, dword [ecx]
cmp edx, 0xfff1
jb 0x1000c03c
add edx, 0xffff000f
mov dword [ecx], edx
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
cmp eax, 0xfff1
jb 0x1000c053
sub eax, 0xfff1
mov dword [ebp - 4], eax
inc edi
cmp edi, 0x98e
jb 0x1000c000
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x1000c2aa
mov esi, dword [ebp + 8]
cmp dword [esi], 0x10
jae 0x1000c0ed
mov edi, 0xed2
cmp edi, 0xed2
je 0x1000c08a
cmp edi, 0x1188
je 0x1000c2ce
jmp 0x1000c0df
mov eax, dword [esi]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
test eax, eax
je 0x1000c0aa
dec dword [esi]
movzx eax, byte [ebx]
inc ebx
add dword [edx], eax
add ecx, dword [edx]
cmp dword [esi], 0
jne 0x1000c096
mov dword [ebp + 0x10], ebx
xor eax, eax
dec eax
mov dword [esi], eax
mov esi, dword [edx]
cmp esi, 0xfff1
jb 0x1000c0bf
add esi, 0xffff000f
mov dword [edx], esi
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov dword [ebp - 4], ecx
shl ecx, 0x10
or ecx, esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
add edi, 0x2b6
cmp edi, 0x143e
jb 0x1000c074
cmp dword [esi], 0x15b0
jb 0x1000c1b2
nop dword [eax]
mov eax, 0xdd4
mov dword [ebp - 0x18], eax
sub eax, 0xdd2
je 0x1000c17c
sub eax, 1
je 0x1000c16a
sub eax, 1
jne 0x1000c194
mov eax, dword [ebp + 0xc]
add dword [esi], 0xffffea50
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x1c], 0x15b
mov esi, dword [eax]
nop
xor eax, eax
xor edi, edi
movzx edx, byte [eax + ebx]
add esi, edx
mov edx, dword [ebp + 0xc]
add ecx, esi
mov dword [edx], esi
movzx edx, byte [eax + ebx + 1]
add eax, 2
add esi, edx
mov edx, dword [ebp + 0xc]
add edi, esi
mov dword [edx], esi
cmp eax, 0x10
jl 0x1000c134
add ecx, edi
add ebx, 0x10
sub dword [ebp - 0x1c], 1
jne 0x1000c130
mov esi, dword [ebp + 8]
mov dword [ebp + 0x10], ebx
jmp 0x1000c191
mov edi, dword [ebp + 0xc]
xor edx, edx
mov ecx, 0xfff1
mov eax, dword [edi]
div ecx
mov dword [edi], edx
jmp 0x1000c194
mov ecx, dword [ebp - 4]
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x18], eax
cmp eax, 0xdd1
ja 0x1000c108
cmp dword [esi], 0x15b0
jae 0x1000c100
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
add eax, 0x18e
mov dword [ebp + 0x14], eax
cmp eax, ecx
jb 0x1000be50
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xfca
je 0x1000c2c9
cmp eax, 0x105c
jne 0x1000c1bb
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [edi]
test edx, edx
je 0x1000c2b6
mov ebx, dword [ebp + 0xc]
cmp edx, 0x10
jb 0x1000c252
nop
lea eax, [edx - 0x10]
mov dword [ebp - 0x38], 0
mov dword [edi], eax
lea edi, [esi + 1]
mov esi, dword [ebp - 0x38]
mov dword [ebp + 0x14], 8
nop dword [eax]
movzx edx, byte [edi - 1]
lea edi, [edi + 2]
add edx, dword [ebx]
mov dword [ebx], edx
add ecx, edx
movzx eax, byte [edi - 2]
add eax, edx
add esi, eax
mov dword [ebx], eax
sub dword [ebp + 0x14], 1
jne 0x1000c220
mov edi, dword [ebp + 8]
add ecx, esi
mov esi, dword [ebp + 0x10]
add esi, 0x10
mov dword [ebp + 0x10], esi
mov edx, dword [edi]
cmp edx, 0x10
jae 0x1000c200
test edx, edx
je 0x1000c26a
dec dword [edi]
lea esi, [esi + 1]
movzx eax, byte [esi - 1]
add dword [ebx], eax
add ecx, dword [ebx]
cmp dword [edi], 0
jne 0x1000c256
xor edx, edx
dec edx
mov esi, 0xfff1
mov dword [edi], edx
xor edx, edx
mov eax, dword [ebx]
div esi
mov eax, 0x80078071
mov esi, edx
mul ecx
mov dword [ebx], esi
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
shl ecx, 0x10
or ecx, esi
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
shl ecx, 0x10
mov esi, dword [eax]
or ecx, esi
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jecxz 0x1000c26b
pushal
invalid
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret