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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa0]
test eax, eax
je case.default.0x48782e
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0x48782e
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [esp + 0x2c], eax
je case.default.0x48782e
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax]
test ebp, ebp
je 0x488df0
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
mov eax, dword [edi]
cmp eax, 0xb
je 0x4879f0
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], 0
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0xa4]
mov ebx, esi
lea edx, [ecx - 5]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov esi, dword [edi + 0x38]
lea ecx, [edi + 0x2f0]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x50], edx
lea edx, [edi + 0x530]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x58], edx
mov esi, dword [edi + 0x3c]
mov edi, ebx
cmp eax, 0x1e
ja case.default.0x48782e
mov ebx, edi
mov edi, ebp
mov ebp, ebx
jmp dword [eax*4 + 0x4db430]
cmp esi, 0x1f
ja 0x4878c7
test ebp, ebp
je 0x488d60
movzx eax, byte [edi]
mov ecx, esi
lea edx, [ebp - 1]
lea ebx, [edi + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48967d
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 1]
lea edx, [ebp - 2]
lea ebx, [edi + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48967d
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 2]
add esi, 0x18
lea edx, [ebp - 3]
lea ebx, [edi + 3]
shl eax, cl
add dword [esp + 0x28], eax
cmp esi, 0x1f
ja 0x48967d
test edx, edx
je 0x48995a
movzx eax, byte [edi + 3]
mov ecx, esi
lea ebx, [edi + 4]
sub ebp, 4
shl eax, cl
add dword [esp + 0x28], eax
mov edi, ebx
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x28], 0
mov edx, esi
mov eax, esi
shl eax, 0x18
shr edx, 0x18
add edx, eax
mov eax, esi
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, esi
mov esi, dword [esp + 0x24]
and eax, 0xff00
shl eax, 8
add eax, edx
mov dword [esi + 0x18], eax
mov dword [ebx + 0x30], eax
mov dword [esi], 0xa
xor esi, esi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4899b0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0048b2d0
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov dword [ebx + 0x30], eax
mov dword [edx], 0xb
cmp dword [esp + 0x50], 1
jbe 0x488d60
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
test edx, edx
jne 0x487a00
mov eax, ebp
cmp esi, 2
mov ebp, edi
mov edi, eax
ja 0x4897cd
test eax, eax
je 0x489719
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [ebp + 1]
sub edi, 1
add esi, 8
shl eax, cl
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov eax, ecx
shr ecx, 1
and eax, 1
mov dword [ebx + 4], eax
mov eax, ecx
and eax, 3
cmp eax, 2
je 0x4891a6
cmp eax, 3
je 0x489547
cmp eax, 1
je 0x48950b
mov dword [ebx], 0xd
mov eax, 0xd
shr ecx, 2
sub esi, 3
mov ebp, edx
mov dword [esp + 0x28], ecx
jmp 0x48781f
mov dword [edi], 0xc
mov eax, 0xc
jmp 0x4877cd
mov ecx, esi
mov dword [eax], 0x1a
and esi, 0xfffffff8
and ecx, 7
mov eax, 0x1a
shr dword [esp + 0x28], cl
jmp switch.0x0048782e
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x48]
test ebx, ebx
je 0x487a90
cmp esi, ebx
jae 0x487a63
test ebp, ebp
je 0x488d60
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x487a48
test ebp, ebp
je 0x488e30
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x487a40
mov dword [esp + 0x28], edx
mov esi, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x24]
sub esi, ebx
sub eax, 1
and eax, edx
add dword [ecx + 0x44], eax
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
add dword [ecx + 0x1bc4], ebx
mov eax, dword [esp + 0x24]
mov dword [eax], 0x18
mov edx, dword [esp + 0x30]
test edx, edx
je 0x488d60
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
sub eax, edx
mov edx, dword [ebx + 0x44]
cmp eax, edx
jae 0x488ed4
sub edx, eax
cmp edx, dword [ebx + 0x2c]
mov ecx, edx
ja 0x489100
mov eax, dword [ebx + 0x30]
cmp ecx, eax
jbe 0x4892f0
sub ecx, eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x40], eax
sub eax, ecx
add eax, dword [ebx + 0x34]
mov edx, dword [ebx + 0x40]
cmp ecx, edx
cmova ecx, edx
jmp 0x488ee3
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x24]
mov dword [eax], 0x13
je 0x488d60
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0x24]
mov dword [eax], 0x14
cmp ebp, 5
jbe 0x487b2e
mov eax, dword [esp + 0x30]
cmp eax, 0x101
ja 0x488fd0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x4c]
mov dword [eax + 0x1bc4], 0
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], edx
sub eax, 1
mov ebx, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
and eax, ebx
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x44], ax
movzx eax, dl
cmp esi, eax
jae 0x487bd3
test ebp, ebp
je 0x488d60
mov ecx, esi
mov esi, dword [esp + 0x28]
jmp 0x487b98
test ebp, ebp
je 0x489254
add edi, 1
movzx eax, byte [edi - 1]
mov ebx, dword [esp + 0x40]
sub ebp, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x48]
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 + 0x44], ax
movzx eax, dl
cmp eax, ecx
ja 0x487b90
mov dword [esp + 0x28], esi
mov esi, ecx
test bl, bl
jne 0x489300
mov ecx, edx
mov edx, dword [esp + 0x24]
sub esi, eax
shr dword [esp + 0x28], cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x44]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [eax], 0x19
mov eax, 0x19
jmp switch.0x0048782e
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x48]
test ebx, ebx
jne 0x489053
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x40]
mov dword [ebx + 0x1bc8], eax
mov dword [ebx], 0x16
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x50]
mov eax, 1
shl eax, cl
mov dword [esp + 0x44], edx
sub eax, 1
mov ebx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
and eax, ebx
lea eax, [edx + 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, esi
mov dword [esp + 0x48], eax
jbe 0x487cd9
test ebp, ebp
je 0x488d60
mov ecx, esi
mov esi, ebp
mov ebp, dword [esp + 0x28]
jmp 0x487c98
test esi, esi
je 0x489241
add edi, 1
movzx eax, byte [edi - 1]
mov edx, dword [esp + 0x44]
sub esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, dword [esp + 0x4c]
and eax, ebp
lea eax, [edx + 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
mov dword [esp + 0x48], eax
ja 0x487c90
mov dword [esp + 0x28], ebp
mov ebp, esi
mov esi, ecx
test bl, 0xf0
jne 0x489130
movzx ecx, word [esp + 0x40]
mov dword [esp + 0x48], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x5c], ebx
and ebx, dword [esp + 0x28]
shr ebx, cl
mov ecx, dword [esp + 0x48]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x44]
lea edx, [ebx + edx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x40], cx
lea ecx, [eax + edx]
mov dword [esp + 0x4c], edx
cmp ecx, esi
jbe 0x487d98
test ebp, ebp
je 0x488d60
mov ebx, dword [esp + 0x28]
jmp 0x487d48
test ebp, ebp
je 0x489396
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 + 0x5c]
and edx, ebx
shr edx, cl
add edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x60], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x40], cx
lea ecx, [eax + edx]
mov dword [esp + 0x4c], edx
cmp ecx, esi
ja 0x487d40
mov dword [esp + 0x28], ebx
movzx ebx, byte [esp + 0x60]
mov ecx, eax
shr dword [esp + 0x28], cl
mov ecx, dword [esp + 0x24]
sub esi, eax
mov dword [esp + 0x48], edx
add eax, dword [ecx + 0x1bc4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
jmp 0x489142
mov dword [esp + 8], 1
mov ecx, dword [esi + 0x24]
mov eax, 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 0x487e92
mov dword [edi], 0x1e
mov eax, 0xfffffffc
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], 0xfffffffd
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x28]
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 0x487e75
cmp dword [esp + 0x34], eax
je 0x487f05
mov eax, dword [edi]
cmp eax, 0x1c
ja 0x487f05
cmp dword [esp + 0xa4], 4
jne 0x487e75
cmp eax, 0x19
ja 0x487f05
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x34]
sub ebp, dword [esp + 0x30]
mov esi, dword [eax + 0x1c]
mov eax, dword [esi + 0x34]
test eax, eax
je 0x487dc0
mov ebx, dword [esi + 0x28]
test ebx, ebx
jne 0x487eb4
mov ecx, dword [esi + 0x24]
mov ebx, 1
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
shl ebx, cl
mov dword [esi + 0x28], ebx
cmp ebp, ebx
jae 0x488e43
mov ecx, dword [esi + 0x30]
sub ebx, ecx
cmp ebp, ebx
cmovbe ebx, ebp
add eax, ecx
mov ecx, dword [esp + 0x2c]
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 0x488e90
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
add edx, ebx
cmp edx, eax
mov dword [esi + 0x30], edx
je 0x488e83
mov edx, dword [esi + 0x2c]
cmp eax, edx
jbe 0x487f05
add ebx, edx
mov dword [esi + 0x2c], ebx
mov eax, dword [esp + 0xa0]
mov edx, dword [edi + 8]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
sub ebx, dword [eax + 4]
sub esi, dword [eax + 0x10]
add dword [eax + 8], ebx
add dword [eax + 0x14], esi
add dword [edi + 0x1c], esi
test edx, edx
je 0x487f62
test esi, esi
je 0x487f62
mov ecx, dword [edi + 0x10]
mov dword [esp + 8], esi
mov eax, dword [eax + 0xc]
test ecx, ecx
mov dword [esp + 0x24], eax
je 0x488e10
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.0048bad0
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
cmp dword [edi + 4], 1
mov ecx, dword [edi]
sbb eax, eax
not eax
and eax, 0x40
add eax, dword [edi + 0x3c]
cmp ecx, 0xb
je 0x488d70
cmp ecx, 0x13
je 0x487f87
xor edx, edx
cmp ecx, 0xe
jne 0x487f8c
mov edx, 0x100
mov edi, dword [esp + 0xa0]
add eax, edx
or ebx, esi
mov dword [edi + 0x2c], eax
je 0x487fae
cmp dword [esp + 0xa4], 4
mov eax, dword [esp + 0x3c]
jne 0x487e03
mov edi, dword [esp + 0x3c]
mov eax, 0xfffffffb
test edi, edi
cmovne eax, edi
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0x1f
ja 0x488007
test ebp, ebp
je 0x488d60
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x487fed
test ebp, ebp
je 0x488e30
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x487fe5
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x488019
mov esi, dword [esp + 0x28]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x24]
test byte [eax + 0x11], 2
jne 0x4895a3
mov dword [eax], 3
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x4884f5
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x40]
mov ebx, dword [esp + 0x24]
mov dword [ebx], 0xf
test eax, eax
je 0x488ec0
mov ebx, ebp
mov ebp, edi
cmp ebx, eax
mov edi, ebx
cmovbe eax, ebx
mov ebx, eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
cmovbe ebx, eax
test ebx, ebx
je 0x489719
mov edx, dword [esp + 0x2c]
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 + 0x24]
sub dword [esp + 0x30], ebx
add dword [esp + 0x2c], ebx
sub dword [eax + 0x40], ebx
mov eax, dword [eax]
jmp 0x48781f
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x60]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], eax
add eax, dword [edx + 0x64]
mov dword [esp + 0x4c], eax
mov edx, eax
cmp dword [esp + 0x44], edx
jae 0x489978
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x4c]
mov eax, 1
shl eax, cl
mov edi, edx
mov dword [esp + 0x40], edx
lea eax, [eax - 1]
mov dword [esp + 0x28], eax
and eax, ebx
lea eax, [edi + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx eax, cl
cmp esi, eax
jae 0x48815c
test ebp, ebp
je 0x489724
mov edi, dword [esp + 0x48]
mov ecx, esi
jmp 0x488128
test ebp, ebp
je 0x488e70
add edi, 1
movzx eax, byte [edi - 1]
mov esi, dword [esp + 0x40]
sub ebp, 1
shl eax, cl
add ecx, 8
add ebx, eax
mov eax, dword [esp + 0x28]
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 0x488120
mov esi, ecx
mov dword [esp + 0x48], edi
mov ecx, eax
cmp dx, 0xf
jbe 0x489180
cmp dx, 0x10
je 0x48968d
cmp dx, 0x11
je 0x48974c
lea edi, [eax + 7]
cmp edi, esi
mov edx, edi
jbe 0x4881c5
test ebp, ebp
je 0x489724
mov ecx, esi
mov edi, dword [esp + 0x48]
mov esi, eax
mov eax, edx
jmp 0x4881a8
test ebp, ebp
je 0x488e70
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x4881a0
mov eax, esi
mov dword [esp + 0x48], edi
mov esi, ecx
mov ecx, eax
mov edi, dword [esp + 0x44]
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 eax, edi
add eax, edx
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
ja 0x489c07
mov eax, edi
mov edi, dword [esp + 0x24]
mov word [esp + 0x28], cx
add eax, 0x38
mov dword [esp + 0x40], eax
lea eax, [edi + eax*2]
shl eax, 0x1e
shr eax, 0x1f
cmp eax, edx
cmova eax, edx
cmp edx, 6
ja 0x489849
mov eax, edi
mov edi, dword [esp + 0x40]
cmp edx, 2
mov word [eax + edi*2], cx
mov edi, dword [esp + 0x44]
mov word [eax + edi*2 + 0x72], cx
je 0x488255
cmp edx, 3
mov word [eax + edi*2 + 0x74], cx
je 0x488255
cmp edx, 4
mov word [eax + edi*2 + 0x76], cx
je 0x488255
cmp edx, 6
mov word [eax + edi*2 + 0x78], cx
jne 0x488255
mov word [eax + edi*2 + 0x7a], cx
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x4c]
mov dword [edi + 0x68], eax
mov dword [esp + 0x44], eax
jmp 0x4880cc
cmp esi, 0xd
ja 0x489939
test ebp, ebp
je 0x488d60
lea eax, [edi + 1]
mov ecx, esi
lea edx, [ebp - 1]
mov dword [esp + 0x40], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
mov ebx, dword [esp + 0x28]
cmp ecx, 0xd
ja 0x48994f
test edx, edx
je 0x48961e
lea eax, [edi + 2]
sub ebp, 2
add esi, 0x10
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
add ebx, eax
mov dword [esp + 0x28], ebx
mov edi, ebx
mov eax, edi
mov ebx, edi
mov ecx, dword [esp + 0x24]
shr eax, 5
mov edx, edi
shr ebx, 0xa
and eax, 0x1f
and edx, 0x1f
and ebx, 0xf
add eax, 1
add edx, 0x101
add ebx, 4
shr edi, 0xe
sub esi, 0xe
cmp eax, 0x1e
mov dword [ecx + 0x60], edx
mov dword [ecx + 0x64], eax
mov dword [ecx + 0x5c], ebx
mov dword [esp + 0x28], edi
ja 0x48921b
cmp edx, 0x11e
ja 0x48921b
mov dword [ecx + 0x68], 0
mov dword [ecx], 0x11
xor edx, edx
mov ecx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x28], ebx
jmp 0x48834d
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x68]
mov ebx, dword [eax + 0x5c]
cmp edx, ebx
jae 0x4883a8
mov ecx, esi
mov dword [esp + 0x40], edi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x28], ebx
cmp ecx, 2
ja 0x488376
test ebp, ebp
je 0x489737
mov eax, dword [esp + 0x40]
sub ebp, 1
movzx eax, byte [eax]
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x40], eax
add edx, 1
mov eax, esi
sub ecx, 3
and eax, 7
movzx edi, word [edx + edx + 0x4dbd3e]
shr esi, 3
cmp dword [esp + 0x28], edx
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x68], edx
mov word [ebx + edi*2 + 0x70], ax
ja 0x48834d
mov edi, dword [esp + 0x40]
mov dword [esp + 0x28], esi
mov esi, ecx
cmp edx, 0x12
lea eax, [edx + edx + 0x4dbd40]
mov ecx, dword [esp + 0x24]
ja 0x4883df
nop
lea esi, [esi]
movzx edx, word [eax]
add eax, 2
xor ebx, ebx
cmp eax, 0x4dbd66
mov word [ecx + edx*2 + 0x70], bx
jne 0x4883c0
mov eax, dword [esp + 0x24]
mov dword [eax + 0x68], 0x13
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x4c], ebx
mov ebx, eax
mov dword [eax + 0x54], 7
add eax, 0x54
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, ebx
mov dword [esp + 8], 0x13
add eax, 0x6c
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov eax, ebx
add eax, 0x70
mov dword [esp + 4], eax
call fcn.0048a4f0
test eax, eax
mov dword [esp + 0x3c], eax
je 0x48990b
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
cmp esi, 0xf
ja 0x489932
test ebp, ebp
je 0x488d60
movzx eax, byte [edi]
mov ecx, esi
lea edx, [ebp - 1]
lea ebx, [edi + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xf
ja 0x489946
test edx, edx
je 0x489967
movzx eax, byte [edi + 1]
lea ebx, [edi + 2]
sub ebp, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
cmp al, 8
mov dword [edi + 0x10], eax
je 0x4891e2
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edi], 0x1d
mov eax, 0x1d
mov edi, ebx
jmp switch.0x0048782e
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x40]
jmp 0x488051
cmp esi, 0xf
ja 0x488527
test ebp, ebp
je 0x488d60
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x48850d
test ebp, ebp
je 0x488e30
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x488505
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x488542
mov ebx, dword [esp + 0x28]
movzx edx, bl
shr ebx, 8
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test ah, 2
jne 0x4893a7
mov esi, dword [esp + 0x24]
mov ebx, eax
mov dword [esp + 0x28], 0
mov dword [esi], 4
xor esi, esi
test ah, 4
je 0x488d30
test ebp, ebp
je 0x488d60
mov ebx, dword [esp + 0x28]
mov ecx, esi
jmp 0x488589
test ebp, ebp
je 0x488e70
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, 0xf
jbe 0x488581
mov dword [esp + 0x28], ebx
jmp 0x4885c0
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test ah, 4
mov ebx, eax
je 0x488d30
cmp esi, 0xf
mov ebx, dword [esp + 0x28]
jbe 0x488571
mov esi, dword [esp + 0x24]
mov edx, dword [esi + 0x20]
mov dword [esi + 0x40], ebx
test edx, edx
je 0x4885d1
mov dword [edx + 0x14], ebx
test ah, 2
jne 0x48962f
mov ebx, eax
xor esi, esi
and eax, 0x400
mov dword [esp + 0x28], 0
jmp 0x488d4d
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
mov eax, ebx
and eax, 0x400
test eax, eax
je 0x48869d
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x40]
cmp ebp, edx
mov ecx, edx
mov dword [esp + 0x40], edx
cmovbe ecx, ebp
test ecx, ecx
je 0x48868e
mov edx, dword [eax + 0x20]
test edx, edx
je 0x48866f
mov eax, dword [edx + 0x10]
test eax, eax
mov dword [esp + 0x44], eax
je 0x48866f
mov ebx, dword [edx + 0x14]
sub ebx, dword [esp + 0x40]
mov edx, dword [edx + 0x18]
mov dword [esp + 4], edi
mov eax, ebx
lea ebx, [ebx + ecx]
mov dword [esp + 0x40], ebx
mov ebx, edx
sub ebx, eax
cmp dword [esp + 0x40], edx
mov dword [esp + 0x40], ecx
cmovbe ebx, ecx
add eax, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
mov ebx, dword [edx + 0x10]
and bh, 2
jne 0x489569
mov eax, dword [esp + 0x24]
sub ebp, ecx
add edi, ecx
mov ebx, dword [eax + 0x40]
mov edx, ebx
mov dword [esp + 0x40], ebx
sub edx, ecx
mov dword [eax + 0x40], edx
test edx, edx
jne 0x488d60
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x24]
test bh, 8
mov dword [eax + 0x40], 0
mov dword [eax], 6
jne 0x488c80
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x488cf7
mov dword [eax + 0x1c], 0
jmp 0x488cf7
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
test bh, 0x10
je 0x488d11
test ebp, ebp
je 0x488d60
mov dword [esp + 0x44], esi
xor ebx, ebx
mov dword [esp + 0x40], ebp
mov esi, dword [esp + 0x24]
jmp 0x488706
cmp dword [esp + 0x40], ebx
jbe 0x488732
mov eax, dword [esi + 0x20]
add ebx, 1
movzx edx, byte [edi + ebx - 1]
test eax, eax
je 0x48872e
mov ebp, dword [eax + 0x24]
test ebp, ebp
je 0x48872e
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x28]
jae 0x48872e
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [ebp + ecx], dl
test dl, dl
jne 0x488700
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
test byte [eax + 0x11], 2
jne 0x489270
sub ebp, ebx
add edi, ebx
test dl, dl
jne 0x488d60
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x24]
mov dword [eax], 8
test bh, 2
je 0x488d90
cmp esi, 0xf
ja 0x489707
test ebp, ebp
je 0x488d60
lea eax, [edi + 1]
mov ecx, esi
lea edx, [ebp - 1]
mov dword [esp + 0x40], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xf
ja 0x489710
test edx, edx
je 0x48961e
lea eax, [edi + 2]
sub ebp, 2
add esi, 0x10
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
add dword [esp + 0x28], eax
mov edi, dword [esp + 0x24]
movzx eax, word [edi + 0x18]
cmp eax, dword [esp + 0x28]
je 0x488d80
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [edi], 0x1d
mov eax, 0x1d
mov edi, dword [esp + 0x40]
jmp switch.0x0048782e
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
jmp 0x488765
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
test eax, eax
je 0x489810
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x489810
cmp esi, 0x1f
ja 0x4888b5
test ebp, ebp
je 0x4897ad
movzx eax, byte [edi]
mov ecx, esi
lea edx, [ebp - 1]
lea ebx, [edi + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4894e0
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 1]
lea edx, [ebp - 2]
lea ebx, [edi + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4894e0
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 2]
lea edx, [ebp - 3]
lea ebx, [edi + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4894e0
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 3]
lea ebx, [edi + 4]
sub ebp, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov edi, ebx
mov edx, dword [esp + 0x28]
cmp dword [eax + 0x1c], edx
je 0x489b27
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x18], str.incorrect_length_check
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov ebx, ebp
mov dword [esp + 0x3c], 1
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 8]
test edx, edx
je 0x4890f0
cmp esi, 0xf
ja 0x488953
test ebp, ebp
je 0x4897ad
lea eax, [ebp - 1]
mov ecx, esi
lea ebx, [edi + 1]
mov dword [esp + 0x40], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xf
ja 0x489a34
mov eax, dword [esp + 0x40]
test eax, eax
je 0x489a25
movzx eax, byte [edi + 1]
lea ebx, [edi + 2]
sub ebp, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x28], eax
mov edi, ebx
test dl, 2
je 0x488966
cmp dword [esp + 0x28], 0x8b1f
je 0x489a3f
mov eax, dword [esp + 0x24]
mov dword [eax + 0x10], 0
mov eax, dword [eax + 0x20]
test eax, eax
je 0x48897f
mov dword [eax + 0x30], 0xffffffff
and edx, 1
je 0x4894e9
mov ecx, dword [esp + 0x28]
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 0x4894e9
mov eax, dword [esp + 0x28]
and eax, 0xf
cmp eax, 8
je 0x489aa1
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
shr dword [esp + 0x28], cl
cmp esi, 0x1f
ja 0x48992b
test ebp, ebp
je 0x488d60
movzx eax, byte [edi]
mov ecx, esi
lea edx, [ebp - 1]
lea ebx, [edi + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x489684
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 1]
lea edx, [ebp - 2]
lea ebx, [edi + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x489684
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 2]
lea edx, [ebp - 3]
lea ebx, [edi + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x489684
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 3]
lea ebx, [edi + 4]
sub ebp, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x28], eax
mov edx, dword [esp + 0x28]
movzx eax, dx
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x4891b6
mov eax, dword [esp + 0xa0]
mov edi, ebx
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x488d60
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [edx + 0x40]
mov byte [ecx], al
mov eax, ebx
mov dword [edx], 0x14
sub eax, 1
mov dword [esp + 0x30], eax
lea eax, [ecx + 1]
mov dword [esp + 0x2c], eax
mov eax, 0x14
jmp switch.0x0048782e
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
test eax, eax
je 0x4890e1
cmp esi, 0x1f
ja 0x4899e4
test ebp, ebp
je 0x488d60
movzx eax, byte [edi]
mov ecx, esi
lea edx, [ebp - 1]
lea ebx, [edi + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x489902
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 1]
lea edx, [ebp - 2]
lea ebx, [edi + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x489902
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 2]
lea edx, [ebp - 3]
lea ebx, [edi + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x489902
test edx, edx
je 0x4892e0
movzx eax, byte [edi + 3]
lea ebx, [edi + 4]
sub ebp, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x28], eax
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
add dword [edi + 0x14], eax
mov edi, dword [esp + 0x24]
add dword [edi + 0x1c], eax
test eax, eax
je 0x488c06
mov edx, dword [edi + 0x10]
mov dword [esp + 8], eax
test edx, edx
je 0x48982b
mov edx, dword [esp + 0x2c]
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.0048bad0
mov edi, dword [esp + 0x24]
mov dword [edi + 0x18], eax
mov edi, dword [esp + 0xa0]
mov dword [edi + 0x30], eax
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x28]
test ecx, ecx
mov eax, edx
jne 0x488c3b
mov edi, edx
shl eax, 0x18
shr edx, 0x18
lea ecx, [edx + eax]
mov eax, edi
shr eax, 8
and eax, 0xff00
lea edx, [ecx + eax]
mov eax, edi
mov edi, dword [esp + 0x24]
and eax, 0xff00
shl eax, 8
add eax, edx
cmp eax, dword [edi + 0x18]
je 0x4890ca
mov eax, dword [esp + 0xa0]
mov edi, ebx
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov eax, 0x1d
jmp switch.0x0048782e
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
test bh, 8
je 0x4886b7
test ebp, ebp
je 0x488d60
mov dword [esp + 0x44], esi
xor ebx, ebx
mov dword [esp + 0x40], ebp
mov esi, dword [esp + 0x24]
jmp 0x488ca6
cmp dword [esp + 0x40], ebx
jbe 0x488cd2
mov eax, dword [esi + 0x20]
add ebx, 1
movzx edx, byte [edi + ebx - 1]
test eax, eax
je 0x488cce
mov ebp, dword [eax + 0x1c]
test ebp, ebp
je 0x488cce
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x20]
jae 0x488cce
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [ebp + ecx], dl
test dl, dl
jne 0x488ca0
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
test byte [eax + 0x11], 2
jne 0x4892a0
sub ebp, ebx
add edi, ebx
test dl, dl
jne 0x488d60
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x24]
test bh, 0x10
mov dword [eax + 0x40], 0
mov dword [eax], 7
jne 0x4886e2
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x48875b
mov dword [eax + 0x24], 0
jmp 0x48875b
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x20]
test edx, edx
je 0x489214
mov ebx, eax
mov dword [edx + 0x10], 0
and eax, 0x400
mov edx, dword [esp + 0x24]
mov dword [edx], 5
jmp 0x4885fe
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x487e20
sub eax, 0xffffff80
xor edx, edx
jmp 0x487f8c
mov edi, dword [esp + 0x40]
xor esi, esi
mov dword [esp + 0x28], 0
nop
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x488dad
mov edx, ebx
mov dword [eax + 0x30], 1
sar edx, 9
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0048bad0
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov eax, 0xb
mov dword [ebx], 0xb
jmp switch.0x0048782e
mov eax, dword [eax + 4]
test eax, eax
jne case.default.0x48782e
mov dword [esp + 0x38], 0
jmp 0x4877c2
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.0048b2d0
jmp 0x487f55
mov ebx, ebp
mov dword [esp + 0x28], edx
mov ebp, edi
mov esi, ecx
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov edx, dword [esp + 0x2c]
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 0x487f05
mov dword [esp + 0x28], ebx
mov esi, ecx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov dword [esi + 0x30], 0
jmp 0x487ef9
mov eax, dword [esp + 0x2c]
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 0x487f05
mov eax, dword [esp + 0x24]
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x0048782e
mov eax, dword [esp + 0x2c]
sub eax, edx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x40]
mov edx, ecx
mov ebx, dword [esp + 0x30]
cmp ebx, ecx
cmovbe ecx, ebx
sub ebx, ecx
sub edx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x40], edx
mov ebx, dword [esp + 0x2c]
mov edx, ebx
add edx, 4
cmp eax, edx
lea edx, [eax + 4]
setae cl
cmp ebx, edx
setae dl
or edx, ecx
cmp dword [esp + 0x40], 9
seta cl
test dl, cl
je 0x489370
mov edx, ebx
or edx, eax
and edx, 3
jne 0x489370
mov ecx, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x44], esi
sub ecx, 4
shr ecx, 2
add ecx, 1
lea ebx, [ecx*4]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov esi, dword [eax + edx*4]
mov dword [ebx + edx*4], esi
add edx, 1
cmp edx, ecx
jb 0x488f56
mov edx, ebx
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
add edx, ebx
sub ecx, ebx
add eax, ebx
cmp dword [esp + 0x40], ebx
je 0x488f9a
movzx ebx, byte [eax]
cmp ecx, 1
mov byte [edx], bl
je 0x488f9a
movzx ebx, byte [eax + 1]
cmp ecx, 2
mov byte [edx + 1], bl
je 0x488f9a
movzx eax, byte [eax + 2]
mov byte [edx + 2], al
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
add dword [esp + 0x2c], ebx
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x488fc0
mov edx, ebp
mov eax, dword [eax]
mov ebp, edi
mov edi, edx
jmp 0x48781f
mov dword [eax], 0x14
mov eax, 0x14
jmp switch.0x0048782e
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0x2c]
mov dword [ebx + 0x10], eax
mov dword [ebx], edi
mov dword [ebx + 4], ebp
mov dword [ebx + 0xc], edx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
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.0048f940
mov eax, dword [esp + 0xa0]
mov esi, dword [ebx + 0x38]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], esi
mov esi, dword [ebx + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov eax, dword [ebx]
cmp eax, 0xb
je 0x489590
mov ebx, ebp
mov ebp, edi
mov edi, ebx
jmp 0x48781f
cmp esi, ebx
jae 0x489093
test ebp, ebp
je 0x488d60
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x489078
test ebp, ebp
je 0x488e30
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x489070
mov dword [esp + 0x28], edx
mov esi, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x24]
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 + 0x24]
mov dword [esp + 0x28], edx
add dword [ecx + 0x1bc4], ebx
mov ebx, ecx
jmp 0x487c2a
mov esi, dword [esp + 0x30]
mov eax, dword [edi + 8]
mov edi, ebx
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], esi
xor esi, esi
mov ebx, dword [esp + 0x24]
mov dword [ebx], 0x1b
jmp 0x488807
mov dword [eax], 0xc
mov eax, 0xc
jmp switch.0x0048782e
mov eax, dword [ebx + 0x1bc0]
test eax, eax
je 0x487ac8
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x4db3e5
mov dword [ebx], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov edx, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
mov edx, dword [edx + 0x1bc4]
mov dword [esp + 0x44], edx
add edx, eax
mov ecx, eax
mov eax, dword [esp + 0x24]
shr dword [esp + 0x28], cl
sub esi, dword [esp + 0x48]
test bl, 0x40
mov dword [eax + 0x1bc4], edx
je 0x489350
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], 0x4db3cf
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
shr ebx, cl
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
sub esi, eax
mov eax, ecx
add eax, 1
mov dword [edi + 0x68], eax
mov dword [esp + 0x44], eax
mov word [edi + ecx*2 + 0x70], dx
mov edx, dword [esp + 0x4c]
jmp 0x4880cc
mov dword [ebx], 0x10
mov eax, 0x10
jmp 0x4879d5
cmp dword [esp + 0xa4], 6
mov esi, dword [esp + 0x24]
mov dword [esi + 0x40], eax
mov dword [esi], 0xe
je 0x489bee
mov edi, ebx
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x488047
test dword [esp + 0x28], 0xe000
je 0x4897d4
mov eax, dword [esp + 0xa0]
mov edi, ebx
mov dword [eax + 0x18], str.unknown_header_flags_set
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
xor eax, eax
jmp 0x488d4d
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x40]
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov ebx, esi
mov dword [esp + 0x28], ebp
mov esi, ecx
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov ebx, ebp
mov dword [esp + 0x28], esi
mov ebp, edi
mov esi, ecx
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [eax + 0x18]
mov byte [esp + 0x40], dl
mov dword [esp], eax
call fcn.0048bad0
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
movzx edx, byte [esp + 0x40]
jmp 0x488748
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [eax + 0x18]
mov byte [esp + 0x40], dl
mov dword [esp], eax
call fcn.0048bad0
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
movzx edx, byte [esp + 0x40]
jmp 0x488ce8
mov eax, 0xfffffffe
jmp 0x487e03
mov ebp, ebx
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebx, ebx
jmp 0x487e20
sub eax, ecx
add eax, dword [ebx + 0x34]
jmp 0x487ae1
test bl, 0xf0
je 0x4893e4
mov ecx, edx
mov edx, dword [esp + 0x24]
sub esi, eax
shr dword [esp + 0x28], cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x44]
mov dword [edx + 0x40], eax
test bl, 0x20
je 0x4895f3
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x0048782e
mov edx, eax
movzx eax, word [esp + 0x40]
and ebx, 0xf
mov dword [edx + 0x48], ebx
mov dword [edx], 0x17
mov dword [edx + 0x44], eax
jmp 0x487a27
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + ebx]
nop
lea esi, [esi]
add eax, 1
movzx ebx, byte [eax - 1]
add edx, 1
cmp ecx, eax
mov byte [edx - 1], bl
jne 0x489380
jmp 0x488f9a
mov dword [esp + 0x28], ebx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
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.0048bad0
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x10]
jmp 0x488552
movzx ecx, word [esp + 0x44]
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 + 0x4c], ebx
and ebx, dword [esp + 0x28]
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 + 0x48], cx
lea ecx, [eax + edx]
mov dword [esp + 0x60], edx
cmp ecx, esi
mov dword [esp + 0x5c], ecx
jbe 0x48949d
test ebp, ebp
je 0x488d60
mov ebx, dword [esp + 0x28]
jmp 0x489449
test ebp, ebp
je 0x489396
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 + 0x4c]
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 + 0x48], cx
lea ecx, [eax + edx]
cmp ecx, esi
ja 0x489441
mov dword [esp + 0x28], ebx
mov dword [esp + 0x60], edx
movzx ebx, byte [esp + 0x5c]
mov dword [esp + 0x5c], ecx
sub esi, eax
mov ecx, eax
mov edx, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x60]
shr edx, cl
sub eax, esi
mov ecx, esi
shr edx, cl
mov esi, eax
movzx eax, word [esp + 0x48]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x5c]
test bl, bl
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1bc4], ecx
mov dword [edx + 0x40], eax
jne 0x489323
jmp 0x487bf5
mov esi, ecx
mov ebp, edx
jmp 0x4888af
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_header_check
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
cmp dword [esp + 0xa4], 6
mov eax, ebx
mov dword [ebx + 0x4c], 0x4db540
mov dword [ebx + 0x54], 9
mov dword [ebx + 0x50], 0x4db4c0
mov dword [ebx + 0x58], 5
mov dword [ebx], 0x13
je 0x489c31
mov eax, 0x13
jmp 0x4879d5
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_block_type
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp 0x4879d5
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp + 0x40], ecx
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.0048bad0
mov ecx, dword [esp + 0x40]
mov dword [ebx + 0x18], eax
jmp 0x488678
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1bc4], 0xffffffff
jmp switch.0x0048782e
mov esi, dword [esp + 0x28]
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 + 0x24]
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.0048bad0
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x24]
jmp 0x488027
test bl, 0x40
je 0x4897b8
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x4db3b3
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x40]
jmp 0x487e20
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
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.0048bad0
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], eax
xor esi, esi
mov dword [esp + 0x28], 0
mov eax, ebx
and eax, 0x400
jmp 0x488d4d
mov ebp, edx
jmp 0x4878c5
mov esi, ecx
mov ebp, edx
jmp 0x488a8d
lea edi, [eax + 2]
cmp edi, esi
mov edx, edi
jbe 0x4896d5
test ebp, ebp
je 0x489724
mov ecx, esi
mov edi, dword [esp + 0x48]
mov esi, eax
mov eax, edx
jmp 0x4896b8
test ebp, ebp
je 0x488e70
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x4896b0
mov eax, esi
mov dword [esp + 0x48], edi
mov esi, ecx
mov ecx, eax
sub esi, eax
mov eax, dword [esp + 0x44]
shr ebx, cl
test eax, eax
je 0x489c07
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
mov edx, ebx
and edx, 3
shr ebx, 2
sub esi, 2
add edx, 3
movzx ecx, word [eax + edi*2 + 0x6e]
jmp 0x4881df
mov dword [esp + 0x40], edi
jmp 0x4887bf
mov esi, ecx
mov ebp, edx
jmp 0x4887bf
mov ebx, edi
mov edi, dword [esp + 0x24]
jmp 0x487e20
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x24]
mov ebx, ebp
mov ebp, dword [esp + 0x48]
jmp 0x487e20
mov ebx, ebp
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 0x40]
mov esi, ecx
mov edi, dword [esp + 0x24]
jmp 0x487e20
lea edi, [eax + 3]
cmp edi, esi
mov edx, edi
jbe 0x48978a
test ebp, ebp
je 0x489724
mov ecx, esi
mov edi, dword [esp + 0x48]
mov esi, eax
mov eax, edx
jmp 0x48976d
test ebp, ebp
je 0x488e70
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x489765
mov eax, esi
mov dword [esp + 0x48], edi
mov esi, ecx
mov ecx, eax
mov edi, 0xfffffffd
shr ebx, cl
sub edi, eax
xor ecx, ecx
mov edx, ebx
add esi, edi
shr ebx, 3
and edx, 7
mov edi, dword [esp + 0x44]
add edx, 3
jmp 0x4881df
mov ebx, ebp
mov ebp, edi
mov edi, eax
jmp 0x487e20
mov eax, dword [esp + 0x24]
and ebx, 0xf
mov dword [eax + 0x48], ebx
mov dword [eax], 0x15
jmp 0x487c17
mov edx, ebp
jmp 0x487998
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4897e7
mov edx, dword [esp + 0x28]
shr edx, 8
and edx, 1
mov dword [eax], edx
test dword [esp + 0x28], 0x200
jne 0x4899eb
mov eax, dword [esp + 0x24]
mov edi, ebx
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [eax], 2
jmp 0x487fd5
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [edi], 0x1c
mov dword [esp + 0x3c], 1
jmp 0x487e20
mov edi, dword [esp + 0x2c]
sub edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edi
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.0048b2d0
jmp 0x488bf1
test eax, eax
jne 0x4898c4
lea ecx, [edx - 2]
mov dword [esp + 0x64], edx
shr ecx, 1
add ecx, 1
lea edi, [ecx + ecx]
mov dword [esp + 0x68], edi
movzx edx, word [esp + 0x28]
add eax, dword [esp + 0x40]
mov dword [esp + 0x40], ebx
mov edi, edx
shl edi, 0x10
or edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x6c]
lea edx, [edi + eax*2]
mov edi, dword [esp + 0x48]
xor eax, eax
mov dword [edx + eax*4], ebx
add eax, 1
cmp ecx, eax
ja 0x489889
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x68]
add dword [esp + 0x44], edi
cmp dword [esp + 0x64], edi
mov ebx, dword [esp + 0x40]
je 0x488255
movzx edx, word [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
mov word [eax + edi*2 + 0x70], dx
jmp 0x488255
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
mov word [eax + edi*2], cx
lea eax, [edx - 1]
mov edi, eax
mov dword [esp + 0x64], eax
lea eax, [edx - 3]
shr eax, 1
cmp edi, 1
lea ecx, [eax + 1]
lea eax, [ecx + ecx]
mov dword [esp + 0x68], eax
je 0x4898ad
mov eax, 1
jmp 0x489860
mov esi, ecx
mov ebp, edx
jmp 0x488bb0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], 0
mov dword [eax + 0x68], 0
mov dword [eax], 0x12
mov edx, eax
jmp 0x4880b4
mov ebx, edi
jmp 0x488a8d
mov ebx, edi
jmp 0x4884a9
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x28]
jmp 0x4882c9
mov esi, ecx
mov ebp, edx
jmp 0x4884a9
mov esi, ecx
mov ebp, edx
mov edi, ebx
jmp 0x4882c9
mov ebp, ebx
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x487e20
mov edx, ebx
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebx, ebx
mov ebp, edx
jmp 0x487e20
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x28], ebx
cmp word [eax + 0x270], 0
jne 0x489b3e
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.0x0048782e
mov ebx, ebp
mov edx, dword [esp + 0x2c]
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 0x10], edx
mov eax, dword [esp + 0x28]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], eax
mov eax, 2
jmp 0x487e03
mov ebx, edi
jmp 0x488bb0
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
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.0048bad0
mov dword [esi + 0x18], eax
jmp 0x4897f5
mov ebp, ebx
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebx, ebx
jmp 0x487e20
mov esi, ecx
mov ebp, dword [esp + 0x40]
jmp 0x488951
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0048bad0
mov esi, dword [esp + 0x24]
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.0048bad0
mov dword [esi], 1
mov dword [esi + 0x18], eax
mov eax, 1
xor esi, esi
mov dword [esp + 0x28], 0
jmp switch.0x0048782e
shr dword [esp + 0x28], 4
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
and eax, 0xf
mov ecx, eax
mov eax, dword [ebx + 0x24]
add ecx, 8
test eax, eax
jne 0x489bba
mov eax, ebp
mov dword [ebx + 0x24], ecx
mov ebp, edi
mov edi, eax
mov esi, dword [esp + 0x24]
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.0048b2d0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0xa0]
mov dword [esi + 0x18], eax
mov dword [esp + 0x28], 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 0x48781f
mov ebx, ebp
xor esi, esi
mov ebp, edi
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x24]
jmp 0x489818
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x4c], ebx
lea edx, [eax + 0x70]
mov dword [eax + 0x54], 9
mov dword [esp + 0x14], ecx
lea ebx, [eax + 0x6c]
mov ecx, dword [esp + 0x5c]
add eax, 0x54
mov dword [esp + 4], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov dword [esp], 1
mov dword [esp + 0x40], edx
mov dword [esp + 8], ecx
call fcn.0048a4f0
test eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x40]
je 0x489c44
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.invalid_literal_lengths_set
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
cmp ecx, eax
jbe 0x489be3
mov eax, dword [esp + 0xa0]
sub esi, 4
mov dword [eax + 0x18], str.invalid_window_size
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov eax, ebp
mov ebp, edi
mov edi, eax
jmp 0x489aca
mov eax, ebx
mov edi, dword [esp + 0x24]
mov ebx, ebp
xor esi, esi
mov ebp, eax
mov dword [esp + 0x28], 0
jmp 0x487e20
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x28], ebx
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov eax, dword [esp + 0x24]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e
mov ebx, edi
shr dword [esp + 0x28], 3
mov edi, eax
sub esi, 3
mov ebp, edx
jmp 0x487e20
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x6c]
mov dword [ecx + 0x58], 6
mov dword [ecx + 0x50], eax
mov eax, ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], ecx
mov ecx, eax
add eax, 0x58
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x64]
mov ebx, ecx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x60]
mov dword [esp], 2
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
call fcn.0048a4f0
test eax, eax
mov dword [esp + 0x3c], eax
je 0x487aee
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_distances_set
mov dword [ebx], 0x1d
mov eax, 0x1d
jmp switch.0x0048782e