Function at 0x1000dc10
Capabilities:
Hash data with crc32

Disassembly:
sub esp, 0x51c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
mov ebx, dword [esi + 4]
mov ebp, dword [esi]
cmp ebx, 5
jae 0x1000dc9f
nop word [eax + eax]
mov ecx, dword [esi + 0x1002c]
cmp ecx, dword [esi + 0x10030]
jae 0x1000dc8b
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10044]
add eax, ecx
jne 0x1000dc50
or ecx, 0xffffffff
jmp 0x1000dc64
movzx eax, byte [eax]
mov ecx, dword [edx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000dc8e
or dl, 0xff
mov ecx, ebx
movzx eax, dl
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 5
jb 0x1000dc30
mov edi, ebp
sub ebx, 5
and edi, 0x1f
shr ebp, 5
add edi, 0x101
mov dword [esp + 0x28], edi
cmp ebx, 5
jae 0x1000dd2f
nop dword [eax]
mov ecx, dword [esi + 0x1002c]
cmp ecx, dword [esi + 0x10030]
jae 0x1000dd1b
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10044]
add eax, ecx
jne 0x1000dce0
or ecx, 0xffffffff
jmp 0x1000dcf4
movzx eax, byte [eax]
mov ecx, dword [edx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000dd1e
or dl, 0xff
mov ecx, ebx
movzx eax, dl
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 5
jb 0x1000dcc0
mov ecx, ebp
sub ebx, 5
and ecx, 0x1f
shr ebp, 5
inc ecx
mov dword [esp + 0x24], ecx
cmp ebx, 4
jae 0x1000ddc3
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esi + 0x1002c]
cmp ecx, dword [esi + 0x10030]
jae 0x1000ddab
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10044]
add eax, ecx
jne 0x1000dd70
or ecx, 0xffffffff
jmp 0x1000dd84
movzx eax, byte [eax]
mov ecx, dword [edx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000ddae
or dl, 0xff
mov ecx, ebx
movzx eax, dl
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 4
jb 0x1000dd50
mov ecx, dword [esp + 0x24]
mov eax, ebp
sub ebx, 4
and eax, 0xf
shr ebp, 4
add eax, 4
mov dword [esp + 0x2c], eax
cmp edi, 0x11e
ja 0x1000e352
cmp ecx, 0x1e
ja 0x1000e352
xor edi, edi
test eax, eax
je 0x1000dea0
cmp ebx, 3
jae 0x1000de6f
nop dword [eax]
mov ecx, dword [esi + 0x1002c]
cmp ecx, dword [esi + 0x10030]
jae 0x1000de5b
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10044]
add eax, ecx
jne 0x1000de20
or ecx, 0xffffffff
jmp 0x1000de34
movzx eax, byte [eax]
mov ecx, dword [edx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000de5e
or dl, 0xff
mov ecx, ebx
movzx eax, dl
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 3
jb 0x1000de00
mov eax, dword [edi*4 + 0x1002d640]
mov ecx, ebp
and ecx, 7
shr ebp, 3
inc edi
sub ebx, 3
mov dword [esp + eax*4 + 0x38], ecx
cmp edi, dword [esp + 0x2c]
jb 0x1000ddf4
cmp edi, 0x13
jae 0x1000deb5
nop word [eax + eax]
mov eax, dword [edi*4 + 0x1002d640]
inc edi
mov dword [esp + eax*4 + 0x38], 0
cmp edi, 0x13
jb 0x1000dea0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 7
push eax
lea eax, [esp + 0x18]
mov ecx, esi
push eax
push 0
push 0
push 0x13
push 0x13
lea eax, [esp + 0x50]
push eax
call fcn.1000cfe0
mov edi, eax
test edi, edi
je 0x1000df12
cmp edi, 1
jne 0x1000df05
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x1000df05
nop
mov esi, dword [ecx - 4]
sub ecx, 8
push ecx
call fcn.10013aac
add esp, 4
mov ecx, esi
test esi, esi
jne 0x1000def0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x51c
ret
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
movzx eax, word [ecx*2 + 0x1002d5d0]
mov dword [esp + 0x34], eax
xor eax, eax
xor edi, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], edi
cmp ebx, ecx
jae 0x1000dfb8
nop word [eax + eax]
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000df9b
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x10044]
add edx, eax
jne 0x1000df60
or ecx, 0xffffffff
jmp 0x1000df74
mov ecx, dword [edi]
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edi], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000df9e
or dl, 0xff
mov ecx, ebx
movzx eax, dl
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, dword [esp + 0x1c]
jb 0x1000df40
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
and eax, ebp
movzx ecx, byte [edx + eax*8 + 1]
lea eax, [edx + eax*8]
mov dword [esp + 0x2c], eax
sub ebx, ecx
movzx eax, word [eax + 4]
shr ebp, cl
cmp eax, 0x10
jae 0x1000dfe1
mov dword [esp + edi*4 + 0x38], eax
inc edi
jmp 0x1000e1f8
jne 0x1000e097
cmp ebx, 2
jae 0x1000e05a
mov edx, dword [esi + 0x1002c]
cmp edx, dword [esi + 0x10030]
jae 0x1000e047
mov eax, dword [esi + 0x14]
add eax, edx
mov edx, dword [esi + 0x10044]
jne 0x1000e00c
or ecx, 0xffffffff
jmp 0x1000e020
movzx eax, byte [eax]
mov ecx, dword [edx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov al, byte [ecx + eax]
lea edx, [ecx + 1]
mov dword [esi + 0x1002c], edx
jmp 0x1000e049
or al, 0xff
mov ecx, ebx
movzx eax, al
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 2
jb 0x1000dff2
mov eax, dword [esp + 0x24]
mov ecx, ebp
add eax, dword [esp + 0x28]
and ecx, 3
add ecx, 3
shr ebp, 2
sub ebx, 2
lea edx, [edi + ecx]
mov edi, dword [esp + 0x18]
cmp edx, eax
ja 0x1000e352
lea eax, [esp + 0x38]
lea edi, [eax + edi*4]
mov eax, dword [esp + 0x30]
rep stosd dword es:[edi], eax
mov edi, edx
mov edx, dword [esp + 0x14]
jmp 0x1000e1fc
cmp eax, 0x11
jne 0x1000e149
cmp ebx, 3
jae 0x1000e118
mov edx, dword [esi + 0x1002c]
nop dword [eax + eax]
cmp edx, dword [esi + 0x10030]
jae 0x1000e105
mov eax, dword [esi + 0x14]
add eax, edx
mov edx, dword [esi + 0x10044]
jne 0x1000e0ca
or ecx, 0xffffffff
jmp 0x1000e0de
movzx eax, byte [eax]
mov ecx, dword [edx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov al, byte [ecx + eax]
lea edx, [ecx + 1]
mov dword [esi + 0x1002c], edx
jmp 0x1000e107
or al, 0xff
mov ecx, ebx
movzx eax, al
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 3
jb 0x1000e0b0
mov eax, dword [esp + 0x24]
mov ecx, ebp
add eax, dword [esp + 0x28]
and ecx, 7
add ecx, 3
shr ebp, 3
sub ebx, 3
lea edx, [edi + ecx]
mov edi, dword [esp + 0x18]
cmp edx, eax
ja 0x1000e352
lea eax, [esp + 0x38]
lea edi, [eax + edi*4]
jmp 0x1000e1ee
cmp ebx, 7
jae 0x1000e1bf
nop
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000e1ab
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x10044]
add edx, eax
jne 0x1000e170
or ecx, 0xffffffff
jmp 0x1000e184
mov ecx, dword [edi]
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1d0]
mov dword [edi], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov dl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000e1ae
or dl, 0xff
mov ecx, ebx
movzx eax, dl
shl eax, cl
add ebx, 8
or ebp, eax
cmp ebx, 7
jb 0x1000e150
mov edx, dword [esp + 0x18]
mov ecx, ebp
mov edi, dword [esp + 0x24]
and ecx, 0x7f
add edi, dword [esp + 0x28]
add ecx, 0xb
mov eax, dword [esp + 0x18]
add edx, ecx
shr ebp, 7
sub ebx, 7
cmp edx, edi
ja 0x1000e352
lea edi, [esp + 0x38]
lea edi, [edi + eax*4]
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
cmp edi, eax
jb 0x1000df32
test edx, edx
je 0x1000e235
nop dword [eax]
mov edi, dword [edx - 4]
sub edx, 8
push edx
call fcn.10013aac
add esp, 4
mov edx, edi
test edi, edi
jne 0x1000e220
lea eax, [esp + 0x1c]
mov dword [esi + 4], ebx
mov ebx, dword [esp + 0x28]
mov ecx, esi
push eax
lea eax, [esp + 0x18]
mov dword [esi], ebp
push eax
push 0x1002d5f4
push 0x1002d6c8
push 0x101
push ebx
lea eax, [esp + 0x50]
mov dword [esp + 0x34], 9
push eax
call fcn.1000cfe0
mov edi, eax
test edi, edi
je 0x1000e2a9
cmp edi, 1
jne 0x1000df05
push str._incomplete_literal_tree_n
push 2
call fcn.100185b4
add esp, 4
push eax
call fcn.1000cfb0
add esp, 8
push dword [esp + 0x14]
call fcn.1000d450
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x51c
ret
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 6
push eax
lea eax, [esp + 0x30]
mov ecx, esi
push eax
push 0x1002d0b4
push 0x1002d68c
push 0
push dword [esp + 0x38]
lea eax, [esp + 0x50]
lea eax, [eax + ebx*4]
push eax
call fcn.1000cfe0
mov edi, eax
test edi, edi
je 0x1000e31c
cmp edi, 1
jne 0x1000e306
push str._incomplete_distance_tree_n
push 2
call fcn.100185b4
add esp, 4
push eax
call fcn.1000cfb0
add esp, 8
push dword [esp + 0x2c]
call fcn.1000d450
push dword [esp + 0x14]
call fcn.1000d450
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x51c
ret
push dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov ecx, esi
push dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
push edi
push ebx
call fcn.1000d480
test eax, eax
jne 0x1000e352
push ebx
call fcn.1000d450
push edi
call fcn.1000d450
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x51c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x51c
ret