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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa0]
test eax, eax
je case.default.0x63093348
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0x63093348
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [esp + 0x28], eax
je case.default.0x63093348
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax]
test ebp, ebp
je 0x63094950
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov eax, dword [edi]
cmp eax, 0xb
je 0x63093500
mov ecx, dword [esp + 0xa0]
lea edx, [edi + 0x530]
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], edx
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0xa4]
mov ebx, esi
sub ecx, 5
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
mov esi, dword [edi + 0x38]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
lea ecx, [edi + 0x2f0]
mov dword [esp + 0x24], esi
mov dword [esp + 0x50], ecx
mov esi, dword [edi + 0x3c]
mov edi, ebx
cmp eax, 0x1e
ja case.default.0x63093348
jmp dword [eax*4 + 0x630c7110]
cmp esi, 0x1f
ja 0x630933e3
test edi, edi
je 0x630948c0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x63095203
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x63095203
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 2]
add esi, 0x18
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
add dword [esp + 0x24], eax
cmp esi, 0x1f
ja 0x63095203
test edx, edx
je 0x63095469
movzx eax, byte [ebp + 3]
mov ecx, esi
lea ebx, [ebp + 4]
sub edi, 4
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, ebx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
mov edx, esi
mov eax, esi
shr eax, 0x18
shl edx, 0x18
add edx, eax
mov eax, esi
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, esi
mov esi, dword [esp + 0x20]
and eax, 0xff00
shl eax, 8
add eax, edx
mov edx, dword [esp + 0xa0]
mov dword [esi + 0x18], eax
mov dword [edx + 0x30], eax
mov dword [esi], 0xa
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x630954ae
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.63099090
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov dword [ebx], 0xb
cmp dword [esp + 0x4c], 1
jbe 0x630948c0
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 4]
test edx, edx
jne 0x63093510
cmp esi, 2
ja 0x63095319
test edi, edi
je 0x630948c0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [ebp + 1]
sub edi, 1
add esi, 8
shl eax, cl
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov eax, ecx
shr ecx, 1
and eax, 1
mov dword [ebx + 4], eax
mov eax, ecx
and eax, 3
cmp eax, 2
je 0x63094d59
cmp eax, 3
je 0x630950d9
cmp eax, 1
je 0x6309509b
mov dword [ebx], 0xd
mov eax, 0xd
shr ecx, 2
sub esi, 3
mov ebp, edx
mov dword [esp + 0x24], ecx
jmp 0x6309333f
mov dword [edi], 0xc
mov al, 0xc
jmp 0x630932ed
mov ecx, esi
mov dword [eax], 0x1a
and esi, 0xfffffff8
and ecx, 7
mov eax, 0x1a
shr dword [esp + 0x24], cl
jmp switch.0x63093348
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x48]
test ebx, ebx
je 0x630935a0
cmp esi, ebx
jae 0x63093573
test edi, edi
je 0x630948c0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x63093558
test edi, edi
je 0x63094970
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x63093550
mov dword [esp + 0x24], edx
mov esi, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x20]
sub esi, ebx
sub eax, 1
and eax, edx
add dword [ecx + 0x44], eax
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], edx
add dword [ecx + 0x1bc4], ebx
mov eax, dword [esp + 0x20]
mov dword [eax], 0x18
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x630948c0
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
sub eax, edx
mov edx, dword [ebx + 0x44]
cmp eax, edx
jae 0x63094a64
sub edx, eax
cmp edx, dword [ebx + 0x2c]
mov ecx, edx
ja 0x63094cb0
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
cmp ecx, eax
jbe 0x63094e72
mov ebx, dword [esp + 0x20]
sub ecx, eax
mov eax, dword [ebx + 0x28]
sub eax, ecx
add eax, dword [ebx + 0x34]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov edx, dword [eax + 0x40]
cmp ecx, edx
cmova ecx, edx
jmp 0x63094a77
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x20]
mov dword [eax], 0x13
je 0x630948c0
mov eax, dword [esp + 0x20]
mov dword [eax], 0x14
cmp edi, 5
jbe 0x6309363d
cmp dword [esp + 0x2c], 0x101
ja 0x63094b72
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x54]
mov ebx, dword [eax + 0x4c]
mov dword [eax + 0x1bc4], 0
mov eax, 1
shl eax, cl
mov dword [esp + 0x3c], ebx
sub eax, 1
mov edx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
and eax, edx
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x40], ax
movzx eax, dl
cmp esi, eax
jae 0x630936d8
test edi, edi
je 0x630948c0
mov ecx, esi
mov esi, dword [esp + 0x24]
jmp 0x6309369d
test edi, edi
je 0x63094e14
add ebp, 1
movzx eax, byte [ebp - 1]
mov ebx, dword [esp + 0x3c]
sub edi, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x44]
and eax, esi
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x40], ax
movzx eax, dl
cmp eax, ecx
ja 0x63093695
mov dword [esp + 0x24], esi
mov esi, ecx
test bl, bl
jne 0x63094e90
mov ebx, dword [esp + 0x20]
sub esi, eax
mov ecx, edx
shr dword [esp + 0x24], cl
mov dword [ebx + 0x1bc4], eax
movzx eax, word [esp + 0x40]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [eax], 0x19
mov eax, 0x19
jmp switch.0x63093348
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x48]
test ebx, ebx
jne 0x63094c01
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
mov dword [ebx + 0x1bc8], eax
mov dword [ebx], 0x16
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x58]
mov ebx, dword [eax + 0x50]
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], ebx
sub eax, 1
mov edx, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
and eax, edx
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x3c], ax
movzx eax, dl
cmp esi, eax
mov dword [esp + 0x44], eax
jae 0x630937d9
test edi, edi
je 0x630948c0
mov ecx, esi
mov esi, edi
mov edi, dword [esp + 0x24]
jmp 0x63093798
test esi, esi
je 0x63094df4
add ebp, 1
movzx eax, byte [ebp - 1]
mov edx, dword [esp + 0x40]
sub esi, 1
shl eax, cl
add ecx, 8
add edi, eax
mov eax, dword [esp + 0x48]
and eax, edi
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x3c], ax
movzx eax, dl
cmp eax, ecx
mov dword [esp + 0x44], eax
ja 0x63093790
mov dword [esp + 0x24], edi
mov edi, esi
mov esi, ecx
test bl, 0xf0
jne 0x63094ce0
movzx ecx, word [esp + 0x3c]
mov dword [esp + 0x44], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x58], ebx
and ebx, dword [esp + 0x24]
shr ebx, cl
mov ecx, dword [esp + 0x44]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x40]
lea edx, [ebx + edx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x3c], cx
lea ecx, [eax + edx]
mov dword [esp + 0x48], edx
cmp esi, ecx
jae 0x6309389f
test edi, edi
je 0x630948c0
mov edx, edi
mov ebx, dword [esp + 0x24]
mov edi, ebp
mov ebp, edx
jmp 0x63093849
test ebp, ebp
je 0x63094f67
add edi, 1
movzx edx, byte [edi - 1]
mov ecx, esi
add esi, 8
sub ebp, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x58]
and edx, ebx
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x5c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x3c], cx
lea ecx, [edx + eax]
mov dword [esp + 0x48], edx
cmp ecx, esi
ja 0x63093841
mov dword [esp + 0x24], ebx
movzx ebx, byte [esp + 0x5c]
mov ecx, ebp
mov ebp, edi
mov edi, ecx
mov ecx, eax
shr dword [esp + 0x24], cl
mov ecx, dword [esp + 0x20]
sub esi, eax
mov dword [esp + 0x44], edx
add eax, dword [ecx + 0x1bc4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
jmp 0x63094cf2
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
test ah, 4
mov ebx, eax
je 0x630942b1
cmp esi, 0xf
mov ebx, dword [esp + 0x24]
ja 0x63093922
test edi, edi
je 0x630948c0
mov ebx, dword [esp + 0x24]
mov ecx, esi
jmp 0x63093908
test edi, edi
je 0x63094a00
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, 0xf
jbe 0x63093900
mov dword [esp + 0x24], ebx
mov esi, dword [esp + 0x20]
mov edx, dword [esi + 0x20]
mov dword [esi + 0x40], ebx
test edx, edx
je 0x63093933
mov dword [edx + 0x14], ebx
test ah, 2
jne 0x630951ac
mov ebx, eax
xor esi, esi
and eax, 0x400
mov dword [esp + 0x24], 0
jmp 0x630942ce
mov dword [esp + 8], 1
mov ecx, dword [esi + 0x24]
mov al, 1
shl eax, cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
call dword [eax + 0x20]
test eax, eax
mov dword [esi + 0x34], eax
jne 0x63093a22
mov dword [edi], 0x1e
lea esi, [esi]
mov eax, 0xfffffffc
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x38], 1
nop
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x28]
mov ecx, eax
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x2c]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [ecx], ebp
mov dword [ecx + 0x10], eax
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], ebx
mov ebx, dword [edi + 0x28]
test ebx, ebx
jne 0x63093a05
cmp dword [esp + 0x30], eax
je 0x63093a92
mov eax, dword [edi]
cmp eax, 0x1c
ja 0x63093a92
cmp dword [esp + 0xa4], 4
jne 0x63093a05
cmp eax, 0x19
ja 0x63093a92
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x30]
sub ebp, dword [esp + 0x2c]
mov esi, dword [eax + 0x1c]
mov eax, dword [esi + 0x34]
test eax, eax
je 0x63093952
mov ebx, dword [esi + 0x28]
test ebx, ebx
jne 0x63093a41
mov ecx, dword [esi + 0x24]
mov bl, 1
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
shl ebx, cl
mov dword [esi + 0x28], ebx
cmp ebp, ebx
jae 0x630949c0
mov ecx, dword [esi + 0x30]
sub ebx, ecx
cmp ebx, ebp
cmova ebx, ebp
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp], eax
sub ecx, ebp
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
sub ebp, ebx
jne 0x63094a20
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x28]
add eax, ebx
cmp eax, edx
mov dword [esi + 0x30], eax
je 0x63094a11
mov eax, dword [esi + 0x2c]
cmp edx, eax
jbe 0x63093a92
add ebx, eax
mov dword [esi + 0x2c], ebx
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
sub ebx, dword [eax + 0x10]
sub esi, dword [eax + 4]
add dword [eax + 8], esi
add dword [eax + 0x14], ebx
add dword [edi + 0x1c], ebx
test ebx, ebx
je 0x63093aef
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x63093aef
mov edx, dword [edi + 0x10]
mov dword [esp + 8], ebx
test edx, edx
je 0x63094981
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.63099890
mov edx, dword [esp + 0xa0]
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 0x630948d0
cmp edx, 0xe
je 0x630948b0
cmp edx, 0x13
je 0x630948b0
xor edx, edx
mov edi, dword [esp + 0xa0]
add eax, edx
or ebx, esi
mov dword [edi + 0x2c], eax
je 0x63093b3e
cmp dword [esp + 0xa4], 4
mov eax, dword [esp + 0x38]
jne 0x63093995
mov esi, dword [esp + 0x38]
mov eax, 0xfffffffb
test esi, esi
cmovne eax, esi
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0x1f
ja 0x63093b97
test edi, edi
je 0x630948c0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x63093b7d
test edi, edi
je 0x63094970
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x63093b75
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x63093ba9
mov esi, dword [esp + 0x24]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x20]
test byte [eax + 0x11], 2
jne 0x63095131
mov dword [eax], 3
mov dword [esp + 0x24], 0
xor esi, esi
jmp 0x63094235
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, ebx
and eax, 0x400
test eax, eax
je 0x63093c85
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
cmp edi, eax
mov ecx, eax
mov edx, eax
cmovbe ecx, edi
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x63093c76
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x20]
test edx, edx
je 0x63093c57
mov eax, dword [edx + 0x10]
test eax, eax
mov dword [esp + 0x40], eax
je 0x63093c57
mov ebx, dword [edx + 0x14]
sub ebx, dword [esp + 0x3c]
mov edx, dword [edx + 0x18]
mov dword [esp + 4], ebp
mov eax, ebx
lea ebx, [ecx + ebx]
mov dword [esp + 0x3c], ebx
mov ebx, edx
sub ebx, eax
cmp dword [esp + 0x3c], edx
mov dword [esp + 0x3c], ecx
mov edx, ebx
cmovbe edx, ecx
add eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [edx + 0x10]
and bh, 2
jne 0x630950fb
mov eax, dword [esp + 0x20]
sub edi, ecx
add ebp, ecx
mov ebx, dword [eax + 0x40]
mov edx, ebx
mov dword [esp + 0x3c], ebx
sub edx, ecx
mov dword [eax + 0x40], edx
test edx, edx
jne 0x630948c0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
test bh, 8
mov dword [eax + 0x40], 0
mov dword [eax], 6
jne 0x63094495
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x6309451d
mov dword [eax + 0x1c], 0
jmp 0x6309451d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
mov ebx, dword [esp + 0x20]
mov dword [ebx], 0xf
test eax, eax
je 0x63094a50
cmp edi, eax
cmovbe eax, edi
mov ebx, eax
mov eax, dword [esp + 0x2c]
cmp ebx, eax
cmova ebx, eax
test ebx, ebx
je 0x630948c0
mov edx, dword [esp + 0x28]
mov dword [esp + 4], ebp
sub edi, ebx
mov dword [esp + 8], ebx
add ebp, ebx
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x20]
sub dword [esp + 0x2c], ebx
add dword [esp + 0x28], ebx
sub dword [eax + 0x40], ebx
mov eax, dword [eax]
jmp 0x6309333f
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
jmp 0x63093cd1
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 0x10
je 0x63094537
test edi, edi
je 0x630948c0
mov dword [esp + 0x44], esi
xor ebx, ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
mov esi, dword [esp + 0x20]
jmp 0x63093d66
cmp ebx, dword [esp + 0x40]
jae 0x63093d97
mov eax, dword [esp + 0x3c]
add ebx, 1
movzx ebp, byte [eax + ebx - 1]
mov eax, dword [esi + 0x20]
test eax, eax
mov edx, ebp
je 0x63093d93
mov edi, dword [eax + 0x24]
test edi, edi
je 0x63093d93
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x28]
jae 0x63093d93
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [edi + ecx], dl
test ebp, ebp
jne 0x63093d60
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x3c]
test byte [eax + 0x11], 2
jne 0x63094e25
sub edi, ebx
add ebp, ebx
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x630948c0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov dword [eax], 8
test bh, 2
je 0x630948f0
cmp esi, 0xf
ja 0x6309527c
test edi, edi
je 0x630948c0
lea eax, [ebp + 1]
mov ecx, esi
lea edx, [edi - 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xf
ja 0x63095285
test edx, edx
je 0x630949a5
lea eax, [ebp + 2]
sub edi, 2
add esi, 0x10
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp + 1]
shl eax, cl
add dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
movzx eax, word [edx + 0x18]
cmp eax, dword [esp + 0x24]
je 0x630948e0
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x3c]
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [edx], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
jmp 0x63093dd6
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x58], eax
add eax, dword [ebx + 0x64]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov edx, eax
cmp dword [esp + 0x40], edx
jae 0x63095476
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x4c]
mov eax, 1
shl eax, cl
mov ebp, edx
mov dword [esp + 0x3c], edx
lea eax, [eax - 1]
mov dword [esp + 0x24], eax
and eax, ebx
lea eax, [ebp + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx eax, cl
cmp esi, eax
jae 0x63093f21
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x63095122
mov ecx, esi
jmp 0x63093eed
test edi, edi
je 0x63094a00
add ebp, 1
movzx eax, byte [ebp - 1]
mov esi, dword [esp + 0x3c]
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
mov eax, dword [esp + 0x24]
and eax, ebx
lea edx, [esi + eax*4]
movzx esi, byte [edx + 1]
movzx edx, word [edx + 2]
cmp esi, ecx
mov eax, esi
ja 0x63093ee5
mov esi, ecx
mov dword [esp + 0x44], ebp
mov ecx, eax
cmp dx, 0xf
jbe 0x63094d33
cmp dx, 0x10
je 0x6309520a
cmp dx, 0x11
je 0x630952a3
lea edx, [eax + 7]
cmp esi, edx
jae 0x63093f85
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x63095122
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x63093f68
test edi, edi
je 0x63094a00
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x63093f60
mov eax, esi
mov dword [esp + 0x44], ebp
mov esi, ecx
mov ecx, eax
sub esi, eax
shr ebx, cl
sub esi, 7
xor ecx, ecx
mov edx, ebx
shr ebx, 7
and edx, 0x7f
add edx, 0xb
mov ebp, dword [esp + 0x40]
mov eax, ebp
add eax, edx
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x5c], eax
ja 0x630956f4
mov eax, ebp
mov ebp, dword [esp + 0x20]
mov word [esp + 0x66], cx
add eax, 0x38
mov dword [esp + 0x3c], eax
lea eax, [ebp + eax*2]
shl eax, 0x1e
shr eax, 0x1f
cmp edx, eax
cmovbe eax, edx
cmp edx, 6
mov dword [esp + 0x60], eax
ja 0x6309537a
mov eax, ebp
mov ebp, dword [esp + 0x3c]
cmp edx, 2
mov word [eax + ebp*2], cx
mov ebp, dword [esp + 0x40]
mov word [eax + ebp*2 + 0x72], cx
je 0x6309401a
cmp edx, 3
mov word [eax + ebp*2 + 0x74], cx
je 0x6309401a
cmp edx, 4
mov word [eax + ebp*2 + 0x76], cx
je 0x6309401a
cmp edx, 6
mov word [eax + ebp*2 + 0x78], cx
jne 0x6309401a
mov word [eax + ebp*2 + 0x7a], cx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
mov dword [edx + 0x68], eax
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x48]
jmp 0x63093e98
cmp esi, 0xd
ja 0x63095446
test edi, edi
je 0x630948c0
lea eax, [ebp + 1]
mov ecx, esi
lea edx, [edi - 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
mov ebx, dword [esp + 0x24]
cmp ecx, 0xd
ja 0x6309545c
test edx, edx
je 0x630949a5
lea eax, [ebp + 2]
sub edi, 2
add esi, 0x10
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp + 1]
shl eax, cl
add ebx, eax
mov dword [esp + 0x24], ebx
mov ecx, ebx
mov eax, ecx
mov ebx, ecx
mov ebp, dword [esp + 0x20]
shr eax, 5
mov edx, ecx
shr ebx, 0xa
and eax, 0x1f
and edx, 0x1f
and ebx, 0xf
add eax, 1
add edx, 0x101
add ebx, 4
shr ecx, 0xe
sub esi, 0xe
cmp eax, 0x1e
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x5c], ebx
mov dword [esp + 0x24], ecx
ja 0x63094dce
cmp edx, 0x11e
ja 0x63094dce
mov eax, dword [esp + 0x20]
mov ecx, esi
xor edx, edx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], ebx
mov dword [eax + 0x68], 0
mov dword [eax], 0x11
jmp 0x6309411c
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x5c]
mov edx, dword [eax + 0x68]
cmp ebx, edx
jbe 0x63094177
mov ecx, esi
mov dword [esp + 0x3c], ebp
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], ebx
cmp ecx, 2
ja 0x63094145
test edi, edi
je 0x6309528e
mov eax, dword [esp + 0x3c]
sub edi, 1
movzx eax, byte [eax]
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x3c], eax
add edx, 1
mov eax, esi
sub ecx, 3
and eax, 7
movzx ebp, word [edx + edx + 0x630c7a3e]
shr esi, 3
cmp edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x68], edx
mov word [ebx + ebp*2 + 0x70], ax
jb 0x6309411c
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
mov esi, ecx
cmp edx, 0x12
lea eax, [edx + edx + 0x630c7a40]
mov ecx, dword [esp + 0x20]
ja 0x630941af
mov esi, esi
lea edi, [edi]
movzx edx, word [eax]
add eax, 2
xor ebx, ebx
cmp eax, 0x630c7a66
mov word [ecx + edx*2 + 0x70], bx
jne 0x63094190
mov eax, dword [esp + 0x20]
mov dword [eax + 0x68], 0x13
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x4c], ebx
mov ebx, dword [esp + 0x50]
mov dword [eax + 0x54], 7
mov dword [esp + 8], 0x13
mov dword [esp], 0
mov dword [esp + 0x14], ebx
mov ebx, eax
add eax, 0x54
mov dword [esp + 0x10], eax
mov eax, ebx
add eax, 0x6c
mov dword [esp + 0xc], eax
mov eax, ebx
add eax, 0x70
mov dword [esp + 4], eax
call fcn.63096040
test eax, eax
mov dword [esp + 0x38], eax
je 0x63095418
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
cmp esi, 0xf
ja 0x63094267
test edi, edi
je 0x630948c0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x6309424d
test edi, edi
je 0x63094970
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x63094245
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x63094282
mov ebx, dword [esp + 0x24]
movzx edx, bl
shr ebx, 8
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
test ah, 2
jne 0x63094f2a
mov esi, dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x24], 0
mov dword [esi], 4
xor esi, esi
test ah, 4
jne 0x630938eb
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x20]
test edx, edx
je 0x63094dc7
mov ebx, eax
mov dword [edx + 0x10], 0
and eax, 0x400
mov edx, dword [esp + 0x20]
mov dword [edx], 5
jmp 0x63093bde
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x630948c0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 0x40]
mov byte [ecx], al
mov eax, ebx
mov dword [edx], 0x14
sub eax, 1
mov dword [esp + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
mov eax, 0x14
jmp switch.0x63093348
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
test eax, eax
je 0x63094c90
cmp esi, 0x1f
ja 0x630954e0
test edi, edi
je 0x630948c0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x6309540f
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x6309540f
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 2]
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x6309540f
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 3]
lea ebx, [ebp + 4]
sub edi, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x24], eax
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
add dword [edx + 0x14], eax
mov edx, dword [esp + 0x20]
add dword [edx + 0x1c], eax
test eax, eax
je 0x6309441b
mov ebp, dword [edx + 0x10]
mov dword [esp + 8], eax
mov edx, dword [esp + 0x28]
test ebp, ebp
je 0x63095360
sub edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.63099890
mov edx, dword [esp + 0x20]
mov dword [edx + 0x18], eax
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x30], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x10]
mov eax, dword [esp + 0x24]
test ecx, ecx
jne 0x63094450
mov edx, eax
mov ebp, eax
shr eax, 0x18
shl edx, 0x18
lea ecx, [edx + eax]
mov eax, ebp
shr eax, 8
and eax, 0xff00
lea edx, [ecx + eax]
mov eax, ebp
and eax, 0xff00
shl eax, 8
add eax, edx
mov edx, dword [esp + 0x20]
cmp eax, dword [edx + 0x18]
je 0x63094c6f
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, 0x1d
jmp switch.0x63093348
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 8
je 0x63093c9f
test edi, edi
je 0x630948c0
mov dword [esp + 0x44], esi
xor ebx, ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
mov esi, dword [esp + 0x20]
jmp 0x630944b7
cmp ebx, dword [esp + 0x40]
jae 0x630944e8
mov eax, dword [esp + 0x3c]
add ebx, 1
movzx ebp, byte [eax + ebx - 1]
mov eax, dword [esi + 0x20]
test eax, eax
mov edx, ebp
je 0x630944e4
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x630944e4
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x20]
jae 0x630944e4
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [edi + ecx], dl
test ebp, ebp
jne 0x630944b1
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x3c]
test byte [eax + 0x11], 2
jne 0x63094e44
mov eax, dword [esp + 0x40]
sub edi, ebx
add ebp, ebx
test eax, eax
jne 0x630948c0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
test bh, 0x10
mov dword [eax + 0x40], 0
mov dword [eax], 7
jne 0x63093d40
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x63093dcc
mov dword [eax + 0x24], 0
jmp 0x63093dcc
mov ebx, edi
mov dword [esp + 0x38], 0xfffffffd
mov edi, dword [esp + 0x20]
jmp 0x630939b0
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
test eax, eax
je 0x630953f6
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x630953f6
cmp esi, 0x1f
ja 0x63094617
test edi, edi
je 0x630948c0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x63095070
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x63095070
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 2]
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x63095070
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 3]
lea ebx, [ebp + 4]
sub edi, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, ebx
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
cmp dword [eax + 0x1c], ebx
je 0x6309558e
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.incorrect_length_check
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
shr dword [esp + 0x24], cl
cmp esi, 0x1f
ja 0x6309543f
test edi, edi
je 0x630948c0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x630951fa
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x630951fa
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 2]
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x630951fa
test edx, edx
je 0x63094e05
movzx eax, byte [ebp + 3]
lea ebx, [ebp + 4]
sub edi, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x24], eax
mov edx, dword [esp + 0x24]
movzx eax, dx
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x63094d9b
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
cmp esi, 0xf
ja 0x63095438
test edi, edi
je 0x630948c0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xf
ja 0x63095453
test edx, edx
je 0x63094e63
movzx eax, byte [ebp + 1]
lea ebx, [ebp + 2]
sub edi, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
cmp al, 8
mov dword [edx + 0x10], eax
je 0x63094d69
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edx], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 8]
test edx, edx
je 0x63094ca0
cmp esi, 0xf
ja 0x6309480f
test edi, edi
je 0x630948c0
lea eax, [edi - 1]
mov ecx, esi
lea ebx, [ebp + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xf
ja 0x63095521
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x63094e05
movzx eax, byte [ebp + 1]
lea ebx, [ebp + 2]
sub edi, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, ebx
cmp dword [esp + 0x24], 0x8b1f
jne 0x63094822
test dl, 2
jne 0x6309552c
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], 0
mov eax, dword [eax + 0x20]
test eax, eax
je 0x6309483b
mov dword [eax + 0x30], 0xffffffff
and edx, 1
je 0x63095079
mov ecx, dword [esp + 0x24]
mov edx, 0x8421085
mov eax, ecx
shr ecx, 8
shl eax, 8
movzx eax, ax
add ecx, eax
mov eax, ecx
mul edx
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 0x63095079
mov eax, dword [esp + 0x24]
and eax, 0xf
cmp eax, 8
je 0x630955a3
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov edx, 0x100
jmp 0x63093b1c
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x630939b0
sub eax, 0xffffff80
jmp 0x63093b1a
mov ebp, dword [esp + 0x3c]
xor esi, esi
mov dword [esp + 0x24], 0
nop
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x6309490d
sar ebx, 9
mov dword [eax + 0x30], 1
mov edx, ebx
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.63099890
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov eax, 0xb
mov dword [ebx], 0xb
jmp switch.0x63093348
mov eax, dword [eax + 4]
test eax, eax
jne case.default.0x63093348
mov dword [esp + 0x34], 0
jmp 0x630932e2
mov ebx, edi
mov dword [esp + 0x24], edx
mov esi, ecx
mov edi, dword [esp + 0x20]
jmp 0x630939b0
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.63099090
jmp 0x63093ae2
mov edi, dword [esp + 0x20]
mov esi, ecx
mov ebp, dword [esp + 0x3c]
xor ebx, ebx
jmp 0x630939b0
mov edx, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp], eax
sub edx, ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esi + 0x28]
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], eax
jmp 0x63093a92
mov eax, 0xfffffffe
jmp 0x63093995
mov dword [esp + 0x24], ebx
mov esi, ecx
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x630939b0
mov dword [esi + 0x30], 0
jmp 0x63093a86
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x34]
mov dword [esp + 8], ebp
sub eax, ebp
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esi + 0x28]
mov dword [esi + 0x30], ebp
mov dword [esi + 0x2c], eax
jmp 0x63093a92
mov eax, dword [esp + 0x20]
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x63093348
mov eax, dword [esp + 0x28]
sub eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x40]
mov edx, ecx
mov ebx, dword [esp + 0x2c]
mov eax, ecx
cmp ecx, ebx
mov ecx, ebx
cmova eax, ebx
sub ecx, eax
sub edx, eax
mov ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov dword [eax + 0x40], edx
mov eax, dword [esp + 0x3c]
lea edx, [eax + 4]
mov eax, dword [esp + 0x28]
cmp eax, edx
mov edx, eax
setae cl
add edx, 4
cmp dword [esp + 0x3c], edx
setae dl
or edx, ecx
cmp ebx, 9
seta cl
test dl, cl
je 0x63094f00
mov edx, dword [esp + 0x3c]
or edx, eax
and edx, 3
jne 0x63094f00
lea ecx, [ebx - 4]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x40], esi
shr ecx, 2
add ecx, 1
lea eax, [ecx*4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + edx*4]
mov dword [ebx + edx*4], esi
add edx, 1
cmp edx, ecx
jb 0x63094af6
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
mov ecx, ebx
sub ecx, eax
add edx, eax
mov dword [esp + 0x40], ecx
mov ecx, eax
add eax, dword [esp + 0x3c]
cmp ecx, ebx
je 0x63094b4c
movzx ecx, byte [eax]
cmp dword [esp + 0x40], 1
mov byte [edx], cl
je 0x63094b4c
movzx ecx, byte [eax + 1]
cmp dword [esp + 0x40], 2
mov byte [edx + 1], cl
je 0x63094b4c
movzx eax, byte [eax + 2]
mov byte [edx + 2], al
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], ebx
mov edx, dword [eax + 0x40]
test edx, edx
je 0x63094b62
mov eax, dword [eax]
jmp 0x6309333f
mov dword [eax], 0x14
mov eax, 0x14
jmp switch.0x63093348
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x28]
mov dword [eax + 0xc], ebx
mov ebx, dword [esp + 0x2c]
mov dword [eax], ebp
mov dword [eax + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x10], ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x38], edi
mov dword [ebx + 0x3c], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.63099bd0
mov eax, dword [esp + 0xa0]
mov esi, dword [ebx + 0x38]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], esi
mov esi, dword [ebx + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebx]
cmp eax, 0xb
jne 0x6309333f
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x1bc4], 0xffffffff
jmp switch.0x63093348
cmp esi, ebx
jae 0x63094c38
test edi, edi
je 0x630948c0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x63094c1d
test edi, edi
je 0x63094970
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x63094c15
mov dword [esp + 0x24], edx
mov esi, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x20]
sub esi, ebx
sub eax, 1
and eax, edx
add eax, dword [ecx + 0x40]
mov dword [ecx + 0x40], eax
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], edx
add dword [ecx + 0x1bc4], ebx
mov ebx, ecx
jmp 0x6309372a
mov esi, dword [esp + 0x2c]
mov eax, dword [edx + 8]
mov ebp, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], esi
xor esi, esi
lea esi, [esi]
lea edi, [edi]
mov ebx, dword [esp + 0x20]
mov dword [ebx], 0x1b
jmp 0x6309456c
mov dword [eax], 0xc
mov eax, 0xc
jmp switch.0x63093348
mov eax, dword [ebx + 0x1bc0]
test eax, eax
je 0x630935d8
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x630c70c5
mov dword [ebx], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov edx, dword [edx + 0x1bc4]
mov dword [esp + 0x40], edx
add edx, eax
mov ecx, eax
mov eax, dword [esp + 0x20]
shr dword [esp + 0x24], cl
sub esi, dword [esp + 0x44]
test bl, 0x40
mov dword [eax + 0x1bc4], edx
je 0x63094ee0
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x630c70af
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
shr ebx, cl
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
sub esi, eax
mov eax, ecx
add eax, 1
mov dword [ebp + 0x68], eax
mov dword [esp + 0x40], eax
mov word [ebp + ecx*2 + 0x70], dx
mov edx, dword [esp + 0x48]
jmp 0x63093e98
mov dword [ebx], 0x10
mov eax, 0x10
jmp 0x630934eb
test dword [esp + 0x24], 0xe000
je 0x63095320
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.unknown_header_flags_set
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
cmp dword [esp + 0xa4], 6
mov esi, dword [esp + 0x20]
mov ebp, ebx
mov dword [esi + 0x40], eax
mov dword [esi], 0xe
je 0x630956df
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x63093cc7
xor eax, eax
jmp 0x630942ce
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x3c]
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov ebx, esi
mov dword [esp + 0x24], edi
mov esi, ecx
mov edi, dword [esp + 0x20]
jmp 0x630939b0
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
jmp 0x630939b0
mov ebx, edi
mov dword [esp + 0x24], esi
mov edi, dword [esp + 0x20]
mov esi, ecx
jmp 0x630939b0
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.63099890
mov edx, dword [esp + 0x20]
mov dword [edx + 0x18], eax
jmp 0x63093db5
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.63099890
mov edx, dword [esp + 0x20]
mov dword [edx + 0x18], eax
jmp 0x63094506
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
jmp 0x630939b0
mov ebx, dword [esp + 0x20]
sub eax, ecx
add eax, dword [ebx + 0x34]
mov dword [esp + 0x3c], eax
mov eax, ebx
jmp 0x630935fb
test bl, 0xf0
je 0x63094f78
mov ecx, edx
mov edx, dword [esp + 0x20]
sub esi, eax
shr dword [esp + 0x24], cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x40]
mov dword [edx + 0x40], eax
test bl, 0x20
je 0x63095181
mov eax, dword [esp + 0x20]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x63093348
mov edx, eax
movzx eax, word [esp + 0x3c]
and ebx, 0xf
mov dword [edx + 0x48], ebx
mov dword [edx], 0x17
mov dword [edx + 0x44], eax
jmp 0x63093537
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], ebx
lea ecx, [eax + ebx]
nop
add eax, 1
movzx ebx, byte [eax - 1]
add edx, 1
cmp eax, ecx
mov byte [edx - 1], bl
jne 0x63094f10
mov ebx, dword [esp + 0x3c]
jmp 0x63094b4c
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.63099890
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x10]
jmp 0x63094292
mov dword [esp + 0x24], ebx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x20]
jmp 0x630939b0
movzx ecx, word [esp + 0x40]
mov dword [esp + 0x40], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x48], ebx
and ebx, dword [esp + 0x24]
shr ebx, cl
mov ecx, dword [esp + 0x40]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x3c]
lea edx, [ebx + edx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [eax + edx]
mov dword [esp + 0x58], edx
cmp esi, ecx
mov dword [esp + 0x5c], ecx
jae 0x63095031
test edi, edi
je 0x630948c0
mov ebx, dword [esp + 0x24]
jmp 0x63094fdd
test edi, edi
je 0x63095122
add ebp, 1
movzx edx, byte [ebp - 1]
mov ecx, esi
add esi, 8
sub edi, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x48]
and edx, ebx
shr edx, cl
add edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x58], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [edx + eax]
cmp ecx, esi
ja 0x63094fd5
mov dword [esp + 0x24], ebx
mov dword [esp + 0x5c], ecx
movzx ebx, byte [esp + 0x58]
mov dword [esp + 0x58], edx
sub esi, eax
mov ecx, eax
mov edx, dword [esp + 0x24]
mov eax, esi
mov esi, dword [esp + 0x58]
shr edx, cl
sub eax, esi
mov ecx, esi
shr edx, cl
mov esi, eax
movzx eax, word [esp + 0x44]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x5c]
test bl, bl
mov edx, dword [esp + 0x20]
mov dword [edx + 0x1bc4], ecx
mov dword [edx + 0x40], eax
jne 0x63094eb3
jmp 0x630936fa
mov esi, ecx
mov edi, edx
jmp 0x63094615
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_header_check
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x20]
mov dword [eax + 0x4c], 0x630c7240
mov dword [eax + 0x54], 9
mov dword [eax + 0x50], 0x630c71c0
mov dword [eax + 0x58], 5
mov dword [eax], 0x13
je 0x630956cc
mov eax, 0x13
jmp 0x630934eb
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_block_type
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp 0x630934eb
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebp
mov dword [esp + 0x3c], ecx
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.63099890
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x18], eax
jmp 0x63093c60
mov dword [esp + 0x24], ebx
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x630939b0
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 4
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
shr eax, 8
mov byte [esp + 0x7d], al
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x7e], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 0x18
mov byte [esp + 0x7f], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.63099890
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x63093bb7
test bl, 0x40
je 0x63095304
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x630c7093
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.63099890
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], eax
xor esi, esi
mov dword [esp + 0x24], 0
mov eax, ebx
and eax, 0x400
jmp 0x630942ce
mov esi, ecx
mov edi, edx
jmp 0x630946ee
mov edi, edx
jmp 0x630933e1
lea edx, [eax + 2]
cmp esi, edx
jae 0x6309524a
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x63095122
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x6309522d
test edi, edi
je 0x63094a00
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x63095225
mov eax, esi
mov dword [esp + 0x44], ebp
mov esi, ecx
mov ecx, eax
sub esi, eax
mov eax, dword [esp + 0x40]
shr ebx, cl
test eax, eax
je 0x630956f4
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
sub esi, 2
movzx ecx, word [eax + edx*2 + 0x6e]
mov edx, ebx
shr ebx, 2
and edx, 3
add edx, 3
jmp 0x63093f9b
mov dword [esp + 0x3c], ebp
jmp 0x63093e31
mov esi, ecx
mov edi, edx
jmp 0x63093e31
mov ebx, edi
mov dword [esp + 0x24], esi
mov ebp, dword [esp + 0x3c]
mov esi, ecx
mov edi, dword [esp + 0x20]
jmp 0x630939b0
lea edx, [eax + 3]
cmp esi, edx
jae 0x630952e5
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x63095122
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x630952c8
test edi, edi
je 0x63094a00
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x630952c0
mov eax, esi
mov dword [esp + 0x44], ebp
mov esi, ecx
mov ecx, eax
shr ebx, cl
mov ecx, 0xfffffffd
mov edx, ebx
sub ecx, eax
shr ebx, 3
and edx, 7
add esi, ecx
xor ecx, ecx
add edx, 3
jmp 0x63093f9b
mov eax, dword [esp + 0x20]
and ebx, 0xf
mov dword [eax + 0x48], ebx
mov dword [eax], 0x15
jmp 0x63093717
mov edx, ebp
jmp 0x630934ae
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x63095337
mov edx, dword [esp + 0x24]
shr edx, 8
and edx, 1
mov dword [eax], edx
test dword [esp + 0x24], 0x200
jne 0x630954e7
mov eax, dword [esp + 0x20]
mov ebp, ebx
mov dword [esp + 0x24], 0
xor esi, esi
mov dword [eax], 2
jmp 0x63093b65
sub edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.63099090
jmp 0x63094406
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x63095792
mov dword [esp + 0x6c], edx
sub edx, 2
shr edx, 1
add edx, 1
mov dword [esp + 0x24], edx
add edx, edx
mov dword [esp + 0x68], edx
movzx edx, word [esp + 0x66]
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x44]
mov ecx, edx
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*2]
xor eax, eax
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [esp + 0x24]
jb 0x630953bd
mov edx, dword [esp + 0x68]
add dword [esp + 0x40], edx
cmp edx, dword [esp + 0x6c]
mov dword [esp + 0x44], ebp
je 0x6309401a
movzx ecx, word [esp + 0x66]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
mov word [eax + edx*2 + 0x70], cx
jmp 0x6309401a
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [edi], 0x1c
mov dword [esp + 0x38], 1
jmp 0x630939b0
mov esi, ecx
mov edi, edx
jmp 0x630943c1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], 0
mov dword [eax + 0x68], 0
mov dword [eax], 0x12
mov ebx, eax
jmp 0x63093e80
mov ebx, ebp
jmp 0x6309477a
mov ebx, ebp
jmp 0x630946ee
mov dword [esp + 0x3c], ebp
mov ecx, dword [esp + 0x24]
jmp 0x6309408c
mov esi, ecx
mov edi, edx
jmp 0x6309477a
mov esi, ecx
mov edi, edx
mov ecx, dword [esp + 0x24]
jmp 0x6309408c
mov ebp, ebx
mov edi, dword [esp + 0x20]
xor ebx, ebx
jmp 0x630939b0
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x24], ebx
cmp word [eax + 0x270], 0
jne 0x63095627
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.invalid_code____missing_end_of_block
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov ebx, edi
mov edx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 0x10], edx
mov eax, dword [esp + 0x24]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], eax
mov eax, 2
jmp 0x63093995
mov ebx, ebp
jmp 0x630943c1
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.63099890
mov dword [esi + 0x18], eax
jmp 0x63095345
mov esi, ecx
mov edi, dword [esp + 0x3c]
jmp 0x6309480d
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.63099890
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x7c]
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x7d], 0x8b
mov dword [esi + 0x18], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.63099890
mov dword [esi], 1
mov dword [esi + 0x18], eax
mov eax, 1
xor esi, esi
mov dword [esp + 0x24], 0
jmp switch.0x63093348
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], 0
jmp 0x630953fc
shr dword [esp + 0x24], 4
mov eax, dword [esp + 0x24]
and eax, 0xf
mov ecx, eax
mov eax, dword [esp + 0x20]
add ecx, 8
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x6309569f
mov eax, dword [esp + 0x20]
mov dword [eax + 0x24], ecx
mov esi, dword [esp + 0x20]
mov eax, 1
shl eax, cl
mov dword [esi + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.63099090
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0xa0]
mov dword [esi + 0x18], eax
mov dword [esp + 0x24], 0
and ecx, 0x200
mov dword [ebx + 0x30], eax
cmp ecx, 1
sbb eax, eax
and eax, 2
add eax, 9
mov dword [esi], eax
xor esi, esi
jmp 0x6309333f
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x4c], ebx
lea ebx, [eax + 0x6c]
mov dword [eax + 0x54], 9
mov dword [esp + 0x14], edx
mov edx, eax
add eax, 0x54
mov dword [esp + 0xc], ebx
mov dword [esp], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, edx
add eax, 0x70
mov dword [esp + 4], eax
call fcn.63096040
test eax, eax
mov dword [esp + 0x38], eax
je 0x6309571e
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.invalid_literal_lengths_set
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
cmp ecx, eax
jbe 0x630955ca
mov eax, dword [esp + 0xa0]
sub esi, 4
mov dword [eax + 0x18], str.invalid_window_size
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov ebx, edi
shr dword [esp + 0x24], 3
mov edi, eax
sub esi, 3
mov ebp, edx
jmp 0x630939b0
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], 0
jmp 0x630939b0
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x24], ebx
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x6c]
mov dword [edx + 0x58], 6
mov dword [edx + 0x50], eax
mov eax, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edx
mov edx, eax
add eax, 0x58
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x64]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x60]
mov dword [esp], 2
lea eax, [edx + eax*2 + 0x70]
mov dword [esp + 4], eax
call fcn.63096040
test eax, eax
mov dword [esp + 0x38], eax
je 0x63093608
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_distances_set
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x63093348
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x60], 1
mov word [ebp + eax*2], cx
mov eax, dword [esp + 0x40]
lea ecx, [edx - 1]
sub edx, 3
shr edx, 1
mov dword [esp + 0x6c], ecx
add eax, 1
add edx, 1
sub ecx, 1
mov dword [esp + 0x40], eax
lea eax, [edx + edx]
mov dword [esp + 0x24], edx
mov dword [esp + 0x68], eax
je 0x630953df
jmp 0x6309539c