Function at 0x1006d570
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebx, dword [esp + 0xa0]
test ebx, ebx
je case.default.0x1006d64e
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je case.default.0x1006d64e
mov edx, dword [eax + 0x24]
test edx, edx
je case.default.0x1006d64e
mov ebp, dword [eax + 0x1c]
test ebp, ebp
je case.default.0x1006d64e
mov eax, dword [ebp]
cmp dword [esp + 0xa0], eax
je 0x1006d5c8
mov dword [esp + 0x28], 0xfffffffe
mov eax, dword [esp + 0x28]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp + 4]
lea eax, [edx - 0x3f34]
cmp eax, 0x1f
ja case.default.0x1006d64e
mov esi, dword [esp + 0xa0]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x40], esi
test esi, esi
je case.default.0x1006d64e
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0xa0]
mov esi, dword [esi]
mov ebx, dword [edi + 4]
mov dword [esp + 0x3c], ebx
test esi, esi
je 0x1006dcb0
cmp edx, 0x3f3f
jne 0x1006d61b
mov dword [ebp + 4], 0x3f40
mov eax, 0xc
mov edi, dword [esp + 0xa0]
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0x28], ebp
mov ebx, dword [ebp + 0x40]
mov ebp, esi
mov edi, dword [edi + 0x10]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x3c]
cmp eax, 0x1e
ja case.default.0x1006d64e
jmp dword [eax*4 + 0x10098754]
cmp dword [esp + 0x2c], 0x1f
ja 0x1006f773
test edi, edi
je 0x1006e950
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [ebp]
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
add ecx, 8
cmp ecx, 0x1f
ja 0x1006f30e
test edx, edx
je 0x1006f28d
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add esi, eax
add ecx, 0x10
mov dword [esp + 0x30], esi
cmp ecx, 0x1f
ja 0x1006f30e
test edx, edx
je 0x1006f28d
movzx eax, byte [ebp + 2]
add dword [esp + 0x2c], 0x18
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add esi, eax
mov dword [esp + 0x30], esi
cmp ecx, 0x1f
ja 0x1006f30e
test edx, edx
je 0x1006f564
movzx eax, byte [ebp + 3]
sub edi, 4
lea ebx, [ebp + 4]
shl eax, cl
add esi, eax
mov dword [esp + 0x30], esi
mov eax, esi
mov edx, dword [esp + 0x28]
bswap eax
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov ebp, ebx
mov dword [edx + 0x1c], eax
mov dword [esi + 0x30], eax
mov dword [edx + 4], 0x3f3e
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x1006f8d5
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10071b60
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0xa0]
mov dword [edx + 0x1c], eax
mov dword [ebx + 0x30], eax
mov dword [edx + 4], 0x3f3f
lea esi, [esi]
mov eax, dword [esp + 0xa4]
sub eax, 5
cmp eax, 1
jbe 0x1006e950
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 8]
test edx, edx
je 0x1006e470
mov eax, dword [esp + 0x2c]
mov esi, ebp
mov ebp, dword [esp + 0x28]
mov ecx, eax
and eax, 0xfffffff8
mov dword [ebp + 4], 0x3f4e
mov dword [esp + 0x2c], eax
and ecx, 7
shr dword [esp + 0x30], cl
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
test eax, eax
je 0x1006e730
cmp dword [esp + 0x2c], 0x1f
ja 0x1006f8ce
test edi, edi
je 0x1006e95c
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [esi]
lea edx, [edi - 1]
lea ebx, [esi + 1]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 8]
cmp ecx, 0x1f
ja 0x1006f5f6
test edx, edx
je 0x1006f118
movzx eax, byte [esi + 1]
lea edx, [edi - 2]
lea ebx, [esi + 2]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x10]
cmp ecx, 0x1f
ja 0x1006f5f6
test edx, edx
je 0x1006f118
movzx eax, byte [esi + 2]
lea edx, [edi - 3]
lea ebx, [esi + 3]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x18]
cmp ecx, 0x1f
ja 0x1006f5f6
test edx, edx
je 0x1006f118
movzx eax, byte [esi + 3]
add dword [esp + 0x2c], 0x20
sub edi, 4
lea ebx, [esi + 4]
shl eax, cl
add dword [esp + 0x30], eax
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x34]
mov eax, esi
sub eax, ecx
add dword [edx + 0x14], eax
mov edx, dword [esp + 0x28]
add dword [ebp + 0x20], eax
and edx, 4
je 0x1006f4da
test eax, eax
jne 0x1006f618
test edx, edx
je 0x1006f4da
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x30]
test esi, esi
jne 0x1006d8b1
bswap eax
cmp dword [ebp + 0x1c], eax
je 0x1006f4da
mov eax, dword [esp + 0xa0]
mov esi, ebx
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x34]
mov dword [ebp + 4], 0x3f51
mov dword [esp + 0x38], eax
jmp 0x1006da47
cmp dword [esp + 0xa4], 6
mov dword [esi + 0x50], 0x10098860
mov dword [esi + 0x58], 9
mov dword [esi + 0x54], 0x100987e0
mov dword [esi + 0x5c], 5
mov dword [esi + 4], 0x3f47
je 0x1006fb82
sub dword [esp + 0x2c], 3
mov ebp, eax
shr dword [esp + 0x30], 3
lea esi, cs:[esi]
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 0x3f48
cmp edi, 5
jbe 0x1006e750
mov eax, dword [esp + 0x34]
cmp eax, 0x101
jbe 0x1006e750
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x40]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 0xc], ebx
mov ebx, dword [esp + 0x28]
mov dword [edx], ebp
mov dword [edx + 4], edi
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x38]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10072560
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 4]
cmp eax, 0x3f3f
je 0x1006ef90
sub eax, 0x3f34
jmp 0x1006d645
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x4c]
test ebx, ebx
jne 0x1006efa8
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 0x3f4c
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x1006f601
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov eax, dword [edx + 0x48]
mov edx, esi
sub edx, ebx
cmp edx, eax
jae 0x1006ecb0
add eax, ebx
mov edx, dword [esp + 0x28]
mov ecx, eax
sub ecx, esi
cmp dword [edx + 0x30], ecx
jae 0x1006e850
mov ebx, dword [edx + 0x1bc4]
test ebx, ebx
je 0x1006e850
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edx
mov dword [eax + 0x18], str.invalid_distance_too_far_back
mov dword [edx + 4], 0x3f51
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], 0xfffffffd
sub ecx, eax
lea esi, [esi]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x40]
mov ebx, eax
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x34]
mov dword [ebx], esi
mov esi, dword [esp + 0x30]
mov dword [ebx + 0x10], eax
mov edx, dword [ebp + 0x2c]
mov dword [ebx + 4], edi
mov dword [ebp + 0x3c], esi
mov esi, dword [esp + 0x2c]
mov dword [ebp + 0x40], esi
test edx, edx
jne 0x1006dab8
mov esi, dword [esp + 0x38]
cmp eax, esi
je 0x1006daee
mov eax, dword [ebp + 4]
cmp eax, 0x3f50
ja 0x1006daee
cmp eax, 0x3f4d
jbe 0x1006dab8
cmp dword [esp + 0xa4], 4
je 0x1006daee
lea esi, [esi]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xa0]
call fcn.1006cd70
test eax, eax
jne 0x1006e3cb
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
sub ecx, eax
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x3c]
add dword [eax + 0x14], ecx
sub ebx, edi
add dword [eax + 8], ebx
add dword [ebp + 0x20], ecx
test byte [ebp + 0xc], 4
je 0x1006db12
test ecx, ecx
jne 0x1006e980
mov edx, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp + 4]
test edx, edx
setne al
shl eax, 6
add eax, dword [ebp + 0x40]
cmp esi, 0x3f3f
je 0x1006e978
cmp esi, 0x3f47
sete dl
cmp esi, 0x3f42
mov edi, edx
sete dl
mov esi, edx
or edi, esi
mov edx, edi
movzx edx, dl
shl edx, 8
add eax, edx
mov edi, dword [esp + 0xa0]
or ebx, ecx
mov dword [edi + 0x2c], eax
je 0x1006db6f
cmp dword [esp + 0xa4], 4
jne 0x1006d5b5
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x1006d5b5
mov dword [esp + 0x28], 0xfffffffb
jmp 0x1006d5b5
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x4c]
test edx, edx
jne 0x1006ecc8
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x44]
mov edx, dword [esp + 0x28]
mov dword [edx + 0x1bcc], eax
mov dword [edx + 4], 0x3f4a
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x5c]
mov edx, dword [eax + 0x54]
mov eax, 0xffffffff
shl eax, cl
mov dword [esp + 0x48], edx
mov ecx, eax
mov eax, dword [esp + 0x30]
not ecx
and eax, ecx
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x44], ax
movzx eax, dl
mov esi, eax
cmp dword [esp + 0x2c], eax
jae 0x1006dc60
test edi, edi
je 0x1006e950
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x1006dc18
test edi, edi
je 0x1006eb70
movzx eax, byte [ebp]
mov esi, dword [esp + 0x48]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
mov eax, dword [esp + 0x4c]
and eax, ebx
lea eax, [esi + eax*4]
movzx edx, byte [eax]
mov byte [esp + 0x2c], dl
movzx edx, byte [eax + 1]
movzx eax, word [eax + 2]
mov word [esp + 0x44], ax
movzx eax, dl
mov esi, eax
cmp ecx, eax
jb 0x1006dc10
mov dword [esp + 0x30], ebx
movzx ebx, byte [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, eax
cmp bl, 0xf
jbe 0x1006f137
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x1bc8]
shr dword [esp + 0x30], cl
add ecx, eax
mov eax, dword [esp + 0x28]
sub dword [esp + 0x2c], esi
mov dword [eax + 0x1bc8], ecx
test bl, 0x40
je 0x1006ef70
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x100986d7
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
test ebx, ebx
je 0x1006d607
jmp case.default.0x1006d64e
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x44]
mov edx, dword [esp + 0x28]
mov dword [edx + 4], 0x3f43
test eax, eax
je 0x1006eb60
cmp edi, eax
cmovbe eax, edi
mov ebx, eax
mov eax, dword [esp + 0x34]
cmp ebx, eax
cmova ebx, eax
test ebx, ebx
je 0x1006f99e
mov esi, dword [esp + 0x40]
mov dword [esp + 4], ebp
sub edi, ebx
add ebp, ebx
mov dword [esp + 8], ebx
mov dword [esp], esi
add esi, ebx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x28]
sub dword [esp + 0x34], ebx
mov dword [esp + 0x40], esi
sub dword [eax + 0x44], ebx
mov eax, dword [eax + 4]
jmp 0x1006d9bf
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
test dh, 8
jne 0x1006eb80
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006dd4a
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x44], 0
mov dword [eax + 4], 0x3f3b
test dh, 0x10
jne 0x1006ea88
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006dd77
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 0x3f3c
test dh, 2
jne 0x1006e9f0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006dda6
sar edx, 9
mov dword [eax + 0x30], 1
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10072290
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa0]
mov dword [ecx + 0x1c], eax
mov dword [edx + 0x30], eax
mov dword [ecx + 4], 0x3f3f
jmp case.0x1006d64e.11
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
jmp 0x1006dd5c
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x64]
mov ebx, dword [eax + 0x68]
mov esi, dword [eax + 0x6c]
add ebx, edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebx
cmp esi, ebx
jae 0x1006dee8
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x30]
mov ecx, dword [eax + 0x58]
mov ebx, dword [eax + 0x50]
mov eax, 0xffffffff
shl eax, cl
mov dword [esp + 0x44], ebx
not eax
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
and ecx, edx
lea ebx, [ebx + ecx*4]
movzx ecx, byte [ebx + 1]
movzx esi, word [ebx + 2]
movzx ebx, cl
cmp eax, ebx
jae 0x1006de9f
test edi, edi
je 0x1006f4a0
mov ecx, eax
jmp 0x1006de68
test edi, edi
je 0x1006e9d0
movzx eax, byte [ebp]
mov esi, dword [esp + 0x44]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
mov eax, dword [esp + 0x2c]
and eax, edx
lea ebx, [esi + eax*4]
movzx eax, byte [ebx + 1]
movzx esi, word [ebx + 2]
movzx ebx, al
cmp ecx, ebx
jb 0x1006de60
mov dword [esp + 0x30], ecx
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp si, 0xf
ja 0x1006eda8
shr edx, cl
mov ecx, dword [esp + 0x48]
sub eax, ebx
mov dword [esp + 0x30], ecx
mov ebx, ecx
mov ecx, dword [esp + 0x28]
add ebx, 1
mov dword [ecx + 0x6c], ebx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x30]
mov word [ecx + ebx*2 + 0x74], si
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x48], esi
jb 0x1006de38
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
cmp dword [eax + 4], 0x3f51
je case.0x1006d64e.29
mov eax, dword [esp + 0x28]
cmp word [eax + 0x274], 0
jne 0x1006f9e0
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code____missing_end_of_block
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov esi, ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x28], 1
sub ecx, eax
jmp 0x1006da60
mov esi, ebp
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x1006e730
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x1006e730
cmp dword [esp + 0x2c], 0x1f
ja 0x1006f54b
test edi, edi
je 0x1006e95c
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [esi]
lea edx, [edi - 1]
lea ebx, [esi + 1]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 8]
cmp ecx, 0x1f
ja 0x1006f20f
test edx, edx
je 0x1006f118
movzx eax, byte [esi + 1]
lea edx, [edi - 2]
lea ebx, [esi + 2]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x10]
cmp ecx, 0x1f
ja 0x1006f20f
test edx, edx
je 0x1006f118
movzx eax, byte [esi + 2]
lea edx, [edi - 3]
lea ebx, [esi + 3]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x18]
cmp ecx, 0x1f
ja 0x1006f20f
test edx, edx
je 0x1006f118
movzx eax, byte [esi + 3]
add dword [esp + 0x2c], 0x20
sub edi, 4
lea ebx, [esi + 4]
shl eax, cl
add dword [esp + 0x30], eax
test byte [esp + 0x28], 4
je 0x1006e71d
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 0x20]
je 0x1006e71d
mov eax, dword [esp + 0xa0]
mov esi, ebx
mov dword [eax + 0x18], str.incorrect_length_check
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
mov eax, edx
and eax, 0x400
test eax, eax
je 0x1006e106
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x44]
cmp edi, ecx
mov ebx, ecx
cmovbe ebx, edi
mov dword [esp + 0x44], ebx
test ebx, ebx
je 0x1006e0f7
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006e0ca
mov esi, dword [eax + 0x10]
mov dword [esp + 0x48], esi
test esi, esi
je 0x1006e0ca
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov ebx, esi
sub ebx, ecx
cmp ebx, eax
jae 0x1006e0ca
mov edx, dword [esp + 0x44]
add ecx, eax
mov dword [esp + 4], ebp
sub ecx, esi
add edx, ebx
cmp eax, edx
mov edx, dword [esp + 0x48]
cmovae ecx, dword [esp + 0x44]
add edx, ebx
mov dword [esp + 8], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
and dh, 2
je 0x1006e0dd
mov eax, dword [esp + 0x28]
test byte [eax + 0xc], 4
jne 0x1006f47f
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
mov edx, dword [eax + 0x44]
sub edi, ebx
add ebp, ebx
mov ecx, edx
mov dword [esp + 0x44], edx
sub ecx, ebx
mov dword [eax + 0x44], ecx
test ecx, ecx
jne 0x1006e950
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x28]
mov dword [eax + 0x44], 0
mov dword [eax + 4], 0x3f3a
jmp 0x1006dd2f
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x44]
jmp 0x1006dcd2
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x6c]
mov ecx, dword [eax + 0x60]
cmp ebx, ecx
jae 0x1006f3db
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x2c]
add ebx, 1
mov dword [esp + 0x44], ebx
mov esi, dword [esp + 0x30]
cmp ecx, 2
ja 0x1006e1b2
test edi, edi
je 0x1006ed50
movzx eax, byte [ebp]
sub edi, 1
lea edx, [ebp + 1]
shl eax, cl
add ecx, 8
add esi, eax
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x44]
sub ecx, 3
mov dword [ebx + 0x6c], ebp
movzx eax, word [ebp + ebp + 0x1009905e]
mov ebp, esi
shr esi, 3
and ebp, 7
mov word [ebx + eax*2 + 0x74], bp
mov ebx, dword [esp + 0x44]
lea eax, [ebx + 1]
cmp dword [esp + 0x48], ebx
je 0x1006f3d1
mov dword [esp + 0x44], eax
mov ebp, edx
cmp ecx, 2
jbe 0x1006e15a
mov edx, ebp
jmp 0x1006e173
cmp dword [esp + 0x2c], 0x1f
ja 0x1006e202
test edi, edi
je 0x1006e950
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x1006e1e8
test edi, edi
je 0x1006e9d0
movzx eax, byte [ebp]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x1006e1e0
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006e214
mov ebx, dword [esp + 0x30]
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x28]
test byte [eax + 0x15], 2
je 0x1006e228
test byte [eax + 0xc], 4
jne 0x1006f500
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [eax + 4], 0x3f37
jmp 0x1006e24f
cmp dword [esp + 0x2c], 0xf
ja 0x1006e28a
test edi, edi
je 0x1006e950
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x1006e270
test edi, edi
je 0x1006e9d0
movzx eax, byte [ebp]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x1006e268
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006e2a7
mov ebx, dword [esp + 0x30]
movzx edx, bl
mov dword [eax + 8], edx
mov edx, ebx
shr edx, 8
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x14]
mov edx, ebx
test bh, 2
je 0x1006e2bf
test byte [eax + 0xc], 4
jne 0x1006f2c9
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [eax + 4], 0x3f38
test bh, 4
jne 0x1006e321
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006e2f1
mov dword [eax + 0x10], 0
xor eax, eax
mov ebx, dword [esp + 0x28]
mov dword [ebx + 4], 0x3f39
jmp 0x1006e05e
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x14]
mov edx, ebx
test bh, 4
je 0x1006e2df
cmp dword [esp + 0x2c], 0xf
mov edx, dword [esp + 0x30]
ja 0x1006e35a
test edi, edi
je 0x1006e950
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x1006e340
test edi, edi
je 0x1006e9d0
movzx eax, byte [ebp]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x1006e338
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x28]
mov dword [eax + 0x44], edx
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006e36b
mov dword [eax + 0x14], edx
test bh, 2
je 0x1006e37e
mov eax, dword [esp + 0x28]
test byte [eax + 0xc], 4
jne 0x1006f84a
mov eax, ebx
mov dword [esp + 0x2c], 0
mov edx, ebx
mov dword [esp + 0x30], 0
and eax, 0x400
jmp 0x1006e2f3
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
jmp 0x1006dd82
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x1006f031
mov dword [eax + 4], 0x3f40
jmp case.0x1006d64e.12
mov dword [ebp + 4], 0x3f52
lea esi, [esi]
mov dword [esp + 0x28], 0xfffffffc
jmp 0x1006d5b5
cmp dword [esp + 0x2c], 0xf
ja 0x1006f789
test edi, edi
je 0x1006e950
mov esi, dword [esp + 0x2c]
movzx eax, byte [ebp]
lea edx, [edi - 1]
lea ebx, [ebp + 1]
mov ecx, esi
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp ecx, 0xf
ja 0x1006f7e5
test edx, edx
je 0x1006ed5b
movzx edx, byte [ebp + 1]
add esi, 0x10
sub edi, 2
lea ebx, [ebp + 2]
mov dword [esp + 0x2c], esi
shl edx, cl
add eax, edx
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x28]
mov dword [ebp + 0x14], eax
cmp al, 8
je 0x1006f240
mov edx, ebx
mov eax, str.unknown_compression_method
mov ebx, dword [esp + 0xa0]
mov esi, edx
mov dword [ebx + 0x18], eax
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
cmp dword [esp + 0x2c], 2
ja 0x1006f7ae
test edi, edi
je 0x1006f7ce
mov esi, dword [esp + 0x2c]
movzx ebx, byte [ebp]
sub edi, 1
lea eax, [ebp + 1]
mov ecx, esi
add esi, 8
shl ebx, cl
add dword [esp + 0x30], ebx
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ecx, ebx
and ecx, 1
mov dword [esi + 8], ecx
mov ecx, ebx
shr ecx, 1
and ecx, 3
cmp ecx, 2
je 0x1006e5ec
cmp ecx, 3
je 0x1006f317
cmp ecx, 1
je 0x1006d8de
shr ebx, 3
sub dword [esp + 0x2c], 3
mov ebp, eax
mov dword [esi + 4], 0x3f41
mov dword [esp + 0x30], ebx
lea esi, cs:[esi]
nop
mov eax, dword [esp + 0x2c]
mov ecx, eax
and eax, 0xfffffff8
and ecx, 7
mov dword [esp + 0x2c], eax
shr dword [esp + 0x30], cl
cmp eax, 0x1f
ja 0x1006f768
test edi, edi
je 0x1006e950
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [ebp]
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
add ecx, 8
cmp ecx, 0x1f
ja 0x1006f2fd
test edx, edx
je 0x1006f28d
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add esi, eax
add ecx, 0x10
mov dword [esp + 0x30], esi
cmp ecx, 0x1f
ja 0x1006f2fd
test edx, edx
je 0x1006f28d
movzx eax, byte [ebp + 2]
add dword [esp + 0x2c], 0x18
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add esi, eax
mov dword [esp + 0x30], esi
cmp ecx, 0x1f
ja 0x1006f2fd
test edx, edx
je 0x1006f564
movzx eax, byte [ebp + 3]
mov dword [esp + 0x2c], 0x20
sub edi, 4
lea ebx, [ebp + 4]
shl eax, cl
add esi, eax
mov dword [esp + 0x30], esi
mov edx, esi
movzx eax, dx
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x1006f25a
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
mov esi, ebx
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
sub dword [esp + 0x2c], 3
mov ebp, eax
mov dword [esi + 4], 0x3f44
shr dword [esp + 0x30], 3
nop
cmp dword [esp + 0x2c], 0xd
ja 0x1006f77e
test edi, edi
je 0x1006e950
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [ebp]
lea edx, [edi - 1]
lea ebx, [ebp + 1]
mov esi, dword [esp + 0x2c]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
lea ecx, [esi + 8]
cmp ecx, 0xd
ja 0x1006f83d
test edx, edx
je 0x1006ed80
movzx edx, byte [ebp + 1]
add esi, 0x10
sub edi, 2
lea ebx, [ebp + 2]
mov dword [esp + 0x2c], esi
shl edx, cl
add eax, edx
mov dword [esp + 0x30], eax
mov esi, eax
mov eax, esi
mov ecx, esi
mov edx, esi
mov ebp, dword [esp + 0x28]
shr eax, 5
shr ecx, 0xa
and edx, 0x1f
sub dword [esp + 0x2c], 0xe
and eax, 0x1f
and ecx, 0xf
add edx, 0x101
shr esi, 0xe
add eax, 1
add ecx, 4
mov dword [ebp + 0x64], edx
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x60], ecx
mov dword [esp + 0x30], esi
cmp edx, 0x11e
ja 0x1006e6aa
cmp eax, 0x1e
jbe 0x1006f56f
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
mov esi, ebx
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov ebx, dword [esp + 0x28]
sub dword [esp + 0x2c], eax
shr dword [esp + 0x30], cl
mov dword [ebx + 0x1bc8], eax
mov dword [ebx + 0x44], edx
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 0x3f4d
mov edx, dword [esp + 0x34]
test edx, edx
je 0x1006f601
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
sub edx, 1
mov dword [esp + 0x34], edx
mov eax, dword [ebx + 0x44]
mov byte [ecx], al
lea eax, [ecx + 1]
mov dword [ebx + 4], 0x3f48
mov dword [esp + 0x40], eax
jmp case.0x1006d64e.20
mov dword [esp + 0x2c], 0
mov esi, ebx
mov dword [esp + 0x30], 0
nop
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [ebp + 4], 0x3f50
mov dword [esp + 0x28], 1
sub ecx, eax
jmp 0x1006da60
mov eax, dword [esp + 0x28]
mov ebx, 0xffffffff
mov ecx, dword [eax + 0x58]
mov esi, dword [eax + 0x50]
mov dword [eax + 0x1bc8], 0
mov eax, dword [esp + 0x30]
shl ebx, cl
not ebx
and eax, ebx
lea eax, [esi + eax*4]
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
mov byte [esp + 0x44], dl
movzx edx, word [eax + 2]
movzx eax, cl
cmp dword [esp + 0x2c], eax
jae 0x1006e7fe
test edi, edi
je 0x1006e950
mov ecx, dword [esp + 0x2c]
mov edx, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], ebx
jmp 0x1006e7b8
test edi, edi
je 0x1006ed50
movzx eax, byte [ebp]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x2c]
and eax, esi
lea eax, [edx + eax*4]
movzx ebx, byte [eax]
mov byte [esp + 0x44], bl
movzx ebx, byte [eax + 1]
movzx eax, word [eax + 2]
mov word [esp + 0x48], ax
movzx eax, bl
cmp ecx, eax
jb 0x1006e7b0
mov dword [esp + 0x30], esi
mov esi, edx
movzx edx, word [esp + 0x48]
mov dword [esp + 0x2c], ecx
mov ecx, ebx
movzx ebx, byte [esp + 0x44]
test bl, bl
je 0x1006e6ca
cmp bl, 0xf
jbe 0x1006f65f
mov ebx, dword [esp + 0x28]
sub dword [esp + 0x2c], eax
mov ecx, eax
shr dword [esp + 0x30], cl
mov dword [ebx + 0x1bc8], eax
mov dword [ebx + 0x44], edx
test byte [esp + 0x44], 0x20
je 0x1006f4af
mov eax, dword [esp + 0x28]
mov dword [eax + 0x1bc8], 0xffffffff
mov dword [eax + 4], 0x3f3f
jmp case.0x1006d64e.11
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edx, dword [ebx + 0x34]
sub esi, eax
mov ebx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x1006f018
mov eax, dword [esp + 0x28]
sub ecx, edx
add edx, dword [eax + 0x2c]
add edx, esi
add edx, ebx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x44]
cmp eax, ecx
cmovbe ecx, eax
mov esi, dword [esp + 0x34]
mov ebx, ecx
cmp esi, ecx
cmovbe ebx, esi
sub esi, ebx
sub eax, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x28]
mov dword [esi + 0x44], eax
lea eax, [ebx - 1]
cmp eax, 3
lea eax, [edx + 1]
jbe 0x1006ec60
mov esi, dword [esp + 0x40]
mov ecx, esi
sub ecx, eax
cmp ecx, 2
jbe 0x1006ec60
mov ecx, esi
or ecx, edx
and ecx, 3
jne 0x1006ec60
lea ecx, [ebx - 4]
mov dword [esp + 0x44], ebx
xor eax, eax
shr ecx, 2
add ecx, 1
lea esi, cs:[esi]
nop
mov ebx, dword [edx + eax*4]
mov dword [esi + eax*4], ebx
add eax, 1
cmp eax, ecx
jb 0x1006e8e0
mov ebx, dword [esp + 0x44]
shl ecx, 2
cmp ebx, ecx
je 0x1006e921
mov eax, dword [esp + 0x40]
mov esi, ebx
sub esi, ecx
add eax, ecx
add ecx, edx
movzx edx, byte [ecx]
mov byte [eax], dl
cmp esi, 1
je 0x1006e921
movzx edx, byte [ecx + 1]
mov byte [eax + 1], dl
cmp esi, 2
je 0x1006e921
movzx edx, byte [ecx + 2]
mov byte [eax + 2], dl
mov eax, dword [esp + 0x28]
add dword [esp + 0x40], ebx
mov edx, dword [eax + 0x44]
test edx, edx
je 0x1006d924
mov eax, dword [eax + 4]
jmp 0x1006d9bf
mov esi, ebp
mov ebp, dword [esp + 0x28]
jmp 0x1006d7bb
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], esi
nop
mov esi, ebp
lea esi, [esi]
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], 0
sub ecx, eax
jmp 0x1006da60
sub eax, 0xffffff80
jmp 0x1006db53
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], ecx
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
sub eax, edi
mov edi, dword [esp + 0xa0]
add eax, dword [edi + 0xc]
test esi, esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
je 0x1006e9e0
call fcn.10072290
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xa0]
mov dword [ebp + 0x1c], eax
mov dword [edi + 0x30], eax
jmp 0x1006db12
mov dword [esp + 0x30], edx
mov esi, ebp
mov dword [esp + 0x2c], ecx
jmp 0x1006e958
call fcn.10071b60
mov ecx, dword [esp + 0x2c]
jmp 0x1006e9b6
cmp dword [esp + 0x2c], 0xf
ja 0x1006f552
test edi, edi
je 0x1006e950
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [ebp]
lea ebx, [edi - 1]
lea esi, [ebp + 1]
shl eax, cl
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add ecx, 8
cmp ecx, 0xf
ja 0x1006f559
test ebx, ebx
je 0x1006ec88
movzx ebx, byte [ebp + 1]
add dword [esp + 0x2c], 0x10
sub edi, 2
lea esi, [ebp + 2]
shl ebx, cl
add eax, ebx
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x28]
test byte [ebp + 0xc], 4
je 0x1006ed38
movzx eax, word [ebp + 0x1c]
mov ebx, dword [esp + 0x30]
cmp eax, ebx
je 0x1006ed38
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
test edi, edi
je 0x1006e950
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], edi
xor ebx, ebx
mov eax, dword [eax + 0x24]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
test eax, eax
je 0x1006eaf4
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x1006eb48
mov esi, dword [esp + 0x28]
mov esi, dword [esi + 0x44]
cmp esi, dword [eax + 0x28]
jae 0x1006eb48
mov edi, dword [esp + 0x28]
lea eax, [esi + 1]
mov dword [edi + 0x44], eax
mov byte [ecx + esi], dl
test dl, dl
je 0x1006ef60
mov eax, dword [esp + 0x44]
cmp ebx, eax
jae 0x1006f2c2
mov eax, dword [edi + 0x24]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
test eax, eax
jne 0x1006eaa9
mov edi, dword [esp + 0x44]
test dl, dl
je 0x1006eb18
cmp ebx, edi
jb 0x1006eb0c
jmp 0x1006eb18
test dl, dl
je 0x1006eb18
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
cmp ebx, edi
jb 0x1006eb08
mov eax, dword [esp + 0x28]
test byte [eax + 0x15], 2
je 0x1006eb2c
test byte [eax + 0xc], 4
jne 0x1006f21a
sub edi, ebx
add ebp, ebx
test dl, dl
jne 0x1006e950
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
jmp 0x1006dd77
test dl, dl
je 0x1006ef60
mov edi, dword [esp + 0x44]
cmp ebx, edi
jb 0x1006ea9d
jmp 0x1006eb18
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 0x3f3f
jmp case.0x1006d64e.11
mov dword [esp + 0x30], ebx
mov esi, ebp
jmp 0x1006e9d6
test edi, edi
je 0x1006e950
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], edi
xor ebx, ebx
mov eax, dword [eax + 0x24]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
test eax, eax
je 0x1006ebec
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x1006ec40
mov esi, dword [esp + 0x28]
mov esi, dword [esi + 0x44]
cmp esi, dword [eax + 0x20]
jae 0x1006ec40
mov edi, dword [esp + 0x28]
lea eax, [esi + 1]
mov dword [edi + 0x44], eax
mov byte [ecx + esi], dl
test dl, dl
je 0x1006f028
mov eax, dword [esp + 0x44]
cmp ebx, eax
jae 0x1006f3ca
mov eax, dword [edi + 0x24]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
test eax, eax
jne 0x1006eba1
mov edi, dword [esp + 0x44]
test dl, dl
je 0x1006ec10
cmp ebx, edi
jae 0x1006ec10
lea esi, cs:[esi]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
cmp ebx, edi
jae 0x1006ec10
test dl, dl
jne 0x1006ec00
mov eax, dword [esp + 0x28]
test byte [eax + 0x15], 2
je 0x1006ec24
test byte [eax + 0xc], 4
jne 0x1006f29c
sub edi, ebx
add ebp, ebx
test dl, dl
jne 0x1006e950
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x14]
jmp 0x1006dd4a
test dl, dl
je 0x1006f028
mov edi, dword [esp + 0x44]
cmp ebx, edi
jb 0x1006eb95
jmp 0x1006ec10
lea ecx, [edx + ebx]
mov esi, ebx
mov edx, dword [esp + 0x40]
jmp 0x1006ec73
add eax, 1
movzx ebx, byte [eax - 1]
add edx, 1
mov byte [edx - 1], bl
cmp ecx, eax
jne 0x1006ec70
mov ebx, esi
jmp 0x1006e921
mov edi, dword [esp + 0x34]
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
sub ecx, edi
mov dword [esp + 0x28], 0
xor edi, edi
jmp 0x1006da60
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x44]
mov eax, ecx
jmp 0x1006e881
cmp dword [esp + 0x2c], edx
jae 0x1006ed05
test edi, edi
je 0x1006e950
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x1006ece8
test edi, edi
je 0x1006eb70
movzx eax, byte [ebp]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
cmp ecx, edx
jb 0x1006ece0
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ecx
mov ecx, edx
mov eax, 0xffffffff
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
shl eax, cl
sub dword [esp + 0x2c], edx
not eax
add dword [esi + 0x1bc8], edx
and eax, ebx
shr ebx, cl
add eax, dword [esi + 0x44]
mov dword [esi + 0x44], eax
mov dword [esp + 0x30], ebx
jmp 0x1006dba6
mov dword [esp + 0x2c], 0
mov ebp, esi
mov dword [esp + 0x30], 0
jmp 0x1006dd8b
mov dword [esp + 0x30], esi
mov esi, ebp
jmp 0x1006e9d6
mov edi, dword [esp + 0x34]
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov esi, ebx
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
sub ecx, edi
mov dword [esp + 0x28], 0
xor edi, edi
jmp 0x1006da60
mov edi, dword [esp + 0x34]
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov esi, ebx
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
sub ecx, edi
mov dword [esp + 0x28], 0
xor edi, edi
jmp 0x1006da60
cmp si, 0x10
je 0x1006f586
cmp si, 0x11
je 0x1006f33f
lea ecx, [ebx + 7]
cmp eax, ecx
jae 0x1006edf9
test edi, edi
je 0x1006f4a0
mov esi, ebx
mov ebx, ecx
mov ecx, eax
mov eax, esi
jmp 0x1006ede0
test edi, edi
je 0x1006e9d0
movzx esi, byte [ebp]
add ebp, 1
sub edi, 1
shl esi, cl
add ecx, 8
add edx, esi
cmp ecx, ebx
jb 0x1006edd8
mov ebx, eax
mov eax, ecx
mov ecx, ebx
sub eax, ebx
shr edx, cl
sub eax, 7
mov ecx, edx
and edx, 0x7f
add edx, 0xb
mov dword [esp + 0x30], edx
mov edx, ecx
xor ecx, ecx
mov word [esp + 0x54], cx
shr edx, 7
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x30]
add ecx, ebx
cmp dword [esp + 0x4c], ecx
jb 0x1006faa0
mov esi, dword [esp + 0x28]
sub ebx, 1
mov dword [esp + 0x60], ebx
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x58], ecx
add ecx, 0x3a
mov dword [esp + 0x68], ecx
lea ecx, [esi + ecx*2]
shr ecx, 1
mov esi, ecx
and esi, 1
cmp ebx, 3
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x48], esi
jbe 0x1006f97b
mov esi, dword [esp + 0x48]
mov dword [esp + 0x64], ebx
test esi, esi
je 0x1006ee8e
lea ecx, [ebx + 1]
movzx esi, word [esp + 0x54]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x28]
mov word [ecx + ebx*2 + 0x74], si
mov ebx, dword [esp + 0x30]
sub ebx, 2
mov dword [esp + 0x60], ebx
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x30]
sub ebx, esi
mov esi, ebx
mov dword [esp + 0x6c], ebx
movzx ebx, word [esp + 0x54]
shr esi, 1
mov ecx, ebx
shl ecx, 0x10
or ebx, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x48]
add ecx, ebx
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + ecx*2]
lea ebx, [ecx + esi*4]
and esi, 1
mov dword [esp + 0x48], ebx
je 0x1006eedf
mov ebx, dword [esp + 0x5c]
add ecx, 4
mov dword [ecx - 4], ebx
mov ebx, dword [esp + 0x48]
cmp ecx, ebx
je 0x1006eef1
mov esi, ebx
mov ebx, dword [esp + 0x5c]
mov dword [ecx], ebx
add ecx, 8
mov dword [ecx - 4], ebx
cmp ecx, esi
jne 0x1006eee5
mov ebx, dword [esp + 0x6c]
test bl, 1
je 0x1006ef3d
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x28]
and ebx, 0xfffffffe
add ecx, ebx
lea esi, [esi + ecx*2]
movzx ecx, word [esp + 0x54]
mov word [esi + 0x74], cx
mov ecx, dword [esp + 0x60]
sub ecx, ebx
je 0x1006ef3d
movzx ebx, word [esp + 0x54]
mov word [esi + 0x76], bx
lea ebx, [ecx - 2]
cmp ecx, 1
je 0x1006ef3d
movzx ecx, word [esp + 0x54]
mov word [esi + 0x78], cx
test ebx, ebx
je 0x1006ef3d
mov word [esi + 0x7a], cx
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x58]
add ebx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x48], ebx
mov dword [esi + 0x6c], ebx
jmp 0x1006dece
mov edi, dword [esp + 0x44]
jmp 0x1006eb18
mov edx, eax
movzx eax, word [esp + 0x44]
and ebx, 0xf
mov dword [edx + 0x4c], ebx
mov dword [edx + 0x48], eax
mov dword [edx + 4], 0x3f4b
jmp 0x1006d9d7
mov eax, dword [esp + 0x28]
mov dword [eax + 0x1bc8], 0xffffffff
jmp case.0x1006d64e.11
cmp dword [esp + 0x2c], ebx
jae 0x1006efe5
test edi, edi
je 0x1006e950
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x1006efc8
test edi, edi
je 0x1006e9d0
movzx eax, byte [ebp]
add ebp, 1
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x1006efc0
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
mov ecx, ebx
mov eax, 0xffffffff
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
shl eax, cl
sub dword [esp + 0x2c], ebx
not eax
add dword [esi + 0x1bc8], ebx
and eax, edx
shr edx, cl
add dword [esi + 0x48], eax
mov dword [esp + 0x30], edx
jmp 0x1006d9df
add edx, esi
add edx, ebx
jmp 0x1006e875
mov edi, dword [esp + 0x44]
jmp 0x1006ec10
cmp dword [esp + 0x2c], 0xf
ja 0x1006f9b5
test edi, edi
je 0x1006f9bc
movzx ecx, byte [esp + 0x2c]
movzx eax, byte [ebp]
lea edx, [edi - 1]
lea esi, [ebp + 1]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 8]
cmp ecx, 0xf
ja 0x1006f9d5
test edx, edx
je 0x1006f3a7
movzx eax, byte [ebp + 1]
add dword [esp + 0x2c], 0x10
sub edi, 2
lea esi, [ebp + 2]
shl eax, cl
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
test bl, 2
je 0x1006f09d
cmp dword [esp + 0x30], 0x8b1f
je 0x1006f91b
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1006f0ab
mov dword [eax + 0x30], 0xffffffff
and ebx, 1
je 0x1006f52d
mov edx, dword [esp + 0x30]
mov eax, edx
shr edx, 8
shl eax, 8
movzx eax, ax
lea ecx, [eax + edx]
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
mov edx, eax
shl edx, 5
sub edx, eax
cmp ecx, edx
jne 0x1006f52d
mov eax, dword [esp + 0x30]
and eax, 0xf
cmp eax, 8
je 0x1006fa59
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov dword [esp + 0x2c], ecx
mov esi, ebx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], 0
xor edi, edi
sub ecx, eax
jmp 0x1006da60
lea ecx, [ebx + eax]
mov ebx, 0xffffffff
movzx esi, word [esp + 0x44]
shl ebx, cl
mov ecx, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x4c], esi
not ecx
and ebx, ecx
mov dword [esp + 0x50], ecx
mov ecx, edx
shr ebx, cl
lea edx, [ebx + esi]
mov ebx, dword [esp + 0x48]
lea edx, [ebx + edx*4]
movzx esi, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], si
lea ecx, [edx + eax]
cmp dword [esp + 0x2c], ecx
jae 0x1006f1f2
test edi, edi
je 0x1006e950
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
jmp 0x1006f1a0
test edi, edi
je 0x1006e947
movzx edx, byte [ebp]
mov ecx, esi
add esi, 8
add ebp, 1
sub edi, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x50]
and edx, ebx
shr edx, cl
mov ecx, dword [esp + 0x4c]
add edx, ecx
mov ecx, dword [esp + 0x48]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x2c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [edx + eax]
cmp esi, ecx
jb 0x1006f198
mov dword [esp + 0x30], ebx
movzx ebx, byte [esp + 0x2c]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x28]
mov ecx, eax
sub dword [esp + 0x2c], eax
shr dword [esp + 0x30], cl
mov ecx, edx
add eax, dword [esi + 0x1bc8]
mov esi, edx
jmp 0x1006dc75
mov dword [esp + 0x2c], ecx
mov edi, edx
jmp 0x1006e018
mov dword [esp + 8], ebx
mov esi, eax
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x1c]
mov byte [esp + 0x44], dl
mov dword [esp], eax
call fcn.10072290
movzx edx, byte [esp + 0x44]
mov dword [esi + 0x1c], eax
jmp 0x1006eb2c
test dword [esp + 0x30], 0xe000
je 0x1006f7f0
mov edx, ebx
mov eax, str.unknown_header_flags_set
jmp 0x1006e458
mov edx, dword [esp + 0x28]
cmp dword [esp + 0xa4], 6
mov dword [edx + 0x44], eax
mov dword [edx + 4], 0x3f42
je 0x1006fb61
mov dword [esp + 0x2c], 0
mov ebp, ebx
mov dword [esp + 0x30], 0
jmp 0x1006dcc7
mov dword [esp + 0x2c], ecx
mov ebp, dword [esp + 0x28]
mov esi, ebx
jmp 0x1006f11e
mov dword [esp + 8], ebx
mov esi, eax
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x1c]
mov byte [esp + 0x44], dl
mov dword [esp], eax
call fcn.10072290
movzx edx, byte [esp + 0x44]
mov dword [esi + 0x1c], eax
jmp 0x1006ec24
mov edi, eax
jmp 0x1006eb18
mov ebx, eax
movzx eax, word [esp + 0x30]
mov dword [esp + 8], 2
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.10072290
mov dword [ebx + 0x1c], eax
mov ebx, dword [ebx + 0x14]
mov edx, ebx
jmp 0x1006e2bf
mov edi, edx
mov dword [esp + 0x2c], 0x20
mov edx, esi
jmp 0x1006e5b8
mov edi, edx
mov eax, esi
jmp 0x1006d706
mov edx, dword [esp + 0xa0]
mov ebp, esi
sub dword [esp + 0x2c], 3
shr dword [esp + 0x30], 3
mov dword [edx + 0x18], str.invalid_block_type
mov dword [esi + 4], 0x3f51
mov esi, eax
jmp 0x1006da47
lea ecx, [ebx + 3]
cmp eax, ecx
jae 0x1006f381
test edi, edi
je 0x1006f4a0
mov esi, ebx
mov ebx, ecx
mov ecx, eax
mov eax, esi
jmp 0x1006f368
test edi, edi
je 0x1006e9d0
movzx esi, byte [ebp]
add ebp, 1
sub edi, 1
shl esi, cl
add ecx, 8
add edx, esi
cmp ecx, ebx
jb 0x1006f360
mov ebx, eax
mov eax, ecx
mov ecx, ebx
sub eax, ebx
xor ebx, ebx
shr edx, cl
mov word [esp + 0x54], bx
sub eax, 3
mov ecx, edx
and edx, 7
add edx, 3
mov dword [esp + 0x30], edx
mov edx, ecx
shr edx, 3
jmp 0x1006ee1a
mov edx, ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor edi, edi
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], 0
sub ecx, eax
jmp 0x1006da60
mov edi, eax
jmp 0x1006ec10
mov dword [esp + 0x30], esi
mov ebp, edx
mov dword [esp + 0x2c], ecx
cmp ebx, 0x12
ja 0x1006f40f
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ebx + 0x10099060]
lea esi, cs:[esi]
movzx edx, word [eax]
xor esi, esi
add eax, 2
mov word [ecx + edx*2 + 0x74], si
cmp eax, 0x10099086
jne 0x1006f3f0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x6c], 0x13
mov ebx, dword [esp + 0x28]
lea eax, [ebx + 0x534]
mov dword [ebx + 0x58], 7
mov dword [ebx + 0x70], eax
mov dword [ebx + 0x50], eax
lea eax, [ebx + 0x2f4]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x58]
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x70]
mov dword [esp + 0xc], eax
lea eax, [ebx + 0x74]
mov dword [esp + 8], 0x13
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.100706a0
test eax, eax
je 0x1006f89d
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, ebx
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov dword [ebx + 4], 0x3f51
jmp 0x1006da47
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.10072290
mov dword [ebx + 0x1c], eax
jmp 0x1006e0dd
mov dword [esp + 0x30], edx
mov esi, ebp
mov dword [esp + 0x2c], eax
jmp 0x1006e958
test byte [esp + 0x44], 0x40
je 0x1006f794
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, dword [esp + 0x28]
mov dword [eax + 0x18], 0x100986bb
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov eax, dword [esp + 0x34]
mov dword [ebp + 4], 0x3f4f
mov esi, ebx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 0
jmp 0x1006df5d
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], 4
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.10072290
mov dword [ebx + 0x1c], eax
jmp 0x1006e228
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_header_check
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov ebx, esi
jmp 0x1006e018
mov esi, ebp
jmp 0x1006ea4b
mov dword [esp + 0x2c], ecx
mov edi, ebx
jmp 0x1006ea4b
mov ebp, dword [esp + 0x28]
mov esi, ebx
jmp 0x1006f11e
mov dword [ebp + 0x6c], 0
mov dword [ebp + 4], 0x3f45
mov ebp, ebx
xor ebx, ebx
jmp 0x1006e142
lea ecx, [ebx + 2]
cmp eax, ecx
jae 0x1006f5bf
test edi, edi
je 0x1006f4a0
mov esi, eax
mov eax, ecx
mov ecx, esi
jmp 0x1006f5a8
test edi, edi
je 0x1006e9d0
movzx esi, byte [ebp]
add ebp, 1
sub edi, 1
shl esi, cl
add ecx, 8
add edx, esi
cmp ecx, eax
jb 0x1006f5a0
mov eax, ecx
mov ecx, ebx
sub eax, ebx
mov ebx, dword [esp + 0x48]
shr edx, cl
test ebx, ebx
je 0x1006faa0
mov esi, dword [esp + 0x28]
mov ecx, edx
sub eax, 2
shr edx, 2
and ecx, 3
movzx ebx, word [esi + ebx*2 + 0x72]
mov word [esp + 0x54], bx
lea ebx, [ecx + 3]
mov dword [esp + 0x30], ebx
jmp 0x1006ee1a
mov dword [esp + 0x2c], ecx
mov edi, edx
jmp 0x1006d86e
mov esi, ebp
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x28], 0
jmp 0x1006da60
mov edx, ecx
sub edx, esi
mov esi, dword [esp + 0x40]
lea ecx, [esi + edx]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
test esi, esi
mov dword [esp], edx
je 0x1006f893
call fcn.10072290
mov edx, dword [esp + 0xa0]
mov dword [ebp + 0x1c], eax
mov dword [edx + 0x30], eax
mov eax, dword [ebp + 0xc]
mov edx, eax
mov dword [esp + 0x28], eax
and edx, 4
jmp 0x1006d89c
mov ecx, ebx
movzx ebx, dx
mov edx, 0xffffffff
add ecx, eax
mov dword [esp + 0x50], ebx
shl edx, cl
mov ecx, dword [esp + 0x30]
not edx
and ecx, edx
mov dword [esp + 0x4c], edx
mov edx, ecx
mov ecx, eax
shr edx, cl
add edx, ebx
lea edx, [esi + edx*4]
movzx ebx, byte [edx]
mov byte [esp + 0x44], bl
movzx ebx, word [edx + 2]
mov word [esp + 0x54], bx
movzx ebx, byte [edx + 1]
lea edx, [ebx + eax]
cmp dword [esp + 0x2c], edx
jae 0x1006f71f
test edi, edi
je 0x1006e950
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
jmp 0x1006f6c8
test edi, edi
je 0x1006f90e
movzx edx, byte [ebp]
mov ecx, esi
mov ebx, dword [esp + 0x50]
add esi, 8
add ebp, 1
sub edi, 1
shl edx, cl
movzx ecx, byte [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x4c]
and edx, eax
shr edx, cl
add edx, ebx
mov ebx, dword [esp + 0x54]
lea edx, [ebx + edx*4]
movzx ebx, byte [edx]
movzx ecx, word [edx + 2]
mov byte [esp + 0x44], bl
movzx ebx, byte [edx + 1]
mov edx, dword [esp + 0x48]
add edx, ebx
cmp esi, edx
jb 0x1006f6c0
mov word [esp + 0x54], cx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
mov ecx, eax
shr esi, cl
mov ecx, esi
mov esi, dword [esp + 0x2c]
sub esi, eax
mov eax, ecx
mov ecx, ebx
shr eax, cl
sub esi, ebx
mov ebx, dword [esp + 0x28]
cmp byte [esp + 0x44], 0
mov dword [esp + 0x30], eax
movzx eax, word [esp + 0x54]
mov dword [esp + 0x2c], esi
mov dword [ebx + 0x1bc8], edx
mov dword [ebx + 0x44], eax
jne 0x1006e82b
jmp 0x1006e6df
mov edx, dword [esp + 0x30]
mov ebx, ebp
jmp 0x1006e5b8
mov eax, dword [esp + 0x30]
mov ebx, ebp
jmp 0x1006d706
mov esi, dword [esp + 0x30]
mov ebx, ebp
jmp 0x1006e65f
mov eax, dword [esp + 0x30]
mov ebx, ebp
jmp 0x1006e442
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
and edx, 0xf
mov dword [eax + 4], 0x3f49
mov dword [eax + 0x4c], edx
jmp 0x1006db97
mov eax, ebp
jmp 0x1006e4a0
mov eax, dword [esp + 0x28]
cmp dword [esp + 0xa4], 6
mov dword [eax + 4], 0x3f47
jne case.0x1006d64e.19
mov ecx, dword [esp + 0x38]
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], edx
sub ecx, eax
jmp 0x1006da60
mov dword [esp + 0x2c], ecx
mov edi, edx
jmp 0x1006e442
mov edx, dword [ebp + 0x24]
test edx, edx
je 0x1006f803
mov eax, dword [esp + 0x30]
shr eax, 8
and eax, 1
mov dword [edx], eax
test dword [esp + 0x30], 0x200
je 0x1006f81b
mov eax, dword [esp + 0x28]
test byte [eax + 0xc], 4
jne 0x1006fb25
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 0
mov ebp, ebx
mov dword [esp + 0x2c], 0
mov dword [eax + 4], 0x3f36
jmp 0x1006e1c7
mov dword [esp + 0x2c], ecx
mov edi, edx
mov esi, eax
jmp 0x1006e65f
mov ebx, eax
movzx eax, word [esp + 0x30]
mov dword [esp + 8], 2
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.10072290
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x2c], 0
mov dword [ebx + 0x1c], eax
mov eax, edx
mov dword [esp + 0x30], 0
and eax, 0x400
jmp 0x1006e2f3
call fcn.10071b60
jmp 0x1006f641
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x64]
mov dword [eax + 0x6c], 0
mov dword [eax + 4], 0x3f46
mov ebx, edx
add ebx, dword [eax + 0x68]
mov dword [esp + 0x4c], ebx
je 0x1006def9
mov dword [esp + 0x48], 0
jmp 0x1006de0f
mov ebx, esi
jmp 0x1006d86e
mov edx, dword [esp + 0x40]
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x28], 2
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [eax], esi
mov dword [eax + 0x10], edx
mov dword [eax + 4], edi
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x40], eax
jmp 0x1006d5b5
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], esi
jmp 0x1006e950
cmp dword [eax + 0x28], 0
jne 0x1006f928
mov dword [eax + 0x28], 0xf
xor eax, eax
mov ebp, esi
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.10072290
mov ebx, dword [esp + 0x28]
lea edx, [esp + 0x7c]
mov word [esp + 0x7c], 0x8b1f
mov dword [ebx + 0x1c], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.10072290
mov dword [ebx + 4], 0x3f35
mov dword [ebx + 0x1c], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
jmp 0x1006e3f3
lea ecx, [ebx + ebx]
mov ebx, dword [esp + 0x28]
lea esi, [ebx + ecx]
movzx ebx, word [esp + 0x54]
mov word [esi + 0x74], bx
mov word [esi + 0x76], bx
mov ebx, dword [esp + 0x30]
sub ebx, 3
jmp 0x1006ef2c
mov ecx, dword [esp + 0x38]
mov esi, ebp
mov ebp, dword [esp + 0x28]
sub ecx, eax
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x1006da60
mov esi, ebp
jmp 0x1006f086
mov ecx, dword [esp + 0x38]
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0x34]
sub ecx, eax
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x1006da60
mov dword [esp + 0x2c], ecx
mov edi, edx
jmp 0x1006f086
mov ebx, dword [esp + 0x28]
mov eax, ebx
mov dword [ebx + 0x58], 9
add eax, 0x534
mov dword [ebx + 0x70], eax
mov dword [ebx + 0x50], eax
mov eax, ebx
lea ebx, [ebx + 0x2f4]
lea ecx, [eax + 0x70]
lea esi, [eax + 0x74]
add eax, 0x58
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], 1
mov dword [esp + 0x44], ecx
call fcn.100706a0
mov ecx, dword [esp + 0x44]
test eax, eax
je 0x1006fba3
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, dword [esp + 0x28]
mov dword [eax + 0x18], str.invalid_literal_lengths_set
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
shr dword [esp + 0x30], 4
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
and eax, 0xf
mov ecx, eax
mov eax, dword [edx + 0x28]
add ecx, 8
test eax, eax
jne 0x1006fac8
mov dword [edx + 0x28], ecx
cmp ecx, 0xf
jbe 0x1006fad1
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
sub dword [esp + 0x2c], 4
mov dword [eax + 0x18], str.invalid_window_size
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
mov dword [esp + 0x2c], eax
mov esi, ebp
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x30], edx
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov dword [ebp + 4], 0x3f51
jmp 0x1006da47
cmp ecx, 0xf
ja 0x1006fa7d
cmp eax, ecx
jb 0x1006fa7d
mov ebx, dword [esp + 0x28]
mov eax, 1
xor ebp, ebp
shl eax, cl
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], ebp
mov dword [esp + 8], ebp
mov dword [esp + 4], ebp
mov dword [esp], ebp
call fcn.10071b60
and dword [esp + 0x30], 0x200
mov edx, ebx
mov dword [ebx + 0x1c], eax
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x30], eax
jne 0x1006fc0b
xor ebx, ebx
mov dword [edx + 4], 0x3f3f
mov ebp, esi
mov dword [esp + 0x2c], ebx
jmp case.0x1006d64e.11
movzx eax, word [esp + 0x30]
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call fcn.10072290
mov dword [esi + 0x1c], eax
jmp 0x1006f81b
mov esi, ebp
mov ebp, dword [esp + 0x28]
jmp 0x1006da47
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov ebp, edx
mov esi, ebx
sub ecx, eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
jmp 0x1006da60
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x38]
mov ebp, esi
mov esi, eax
mov edx, dword [esp + 0x34]
sub dword [esp + 0x2c], 3
shr dword [esp + 0x30], 3
sub ecx, edx
jmp 0x1006da60
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x70]
mov dword [edx + 0x5c], 6
mov dword [edx + 0x54], eax
lea eax, [edx + 0x5c]
mov dword [esp + 0x14], ebx
mov ebx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [edx + 0x68]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x64]
mov dword [esp], 2
add eax, eax
add eax, esi
mov dword [esp + 4], eax
call fcn.100706a0
mov edx, eax
test eax, eax
je 0x1006f7b5
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, ebx
mov dword [eax + 0x18], str.invalid_distances_set
mov dword [ebx + 4], 0x3f51
jmp 0x1006da47
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov ebp, esi
mov dword [esp + 0x30], ecx
mov dword [eax + 4], 0x3f3d
mov dword [esp + 0x2c], ecx
jmp 0x1006d663