Function at 0x445d10
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.0x445dae
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax + 0x1c]
test ebp, ebp
je case.default.0x445dae
mov edi, dword [eax + 0xc]
test edi, edi
je case.default.0x445dae
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
test edx, edx
je 0x445f70
mov esi, dword [ebp]
cmp esi, 0xb
jne 0x445d6b
mov dword [ebp], 0xc
mov esi, 0xc
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebp
mov ebx, dword [ebp + 0x38]
mov eax, dword [eax + 0x10]
sub ecx, 5
mov dword [esp + 0x30], ebx
mov ebx, dword [ebp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov ebp, ebx
mov ebx, edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], eax
cmp esi, 0x1e
ja case.default.0x445dae
jmp dword [esi*4 + 0x508290]
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 8]
test edx, edx
jne 0x447870
mov dword [eax], 0xc
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
test edx, edx
je 0x446068
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov ecx, ebx
and ebx, 0xfffffff8
mov dword [ebp], 0x1a
and ecx, 7
shr dword [esp + 0x30], cl
mov eax, dword [ebp + 8]
test eax, eax
je 0x447460
cmp ebx, 0x1f
ja 0x448063
mov eax, dword [esp + 0x28]
test eax, eax
je 0x447855
lea ecx, [edx + 1]
lea esi, [eax - 1]
movzx eax, byte [edx]
mov dword [esp + 0x2c], ecx
mov ecx, ebx
shl eax, cl
lea ecx, [ebx + 8]
add dword [esp + 0x30], eax
cmp ecx, 0x1f
ja 0x447fad
test esi, esi
je 0x447dfe
mov eax, dword [esp + 0x28]
lea esi, [eax - 2]
lea eax, [edx + 2]
mov dword [esp + 0x2c], eax
movzx eax, byte [edx + 1]
shl eax, cl
lea ecx, [ebx + 0x10]
add dword [esp + 0x30], eax
cmp ecx, 0x1f
ja 0x447fad
test esi, esi
je 0x447dfe
mov eax, dword [esp + 0x28]
lea esi, [eax - 3]
movzx eax, byte [edx + 2]
mov dword [esp + 0x40], esi
lea esi, [edx + 3]
shl eax, cl
lea ecx, [ebx + 0x18]
add dword [esp + 0x30], eax
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x30]
cmp ecx, 0x1f
ja 0x4480ad
mov eax, dword [esp + 0x40]
test eax, eax
je 0x447dfe
lea eax, [edx + 4]
sub dword [esp + 0x28], 4
add ebx, 0x20
mov dword [esp + 0x2c], eax
movzx eax, byte [edx + 3]
shl eax, cl
mov ecx, esi
add ecx, eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0xa0]
mov ecx, dword [ebp + 0x10]
sub edx, esi
add dword [eax + 0x14], edx
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x1c], edx
test edx, edx
je 0x445f10
sub esi, dword [esp + 0x3c]
mov dword [esp + 8], edx
add esi, edi
test ecx, ecx
je 0x447ded
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0xa0]
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0x18], eax
mov dword [edx + 0x30], eax
mov esi, dword [esp + 0x30]
mov edx, esi
test ecx, ecx
jne 0x445f3e
mov ecx, esi
shl edx, 0x18
shr ecx, 0x18
add ecx, edx
mov edx, esi
shr edx, 8
and edx, 0xff00
add edx, ecx
mov ecx, esi
shl ecx, 8
and ecx, 0xff0000
add edx, ecx
cmp edx, eax
je 0x447440
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x34]
mov dword [ebp], 0x1d
mov dword [esp + 0x3c], eax
jmp 0x446240
test eax, eax
je 0x445d57
mov dword [esp + 0x40], 0xfffffffe
jmp 0x44633c
cmp dword [esp + 0xa4], 6
mov dword [esi + 0x4c], 0x5083a0
mov dword [esi + 0x54], 9
mov dword [esi + 0x50], 0x508320
mov dword [esi + 0x58], 5
mov dword [esi], 0x13
je 0x4482e2
shr dword [esp + 0x30], 3
sub ebp, 3
mov ebx, eax
nop
mov eax, dword [esp + 0x2c]
mov dword [eax], 0x14
mov eax, dword [esp + 0x28]
cmp eax, 5
jbe 0x447098
mov edx, dword [esp + 0x34]
cmp edx, 0x101
jbe 0x447098
mov esi, dword [esp + 0xa0]
mov dword [esi + 0xc], edi
mov edi, esi
mov dword [esi], ebx
mov dword [esi + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x10], edx
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x3c], ebp
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._inflate_fast
mov eax, dword [esp + 0xa0]
mov ebp, dword [esi + 0x3c]
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x38]
mov esi, dword [esi]
mov dword [esp + 0x30], eax
cmp esi, 0xb
jne 0x445da5
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x1bc4], 0xffffffff
jmp case.0x445dae.11
cmp ebp, 2
ja 0x447f55
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x447fc3
lea eax, [ebx + 1]
movzx ebx, byte [ebx]
mov ecx, ebp
sub dword [esp + 0x28], 1
add ebp, 8
shl ebx, cl
add dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 1
mov dword [esi + 4], ecx
mov ecx, ebx
shr ecx, 1
and ecx, 3
cmp ecx, 2
je 0x446d41
cmp ecx, 3
je 0x447a7d
cmp ecx, 1
je 0x445f85
mov dword [esi], 0xd
shr ebx, 3
sub ebp, 3
mov dword [esp + 0x30], ebx
mov ebx, eax
lea esi, [esi]
nop
mov ecx, ebp
and ebp, 0xfffffff8
and ecx, 7
shr dword [esp + 0x30], cl
cmp ebp, 0x1f
ja 0x447f39
mov edx, dword [esp + 0x28]
test edx, edx
je 0x4465b8
lea esi, [edx - 1]
movzx edx, byte [ebx]
mov ecx, ebp
lea eax, [ebx + 1]
shl edx, cl
lea ecx, [ebp + 8]
add dword [esp + 0x30], edx
cmp ecx, 0x1f
ja 0x447711
test esi, esi
je 0x447982
mov edx, dword [esp + 0x28]
lea eax, [ebx + 2]
lea esi, [edx - 2]
movzx edx, byte [ebx + 1]
shl edx, cl
lea ecx, [ebp + 0x10]
add dword [esp + 0x30], edx
cmp ecx, 0x1f
ja 0x447711
test esi, esi
je 0x447982
mov edx, dword [esp + 0x28]
lea eax, [ebx + 3]
lea esi, [edx - 3]
movzx edx, byte [ebx + 2]
shl edx, cl
lea ecx, [ebp + 0x18]
add dword [esp + 0x30], edx
cmp ecx, 0x1f
ja 0x447711
test esi, esi
je 0x447982
movzx edx, byte [ebx + 3]
sub dword [esp + 0x28], 4
lea eax, [ebx + 4]
add ebp, 0x20
shl edx, cl
add dword [esp + 0x30], edx
mov ecx, dword [esp + 0x30]
movzx edx, cx
shr ecx, 0x10
xor ecx, 0xffff
cmp edx, ecx
je 0x447a2d
mov edx, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov dword [edx + 0x18], str.invalid_stored_block_lengths
mov edx, eax
mov dword [ebp], 0x1d
jmp 0x446240
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x48]
test edx, edx
jne 0x4477b0
mov eax, dword [esp + 0x2c]
mov dword [eax], 0x18
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x4465b8
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x44]
mov esi, dword [esp + 0x3c]
mov edx, esi
sub edx, ecx
cmp eax, edx
jbe 0x447720
add eax, ecx
mov ecx, eax
sub ecx, esi
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0x2c], ecx
jae 0x4471c8
mov edx, dword [esi + 0x1bc0]
test edx, edx
je 0x4471c8
mov eax, dword [esp + 0xa0]
mov edx, ebx
mov ebx, ebp
mov ebp, esi
mov dword [eax + 0x18], 0x508245
mov dword [esi], 0x1d
nop
mov dword [esp + 0x40], 0xfffffffd
lea esi, [esi]
nop
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0xc], edi
mov edi, eax
mov eax, dword [esp + 0x34]
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 0x28]
mov dword [edi + 0x10], eax
mov dword [edi], edx
mov edi, dword [esp + 0x30]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x38], edi
test ecx, ecx
jne 0x446289
cmp dword [ebp], 0x19
ja 0x4462bd
cmp dword [esp + 0x3c], eax
je 0x4462bd
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa0]
call sym._updatewindow
test eax, eax
jne 0x447dd9
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov esi, ecx
mov edi, dword [esp + 0x38]
sub edi, dword [esp + 0x28]
sub esi, eax
add dword [ebx + 8], edi
add dword [ebx + 0x14], esi
add dword [ebp + 0x1c], esi
test edx, edx
je 0x4462f0
test esi, esi
jne 0x446e80
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0x3c]
test edx, edx
je 0x4462fd
add eax, 0x40
mov edx, dword [ebp]
cmp edx, 0xb
je 0x446e78
cmp edx, 0x13
je 0x446313
cmp edx, 0xe
jne 0x446318
add eax, 0x100
mov ebx, dword [esp + 0xa0]
or edi, esi
mov dword [ebx + 0x2c], eax
je 0x446330
cmp dword [esp + 0xa4], 4
jne 0x44633c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x447a5d
mov eax, dword [esp + 0x40]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x48]
test edx, edx
jne 0x4473c0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x40]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x1bc8], eax
mov dword [edx], 0x16
mov eax, dword [esp + 0x2c]
mov esi, 0xffffffff
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x50]
shl esi, cl
mov dword [esp + 0x44], edx
not esi
mov eax, esi
and eax, dword [esp + 0x30]
mov dword [esp + 0x4c], esi
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax]
movzx esi, word [eax + 2]
movzx eax, dl
mov byte [esp + 0x40], cl
mov dword [esp + 0x48], eax
cmp eax, ebp
jbe 0x44641d
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
mov dword [esp + 0x54], edi
mov ecx, ebp
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
jmp 0x4463d8
test ebp, ebp
je 0x4471a0
movzx eax, byte [ebx]
mov edx, dword [esp + 0x44]
add ebx, 1
sub ebp, 1
shl eax, cl
add ecx, 8
add edi, eax
mov eax, dword [esp + 0x4c]
and eax, edi
lea eax, [edx + eax*4]
movzx edx, byte [eax]
movzx esi, word [eax + 2]
mov byte [esp + 0x40], dl
movzx edx, byte [eax + 1]
movzx eax, dl
mov dword [esp + 0x48], eax
cmp eax, ecx
ja 0x4463d0
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x28], ebp
mov ebp, ecx
mov ecx, eax
test byte [esp + 0x40], 0xf0
je 0x447567
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x1bc4]
add eax, ecx
shr dword [esp + 0x30], cl
mov ecx, dword [esp + 0x2c]
sub ebp, dword [esp + 0x48]
mov dword [ecx + 0x1bc4], eax
test byte [esp + 0x40], 0x40
je 0x447738
mov eax, dword [esp + 0xa0]
mov edx, ebx
mov ebx, ebp
mov ebp, ecx
mov dword [eax + 0x18], 0x50822f
mov dword [ecx], 0x1d
jmp 0x446240
cmp ebp, 0x1f
ja 0x447f47
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
movzx edx, byte [ebx]
mov ecx, ebp
lea esi, [eax - 1]
lea eax, [ebx + 1]
shl edx, cl
lea ecx, [ebp + 8]
add dword [esp + 0x30], edx
cmp ecx, 0x1f
ja 0x447708
test esi, esi
je 0x447982
movzx edx, byte [ebx + 1]
mov eax, dword [esp + 0x28]
shl edx, cl
lea ecx, [ebp + 0x10]
lea esi, [eax - 2]
add dword [esp + 0x30], edx
lea eax, [ebx + 2]
cmp ecx, 0x1f
ja 0x447708
test esi, esi
je 0x447982
mov eax, dword [esp + 0x28]
movzx edx, byte [ebx + 2]
add ebp, 0x18
lea esi, [eax - 3]
shl edx, cl
lea eax, [ebx + 3]
add dword [esp + 0x30], edx
cmp ebp, 0x1f
ja 0x447708
test esi, esi
je 0x447fdd
movzx edx, byte [ebx + 3]
mov ecx, ebp
sub dword [esp + 0x28], 4
lea eax, [ebx + 4]
shl edx, cl
add dword [esp + 0x30], edx
mov esi, dword [esp + 0x30]
mov dword [esp + 0x30], 0
xor ebp, ebp
mov ecx, esi
mov ebx, esi
mov edx, esi
shr ecx, 0x18
shl ebx, 0x18
shr edx, 8
add ebx, ecx
and edx, 0xff00
lea ecx, [ebx + edx]
mov edx, esi
mov ebx, dword [esp + 0x2c]
shl edx, 8
and edx, 0xff0000
add edx, ecx
mov ecx, dword [esp + 0xa0]
mov dword [ebx + 0x18], edx
mov dword [ecx + 0x30], edx
mov dword [ebx], 0xa
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x44802c
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._adler32
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov dword [esi + 0x30], eax
mov dword [edx], 0xb
cmp dword [esp + 0x50], 1
ja case.0x445dae.12
lea esi, [esi]
mov edx, ebx
mov dword [esp + 0x40], 0
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
jmp 0x446250
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x40]
test edx, edx
je 0x446ff8
mov ecx, dword [esp + 0x28]
mov eax, ecx
cmp ecx, edx
ja 0x4473a0
mov esi, eax
mov eax, dword [esp + 0x34]
cmp esi, eax
ja 0x4473b0
test esi, esi
je 0x4465b8
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
add ebx, esi
mov dword [esp], edi
add edi, esi
call sym._memcpy
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x28], esi
sub dword [esp + 0x34], esi
sub dword [eax + 0x40], esi
mov esi, dword [eax]
jmp 0x445da5
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x60]
mov ecx, dword [edx + 0x68]
mov dword [esp + 0x58], eax
add eax, dword [edx + 0x64]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], eax
cmp eax, ecx
jbe 0x4474a7
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], ebx
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x4c]
mov eax, 0xffffffff
shl eax, cl
mov dword [esp + 0x30], esi
not eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
and ecx, edx
lea esi, [edi + ecx*4]
movzx ecx, byte [esi + 1]
movzx edi, word [esi + 2]
movzx esi, cl
cmp ebp, esi
jae 0x4466fa
test eax, eax
je 0x447bf1
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x44]
mov ecx, ebp
jmp 0x4466bc
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x4472c0
movzx esi, byte [ebx]
mov eax, dword [esp + 0x30]
add ebx, 1
sub dword [esp + 0x28], 1
shl esi, cl
add ecx, 8
add edx, esi
mov esi, dword [esp + 0x40]
and esi, edx
lea esi, [eax + esi*4]
movzx ebp, byte [esi + 1]
movzx edi, word [esi + 2]
mov eax, ebp
movzx esi, al
cmp esi, ecx
ja 0x4466b0
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x28]
mov ebx, ebp
mov ebp, ecx
mov ecx, ebx
cmp di, 0xf
jbe 0x447470
cmp di, 0x10
je 0x447d5a
cmp di, 0x11
je 0x447aa7
lea edi, [esi + 7]
cmp ebp, edi
jae 0x44675c
test eax, eax
je 0x447bf1
mov ecx, ebp
mov ebx, dword [esp + 0x44]
mov ebp, esi
mov esi, edi
jmp 0x446740
test eax, eax
je 0x4479df
movzx edi, byte [ebx]
add ebx, 1
sub eax, 1
shl edi, cl
add ecx, 8
add edx, edi
cmp ecx, esi
jb 0x446738
mov dword [esp + 0x44], ebx
mov esi, ebp
mov ebp, ecx
mov ecx, esi
xor ebx, ebx
sub ebp, esi
shr edx, cl
mov word [esp + 0x5c], bx
sub ebp, 7
mov ecx, edx
shr edx, 7
and ecx, 0x7f
lea edi, [ecx + 0xb]
mov dword [esp + 0x28], edi
mov esi, edi
mov ecx, dword [esp + 0x48]
add ecx, esi
cmp ecx, dword [esp + 0x54]
ja 0x448266
mov ecx, dword [esp + 0x2c]
lea edi, [esi - 1]
mov dword [esp + 0x48], edi
mov esi, edi
mov ebx, dword [ecx + 0x68]
lea edi, [ebx + 0x38]
mov dword [esp + 0x64], ebx
lea ecx, [ecx + edi*2]
shr ecx, 1
and ecx, 1
cmp esi, 3
jbe 0x44808d
mov dword [esp + 0x60], ebx
test ecx, ecx
je 0x4467dc
add ebx, 1
movzx esi, word [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x2c]
mov word [ebx + edi*2], si
mov esi, dword [esp + 0x28]
lea ebx, [esi - 2]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x5c]
sub ebx, ecx
add ecx, edi
mov edi, dword [esp + 0x2c]
shl esi, 0x10
mov dword [esp + 0x68], ebx
lea ecx, [edi + ecx*2]
mov edi, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x6c], esi
shr edi, 1
movzx esi, word [esp + 0x5c]
or esi, dword [esp + 0x6c]
lea edi, [ecx + edi*4]
nop
mov dword [ecx], esi
add ecx, 4
cmp edi, ecx
jne 0x446810
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x68]
mov ecx, ebx
and ecx, 0xfffffffe
sub edi, ecx
add esi, ecx
cmp ecx, ebx
je 0x446867
mov ebx, dword [esp + 0x2c]
lea ecx, [ebx + esi*2]
movzx ebx, word [esp + 0x5c]
mov word [ecx + 0x70], bx
test edi, edi
je 0x446867
mov word [ecx + 0x72], bx
lea esi, [edi - 2]
cmp edi, 1
je 0x446867
movzx edi, word [esp + 0x5c]
mov word [ecx + 0x74], di
test esi, esi
je 0x446867
mov word [ecx + 0x76], di
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
add edi, dword [esp + 0x28]
mov dword [ebx + 0x68], edi
mov ebx, edi
mov dword [esp + 0x48], edi
jmp 0x44748d
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x40]
mov dword [eax], 0xf
jmp 0x4465d7
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
mov eax, edx
and eax, 0x400
test eax, eax
je 0x4468e4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x40], ecx
cmp ecx, eax
ja 0x447368
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x4472e0
test eax, eax
jne 0x4465b8
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x40], 0
mov dword [eax], 6
test dh, 8
jne 0x447010
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x446910
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x40], 0
mov dword [eax], 7
test dh, 0x10
jne 0x446f50
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x44693c
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x2c]
mov dword [eax], 8
test dh, 2
jne 0x446ec0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x44696a
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 sym._crc32
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x30], eax
mov dword [edx], 0xb
jmp case.0x445dae.11
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
jmp 0x4468f5
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
jmp 0x446921
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
jmp 0x446946
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 8]
test eax, eax
je 0x447d25
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x447d25
cmp ebx, 0x1f
ja 0x447ce6
mov eax, dword [esp + 0x28]
test eax, eax
je 0x447855
movzx ecx, byte [edx]
lea esi, [eax - 1]
lea eax, [edx + 1]
mov dword [esp + 0x2c], esi
mov esi, ecx
mov ecx, ebx
shl esi, cl
lea ecx, [ebx + 8]
add dword [esp + 0x30], esi
cmp ecx, 0x1f
ja 0x447a6a
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x447849
mov eax, dword [esp + 0x28]
movzx esi, byte [edx + 1]
sub eax, 2
shl esi, cl
lea ecx, [ebx + 0x10]
add dword [esp + 0x30], esi
mov dword [esp + 0x2c], eax
lea eax, [edx + 2]
cmp ecx, 0x1f
ja 0x447a6a
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x447849
mov eax, dword [esp + 0x28]
movzx esi, byte [edx + 2]
sub eax, 3
shl esi, cl
lea ecx, [ebx + 0x18]
add dword [esp + 0x30], esi
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x30]
lea eax, [edx + 3]
cmp ecx, 0x1f
ja 0x447f28
cmp dword [esp + 0x2c], 0
je 0x447849
lea eax, [edx + 4]
movzx edx, byte [edx + 3]
sub dword [esp + 0x28], 4
add ebx, 0x20
shl edx, cl
mov ecx, esi
add ecx, edx
mov dword [esp + 0x30], ecx
mov edx, ecx
cmp dword [ebp + 0x1c], edx
je 0x447d19
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x18], str.incorrect_length_check
mov edx, eax
mov dword [ebp], 0x1d
jmp 0x446240
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x68]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x44], eax
cmp edx, eax
jae 0x447b2c
mov ecx, ebp
mov dword [esp + 0x48], edi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x40], edx
mov edi, dword [esp + 0x28]
cmp ecx, 2
ja 0x446b62
test edi, edi
je 0x447c3f
lea eax, [ebx + 1]
movzx ebx, byte [ebx]
sub edi, 1
shl ebx, cl
add ecx, 8
add esi, ebx
mov edx, dword [esp + 0x2c]
add dword [esp + 0x40], 1
sub ecx, 3
mov ebp, dword [esp + 0x40]
mov dword [edx + 0x68], ebp
movzx ebx, word [ebp + ebp + 0x508b9e]
mov ebp, esi
shr esi, 3
and ebp, 7
mov word [edx + ebx*2 + 0x70], bp
mov edx, dword [esp + 0x44]
cmp dword [esp + 0x40], edx
jae 0x447b18
mov ebx, eax
cmp ecx, 2
jbe 0x446b0d
mov eax, ebx
jmp 0x446b25
cmp ebp, 0x1f
ja 0x446bb5
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov ecx, ebp
jmp 0x446b98
test edx, edx
je 0x446fd8
movzx eax, byte [ebx]
add ebx, 1
sub edx, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x446b90
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x446bc7
mov edx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x2c]
test byte [eax + 0x11], 2
jne 0x447a00
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], 0
xor ebp, ebp
mov dword [eax], 3
jmp 0x446bf5
cmp ebp, 0xf
ja 0x446c35
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov ecx, ebp
jmp 0x446c18
test edx, edx
je 0x446fd8
movzx eax, byte [ebx]
add ebx, 1
sub edx, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x446c10
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x446c52
mov ecx, dword [esp + 0x30]
movzx edx, cl
mov dword [eax + 8], edx
mov edx, ecx
shr edx, 8
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, eax
test ah, 2
jne 0x44751e
mov esi, dword [esp + 0x2c]
mov dword [esi], 4
test ah, 4
jne 0x447648
mov dword [esp + 0x30], 0
xor ebp, ebp
jmp 0x446c9a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, eax
test ah, 4
jne 0x447862
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x20]
xor eax, eax
test ecx, ecx
je 0x446cae
mov dword [ecx + 0x10], 0
mov ecx, dword [esp + 0x2c]
mov dword [ecx], 5
jmp 0x4468ae
cmp ebp, 0xf
ja 0x447f4e
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
lea edx, [eax - 1]
movzx eax, byte [ebx]
mov ecx, ebp
lea esi, [ebx + 1]
shl eax, cl
lea ecx, [ebp + 8]
add dword [esp + 0x30], eax
cmp ecx, 0xf
ja 0x447fb8
test edx, edx
je 0x447c84
movzx eax, byte [ebx + 1]
sub dword [esp + 0x28], 2
lea esi, [ebx + 2]
add ebp, 0x10
shl eax, cl
add dword [esp + 0x30], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [edx + 0x10], eax
cmp al, 8
je 0x4476cb
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, edx
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edx], 0x1d
mov edx, esi
jmp 0x446240
mov dword [esi], 0x10
sub ebp, 3
mov ebx, eax
shr dword [esp + 0x30], 3
lea esi, [esi]
cmp ebp, 0xd
ja 0x447f40
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
lea edx, [eax - 1]
movzx eax, byte [ebx]
mov ecx, ebp
lea esi, [ebx + 1]
shl eax, cl
lea ecx, [ebp + 8]
add dword [esp + 0x30], eax
cmp ecx, 0xd
ja 0x447fd2
test edx, edx
je 0x447c84
movzx eax, byte [ebx + 1]
sub dword [esp + 0x28], 2
lea esi, [ebx + 2]
add ebp, 0x10
shl eax, cl
add dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
sub ebp, 0xe
mov eax, ecx
mov edx, ecx
shr eax, 5
and edx, 0x1f
and eax, 0x1f
add edx, 0x101
add eax, 1
mov dword [ebx + 0x60], edx
mov dword [ebx + 0x64], eax
mov ebx, ecx
shr ecx, 0xe
shr ebx, 0xa
mov dword [esp + 0x40], eax
and ebx, 0xf
mov dword [esp + 0x30], ecx
add ebx, 4
mov eax, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x2c]
mov dword [ebx + 0x5c], eax
cmp edx, 0x11e
ja 0x446e04
cmp dword [esp + 0x40], 0x1e
jbe 0x447d44
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov edx, esi
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov dword [ebp], 0x1d
jmp 0x446240
mov edx, dword [esp + 0x2c]
sub ebp, eax
shr dword [esp + 0x30], cl
mov dword [edx + 0x1bc4], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [eax], 0x19
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4465b8
mov ecx, dword [esp + 0x2c]
sub edx, 1
add edi, 1
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 0x40]
mov byte [edi - 1], al
mov dword [ecx], 0x14
jmp case.0x445dae.20
sub eax, 0xffffff80
jmp 0x446318
sub eax, ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
add eax, dword [ebx + 0xc]
mov dword [esp + 8], esi
test ecx, ecx
mov dword [esp + 4], eax
mov dword [esp], edx
je 0x446eb8
call sym._crc32
mov ebx, dword [esp + 0xa0]
mov dword [ebp + 0x18], eax
mov dword [ebx + 0x30], eax
jmp 0x4462f0
call sym._adler32
jmp 0x446e9f
cmp ebp, 0xf
ja 0x447d10
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
lea ecx, [ebx + 1]
lea esi, [eax - 1]
movzx eax, byte [ebx]
mov dword [esp + 0x40], ecx
mov ecx, ebp
shl eax, cl
lea ecx, [ebp + 8]
add dword [esp + 0x30], eax
cmp ecx, 0xf
ja 0x447d39
test esi, esi
je 0x447cf1
lea eax, [ebx + 2]
sub dword [esp + 0x28], 2
add ebp, 0x10
mov dword [esp + 0x40], eax
movzx eax, byte [ebx + 1]
shl eax, cl
add dword [esp + 0x30], eax
mov esi, dword [esp + 0x2c]
movzx eax, word [esi + 0x18]
cmp eax, dword [esp + 0x30]
je 0x447554
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov edx, dword [esp + 0x40]
mov ebp, esi
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [esi], 0x1d
jmp 0x446240
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov dword [esp + 0x44], ebp
lea esi, [esi]
mov eax, dword [ecx + 0x20]
add esi, 1
movzx edx, byte [ebx + esi - 1]
test eax, eax
je 0x446f97
mov edi, dword [eax + 0x24]
test edi, edi
je 0x446f97
mov ebp, dword [ecx + 0x40]
cmp ebp, dword [eax + 0x28]
jae 0x446f97
lea eax, [ebp + 1]
mov dword [ecx + 0x40], eax
mov byte [edi + ebp], dl
test dl, dl
je 0x446fa1
cmp dword [esp + 0x28], esi
ja 0x446f70
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
test byte [eax + 0x11], 2
jne 0x447760
sub dword [esp + 0x28], esi
add ebx, esi
test dl, dl
jne 0x4465b8
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
jmp 0x44693c
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x2c]
mov edx, ebx
mov ebx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], 0
jmp 0x446250
mov eax, dword [esp + 0x2c]
mov dword [eax], 0xb
jmp case.0x445dae.11
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov dword [esp + 0x44], ebp
lea esi, [esi]
mov eax, dword [ecx + 0x20]
add esi, 1
movzx edx, byte [ebx + esi - 1]
test eax, eax
je 0x447057
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x447057
mov ebp, dword [ecx + 0x40]
cmp ebp, dword [eax + 0x20]
jae 0x447057
lea eax, [ebp + 1]
mov dword [ecx + 0x40], eax
mov byte [edi + ebp], dl
test dl, dl
je 0x447061
cmp dword [esp + 0x28], esi
ja 0x447030
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
test byte [eax + 0x11], 2
jne 0x4474f6
sub dword [esp + 0x28], esi
add ebx, esi
test dl, dl
jne 0x4465b8
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
jmp 0x446910
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x4c]
mov dword [eax + 0x1bc4], 0
mov eax, 0xffffffff
shl eax, cl
mov dword [esp + 0x40], edx
not eax
mov dword [esp + 0x44], eax
and eax, dword [esp + 0x30]
lea eax, [edx + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax]
movzx esi, word [eax + 2]
movzx eax, cl
cmp ebp, eax
jae 0x44714f
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4465b8
mov dword [esp + 0x48], edi
mov edx, dword [esp + 0x28]
mov ecx, ebp
mov edi, dword [esp + 0x30]
jmp 0x447100
test edx, edx
je 0x447828
movzx eax, byte [ebx]
mov esi, dword [esp + 0x40]
add ebx, 1
sub edx, 1
shl eax, cl
add ecx, 8
add edi, eax
mov eax, dword [esp + 0x44]
and eax, edi
lea esi, [esi + eax*4]
movzx eax, byte [esi]
movzx ebp, byte [esi + 1]
movzx esi, word [esi + 2]
mov byte [esp + 0x30], al
mov eax, ebp
cmp ebp, ecx
ja 0x4470f8
mov dword [esp + 0x44], ebp
mov ebp, ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], edx
movzx edx, byte [esp + 0x30]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x44], esi
test dl, dl
je 0x446e26
test dl, 0xf0
je 0x447e19
mov ecx, eax
shr dword [esp + 0x30], cl
mov ecx, dword [esp + 0x2c]
sub ebp, eax
mov dword [ecx + 0x1bc4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x40], eax
test dl, 0x20
je 0x447c14
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
jmp case.0x445dae.11
mov dword [esp + 0x28], ebp
mov edx, ebx
mov ebp, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x40], 0
jmp 0x446250
mov esi, dword [esp + 0x2c]
mov edx, dword [esi + 0x30]
mov esi, dword [esi + 0x34]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
sub esi, eax
mov eax, esi
cmp edx, ecx
jb 0x4474e0
mov esi, dword [esp + 0x40]
add eax, edx
add esi, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x40]
mov edx, eax
cmp eax, ecx
jbe 0x4471fd
mov edx, ecx
mov ecx, dword [esp + 0x34]
cmp ecx, edx
jbe 0x447207
mov ecx, edx
mov edx, dword [esp + 0x2c]
sub eax, ecx
sub dword [esp + 0x34], ecx
mov dword [edx + 0x40], eax
lea eax, [ecx - 1]
mov dword [esp + 0x40], eax
lea eax, [edi + 3]
sub eax, esi
cmp eax, 6
seta dl
cmp dword [esp + 0x40], 3
seta al
test dl, al
je 0x447970
mov eax, esi
or eax, edi
test al, 3
jne 0x447970
lea eax, [ecx - 4]
mov dword [esp + 0x44], ecx
xor edx, edx
shr eax, 2
add eax, 1
lea esi, [esi]
mov ecx, dword [esi + edx*4]
mov dword [edi + edx*4], ecx
add edx, 1
cmp edx, eax
jb 0x447258
mov ecx, dword [esp + 0x44]
shl eax, 2
lea edx, [edi + eax]
add esi, eax
mov dword [esp + 0x44], edx
lea edx, [edi + ecx]
cmp ecx, eax
je 0x4472a4
mov edi, dword [esp + 0x44]
movzx ecx, byte [esi]
mov byte [edi], cl
mov edi, dword [esp + 0x40]
sub edi, eax
je 0x4472a4
movzx eax, byte [esi + 1]
mov ecx, dword [esp + 0x44]
mov byte [ecx + 1], al
cmp edi, 1
je 0x4472a4
movzx eax, byte [esi + 2]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x2c]
mov edi, edx
mov edx, dword [eax + 0x40]
test edx, edx
je 0x445fc4
mov esi, dword [eax]
jmp 0x445da5
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], edx
mov edx, ebx
mov dword [esp + 0x40], 0
mov ebx, ecx
jmp 0x446250
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x44733a
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x44], esi
test esi, esi
je 0x44733a
mov esi, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov edx, esi
sub edx, eax
mov dword [esp + 0x48], edx
add edx, dword [esp + 0x40]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x4c], ecx
jbe 0x44731b
lea edx, [ecx + eax]
sub edx, esi
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._memcpy
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x10]
and dh, 2
jne 0x44799f
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
sub dword [esp + 0x28], ecx
mov eax, dword [edx + 0x40]
add ebx, ecx
mov dword [esp + 0x40], eax
sub eax, ecx
mov dword [edx + 0x40], eax
jmp 0x4468d5
mov dword [esp + 0x40], eax
jmp 0x4468c9
mov edx, ebx
mov dword [esp + 0x40], 1
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
jmp 0x446250
mov dword [esp + 0x40], 0xfffffffc
jmp 0x44633c
mov eax, edx
jmp 0x4465ed
mov esi, eax
jmp 0x4465fb
cmp ebp, edx
jae 0x44740a
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
mov ecx, ebp
mov esi, dword [esp + 0x28]
mov ebp, edi
mov edi, edx
mov edx, dword [esp + 0x30]
jmp 0x4473e8
test esi, esi
je 0x447790
movzx eax, byte [ebx]
add ebx, 1
sub esi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, edi
jb 0x4473e0
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edx
mov edx, edi
mov edi, ebp
mov ebp, ecx
mov ecx, edx
mov eax, 0xffffffff
mov esi, dword [esp + 0x2c]
sub ebp, edx
shl eax, cl
mov ecx, dword [esp + 0x30]
not eax
and eax, ecx
add eax, dword [esi + 0x40]
mov dword [esi + 0x40], eax
mov esi, ecx
mov ecx, edx
shr esi, cl
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x2c]
add dword [esi + 0x1bc4], edx
jmp 0x446366
mov ebx, dword [esp + 0x34]
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
xor ebx, ebx
lea esi, [esi]
mov dword [ebp], 0x1b
jmp 0x4469e3
mov ebx, dword [esp + 0x48]
shr edx, cl
sub ebp, esi
mov esi, dword [esp + 0x2c]
lea ecx, [ebx + 1]
mov dword [esp + 0x48], ecx
mov dword [esi + 0x68], ecx
mov word [esi + ebx*2 + 0x70], di
mov ebx, ecx
cmp dword [esp + 0x54], ebx
ja 0x44667c
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x2c]
cmp word [eax + 0x270], 0
jne 0x4481d8
mov edx, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code____missing_end_of_block
mov dword [ebp], 0x1d
jmp 0x446240
mov esi, dword [esp + 0x2c]
sub ecx, edx
add edx, dword [esi + 0x28]
mov esi, dword [esp + 0x40]
add edx, eax
add esi, edx
jmp 0x4471ee
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x18]
mov byte [esp + 0x40], dl
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x18], eax
movzx edx, byte [esp + 0x40]
jmp 0x447077
movzx eax, word [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], 2
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call sym._crc32
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x10]
mov edx, eax
jmp 0x446c64
mov dword [esp + 0x30], 0
mov ebx, dword [esp + 0x40]
xor ebp, ebp
jmp 0x44694f
movzx ecx, si
mov esi, 0xffffffff
mov dword [esp + 0x48], ecx
movzx ecx, byte [esp + 0x40]
add ecx, eax
shl esi, cl
not esi
mov ecx, esi
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
and esi, ecx
mov ecx, edx
mov edx, dword [esp + 0x48]
shr esi, cl
mov ecx, dword [esp + 0x44]
add edx, esi
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
movzx esi, word [edx + 2]
movzx edx, byte [edx + 1]
mov byte [esp + 0x40], cl
lea ecx, [edx + eax]
cmp ecx, ebp
jbe 0x44762b
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4465b8
mov dword [esp + 0x58], edi
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
jmp 0x4475d8
test edi, edi
je 0x447bd0
movzx edx, byte [ebx]
mov ecx, ebp
add ebp, 8
add ebx, 1
sub edi, 1
shl edx, cl
mov ecx, eax
add esi, edx
mov edx, dword [esp + 0x4c]
and edx, esi
shr edx, cl
mov ecx, dword [esp + 0x44]
add edx, dword [esp + 0x48]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x40], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x54], cx
lea ecx, [edx + eax]
cmp ecx, ebp
ja 0x4475d0
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x30], esi
movzx esi, word [esp + 0x54]
mov ecx, eax
shr dword [esp + 0x30], cl
mov ecx, dword [esp + 0x2c]
sub ebp, eax
mov dword [esp + 0x48], edx
add eax, dword [ecx + 0x1bc4]
mov ecx, edx
jmp 0x446434
mov dword [esp + 0x30], 0
xor ebp, ebp
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4465b8
mov ecx, ebp
mov esi, dword [esp + 0x28]
mov ebp, eax
mov eax, dword [esp + 0x30]
jmp 0x447678
test esi, esi
je 0x4479c2
movzx edx, byte [ebx]
add ebx, 1
sub esi, 1
shl edx, cl
add ecx, 8
add eax, edx
cmp ecx, 0xf
jbe 0x447670
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
mov eax, ebp
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [edx + 0x40], ecx
mov edx, dword [edx + 0x20]
test edx, edx
je 0x4476ac
mov dword [edx + 0x14], ecx
test ah, 2
jne 0x447ca1
mov edx, eax
mov dword [esp + 0x30], 0
and eax, 0x400
xor ebp, ebp
jmp 0x446cae
test dword [esp + 0x30], 0xe000
je 0x447f71
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov edx, esi
mov dword [eax + 0x18], str.unknown_header_flags_set
mov dword [ebp], 0x1d
jmp 0x446240
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
jmp 0x445df7
mov dword [esp + 0x28], esi
jmp 0x446516
mov dword [esp + 0x28], esi
mov ebp, ecx
jmp 0x44618b
mov esi, edi
sub esi, eax
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x40]
mov eax, edx
jmp 0x4471fd
mov edx, dword [esp + 0x40]
movzx eax, si
mov esi, dword [esp + 0x2c]
and edx, 0xf
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], edx
mov dword [esi], 0x17
jmp 0x4461cf
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x18]
mov byte [esp + 0x40], dl
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x18], eax
movzx edx, byte [esp + 0x40]
jmp 0x446fb7
mov dword [esp + 0x30], edx
mov edi, ebp
mov edx, ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
mov ebx, ecx
mov dword [esp + 0x40], 0
jmp 0x446250
cmp ebp, edx
jae 0x4477f6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4465b8
mov ecx, ebp
mov esi, dword [esp + 0x28]
mov ebp, edi
mov edi, edx
mov edx, dword [esp + 0x30]
jmp 0x4477d4
test esi, esi
je 0x447790
movzx eax, byte [ebx]
add ebx, 1
sub esi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, edi
jb 0x4477d0
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edx
mov edx, edi
mov edi, ebp
mov ebp, ecx
mov ecx, edx
mov eax, 0xffffffff
mov esi, dword [esp + 0x2c]
sub ebp, edx
shl eax, cl
mov ecx, dword [esp + 0x30]
not eax
add dword [esi + 0x1bc4], edx
and eax, ecx
add dword [esi + 0x44], eax
mov eax, ecx
mov ecx, edx
shr eax, cl
mov dword [esp + 0x30], eax
jmp 0x4461d7
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x2c]
mov edx, ebx
mov ebx, ecx
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x40], 0
jmp 0x446250
mov dword [esp + 0x28], 0
mov ebx, ecx
mov edx, eax
mov dword [esp + 0x40], 0
jmp 0x446250
cmp ebp, 0xf
jbe 0x447652
jmp 0x447697
cmp ebp, 0xf
ja 0x4480ed
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4465b8
sub eax, 1
lea ecx, [ebx + 1]
mov dword [esp + 0x44], eax
movzx eax, byte [ebx]
mov dword [esp + 0x40], ecx
mov ecx, ebp
shl eax, cl
lea ecx, [ebp + 8]
add dword [esp + 0x30], eax
cmp ecx, 0xf
ja 0x448150
mov eax, dword [esp + 0x44]
test eax, eax
je 0x447cf1
lea eax, [ebx + 2]
sub dword [esp + 0x28], 2
add ebp, 0x10
mov dword [esp + 0x40], eax
movzx eax, byte [ebx + 1]
shl eax, cl
add dword [esp + 0x30], eax
test dl, 2
je 0x4478e2
cmp dword [esp + 0x30], 0x8b1f
je 0x4480f6
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x10], 0
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4478fb
mov dword [eax + 0x30], 0xffffffff
and edx, 1
je 0x447c60
mov eax, dword [esp + 0x30]
mov edx, 0x8421085
mov ecx, eax
shr eax, 8
shl ecx, 8
movzx ecx, cx
add ecx, eax
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub eax, edx
cmp ecx, eax
jne 0x447c60
mov eax, dword [esp + 0x30]
and eax, 0xf
cmp eax, 8
je 0x44815f
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [ebp], 0x1d
jmp 0x446240
lea edx, [edi + ecx]
lea esi, [esi]
nop
movsb byte es:[edi], byte [esi]
cmp edx, edi
jne 0x447978
jmp 0x4472a4
mov dword [esp + 0x28], 0
mov ebp, dword [esp + 0x2c]
mov ebx, ecx
mov edx, eax
mov dword [esp + 0x40], 0
jmp 0x446250
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call sym._crc32
mov dword [esi + 0x18], eax
jmp 0x447343
mov edx, ebx
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], 0
jmp 0x446250
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], edx
mov edx, ebx
mov dword [esp + 0x28], eax
mov ebx, ecx
mov dword [esp + 0x40], 0
jmp 0x446250
mov esi, 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 [esi + 0x18]
mov dword [esp], eax
call sym._crc32
mov dword [esi + 0x18], eax
jmp 0x446bd5
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0xa4], 6
mov dword [ebx + 0x40], edx
mov dword [ebx], 0xe
je 0x448360
mov ebx, eax
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x2c]
xor ebp, ebp
jmp 0x44688f
mov dword [esp + 0x40], 0xfffffffb
jmp 0x44633c
mov edx, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x30]
jmp 0x446ab8
mov edx, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
shr dword [esp + 0x30], 3
sub ebx, 3
mov dword [edx + 0x18], str.invalid_block_type
mov edx, eax
mov dword [ebp], 0x1d
jmp 0x446240
lea edi, [esi + 3]
cmp ebp, edi
jae 0x447aec
test eax, eax
je 0x447bf1
mov ecx, ebp
mov ebx, dword [esp + 0x44]
mov ebp, esi
mov esi, edi
jmp 0x447ad0
test eax, eax
je 0x4479df
movzx edi, byte [ebx]
add ebx, 1
sub eax, 1
shl edi, cl
add ecx, 8
add edx, edi
cmp ecx, esi
jb 0x447ac8
mov dword [esp + 0x44], ebx
mov esi, ebp
mov ebp, ecx
mov ecx, esi
shr edx, cl
mov ecx, edx
and edx, 7
lea edi, [edx + 3]
mov edx, ecx
mov ecx, 0xfffffffd
sub ecx, esi
xor esi, esi
mov dword [esp + 0x28], edi
shr edx, 3
mov word [esp + 0x5c], si
add ebp, ecx
mov esi, edi
jmp 0x44677d
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x40]
mov ebp, ecx
mov ebx, eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x48]
cmp edx, 0x12
ja 0x447b5f
mov ecx, dword [esp + 0x2c]
lea eax, [edx + edx + 0x508ba0]
lea esi, [esi]
movzx edx, word [eax]
xor esi, esi
add eax, 2
mov word [ecx + edx*2 + 0x70], si
cmp eax, 0x508bc6
jne 0x447b40
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x68], 0x13
mov esi, dword [esp + 0x2c]
lea eax, [esi + 0x530]
mov dword [esi + 0x54], 7
mov dword [esi + 0x6c], eax
mov dword [esi + 0x4c], eax
lea eax, [esi + 0x2f0]
mov dword [esp + 0x14], eax
lea eax, [esi + 0x54]
mov dword [esp + 0x10], eax
lea eax, [esi + 0x6c]
mov dword [esp + 0xc], eax
lea eax, [esi + 0x70]
mov dword [esp + 8], 0x13
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._inflate_table
test eax, eax
je 0x447ffa
mov eax, dword [esp + 0xa0]
mov edx, ebx
mov ebx, ebp
mov ebp, esi
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov dword [esi], 0x1d
jmp 0x446240
mov dword [esp + 0x28], edi
mov edx, ebx
mov edi, dword [esp + 0x58]
mov ebx, ebp
mov dword [esp + 0x30], esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
jmp 0x446250
mov dword [esp + 0x30], edx
mov ebx, ebp
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], 0
jmp 0x446250
test dl, 0x40
je 0x447f5c
mov eax, dword [esp + 0xa0]
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov dword [eax + 0x18], 0x508213
mov dword [ebp], 0x1d
jmp 0x446240
mov dword [esp + 0x28], edi
mov edx, ebx
mov ebp, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x30], esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x40], 0
jmp 0x446250
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov dword [eax + 0x18], str.incorrect_header_check
mov dword [ebp], 0x1d
jmp 0x446240
mov dword [esp + 0x28], 0
mov ebp, dword [esp + 0x2c]
mov ebx, ecx
mov edx, esi
mov dword [esp + 0x40], 0
jmp 0x446250
movzx eax, word [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], 2
xor ebp, ebp
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call sym._crc32
mov edx, dword [esi + 0x10]
mov dword [esp + 0x30], 0
mov dword [esi + 0x18], eax
mov eax, edx
and eax, 0x400
jmp 0x446cae
mov eax, edx
mov edx, dword [esp + 0x30]
jmp 0x446ab8
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x28], 0
mov ebx, ecx
mov dword [esp + 0x40], 0
jmp 0x446250
mov dword [esp + 0x40], ebx
jmp 0x446f17
mov dword [esp + 0x30], 0
mov edx, eax
xor ebx, ebx
mov dword [ebp], 0x1c
mov dword [esp + 0x40], 1
jmp 0x446250
mov dword [esp + 0x28], esi
mov ebp, ecx
jmp 0x446f17
mov dword [ebx + 0x68], 0
xor edx, edx
mov dword [ebx], 0x11
mov ebx, esi
jmp 0x446af6
lea edi, [esi + 2]
cmp ebp, edi
jae 0x447d9c
test eax, eax
je 0x447bf1
mov ecx, ebp
mov ebx, dword [esp + 0x44]
mov ebp, esi
mov esi, edi
jmp 0x447d80
test eax, eax
je 0x4479df
movzx edi, byte [ebx]
add ebx, 1
sub eax, 1
shl edi, cl
add ecx, 8
add edx, edi
cmp ecx, esi
jb 0x447d78
mov dword [esp + 0x44], ebx
mov esi, ebp
mov ebp, ecx
mov edi, dword [esp + 0x48]
mov ecx, esi
sub ebp, esi
shr edx, cl
test edi, edi
je 0x448266
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x48]
mov ecx, edx
sub ebp, 2
and ecx, 3
shr edx, 2
movzx edi, word [edi + ebx*2 + 0x6e]
mov word [esp + 0x5c], di
lea edi, [ecx + 3]
mov dword [esp + 0x28], edi
mov esi, edi
jmp 0x44677d
mov dword [ebp], 0x1e
mov dword [esp + 0x40], 0xfffffffc
jmp 0x44633c
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._adler32
jmp 0x445f00
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x40], 0
jmp 0x446250
lea ecx, [edx + eax]
mov edx, 0xffffffff
shl edx, cl
mov ecx, eax
not edx
mov dword [esp + 0x54], edx
and edx, dword [esp + 0x30]
shr edx, cl
mov ecx, dword [esp + 0x40]
add edx, esi
lea ecx, [ecx + edx*4]
movzx esi, word [ecx + 2]
movzx edx, byte [ecx]
movzx ecx, byte [ecx + 1]
mov word [esp + 0x4c], si
mov dword [esp + 0x48], ecx
add ecx, eax
mov dword [esp + 0x58], ecx
cmp ecx, ebp
jbe 0x447ee4
mov edx, dword [esp + 0x28]
test edx, edx
je 0x4465b8
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
jmp 0x447e88
test edi, edi
je 0x44806c
movzx edx, byte [ebx]
mov ecx, ebp
mov esi, dword [esp + 0x40]
add ebp, 8
add ebx, 1
sub edi, 1
shl edx, cl
movzx ecx, byte [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x54]
and edx, eax
shr edx, cl
add edx, dword [esp + 0x44]
lea ecx, [esi + edx*4]
movzx esi, word [ecx + 2]
movzx edx, byte [ecx]
mov word [esp + 0x4c], si
movzx esi, byte [ecx + 1]
mov ecx, dword [esp + 0x48]
add ecx, esi
cmp ecx, ebp
ja 0x447e80
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x5c]
sub ebp, eax
mov ecx, eax
mov esi, dword [esp + 0x30]
mov eax, ebp
mov ebp, dword [esp + 0x48]
shr esi, cl
sub eax, ebp
mov ecx, ebp
shr esi, cl
mov ebp, eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], esi
mov dword [ecx + 0x1bc4], eax
movzx eax, word [esp + 0x4c]
mov dword [ecx + 0x40], eax
test dl, dl
jne 0x44717d
jmp 0x446e3d
mov edx, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x28], edx
mov edx, esi
jmp 0x446ab8
mov eax, ebx
jmp 0x44618b
mov esi, ebx
jmp 0x446da7
mov eax, ebx
jmp 0x446516
mov esi, ebx
jmp 0x446d0f
mov eax, ebx
jmp 0x446093
mov eax, dword [esp + 0x2c]
and edx, 0xf
mov dword [eax + 0x48], edx
mov dword [eax], 0x15
jmp 0x446357
mov edx, dword [edx + 0x20]
test edx, edx
je 0x447f84
mov eax, dword [esp + 0x30]
shr eax, 8
and eax, 1
mov dword [edx], eax
test dword [esp + 0x30], 0x200
jne 0x4480bc
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], 0
mov ebx, esi
xor ebp, ebp
mov dword [eax], 2
jmp 0x446b75
mov dword [esp + 0x28], esi
mov ebx, ecx
jmp 0x445ec1
mov dword [esp + 0x28], edx
mov ebp, ecx
jmp 0x446d0f
mov dword [esp + 0x40], edx
mov edx, ebx
mov ebx, ebp
mov ebp, eax
jmp 0x446250
mov dword [esp + 0x28], edx
mov ebp, ecx
jmp 0x446da7
mov ebx, ebp
mov dword [esp + 0x28], 0
mov ebp, dword [esp + 0x2c]
mov edx, eax
mov dword [esp + 0x40], 0
jmp 0x446250
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x60]
mov dword [eax + 0x68], 0
mov dword [eax], 0x12
mov dword [esp + 0x58], edx
add edx, dword [eax + 0x64]
mov dword [esp + 0x54], edx
je 0x4474a7
mov dword [esp + 0x48], 0
jmp 0x446651
mov edx, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x40], 2
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x34]
mov dword [eax], edx
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x28]
mov dword [eax + 4], edi
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x38], eax
jmp 0x44633c
mov dword [esp + 0x2c], edx
jmp 0x445ec1
mov dword [esp + 0x28], edi
mov edx, ebx
mov edi, dword [esp + 0x5c]
mov ebx, ebp
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
jmp 0x446250
mov edi, dword [esp + 0x2c]
lea ecx, [edi + ebx*2]
movzx edi, word [esp + 0x5c]
mov word [ecx + 0x70], di
mov word [ecx + 0x72], di
mov edi, dword [esp + 0x28]
lea esi, [edi - 3]
jmp 0x446856
mov eax, dword [esp + 0x40]
mov ebx, ecx
mov dword [esp + 0x28], eax
jmp 0x445ec1
movzx eax, word [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], 2
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sym._crc32
mov dword [ebx + 0x18], eax
jmp 0x447f92
mov dword [esp + 0x40], ebx
jmp 0x4478cf
mov dword [esp + 8], 0
mov ebp, esi
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._crc32
mov ebx, dword [esp + 0x2c]
lea edx, [esp + 0x7c]
mov word [esp + 0x7c], 0x8b1f
mov dword [ebx + 0x18], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._crc32
mov dword [ebx], 1
mov dword [ebx + 0x18], eax
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x30], esi
jmp 0x446cc9
mov eax, dword [esp + 0x44]
mov ebp, ecx
mov dword [esp + 0x28], eax
jmp 0x4478cf
shr dword [esp + 0x30], 4
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
and eax, 0xf
mov ecx, eax
mov eax, dword [ebx + 0x24]
add ecx, 8
test eax, eax
jne 0x448296
mov dword [ebx + 0x24], ecx
mov ebx, dword [esp + 0x2c]
mov eax, 1
shl eax, cl
mov dword [ebx + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._adler32
and dword [esp + 0x30], 0x200
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
jne 0x4482c5
mov dword [ebx], 0xb
xor ebp, ebp
mov ebx, dword [esp + 0x40]
jmp case.0x445dae.11
mov edx, dword [esp + 0x2c]
mov eax, edx
mov dword [edx + 0x54], 9
lea ecx, [edx + 0x2f0]
add eax, 0x530
mov dword [esp + 0x48], ecx
mov dword [edx + 0x6c], eax
mov dword [edx + 0x4c], eax
mov eax, edx
lea edx, [edx + 0x6c]
lea esi, [eax + 0x70]
mov dword [esp + 0xc], edx
mov dword [esp + 0x40], esi
mov esi, eax
add eax, 0x54
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 1
call sym._inflate_table
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x4482fb
mov eax, dword [esp + 0xa0]
mov edx, ebx
mov ebx, ebp
mov ebp, esi
mov dword [eax + 0x18], str.invalid_literal_lengths_set
mov dword [esi], 0x1d
jmp 0x446240
mov dword [esp + 0x28], eax
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], edx
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov edx, dword [esp + 0x44]
mov dword [ebp], 0x1d
jmp 0x446240
cmp eax, ecx
jae 0x448182
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
sub ebx, 4
mov dword [eax + 0x18], str.invalid_window_size
mov dword [ebp], 0x1d
jmp 0x446240
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x30], 0
xor ebp, ebp
mov dword [eax], 9
jmp 0x446481
mov ebx, ebp
mov dword [esp + 0x40], edx
mov ebp, dword [esp + 0x2c]
mov edx, eax
shr dword [esp + 0x30], 3
sub ebx, 3
jmp 0x446250
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x58], 6
mov dword [esi + 0x50], eax
lea eax, [esi + 0x58]
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x64]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x60]
mov dword [esp], 2
add eax, eax
add eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call sym._inflate_table
mov edx, eax
test eax, eax
je 0x44838a
mov eax, dword [esp + 0xa0]
mov edx, ebx
mov ebx, ebp
mov ebp, esi
mov dword [eax + 0x18], str.invalid_distances_set
mov dword [esi], 0x1d
jmp 0x446240
mov dword [esp + 0x40], 0
mov ebp, dword [esp + 0x2c]
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x30], 0
jmp 0x446250
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
jmp 0x446240
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0xa4], 6
mov dword [eax], 0x13
jne case.0x445dae.19
mov dword [esp + 0x40], edx
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
jmp 0x446250