Function at 0xdd3180
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], esi
mov dword [ebp - 4], edi
test eax, eax
jne 0xdd31b0
mov dword [ebp - 0x68], 0xfffffffe
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0xdd3234
mov edx, dword [eax + 0xc]
test edx, edx
mov dword [ebp - 0x78], edx
je case.default.0xdd3234
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x7c], ecx
je 0xdd415f
mov eax, dword [edi]
cmp eax, 0xb
je 0xdd4125
mov ebx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x38]
mov esi, dword [edi + 0x3c]
mov ebx, dword [ebx + 0x10]
mov edx, dword [edx + 4]
mov dword [ebp - 0x3c], ecx
lea ecx, [edi + 0x530]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x70], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0xa4], ecx
sub ebx, 5
mov dword [ebp - 0x94], ebx
lea ebx, [edi + 0x2f0]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0xa8], ebx
cmp eax, 0x1e
ja case.default.0xdd3234
jmp dword [eax*4 + 0x13106b0]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0xf
jbe 0xdd323b
mov ebx, dword [ebp - 0x3c]
cmp bl, 8
mov dword [edi + 0x10], ebx
je 0xdd45d9
mov eax, dword [ebp + 8]
mov dword [edi], 0x1d
mov dword [eax + 0x18], str.unknown_compression_method
mov eax, dword [edi]
jmp 0xdd322b
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0xd
jbe 0xdd3286
mov eax, dword [ebp - 0x3c]
sub esi, 0xe
and eax, 0x1f
add eax, 0x101
mov dword [edi + 0x60], eax
mov eax, dword [ebp - 0x3c]
shr dword [ebp - 0x3c], 0xa
shr eax, 5
and eax, 0x1f
add eax, 1
mov dword [edi + 0x64], eax
mov eax, dword [ebp - 0x3c]
shr dword [ebp - 0x3c], 4
and eax, 0xf
add eax, 4
cmp dword [edi + 0x60], 0x11e
mov dword [edi + 0x5c], eax
ja 0xdd455b
cmp dword [edi + 0x64], 0x1e
ja 0xdd455b
mov dword [edi + 0x68], 0
mov dword [edi], 0x11
mov eax, dword [edi + 0x68]
cmp dword [edi + 0x5c], eax
mov dword [ebp - 0xbc], eax
lea ebx, [eax + eax + 0x1310740]
jbe 0xdd3373
cmp esi, 2
ja 0xdd3345
mov edx, dword [ebp - 0x74]
test edx, edx
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
movzx eax, word [ebp - 0x3c]
sub esi, 3
movzx edx, word [ebx]
add ebx, 2
add dword [ebp - 0xbc], 1
shr dword [ebp - 0x3c], 3
and eax, 7
mov word [edi + edx*2 + 0x70], ax
mov eax, dword [ebp - 0xbc]
cmp dword [edi + 0x5c], eax
mov dword [edi + 0x68], eax
ja 0xdd331b
cmp dword [ebp - 0xbc], 0x12
ja 0xdd33ab
mov ebx, dword [ebp - 0xbc]
lea edx, [ebx + ebx + 0x1310740]
movzx eax, word [edx]
add edx, 2
add dword [ebp - 0xbc], 1
mov word [edi + eax*2 + 0x70], 0
mov eax, dword [ebp - 0xbc]
cmp eax, 0x13
mov dword [edi + 0x68], eax
jne 0xdd3389
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa8]
mov dword [edi + 0x54], 7
mov dword [edi + 0x6c], eax
mov dword [edi + 0x4c], eax
lea eax, [edi + 0x54]
mov dword [esp + 0x10], eax
lea eax, [edi + 0x6c]
mov dword [esp + 0xc], eax
lea eax, [edi + 0x70]
mov dword [esp + 0x14], edx
mov dword [esp + 8], 0x13
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00dd87d0
test eax, eax
mov dword [ebp - 0x68], eax
je 0xdd3d52
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ecx + 0x18], str.invalid_code_lengths_set
jmp 0xdd322b
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0x1f
jbe 0xdd3413
mov eax, dword [ebp - 0x3c]
xor esi, esi
mov edx, dword [ebp - 0x3c]
mov ebx, dword [ebp + 8]
mov dword [edi], 0xa
shr eax, 8
shr edx, 0x18
and eax, 0xff00
add eax, edx
mov edx, dword [ebp - 0x3c]
shl dword [ebp - 0x3c], 0x18
and edx, 0xff00
shl edx, 8
add eax, edx
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
mov dword [edi + 0x18], eax
mov dword [ebx + 0x30], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0xdd4927
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00dd96c0
mov ebx, dword [ebp + 8]
mov dword [edi], 0xb
mov dword [edi + 0x18], eax
mov dword [ebx + 0x30], eax
cmp dword [ebp - 0x94], 1
ja case.0xdd3234.12
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp - 0x74]
mov dword [edx + 0x10], ebx
mov ebx, dword [ebp - 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [edi + 0x28]
mov dword [edi + 0x38], ebx
mov dword [edi + 0x3c], esi
test eax, eax
jne 0xdd34f5
cmp dword [edi], 0x19
ja 0xdd3508
mov eax, dword [ebp - 0x6c]
cmp dword [edx + 0x10], eax
je 0xdd3508
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp + 8]
call fcn.00dd2ed0
test eax, eax
jne 0xdd3d40
mov edx, dword [ebp + 8]
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x6c]
sub ebx, dword [edx + 0x10]
sub esi, dword [edx + 4]
add dword [edx + 0x14], ebx
add dword [edx + 8], esi
add dword [edi + 0x1c], ebx
test eax, eax
je 0xdd355a
test ebx, ebx
je 0xdd355a
mov eax, dword [edi + 0x10]
test eax, eax
je 0xdd413f
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], ebx
mov eax, dword [ecx + 0xc]
mov dword [esp], edx
sub eax, ebx
mov dword [esp + 4], eax
call fcn.00dd8010
mov edx, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
cmp dword [edi + 4], 1
mov edx, dword [edi]
sbb eax, eax
not eax
and eax, 0x40
add eax, dword [edi + 0x3c]
cmp edx, 0xb
je 0xdd4135
cmp edx, 0x13
je 0xdd4115
xor ecx, ecx
cmp edx, 0xe
je 0xdd4115
add eax, ecx
mov ecx, dword [ebp + 8]
or ebx, esi
mov dword [ecx + 0x2c], eax
je 0xdd359d
cmp dword [ebp + 0xc], 4
jne 0xdd31a0
mov eax, dword [ebp - 0x68]
test eax, eax
jne 0xdd31a0
mov dword [ebp - 0x68], 0xfffffffb
nop
jmp 0xdd31a0
mov edx, dword [edi + 0x20]
test edx, edx
je 0xdd35c7
mov eax, dword [ebp - 0x3c]
shr eax, 8
and eax, 1
mov dword [edx], eax
test byte [edi + 0x11], 2
jne 0xdd4862
mov dword [edi], 2
xor esi, esi
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0x1f
jbe 0xdd35e0
mov eax, dword [edi + 0x20]
test eax, eax
je 0xdd3617
mov ebx, dword [ebp - 0x3c]
mov dword [eax + 4], ebx
test byte [edi + 0x11], 2
jne 0xdd45fc
mov dword [edi], 3
xor esi, esi
mov dword [ebp - 0x3c], 0
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0xf
jbe 0xdd3630
mov edx, dword [edi + 0x20]
test edx, edx
je 0xdd3671
movzx eax, byte [ebp - 0x3c]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x3c]
shr eax, 8
mov dword [edx + 0xc], eax
test byte [edi + 0x11], 2
jne 0xdd45a5
mov dword [edi], 4
xor esi, esi
mov dword [ebp - 0x3c], 0
test byte [edi + 0x11], 4
jne 0xdd38f2
mov eax, dword [edi + 0x20]
test eax, eax
je 0xdd36a2
mov dword [eax + 0x10], 0
mov dword [edi], 5
mov eax, dword [edi + 0x10]
test ah, 4
je 0xdd372c
mov edx, dword [edi + 0x40]
mov ecx, dword [ebp - 0x74]
cmp dword [ebp - 0x74], edx
cmova ecx, edx
test ecx, ecx
mov dword [ebp - 0x48], ecx
je 0xdd3724
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0xdd370a
mov ebx, dword [ecx + 0x10]
test ebx, ebx
mov dword [ebp - 0x9c], ebx
je 0xdd370a
mov eax, dword [ecx + 0x14]
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x18]
sub eax, edx
add ebx, eax
mov edx, ecx
sub edx, eax
cmp ebx, ecx
cmovbe edx, dword [ebp - 0x48]
add eax, dword [ebp - 0x9c]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [edi + 0x10]
test ah, 2
jne 0xdd469f
mov eax, dword [ebp - 0x48]
mov edx, dword [edi + 0x40]
sub dword [ebp - 0x74], eax
add dword [ebp - 0x7c], eax
sub edx, eax
mov dword [edi + 0x40], edx
test edx, edx
jne 0xdd34be
mov dword [edi + 0x40], 0
mov dword [edi], 6
test byte [edi + 0x11], 8
je 0xdd41a4
mov edx, dword [ebp - 0x74]
test edx, edx
je 0xdd34be
xor ebx, ebx
mov edx, dword [ebp - 0x7c]
movzx edx, byte [ebx + edx]
add ebx, 1
mov byte [ebp - 0x95], dl
mov edx, dword [edi + 0x20]
test edx, edx
je 0xdd3786
mov ecx, dword [edx + 0x1c]
test ecx, ecx
je 0xdd3786
mov eax, dword [edi + 0x40]
cmp eax, dword [edx + 0x20]
jae 0xdd3786
movzx edx, byte [ebp - 0x95]
mov byte [ecx + eax], dl
add eax, 1
mov dword [edi + 0x40], eax
cmp byte [ebp - 0x95], 0
jne 0xdd40ff
test byte [edi + 0x11], 2
jne 0xdd4426
sub dword [ebp - 0x74], ebx
add dword [ebp - 0x7c], ebx
cmp byte [ebp - 0x95], 0
jne 0xdd34be
mov dword [edi + 0x40], 0
mov dword [edi], 7
test byte [edi + 0x11], 0x10
je 0xdd4175
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
xor ebx, ebx
mov eax, dword [ebp - 0x7c]
mov edx, dword [edi + 0x20]
movzx eax, byte [ebx + eax]
add ebx, 1
test edx, edx
mov byte [ebp - 0x31], al
je 0xdd3804
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0xdd3804
mov eax, dword [edi + 0x40]
cmp eax, dword [edx + 0x28]
jae 0xdd3804
movzx edx, byte [ebp - 0x31]
mov byte [ecx + eax], dl
add eax, 1
mov dword [edi + 0x40], eax
cmp byte [ebp - 0x31], 0
jne 0xdd40f1
test byte [edi + 0x11], 2
jne 0xdd4400
sub dword [ebp - 0x74], ebx
add dword [ebp - 0x7c], ebx
cmp byte [ebp - 0x31], 0
jne 0xdd34be
mov dword [edi], 8
mov edx, dword [edi + 0x10]
test dh, 2
jne 0xdd38a4
mov eax, dword [edi + 0x20]
test eax, eax
je 0xdd384d
sar edx, 9
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00dd8010
mov edx, dword [ebp + 8]
mov dword [edi], 0xb
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
mov eax, dword [edi]
jmp 0xdd322b
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ebx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [ebx]
add ebx, 1
mov dword [ebp - 0x7c], ebx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0xf
jbe 0xdd387f
movzx eax, word [edi + 0x18]
cmp eax, dword [ebp - 0x3c]
je 0xdd4530
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], str.header_crc_mismatch
jmp 0xdd322b
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0xf
jbe 0xdd38cd
mov eax, dword [edi + 0x20]
mov ebx, dword [ebp - 0x3c]
test eax, eax
mov dword [edi + 0x40], ebx
je 0xdd3907
mov dword [eax + 0x14], ebx
test byte [edi + 0x11], 2
je 0xdd393c
movzx eax, byte [ebp - 0x3c]
shr dword [ebp - 0x3c], 8
movzx edx, byte [ebp - 0x3c]
mov dword [esp + 8], 2
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov byte [ebp - 0x1b], dl
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
xor esi, esi
mov dword [ebp - 0x3c], 0
jmp 0xdd36a2
mov eax, dword [edi + 4]
test eax, eax
jne 0xdd418c
cmp esi, 2
ja 0xdd397f
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
lea ecx, [esi - 1]
mov edx, dword [ebp - 0x3c]
and eax, 1
shr edx, 1
mov dword [edi + 4], eax
mov eax, edx
and eax, 3
cmp eax, 1
je 0xdd4646
jae 0xdd457e
mov dword [edi], 0xd
mov eax, dword [edi]
shr edx, 2
lea esi, [ecx - 2]
mov dword [ebp - 0x3c], edx
jmp 0xdd322b
cmp dword [ebp + 0xc], 6
mov dword [edi + 0x40], edx
mov dword [edi], 0xe
je 0xdd49dc
mov dword [ebp - 0x3c], 0
xor esi, esi
mov dword [edi], 0xf
mov eax, dword [edi + 0x40]
test eax, eax
je 0xdd4388
mov ebx, dword [ebp - 0x74]
cmp dword [ebp - 0x70], eax
cmovbe eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x74]
cmovbe ebx, eax
test ebx, ebx
je 0xdd34be
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [edi]
sub dword [ebp - 0x74], ebx
add dword [ebp - 0x7c], ebx
sub dword [ebp - 0x70], ebx
add dword [ebp - 0x78], ebx
sub dword [edi + 0x40], ebx
jmp 0xdd322b
movzx ebx, byte [ebp - 0xb8]
movzx eax, word [ebp - 0x40]
mov dword [edi], 0x17
and ebx, 0xf
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], ebx
mov ebx, dword [edi + 0x48]
test ebx, ebx
je 0xdd3a96
cmp esi, ebx
jae 0xdd3a79
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp ebx, esi
ja 0xdd3a50
mov ecx, ebx
mov eax, 1
shl eax, cl
sub esi, ebx
sub eax, 1
add dword [edi + 0x1bc4], ebx
and eax, dword [ebp - 0x3c]
shr dword [ebp - 0x3c], cl
add dword [edi + 0x44], eax
mov dword [edi], 0x18
mov eax, dword [ebp - 0x70]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x6c]
mov eax, dword [edi + 0x44]
sub edx, dword [ebp - 0x70]
cmp edx, eax
jae 0xdd4395
sub eax, edx
cmp eax, dword [edi + 0x2c]
mov edx, eax
jbe 0xdd43e2
mov eax, dword [edi + 0x1bc0]
test eax, eax
je 0xdd43e2
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], 0x1310665
jmp 0xdd322b
cmp dword [ebp + 0xc], 6
mov dword [edi], 0x13
je 0xdd34be
mov dword [edi], 0x14
cmp dword [ebp - 0x74], 5
jbe 0xdd41bb
cmp dword [ebp - 0x70], 0x101
jbe 0xdd41bb
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x7c]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x74]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ebx
mov ebx, dword [ebp - 0x6c]
mov dword [eax + 4], edx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00dd9160
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [edx + 0x10]
mov ecx, dword [ecx]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x78], eax
mov eax, dword [edi + 0x38]
cmp dword [edi], 0xb
mov dword [ebp - 0x70], edx
mov esi, dword [edi + 0x3c]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x3c], eax
jne 0xdd3282
mov eax, dword [edi]
mov dword [edi + 0x1bc4], 0xffffffff
jmp 0xdd322b
and eax, 0xf
mov dword [edi + 0x48], eax
mov dword [edi], 0x15
mov ebx, dword [edi + 0x48]
test ebx, ebx
je 0xdd3bec
cmp esi, ebx
jae 0xdd3bcf
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp ebx, esi
ja 0xdd3ba6
mov ecx, ebx
mov eax, 1
shl eax, cl
sub esi, ebx
sub eax, 1
add dword [edi + 0x1bc4], ebx
and eax, dword [ebp - 0x3c]
shr dword [ebp - 0x3c], cl
add dword [edi + 0x40], eax
mov eax, dword [edi + 0x40]
mov dword [edi], 0x16
mov dword [edi + 0x1bc8], eax
mov ecx, dword [edi + 0x58]
mov eax, 1
mov ebx, dword [edi + 0x50]
shl eax, cl
mov dword [ebp - 0x80], ebx
lea ebx, [eax - 1]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x80]
and eax, ebx
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x40], cx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov byte [ebp - 0xb8], al
movzx eax, dl
cmp esi, eax
jae 0xdd3c81
mov edx, dword [ebp - 0x74]
test edx, edx
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x80]
shl eax, cl
add dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
and eax, ebx
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x40], cx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov byte [ebp - 0xb8], al
movzx eax, dl
cmp eax, esi
ja 0xdd3c35
movzx ebx, byte [ebp - 0xb8]
mov dword [ebp - 0x2c], ebx
and ebx, 0xf0
je 0xdd4444
movzx ebx, dl
movzx eax, dl
mov ecx, ebx
sub esi, eax
shr dword [ebp - 0x3c], cl
add dword [edi + 0x1bc4], ebx
test byte [ebp - 0x2c], 0x40
je 0xdd3a2b
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], 0x131064f
jmp 0xdd322b
mov ebx, dword [edi + 8]
test ebx, ebx
jne 0xdd3f68
mov dword [edi], 0x1b
mov ecx, dword [edi + 8]
test ecx, ecx
je 0xdd3ebd
mov edx, dword [edi + 0x10]
test edx, edx
jne 0xdd3d18
jmp 0xdd3ebd
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0x1f
jbe 0xdd3cf3
mov ebx, dword [ebp - 0x3c]
cmp dword [edi + 0x1c], ebx
je 0xdd3eb4
mov eax, dword [ebp + 8]
mov dword [edi], 0x1d
mov dword [eax + 0x18], str.incorrect_length_check
mov eax, dword [edi]
jmp 0xdd322b
mov dword [edi], 0x1e
mov dword [ebp - 0x68], 0xfffffffc
jmp 0xdd31a0
mov dword [edi + 0x68], 0
mov dword [edi], 0x12
mov eax, dword [edi + 0x64]
mov edx, dword [edi + 0x60]
mov ebx, dword [edi + 0x68]
add eax, edx
mov dword [ebp - 0xa0], eax
mov eax, ebx
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0xa0], eax
jbe 0xdd4896
mov ecx, dword [edi + 0x54]
mov eax, 1
mov edx, dword [edi + 0x4c]
shl eax, cl
sub eax, 1
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x60]
mov dword [ebp - 0x5c], edx
lea eax, [edx + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx ebx, cl
cmp esi, ebx
jae 0xdd3ded
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
mov ebx, dword [ebp - 0x5c]
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x60]
lea eax, [ebx + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx ebx, cl
cmp ebx, esi
ja 0xdd3daf
cmp dx, 0xf
jbe 0xdd453e
cmp dx, 0x10
je 0xdd47d8
cmp dx, 0x11
je 0xdd476d
movzx ecx, cl
mov edx, ecx
add edx, 7
cmp esi, edx
mov dword [ebp - 0xbc], ecx
jae 0xdd3e44
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, edx
jb 0xdd3e1d
mov eax, dword [ebp - 0x3c]
movzx ecx, byte [ebp - 0xbc]
shr eax, cl
mov ecx, esi
mov edx, eax
sub ecx, ebx
and edx, 0x7f
shr eax, 7
add edx, 0xb
lea esi, [ecx - 7]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0x38]
lea eax, [edx + ebx]
cmp dword [ebp - 0xa0], eax
jb 0xdd4956
mov eax, dword [edi + 0x68]
mov word [ebp - 0xbe], cx
movzx ebx, word [ebp - 0xbe]
mov word [edi + eax*2 + 0x70], cx
add eax, 1
mov ecx, 1
mov dword [edi + 0x68], eax
add ecx, 1
mov word [edi + eax*2 + 0x70], bx
add eax, 1
cmp ecx, edx
mov dword [ebp - 0x38], eax
mov dword [edi + 0x68], eax
jne 0xdd3e9a
jmp 0xdd3d75
mov dword [ebp - 0x3c], 0
xor esi, esi
mov dword [edi], 0x1c
mov dword [ebp - 0x68], 1
jmp 0xdd34be
mov dword [ebp - 0x68], 0xfffffffd
jmp 0xdd34be
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
shr dword [ebp - 0x3c], cl
cmp esi, 0x1f
ja 0xdd3f15
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0x1f
jbe 0xdd3eeb
mov eax, dword [ebp - 0x3c]
movzx edx, word [ebp - 0x3c]
shr eax, 0x10
xor eax, 0xffff
cmp edx, eax
je 0xdd39ba
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], str.invalid_stored_block_lengths
jmp 0xdd322b
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0xdd34be
mov ebx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [ebx]
add ebx, 1
mov dword [ebp - 0x7c], ebx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0x1f
jbe 0xdd3f43
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x70]
add dword [ebx + 0x14], eax
add dword [edi + 0x1c], eax
test eax, eax
je 0xdd3fac
mov edx, dword [edi + 0x10]
test edx, edx
je 0xdd46f6
mov ecx, dword [ebp - 0x78]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], eax
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00dd8010
mov edx, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
mov ebx, dword [edi + 0x10]
mov eax, dword [ebp - 0x3c]
test ebx, ebx
jne 0xdd3fdc
mov edx, eax
shr edx, 8
shr eax, 0x18
and edx, 0xff00
add edx, eax
mov eax, dword [ebp - 0x3c]
and eax, 0xff00
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x3c]
shl eax, 0x18
lea eax, [edx + eax]
cmp eax, dword [edi + 0x18]
je 0xdd46e2
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1d
mov ebx, dword [ebp - 0x70]
mov eax, dword [edi]
mov dword [ecx + 0x18], str.incorrect_data_check
mov dword [ebp - 0x6c], ebx
jmp 0xdd322b
mov eax, dword [ebp - 0x70]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x78]
mov eax, dword [edi + 0x40]
mov byte [ecx], al
add ecx, 1
sub dword [ebp - 0x70], 1
mov dword [ebp - 0x78], ecx
mov dword [edi], 0x14
mov eax, dword [edi]
jmp 0xdd322b
mov edx, dword [edi + 8]
test edx, edx
jne 0xdd4063
mov dword [edi], 0xc
mov eax, dword [edi]
jmp 0xdd322b
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, 0xf
jbe 0xdd4040
and edx, 2
je 0xdd407a
cmp dword [ebp - 0x3c], 0x8b1f
je 0xdd4713
mov eax, dword [edi + 0x20]
mov dword [edi + 0x10], 0
test eax, eax
je 0xdd408f
mov dword [eax + 0x30], 0xffffffff
test byte [edi + 8], 1
je 0xdd46c0
movzx ecx, byte [ebp - 0x3c]
mov edx, 0x8421085
mov eax, dword [ebp - 0x3c]
shl ecx, 8
shr eax, 8
add ecx, eax
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub eax, edx
cmp ecx, eax
jne 0xdd46c0
mov eax, dword [ebp - 0x3c]
and eax, 0xf
cmp eax, 8
je 0xdd496d
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ecx + 0x18], str.unknown_compression_method
jmp 0xdd322b
cmp ebx, dword [ebp - 0x74]
jb 0xdd37d4
jmp 0xdd380e
cmp ebx, dword [ebp - 0x74]
jb 0xdd3750
nop
lea esi, [esi]
jmp 0xdd3793
mov ecx, 0x100
lea esi, [esi]
jmp 0xdd3587
mov al, 0xc
mov dword [edi], 0xc
lea esi, [esi]
jmp 0xdd31dc
sub eax, 0xffffff80
xor ecx, ecx
jmp 0xdd3587
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], ebx
mov eax, dword [ecx + 0xc]
mov dword [esp], edx
sub eax, ebx
mov dword [esp + 4], eax
call fcn.00dd96c0
jmp 0xdd3551
mov eax, dword [eax + 4]
test eax, eax
je 0xdd31d1
lea esi, [esi]
jmp case.default.0xdd3234
mov eax, dword [edi + 0x20]
test eax, eax
je 0xdd3828
mov dword [eax + 0x24], 0
jmp 0xdd3828
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
mov dword [edi], 0x1a
mov eax, dword [edi]
shr dword [ebp - 0x3c], cl
jmp 0xdd322b
mov eax, dword [edi + 0x20]
test eax, eax
je 0xdd37b0
mov dword [eax + 0x1c], 0
jmp 0xdd37b0
mov ecx, dword [edi + 0x54]
mov eax, 1
mov edx, dword [edi + 0x4c]
mov dword [edi + 0x1bc4], 0
shl eax, cl
lea ebx, [eax - 1]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x90], edx
and eax, ebx
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov byte [ebp - 0xbc], al
movzx eax, dl
cmp esi, eax
jae 0xdd424e
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x90]
shl eax, cl
add dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
and eax, ebx
lea eax, [edx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
mov byte [ebp - 0xbc], al
movzx eax, dl
cmp eax, esi
ja 0xdd41ff
cmp byte [ebp - 0xbc], 0
je 0xdd441e
movzx eax, byte [ebp - 0xbc]
test al, 0xf0
jne 0xdd441e
movzx ecx, dl
movzx ebx, word [ebp - 0x3e]
mov dword [ebp - 0x4c], ecx
add ecx, eax
mov eax, 1
shl eax, cl
movzx ecx, byte [ebp - 0x4c]
sub eax, 1
mov dword [ebp - 0x84], eax
and eax, dword [ebp - 0x3c]
mov dword [ebp - 0x8c], ebx
shr eax, cl
add eax, ebx
mov ebx, dword [ebp - 0x90]
lea eax, [ebx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx ebx, byte [eax + 1]
mov byte [ebp - 0x61], bl
movzx eax, byte [eax]
movzx ebx, bl
mov byte [ebp - 0xbc], al
mov eax, dword [ebp - 0x4c]
add eax, ebx
cmp esi, eax
jae 0xdd4329
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
mov ebx, dword [ebp - 0x90]
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
movzx ecx, byte [ebp - 0x4c]
add dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x84]
shr eax, cl
add eax, dword [ebp - 0x8c]
lea eax, [ebx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x3e], cx
movzx ebx, byte [eax + 1]
mov byte [ebp - 0x61], bl
movzx eax, byte [eax]
movzx ebx, bl
mov byte [ebp - 0xbc], al
mov eax, dword [ebp - 0x4c]
add eax, ebx
cmp eax, esi
ja 0xdd42c4
movzx eax, dl
movzx ecx, byte [ebp - 0x4c]
sub esi, eax
mov eax, dword [ebp - 0x4c]
shr dword [ebp - 0x3c], cl
movzx edx, byte [ebp - 0x61]
mov dword [edi + 0x1bc4], eax
movzx eax, dl
mov ecx, ebx
sub esi, eax
movzx eax, word [ebp - 0x3e]
shr dword [ebp - 0x3c], cl
add dword [edi + 0x1bc4], ebx
cmp byte [ebp - 0xbc], 0
mov dword [edi + 0x40], eax
jne 0xdd436f
mov dword [edi], 0x19
mov eax, dword [edi]
jmp 0xdd322b
movzx eax, byte [ebp - 0xbc]
test al, 0x20
je 0xdd4680
mov dword [edi + 0x1bc4], 0xffffffff
mov dword [edi], 0xb
mov eax, dword [edi]
jmp 0xdd322b
mov ebx, dword [ebp - 0x78]
sub ebx, eax
mov eax, dword [edi + 0x40]
mov edx, eax
cmp edx, dword [ebp - 0x70]
cmova edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x78]
sub dword [ebp - 0x70], edx
sub eax, edx
mov dword [ebp - 0x44], edx
mov dword [edi + 0x40], eax
movzx eax, byte [ebx]
add ebx, 1
mov byte [ecx], al
add ecx, 1
sub edx, 1
jne 0xdd43b4
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x44]
lea edx, [eax + edx]
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x78], edx
test eax, eax
je 0xdd401f
mov eax, dword [edi]
jmp 0xdd322b
mov eax, dword [edi + 0x30]
cmp edx, eax
jbe 0xdd4572
mov ebx, dword [edi + 0x28]
sub edx, eax
sub ebx, edx
add ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x40]
cmp edx, eax
jbe 0xdd439f
jmp 0xdd439d
mov ecx, dword [ebp - 0x7c]
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
jmp 0xdd3818
movzx ebx, dl
jmp 0xdd4342
mov ecx, dword [ebp - 0x7c]
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
jmp 0xdd379d
movzx eax, word [ebp - 0x40]
movzx ecx, dl
mov dword [ebp - 0x88], ecx
mov ebx, dword [ebp - 0x80]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
mov eax, 1
shl eax, cl
movzx ecx, byte [ebp - 0x88]
sub eax, 1
mov dword [ebp - 0x54], eax
and eax, dword [ebp - 0x3c]
shr eax, cl
add eax, dword [ebp - 0x50]
lea eax, [ebx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x40], cx
movzx ebx, byte [eax + 1]
mov byte [ebp - 0x55], bl
movzx eax, byte [eax]
movzx ebx, bl
mov byte [ebp - 0xb8], al
mov eax, dword [ebp - 0x88]
add eax, ebx
cmp esi, eax
jae 0xdd4502
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov ecx, dword [ebp - 0x7c]
sub dword [ebp - 0x74], 1
mov ebx, dword [ebp - 0x80]
movzx eax, byte [ecx]
mov ecx, esi
add esi, 8
add dword [ebp - 0x7c], 1
shl eax, cl
movzx ecx, byte [ebp - 0x88]
add dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x54]
shr eax, cl
add eax, dword [ebp - 0x50]
lea eax, [ebx + eax*4]
movzx ecx, word [eax + 2]
mov word [ebp - 0x40], cx
movzx ebx, byte [eax + 1]
mov byte [ebp - 0x55], bl
movzx eax, byte [eax]
movzx ebx, bl
mov byte [ebp - 0xb8], al
mov eax, dword [ebp - 0x88]
add eax, ebx
cmp eax, esi
ja 0xdd44a0
movzx eax, dl
movzx edx, byte [ebp - 0xb8]
movzx ecx, byte [ebp - 0x88]
sub esi, eax
mov eax, dword [ebp - 0x88]
shr dword [ebp - 0x3c], cl
add dword [edi + 0x1bc4], eax
mov dword [ebp - 0x2c], edx
movzx edx, byte [ebp - 0x55]
jmp 0xdd3c9a
xor esi, esi
mov dword [ebp - 0x3c], 0
jmp 0xdd3836
sub esi, ebx
mov ebx, dword [ebp - 0x38]
shr dword [ebp - 0x3c], cl
mov word [edi + ebx*2 + 0x70], dx
add ebx, 1
mov eax, ebx
mov dword [ebp - 0x38], ebx
mov dword [edi + 0x68], ebx
jmp 0xdd3d75
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], str.too_many_length_or_distance_symbols
jmp 0xdd322b
mov ebx, eax
sub ebx, edx
add ebx, dword [edi + 0x34]
jmp 0xdd43f7
cmp eax, 2
je 0xdd46d7
cmp eax, 3
jne 0xdd39aa
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov dword [ebx + 0x18], str.invalid_block_type
jmp 0xdd39aa
movzx ebx, byte [ebp - 0x3c]
shr dword [ebp - 0x3c], 8
movzx eax, byte [ebp - 0x3c]
mov dword [esp + 8], 2
mov byte [ebp - 0x1c], bl
mov byte [ebp - 0x1b], al
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
jmp 0xdd367b
test word [ebp - 0x3c], 0xe000
je 0xdd35b5
mov edx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [edx + 0x18], str.unknown_header_flags_set
jmp 0xdd322b
movzx eax, byte [ebp - 0x3c]
shr dword [ebp - 0x3c], 8
movzx edx, byte [ebp - 0x3c]
shr dword [ebp - 0x3c], 8
movzx ecx, byte [ebp - 0x3c]
shr dword [ebp - 0x3c], 8
movzx ebx, byte [ebp - 0x3c]
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1b], dl
mov byte [ebp - 0x1a], cl
mov byte [ebp - 0x19], bl
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
jmp 0xdd3621
cmp dword [ebp + 0xc], 6
mov dword [edi + 0x4c], 0x1310800
mov dword [edi + 0x54], 9
mov dword [edi + 0x50], 0x1310780
mov dword [edi + 0x58], 5
mov dword [edi], 0x13
jne 0xdd39aa
shr dword [ebp - 0x3c], 3
sub esi, 3
jmp 0xdd34be
test al, 0x40
je 0xdd3b8f
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], 0x1310633
jmp 0xdd322b
mov ecx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x7c]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
jmp 0xdd3713
mov edx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [edx + 0x18], str.incorrect_header_check
jmp 0xdd322b
mov dword [edi], 0x10
jmp 0xdd39aa
mov eax, dword [ebp - 0x70]
xor esi, esi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x6c], eax
jmp 0xdd3cd6
mov ebx, dword [ebp - 0x78]
mov edx, dword [edi + 0x18]
mov dword [esp + 8], eax
sub ebx, eax
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.00dd96c0
jmp 0xdd3fa3
mov dword [esp + 8], 0
xor esi, esi
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00dd8010
mov dword [edi + 0x18], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1c], 0x1f
mov byte [ebp - 0x1b], 0x8b
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi], 1
mov dword [ebp - 0x3c], 0
mov dword [edi + 0x18], eax
mov eax, dword [edi]
jmp 0xdd322b
movzx ecx, cl
mov dword [ebp - 0xbc], ecx
add ecx, 3
cmp esi, ecx
mov dword [ebp - 0xc4], ecx
jae 0xdd47b0
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, dword [ebp - 0xc4]
jb 0xdd4783
mov eax, dword [ebp - 0x3c]
movzx ecx, byte [ebp - 0xbc]
shr eax, cl
mov ecx, esi
mov edx, eax
sub ecx, ebx
and edx, 7
shr eax, 3
add edx, 3
lea esi, [ecx - 3]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
jmp 0xdd3e67
movzx ecx, cl
mov dword [ebp - 0xbc], ecx
add ecx, 2
cmp esi, ecx
mov dword [ebp - 0xc4], ecx
jae 0xdd481b
mov eax, dword [ebp - 0x74]
test eax, eax
je 0xdd34be
mov edx, dword [ebp - 0x7c]
mov ecx, esi
add esi, 8
sub dword [ebp - 0x74], 1
movzx eax, byte [edx]
add edx, 1
mov dword [ebp - 0x7c], edx
shl eax, cl
add dword [ebp - 0x3c], eax
cmp esi, dword [ebp - 0xc4]
jb 0xdd47ee
mov eax, dword [ebp - 0x38]
sub esi, ebx
movzx ecx, byte [ebp - 0xbc]
shr dword [ebp - 0x3c], cl
test eax, eax
je 0xdd484b
mov eax, dword [ebp - 0x38]
sub esi, 2
movzx ecx, word [edi + eax*2 + 0x6e]
mov eax, dword [ebp - 0x3c]
shr dword [ebp - 0x3c], 2
and eax, 3
lea edx, [eax + 3]
jmp 0xdd3e67
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], str.invalid_bit_length_repeat
jmp 0xdd322b
movzx ecx, byte [ebp - 0x3c]
lea eax, [ebp - 0x1c]
shr dword [ebp - 0x3c], 8
movzx ebx, byte [ebp - 0x3c]
mov dword [esp + 8], 2
mov byte [ebp - 0x1c], cl
mov dword [esp + 4], eax
mov byte [ebp - 0x1b], bl
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00dd8010
mov dword [edi + 0x18], eax
jmp 0xdd35d1
cmp dword [edi], 0x1d
je 0xdd3282
cmp word [edi + 0x270], 0
jne 0xdd48c0
mov ecx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ecx + 0x18], str.invalid_code____missing_end_of_block
jmp 0xdd322b
mov ebx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov dword [edi + 0x54], 9
mov dword [edi + 0x6c], ebx
mov dword [edi + 0x4c], ebx
lea ebx, [edi + 0x6c]
mov dword [esp + 0x14], eax
lea eax, [edi + 0x54]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov eax, dword [edi + 0x60]
mov dword [esp], 1
mov dword [esp + 8], eax
lea eax, [edi + 0x70]
mov dword [esp + 4], eax
call fcn.00dd87d0
test eax, eax
mov dword [ebp - 0x68], eax
je 0xdd49ea
mov edx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [edx + 0x18], str.invalid_literal_lengths_set
jmp 0xdd322b
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x7c]
mov dword [ebp - 0x68], 2
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x74]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ebx
mov dword [eax + 4], edx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], esi
jmp 0xdd31a0
mov eax, dword [ebp + 8]
mov dword [edi], 0x1d
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov eax, dword [edi]
jmp 0xdd322b
shr dword [ebp - 0x3c], 4
mov eax, dword [ebp - 0x3c]
and eax, 0xf
lea ecx, [eax + 8]
mov eax, dword [edi + 0x24]
test eax, eax
jne 0xdd4a4c
mov dword [edi + 0x24], ecx
mov eax, 1
shl eax, cl
mov dword [edi + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00dd96c0
mov edx, dword [ebp + 8]
and dword [ebp - 0x3c], 0x200
cmp dword [ebp - 0x3c], 1
mov dword [ebp - 0x3c], 0
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
sbb eax, eax
xor esi, esi
and eax, 2
add eax, 9
mov dword [edi], eax
mov eax, dword [edi]
jmp 0xdd322b
xor esi, esi
mov dword [ebp - 0x3c], 0
jmp 0xdd34be
mov eax, dword [edi + 0x6c]
mov ecx, dword [ebp - 0xa8]
mov dword [edi + 0x58], 6
mov dword [edi + 0x50], eax
lea eax, [edi + 0x58]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov eax, dword [edi + 0x64]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x60]
mov dword [esp], 2
lea eax, [edi + eax*2 + 0x70]
mov dword [esp + 4], eax
call fcn.00dd87d0
test eax, eax
mov dword [ebp - 0x68], eax
je 0xdd3aea
mov ebx, dword [ebp + 8]
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], str.invalid_distances_set
jmp 0xdd322b
cmp ecx, eax
jbe 0xdd4988
mov ebx, dword [ebp + 8]
sub esi, 4
mov dword [edi], 0x1d
mov eax, dword [edi]
mov dword [ebx + 0x18], str.invalid_window_size
jmp 0xdd322b