Function at 0x4e3860
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.0x4e3908
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0x4e3908
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
je case.default.0x4e3908
mov eax, dword [esp + 0xa0]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
test ebx, ebx
mov dword [esp + 0x3c], eax
je 0x4e3920
mov eax, dword [edi]
cmp eax, 0xb
je 0x4e3910
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x24], edi
mov esi, dword [esi + 0x10]
sub edx, 5
mov dword [esp + 0x4c], edx
mov ecx, esi
mov dword [esp + 0x2c], esi
mov esi, dword [edi + 0x38]
mov dword [esp + 0x34], ecx
lea ecx, [edi + 0x530]
mov dword [esp + 0x28], esi
mov esi, dword [edi + 0x3c]
mov dword [esp + 0x54], ecx
lea ecx, [edi + 0x2f0]
mov edi, ebp
mov dword [esp + 0x50], ecx
mov ebp, esi
mov esi, ebx
cmp eax, 0x1e
ja case.default.0x4e3908
jmp dword [eax*4 + 0x5041d0]
mov dword [edi], 0xc
mov eax, 0xc
jmp 0x4e38b5
test eax, eax
je 0x4e38ae
mov dword [esp + 0x38], 0xfffffffe
mov eax, dword [esp + 0x38]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x28], ebp
mov ebp, ecx
test bl, bl
jne 0x4e51a0
mov ebx, dword [esp + 0x24]
sub ebp, eax
mov ecx, edx
shr dword [esp + 0x28], cl
mov dword [ebx + 0x1bc4], eax
movzx eax, word [esp + 0x40]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [eax], 0x19
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4e4b20
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, dword [edx + 0x40]
mov byte [ecx], al
mov eax, ebx
mov dword [edx], 0x14
sub eax, 1
mov dword [esp + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
cmp edi, 5
jbe 0x4e39b5
mov eax, dword [esp + 0x2c]
cmp eax, 0x101
ja 0x4e4ba0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
mov ebx, dword [eax + 0x4c]
mov dword [eax + 0x1bc4], 0
mov eax, 1
shl eax, cl
mov dword [esp + 0x38], ebx
sub eax, 1
mov ecx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
and eax, ecx
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x40], ax
movzx eax, dl
cmp ebp, eax
jae 0x4e3946
test edi, edi
je 0x4e4b20
mov ecx, ebp
mov ebp, dword [esp + 0x28]
jmp 0x4e3a19
test edi, edi
je 0x4e3e30
add esi, 1
movzx eax, byte [esi - 1]
mov ebx, dword [esp + 0x38]
sub edi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, dword [esp + 0x44]
and eax, ebp
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x40], ax
movzx eax, dl
cmp eax, ecx
ja 0x4e3a11
jmp 0x4e3940
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x48]
test ebx, ebx
je 0x4e3ac2
cmp ebp, ebx
jae 0x4e3a95
test edi, edi
je 0x4e4b20
mov edx, dword [esp + 0x28]
mov ecx, ebp
jmp 0x4e3a7a
test edi, edi
je 0x4e4470
add esi, 1
movzx eax, byte [esi - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x4e3a72
mov dword [esp + 0x28], edx
mov ebp, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x24]
sub ebp, 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 ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4e4b20
mov eax, dword [esp + 0x34]
sub eax, ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x44]
cmp eax, edx
jae 0x4e49f0
sub edx, eax
cmp edx, dword [ebx + 0x2c]
mov eax, ebx
jbe 0x4e4b40
mov ecx, dword [ebx + 0x1bc0]
test ecx, ecx
je 0x4e4b40
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x504185
mov dword [edi], 0x1d
mov dword [esp + 0x38], 0xfffffffd
lea esi, [esi]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x30]
mov edx, eax
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x2c]
mov dword [edx], ebx
mov dword [edx + 4], ebp
mov ebx, dword [esp + 0x28]
mov dword [edx + 0x10], eax
mov edx, dword [edi + 0x28]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], ebx
test edx, edx
jne 0x4e3b85
cmp dword [esp + 0x34], eax
je 0x4e3c26
mov eax, dword [edi]
cmp eax, 0x1c
ja 0x4e3c26
cmp dword [esp + 0xa4], 4
jne 0x4e3b85
cmp eax, 0x19
ja 0x4e3c26
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0x2c]
mov ebp, dword [eax + 0x1c]
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x4e4ef0
mov esi, dword [ebp + 0x28]
test esi, esi
jne 0x4e3bc4
mov ecx, dword [ebp + 0x24]
mov esi, 1
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x2c], 0
shl esi, cl
mov dword [ebp + 0x28], esi
cmp ebx, esi
jae 0x4e3e50
mov ecx, dword [ebp + 0x30]
sub esi, ecx
cmp ebx, esi
cmovbe esi, ebx
add eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp], eax
sub ecx, ebx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
sub ebx, esi
jne 0x4e3ea0
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x28]
add edx, esi
cmp edx, eax
mov dword [ebp + 0x30], edx
je 0x4e3e90
mov edx, dword [ebp + 0x2c]
cmp eax, edx
jbe 0x4e3c15
add esi, edx
mov dword [ebp + 0x2c], esi
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0x2c]
sub esi, ebp
mov ebp, dword [edi + 8]
add dword [eax + 8], esi
add dword [eax + 0x14], ebx
add dword [edi + 0x1c], ebx
test ebp, ebp
je 0x4e3c83
test ebx, ebx
je 0x4e3c83
mov ecx, dword [edi + 0x10]
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
test ecx, ecx
mov dword [esp + 0x24], eax
je 0x4e3e14
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.004ea010
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
mov edx, dword [edi + 4]
mov ecx, dword [edi]
xor eax, eax
test edx, edx
setne al
shl eax, 6
add eax, dword [edi + 0x3c]
cmp ecx, 0xb
je 0x4e3cf0
cmp ecx, 0x13
je 0x4e3ca6
xor edx, edx
cmp ecx, 0xe
jne 0x4e3cab
mov edx, 0x100
mov edi, dword [esp + 0xa0]
add eax, edx
or esi, ebx
mov dword [edi + 0x2c], eax
je 0x4e3cc9
cmp dword [esp + 0xa4], 4
jne 0x4e392c
mov ebx, dword [esp + 0x38]
mov eax, 0xfffffffb
test ebx, ebx
cmovne eax, ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
sub eax, 0xffffff80
xor edx, edx
jmp 0x4e3cab
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x48]
test ebx, ebx
jne 0x4e4c30
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 ebx, dword [eax + 0x50]
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], ebx
sub eax, 1
mov ecx, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
and eax, ecx
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x38], ax
movzx eax, dl
cmp eax, ebp
mov dword [esp + 0x44], eax
jbe 0x4e3db7
test edi, edi
je 0x4e4b20
mov ecx, ebp
mov ebp, dword [esp + 0x28]
jmp 0x4e3d78
test edi, edi
je 0x4e3e30
add esi, 1
movzx eax, byte [esi - 1]
mov ebx, dword [esp + 0x40]
sub edi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, dword [esp + 0x48]
and eax, ebp
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x38], ax
movzx eax, dl
cmp eax, ecx
mov dword [esp + 0x44], eax
ja 0x4e3d70
mov dword [esp + 0x28], ebp
mov ebp, ecx
test bl, 0xf0
je 0x4e4f70
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov ecx, dword [ecx + 0x1bc4]
mov dword [esp + 0x40], ecx
mov edx, ecx
add edx, eax
mov ecx, eax
mov eax, dword [esp + 0x24]
shr dword [esp + 0x28], cl
sub ebp, dword [esp + 0x44]
test bl, 0x40
mov dword [eax + 0x1bc4], edx
je 0x4e51f0
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x50416f
mov dword [edi], 0x1d
jmp 0x4e3b24
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.004e97f0
jmp 0x4e3c76
mov ebx, esi
mov dword [esp + 0x28], ebp
mov esi, ecx
mov ebp, edi
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov edx, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp], eax
sub edx, esi
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov dword [ebp + 0x30], 0
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
jmp 0x4e3c26
mov dword [ebp + 0x30], 0
jmp 0x4e3c09
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x34]
mov dword [esp + 8], ebx
sub eax, ebx
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov dword [ebp + 0x30], ebx
jmp 0x4e3e6d
cmp ebp, 0x1f
ja 0x4e3ef5
test edi, edi
je 0x4e4b20
mov edx, dword [esp + 0x28]
mov ecx, ebp
jmp 0x4e3edb
test edi, edi
je 0x4e4470
add esi, 1
movzx eax, byte [esi - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x4e3ed3
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4e3f07
mov ebx, dword [esp + 0x28]
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x24]
test byte [eax + 0x11], 2
jne 0x4e54f6
mov dword [eax], 3
xor ebp, ebp
mov dword [esp + 0x28], 0
test edi, edi
je 0x4e4b20
mov edx, dword [esp + 0x28]
mov ecx, ebp
jmp 0x4e3f3d
test edi, edi
je 0x4e4470
add esi, 1
movzx eax, byte [esi - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x4e3f35
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4e3f72
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 edx, dword [eax + 0x10]
test dh, 2
mov eax, edx
jne 0x4e523a
mov ebx, dword [esp + 0x24]
xor ebp, ebp
test dh, 4
mov dword [esp + 0x28], 0
mov dword [ebx], 4
je 0x4e4af0
test edi, edi
je 0x4e4b20
mov ebx, dword [esp + 0x28]
mov ecx, ebp
jmp 0x4e3fb9
test edi, edi
je 0x4e44b0
add esi, 1
movzx eax, byte [esi - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
cmp ecx, 0xf
jbe 0x4e3fb1
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x24]
mov dword [eax + 0x40], ebx
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4e3fe4
mov dword [eax + 0x14], ebx
test dh, 2
mov eax, edx
jne 0x4e55c9
mov ebx, dword [esp + 0x24]
mov edx, eax
xor ebp, ebp
and edx, 0x400
mov dword [esp + 0x28], 0
mov dword [ebx], 5
test edx, edx
je 0x4e40a1
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x40]
cmp edi, ecx
mov ebx, ecx
cmovbe ebx, edi
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x4e4092
mov edx, dword [edx + 0x20]
test edx, edx
je 0x4e406f
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x4e406f
mov eax, dword [edx + 0x14]
sub eax, ecx
mov ecx, dword [edx + 0x18]
mov edx, dword [esp + 0x38]
mov dword [esp + 4], esi
add edx, eax
mov dword [esp + 0x40], edx
mov edx, ecx
sub edx, eax
cmp dword [esp + 0x40], ecx
cmovbe edx, dword [esp + 0x38]
add eax, ebx
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
test ah, 2
jne 0x4e54d3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov ebx, dword [eax + 0x40]
sub edi, edx
add esi, edx
mov ecx, ebx
mov dword [esp + 0x38], ebx
sub ecx, edx
mov dword [eax + 0x40], ecx
test ecx, ecx
jne 0x4e4b20
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x40], 0
mov dword [ebx], 6
test ah, 8
je 0x4e4490
test edi, edi
je 0x4e4b20
mov dword [esp + 0x38], edi
xor ebx, ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x40], ebp
jmp 0x4e40d9
cmp dword [esp + 0x38], ebx
jbe 0x4e4105
mov eax, dword [edi + 0x20]
add ebx, 1
movzx edx, byte [esi + ebx - 1]
test eax, eax
je 0x4e4101
mov ebp, dword [eax + 0x1c]
test ebp, ebp
je 0x4e4101
mov ecx, dword [edi + 0x40]
cmp ecx, dword [eax + 0x20]
jae 0x4e4101
lea eax, [ecx + 1]
mov dword [edi + 0x40], eax
mov byte [ebp + ecx], dl
test dl, dl
jne 0x4e40d3
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
test byte [eax + 0x11], 2
jne 0x4e4f40
sub edi, ebx
add esi, ebx
test dl, dl
jne 0x4e4b20
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x40], 0
mov dword [ebx], 7
test ah, 0x10
je 0x4e4410
test edi, edi
je 0x4e4b20
mov dword [esp + 0x38], edi
xor ebx, ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x40], ebp
jmp 0x4e4166
cmp dword [esp + 0x38], ebx
jbe 0x4e4192
mov eax, dword [edi + 0x20]
add ebx, 1
movzx edx, byte [esi + ebx - 1]
test eax, eax
je 0x4e418e
mov ebp, dword [eax + 0x24]
test ebp, ebp
je 0x4e418e
mov ecx, dword [edi + 0x40]
cmp ecx, dword [eax + 0x28]
jae 0x4e418e
lea eax, [ecx + 1]
mov dword [edi + 0x40], eax
mov byte [ebp + ecx], dl
test dl, dl
jne 0x4e4160
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
test byte [eax + 0x11], 2
jne 0x4e4b70
sub edi, ebx
add esi, ebx
test dl, dl
jne 0x4e4b20
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov dword [ebx], 8
test ah, 2
je 0x4e4260
cmp ebp, 0xf
ja 0x4e56c6
test edi, edi
je 0x4e4b20
lea edx, [esi + 1]
mov ecx, ebp
lea ebx, [edi - 1]
mov dword [esp + 0x38], edx
movzx edx, byte [esi]
shl edx, cl
lea ecx, [ebp + 8]
add dword [esp + 0x28], edx
cmp ecx, 0xf
ja 0x4e56cf
test ebx, ebx
je 0x4e56d8
movzx edx, byte [esi + 1]
lea ebx, [esi + 2]
sub edi, 2
add ebp, 0x10
mov dword [esp + 0x38], ebx
shl edx, cl
add dword [esp + 0x28], edx
mov ebx, dword [esp + 0x24]
movzx edx, word [ebx + 0x18]
cmp edx, dword [esp + 0x28]
je 0x4e4250
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, ebx
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [ebx], 0x1d
mov ebx, dword [esp + 0x38]
jmp 0x4e3b24
mov esi, dword [esp + 0x38]
xor ebp, ebp
mov dword [esp + 0x28], 0
nop
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x4e427b
sar eax, 9
mov dword [edx + 0x30], 1
and eax, 1
mov dword [edx + 0x2c], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004ea010
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov dword [ebx], 0xb
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x4c], 1
jbe 0x4e59f8
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x38], eax
jne 0x4e4430
cmp ebp, 2
ja 0x4e5879
test edi, edi
je 0x4e5880
movzx edx, byte [esi]
mov ecx, ebp
lea eax, [esi + 1]
sub edi, 1
add ebp, 8
shl edx, cl
add ebx, edx
mov esi, dword [esp + 0x24]
mov edx, ebx
and edx, 1
mov dword [esi + 4], edx
mov edx, ebx
shr edx, 1
and edx, 3
cmp edx, 2
je 0x4e53dd
cmp edx, 3
je 0x4e53b0
cmp edx, 1
je 0x4e46a6
shr ebx, 3
mov dword [esi], 0xd
sub ebp, 3
mov dword [esp + 0x28], ebx
mov ecx, ebp
and ebp, 0xfffffff8
and ecx, 7
shr dword [esp + 0x28], cl
cmp ebp, 0x1f
ja 0x4e5a1c
test edi, edi
je 0x4e5842
movzx edx, byte [eax]
mov ecx, ebp
lea ebx, [edi - 1]
lea esi, [eax + 1]
shl edx, cl
lea ecx, [ebp + 8]
add dword [esp + 0x28], edx
cmp ecx, 0x1f
ja 0x4e5835
test ebx, ebx
je 0x4e56b9
movzx edx, byte [eax + 1]
lea ebx, [edi - 2]
lea esi, [eax + 2]
shl edx, cl
lea ecx, [ebp + 0x10]
add dword [esp + 0x28], edx
cmp ecx, 0x1f
ja 0x4e5835
test ebx, ebx
je 0x4e56b9
movzx edx, byte [eax + 2]
lea ebx, [edi - 3]
lea esi, [eax + 3]
shl edx, cl
lea ecx, [ebp + 0x18]
add dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
cmp ecx, 0x1f
ja 0x4e5a46
test ebx, ebx
je 0x4e56b9
lea esi, [eax + 4]
movzx eax, byte [eax + 3]
sub edi, 4
add ebp, 0x20
shl eax, cl
mov ecx, edx
add ecx, eax
mov dword [esp + 0x28], ecx
mov eax, ecx
movzx ebx, ax
shr eax, 0x10
xor eax, 0xffff
cmp ebx, eax
je 0x4e5570
mov ebx, esi
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov dword [edi], 0x1d
jmp 0x4e3b24
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x4e41bf
mov dword [edx + 0x24], 0
jmp 0x4e41bf
mov eax, ebx
mov ebx, esi
mov esi, ebp
mov ecx, esi
mov ebp, edi
mov edi, dword [esp + 0x24]
and ecx, 7
and esi, 0xfffffff8
mov edx, ebx
shr eax, cl
mov dword [esp + 0x28], eax
mov dword [edi], 0x1a
mov eax, dword [edi + 8]
test eax, eax
jne 0x4e4dc4
mov dword [edi], 0x1c
mov dword [esp + 0x38], 1
jmp 0x4e3b30
mov ebp, edi
mov ebx, esi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov esi, ecx
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x4e4132
mov dword [edx + 0x1c], 0
jmp 0x4e4132
mov ebp, edi
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x24]
mov ebx, esi
mov dword [esp + 0x38], 0
mov esi, ecx
jmp 0x4e3b30
cmp ebp, 0xf
jbe 0x4e3f25
jmp 0x4e3f57
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov edx, eax
and edx, 0x400
jmp 0x4e400b
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
test dh, 4
mov eax, edx
je 0x4e4af0
cmp ebp, 0xf
mov ebx, dword [esp + 0x28]
jbe 0x4e3fa1
jmp 0x4e3fd3
cmp ebp, 0xf
ja 0x4e5a15
test edi, edi
je 0x4e4b20
movzx eax, byte [esi]
mov ecx, ebp
lea edx, [edi - 1]
lea ebx, [esi + 1]
shl eax, cl
lea ecx, [ebp + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xf
ja 0x4e5a32
test edx, edx
je 0x4e5a68
movzx eax, byte [esi + 1]
lea ebx, [esi + 2]
sub edi, 2
add ebp, 0x10
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
cmp al, 8
mov dword [edx + 0x10], eax
je 0x4e559a
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, edx
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edi], 0x1d
jmp 0x4e3b24
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4e49e1
cmp ebp, 0xf
ja 0x4e5b6c
test edi, edi
je 0x4e5b57
lea eax, [edi - 1]
mov ecx, ebp
lea edx, [esi + 1]
mov dword [esp + 0x40], eax
movzx eax, byte [esi]
shl eax, cl
add eax, dword [esp + 0x28]
lea ecx, [ebp + 8]
cmp ecx, 0xf
mov dword [esp + 0x38], eax
ja 0x4e5bce
cmp dword [esp + 0x40], 0
je 0x4e5bb3
movzx eax, byte [esi + 1]
lea edx, [esi + 2]
sub edi, 2
add ebp, 0x10
shl eax, cl
add dword [esp + 0x38], eax
mov esi, edx
test bl, 2
je 0x4e4613
cmp dword [esp + 0x38], 0x8b1f
je 0x4e5ac3
mov eax, dword [esp + 0x24]
mov dword [eax + 0x10], 0
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4e462c
mov dword [eax + 0x30], 0xffffffff
and ebx, 1
je 0x4e515b
mov eax, dword [esp + 0x38]
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
sub ecx, eax
mov dword [esp + 0x28], ecx
jne 0x4e515b
mov edx, dword [esp + 0x38]
mov eax, edx
and eax, 0xf
cmp eax, 8
je 0x4e5bd9
mov ebx, esi
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edi], 0x1d
jmp 0x4e3b24
cmp dword [esp + 0xa4], 6
mov dword [esi + 0x4c], 0x5042e0
mov dword [esi + 0x54], 9
mov dword [esi + 0x50], 0x504260
mov dword [esi + 0x58], 5
mov dword [esi], 0x13
je 0x4e5d0a
shr ebx, 3
sub ebp, 3
mov esi, eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x24]
mov dword [eax], 0x14
jmp case.0x4e3908.20
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x44], esi
mov dword [esp + 0x58], eax
add eax, dword [ebx + 0x64]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov edx, eax
cmp dword [esp + 0x40], edx
jae 0x4e5a88
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x4c]
mov eax, 1
shl eax, cl
mov esi, edx
mov dword [esp + 0x28], edx
lea eax, [eax - 1]
mov dword [esp + 0x38], eax
and eax, ebx
lea eax, [esi + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx eax, cl
cmp ebp, eax
jae 0x4e47a0
test edi, edi
je 0x4e57a1
mov esi, dword [esp + 0x44]
mov ecx, ebp
jmp 0x4e476c
test edi, edi
je 0x4e44b0
add esi, 1
movzx eax, byte [esi - 1]
mov edx, dword [esp + 0x28]
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
mov eax, dword [esp + 0x38]
and eax, ebx
lea edx, [edx + eax*4]
movzx ebp, byte [edx + 1]
movzx edx, word [edx + 2]
cmp ebp, ecx
mov eax, ebp
ja 0x4e4764
mov ebp, ecx
mov dword [esp + 0x44], esi
mov ecx, eax
cmp dx, 0xf
ja 0x4e5055
shr ebx, cl
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
sub ebp, eax
mov eax, ecx
add eax, 1
mov dword [esi + 0x68], eax
mov dword [esp + 0x40], eax
mov word [esi + ecx*2 + 0x70], dx
mov edx, dword [esp + 0x48]
jmp 0x4e4718
mov eax, dword [esp + 0x24]
mov ebx, esi
mov edx, dword [eax + 0x5c]
mov eax, dword [eax + 0x68]
cmp edx, eax
jbe 0x4e56f7
mov ecx, ebp
lea ebx, [edx + 1]
add eax, 1
cmp ecx, 2
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
ja 0x4e4854
test edi, edi
je 0x4e3e30
movzx edx, byte [esi]
lea ebx, [esi + 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebp, edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov esi, ebp
and esi, 7
shr ebp, 3
sub ecx, 3
mov dword [eax + 0x68], edx
movzx edx, word [edx + edx + 0x504ade]
mov word [eax + edx*2 + 0x70], si
mov eax, dword [esp + 0x38]
lea edx, [eax + 1]
cmp edx, dword [esp + 0x40]
je 0x4e56f1
cmp ecx, 2
mov dword [esp + 0x38], edx
mov esi, ebx
jbe 0x4e47fd
mov ebx, esi
jmp 0x4e4815
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x40]
test ebx, ebx
je 0x4e48b0
mov eax, dword [esp + 0x2c]
cmp edi, ebx
cmovbe ebx, edi
cmp ebx, eax
cmova ebx, eax
test ebx, ebx
je 0x4e4b20
mov edx, dword [esp + 0x30]
mov dword [esp + 4], esi
sub edi, ebx
mov dword [esp + 8], ebx
add esi, ebx
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x24]
sub dword [esp + 0x2c], ebx
add dword [esp + 0x30], ebx
sub dword [eax + 0x40], ebx
mov eax, dword [eax]
jmp 0x4e3903
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [eax], 0xb
jmp 0x4e42b2
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x40]
mov dword [eax], 0xf
jmp 0x4e4867
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
jmp 0x4e41c5
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
jmp 0x4e413f
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
jmp 0x4e40b2
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 8]
test eax, eax
je 0x4e445d
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x4e445d
cmp esi, 0x1f
ja 0x4e58f1
test ebp, ebp
je 0x4e5828
lea eax, [ebx + 1]
mov ecx, esi
lea edx, [ebp - 1]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e52a9
test edx, edx
je 0x4e5294
lea eax, [ebx + 2]
lea edx, [ebp - 2]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 1]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e52a9
test edx, edx
je 0x4e5294
lea eax, [ebx + 3]
lea edx, [ebp - 3]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 2]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e52a9
test edx, edx
je 0x4e5294
lea eax, [ebx + 4]
sub ebp, 4
add esi, 0x20
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 3]
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
cmp dword [edi + 0x1c], eax
je 0x4e5c52
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x24]
mov dword [eax + 0x18], str.incorrect_length_check
mov dword [edi], 0x1d
jmp 0x4e3b24
mov dword [eax], 0xc
mov ebx, dword [esp + 0x28]
jmp 0x4e42bd
mov eax, dword [esp + 0x30]
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x40]
mov ecx, edx
mov ebx, dword [esp + 0x2c]
mov eax, edx
cmp edx, ebx
mov edx, ebx
cmova eax, ebx
sub edx, eax
sub ecx, eax
mov ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov dword [eax + 0x40], ecx
mov eax, dword [esp + 0x38]
lea edx, [eax + 4]
mov eax, dword [esp + 0x30]
cmp eax, edx
mov edx, eax
setae cl
add edx, 4
cmp dword [esp + 0x38], edx
setae dl
or edx, ecx
cmp ebx, 9
seta cl
test dl, cl
je 0x4e5210
mov edx, dword [esp + 0x38]
or edx, eax
and edx, 3
jne 0x4e5210
lea ecx, [ebx - 4]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0x44], esi
shr ecx, 2
add ecx, 1
lea eax, [ecx*4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
mov esi, dword [eax + edx*4]
mov dword [ebx + edx*4], esi
add edx, 1
cmp ecx, edx
ja 0x4e4a82
mov edx, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov ecx, ebx
sub ecx, eax
add edx, eax
mov dword [esp + 0x40], ecx
mov ecx, eax
add eax, dword [esp + 0x38]
cmp ebx, ecx
je 0x4e4ad6
movzx ecx, byte [eax]
cmp dword [esp + 0x40], 1
mov byte [edx], cl
je 0x4e4ad6
movzx ecx, byte [eax + 1]
cmp dword [esp + 0x40], 2
mov byte [edx + 1], cl
je 0x4e4ad6
movzx eax, byte [eax + 2]
mov byte [edx + 2], al
mov eax, dword [esp + 0x24]
add dword [esp + 0x30], ebx
mov edx, dword [eax + 0x40]
test edx, edx
je 0x4e46e6
mov eax, dword [eax]
jmp 0x4e3903
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4e40a1
mov eax, edx
mov dword [ecx + 0x10], 0
and edx, 0x400
jmp 0x4e4005
mov dword [esp + 0x28], ebx
mov esi, esi
lea edi, [edi]
mov ebx, esi
mov dword [esp + 0x38], 0
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov eax, dword [ebx + 0x30]
cmp edx, eax
jbe 0x4e5190
sub edx, eax
mov eax, dword [ebx + 0x28]
sub eax, edx
add eax, dword [ebx + 0x34]
mov dword [esp + 0x38], eax
mov eax, ebx
mov ecx, dword [eax + 0x40]
cmp edx, ecx
cmova edx, ecx
jmp 0x4e4a03
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov eax, dword [eax + 0x18]
mov byte [esp + 0x38], dl
mov dword [esp], eax
call fcn.004ea010
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
movzx edx, byte [esp + 0x38]
jmp 0x4e41a8
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x10], eax
mov dword [ebx], esi
mov dword [ebx + 4], edi
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], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.004ea4a0
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, ebx
mov ebp, dword [eax + 0x3c]
mov eax, dword [eax]
mov ebx, dword [ebx + 0x38]
cmp eax, 0xb
mov dword [esp + 0x28], ebx
jne 0x4e3903
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1bc4], 0xffffffff
jmp 0x4e42b2
cmp ebp, ebx
jae 0x4e4c67
test edi, edi
je 0x4e4b20
mov edx, dword [esp + 0x28]
mov ecx, ebp
jmp 0x4e4c4c
test edi, edi
je 0x4e4470
add esi, 1
movzx eax, byte [esi - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x4e4c44
mov dword [esp + 0x28], edx
mov ebp, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x28]
sub ebp, ebx
sub eax, 1
and eax, ecx
add eax, dword [edx + 0x40]
mov dword [edx + 0x40], eax
mov edx, ecx
mov ecx, ebx
shr edx, cl
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
add dword [edx + 0x1bc4], ebx
mov ebx, edx
jmp 0x4e3d11
cmp ebp, 0x1f
ja 0x4e4d39
lea esi, [esi]
test edi, edi
je 0x4e4b20
movzx eax, byte [esi]
mov ecx, ebp
lea edx, [edi - 1]
lea ebx, [esi + 1]
shl eax, cl
lea ecx, [ebp + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e563c
test edx, edx
je 0x4e586e
movzx eax, byte [esi + 1]
lea edx, [edi - 2]
lea ebx, [esi + 2]
shl eax, cl
lea ecx, [ebp + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e563c
test edx, edx
je 0x4e586e
movzx eax, byte [esi + 2]
add ebp, 0x18
lea edx, [edi - 3]
lea ebx, [esi + 3]
shl eax, cl
add dword [esp + 0x28], eax
cmp ebp, 0x1f
ja 0x4e563c
test edx, edx
je 0x4e5a7d
movzx eax, byte [esi + 3]
mov ecx, ebp
lea ebx, [esi + 4]
sub edi, 4
shl eax, cl
add dword [esp + 0x28], eax
mov esi, ebx
mov ebx, dword [esp + 0x28]
xor ebp, ebp
mov edx, ebx
mov ecx, ebx
mov eax, ebx
shr edx, 0x18
shl ecx, 0x18
shr eax, 8
and eax, 0xff00
add ecx, edx
lea edx, [ecx + eax]
mov eax, ebx
mov ebx, dword [esp + 0x24]
shl eax, 8
and eax, 0xff0000
add eax, edx
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov dword [ebx], 0xa
xor ebx, ebx
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4e5b20
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004e97f0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x30], eax
mov dword [edx], 0xb
jmp 0x4e42b2
cmp esi, 0x1f
ja 0x4e4e6d
test ebp, ebp
je 0x4e5828
lea eax, [ebp - 1]
mov ecx, esi
add ebx, 1
mov dword [esp + 0x24], eax
movzx eax, byte [edx]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e59cb
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4e59c4
lea eax, [ebp - 2]
lea ebx, [edx + 2]
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 1]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e59cb
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4e59c4
lea eax, [ebp - 3]
lea ebx, [edx + 3]
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 2]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x4e59cb
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4e59c4
movzx eax, byte [edx + 3]
lea ebx, [edx + 4]
sub ebp, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xa0]
add dword [edx + 0x14], eax
add dword [edi + 0x1c], eax
test eax, eax
jne 0x4e5604
mov ecx, dword [edi + 0x18]
cmp dword [edi + 0x10], 0
mov edx, dword [esp + 0x28]
mov eax, edx
jne 0x4e4ebe
shl eax, 0x18
shr edx, 0x18
add edx, eax
mov eax, dword [esp + 0x28]
shr eax, 8
and eax, 0xff00
add eax, edx
mov edx, dword [esp + 0x28]
shl edx, 8
and edx, 0xff0000
add eax, edx
cmp eax, ecx
je 0x4e58d1
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x2c]
mov dword [edi], 0x1d
mov dword [esp + 0x34], eax
jmp 0x4e3b24
mov dword [esp + 8], 1
mov ecx, dword [ebp + 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 [ebp + 0x34], eax
jne 0x4e3ba2
mov dword [edi], 0x1e
mov dword [esp + 0x38], 0xfffffffc
jmp 0x4e392c
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov eax, dword [eax + 0x18]
mov byte [esp + 0x38], dl
mov dword [esp], eax
call fcn.004ea010
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
movzx edx, byte [esp + 0x38]
jmp 0x4e411b
movzx ecx, word [esp + 0x38]
mov dword [esp + 0x44], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x58], ebx
and ebx, dword [esp + 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 + 0x38], cx
lea ecx, [eax + edx]
mov dword [esp + 0x48], edx
cmp ecx, ebp
jbe 0x4e502e
test edi, edi
je 0x4e4b20
mov edx, esi
mov ebx, dword [esp + 0x28]
mov esi, edi
mov edi, edx
jmp 0x4e4fd8
test esi, esi
je 0x4e5277
add edi, 1
movzx edx, byte [edi - 1]
mov ecx, ebp
add ebp, 8
sub esi, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x58]
and edx, ebx
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x5c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x38], cx
lea ecx, [eax + edx]
mov dword [esp + 0x48], edx
cmp ecx, ebp
ja 0x4e4fd0
mov dword [esp + 0x28], ebx
movzx ebx, byte [esp + 0x5c]
mov ecx, edi
mov edi, esi
mov esi, ecx
mov ecx, eax
shr dword [esp + 0x28], cl
mov ecx, dword [esp + 0x24]
sub ebp, eax
mov dword [esp + 0x44], edx
add eax, dword [ecx + 0x1bc4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
jmp 0x4e3dd4
cmp dx, 0x10
je 0x4e5643
cmp dx, 0x11
je 0x4e57be
lea esi, [eax + 7]
cmp esi, ebp
mov edx, esi
jbe 0x4e50b5
test edi, edi
je 0x4e57a1
mov ecx, ebp
mov esi, dword [esp + 0x44]
mov ebp, eax
mov eax, edx
jmp 0x4e5098
test edi, edi
je 0x4e44b0
add esi, 1
movzx edx, byte [esi - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x4e5090
mov eax, ebp
mov dword [esp + 0x44], esi
mov ebp, ecx
mov ecx, eax
sub ebp, eax
xor eax, eax
shr ebx, cl
mov ecx, dword [esp + 0x40]
sub ebp, 7
mov edx, ebx
shr ebx, 7
and edx, 0x7f
add edx, 0xb
mov esi, ecx
add esi, edx
cmp esi, dword [esp + 0x48]
mov dword [esp + 0x60], esi
ja 0x4e5d98
mov esi, ecx
mov ecx, dword [esp + 0x24]
mov word [esp + 0x38], ax
add esi, 0x38
mov dword [esp + 0x5c], esi
lea ecx, [ecx + esi*2]
shr ecx, 1
and ecx, 1
cmp edx, 6
mov dword [esp + 0x64], ecx
ja 0x4e5912
mov ecx, esi
mov esi, dword [esp + 0x24]
cmp edx, 2
mov word [esi + ecx*2], ax
mov ecx, dword [esp + 0x40]
mov word [esi + ecx*2 + 0x72], ax
je 0x4e5143
cmp edx, 3
mov word [esi + ecx*2 + 0x74], ax
je 0x4e5143
cmp edx, 4
mov word [esi + ecx*2 + 0x76], ax
je 0x4e5143
cmp edx, 6
mov word [esi + ecx*2 + 0x78], ax
jne 0x4e5143
mov word [esi + ecx*2 + 0x7a], ax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
mov dword [esi + 0x68], eax
mov dword [esp + 0x40], eax
jmp 0x4e4718
mov eax, dword [esp + 0xa0]
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.incorrect_header_check
mov eax, dword [esp + 0x38]
mov dword [edi], 0x1d
mov dword [esp + 0x28], eax
jmp 0x4e3b24
sub eax, edx
add eax, dword [ebx + 0x34]
mov dword [esp + 0x38], eax
mov eax, ebx
jmp 0x4e4b5b
test bl, 0xf0
je 0x4e52b2
mov ecx, edx
mov edx, dword [esp + 0x24]
sub ebp, eax
shr dword [esp + 0x28], cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x40]
mov dword [edx + 0x40], eax
test bl, 0x20
je 0x4e5544
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
jmp 0x4e42b2
mov ecx, eax
movzx eax, word [esp + 0x38]
and ebx, 0xf
mov dword [ecx + 0x48], ebx
mov dword [ecx], 0x17
mov dword [ecx + 0x44], eax
jmp 0x4e3a5a
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
lea ecx, [eax + ebx]
nop
add eax, 1
movzx ebx, byte [eax - 1]
add edx, 1
cmp ecx, eax
mov byte [edx - 1], bl
jne 0x4e5220
mov ebx, dword [esp + 0x38]
jmp 0x4e4ad6
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, ebx
mov byte [esp + 0x7c], bl
mov ebx, dword [esp + 0x24]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.004ea010
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0x18], eax
mov eax, edx
jmp 0x4e3f84
mov eax, ebp
mov dword [esp + 0x28], ebx
mov ebp, esi
mov ebx, edi
mov esi, eax
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov ebx, dword [esp + 0x24]
mov esi, ecx
mov dword [esp + 0x38], 0
xor ebp, ebp
jmp 0x4e3b30
mov esi, ecx
mov ebp, edx
jmp 0x4e49b7
movzx ecx, word [esp + 0x40]
mov dword [esp + 0x40], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x48], ebx
and ebx, dword [esp + 0x28]
shr ebx, cl
mov ecx, dword [esp + 0x40]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x38]
lea edx, [ebx + edx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [eax + edx]
mov dword [esp + 0x58], edx
cmp ecx, ebp
mov dword [esp + 0x5c], ecx
jbe 0x4e536c
test edi, edi
je 0x4e4b20
mov ebx, dword [esp + 0x28]
jmp 0x4e5318
test edi, edi
je 0x4e4b13
add esi, 1
movzx edx, byte [esi - 1]
mov ecx, ebp
add ebp, 8
sub edi, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x48]
and edx, ebx
shr edx, cl
add edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x58], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [edx + eax]
cmp ecx, ebp
ja 0x4e5310
mov dword [esp + 0x28], ebx
mov dword [esp + 0x5c], ecx
movzx ebx, byte [esp + 0x58]
mov dword [esp + 0x58], edx
sub ebp, eax
mov ecx, eax
mov edx, dword [esp + 0x28]
mov eax, ebp
mov ebp, dword [esp + 0x58]
shr edx, cl
sub eax, ebp
mov ecx, ebp
shr edx, cl
mov ebp, eax
movzx eax, word [esp + 0x44]
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 0x4e51c3
jmp 0x4e3968
mov esi, ebp
mov edx, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
shr ebx, 3
sub esi, 3
mov dword [esp + 0x28], ebx
mov ebx, eax
mov dword [edx + 0x18], str.invalid_block_type
mov dword [edi], 0x1d
jmp 0x4e3b24
shr ebx, 3
mov dword [esi], 0x10
sub ebp, 3
mov dword [esp + 0x28], ebx
cmp ebp, 0xd
ja 0x4e5a27
test edi, edi
je 0x4e5842
movzx edx, byte [eax]
mov ecx, ebp
lea ebx, [edi - 1]
lea esi, [eax + 1]
shl edx, cl
lea ecx, [ebp + 8]
add dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
cmp ecx, 0xd
ja 0x4e5a3b
test ebx, ebx
je 0x4e5a51
lea esi, [eax + 2]
movzx eax, byte [eax + 1]
sub edi, 2
add ebp, 0x10
shl eax, cl
mov ecx, edx
add ecx, eax
mov dword [esp + 0x28], ecx
mov ebx, ecx
mov ecx, ebx
mov edx, dword [esp + 0x24]
sub ebp, 0xe
and ecx, 0x1f
lea eax, [ecx + 0x101]
mov dword [esp + 0x38], eax
mov eax, ebx
mov ecx, dword [esp + 0x38]
shr eax, 5
and eax, 0x1f
add eax, 1
mov dword [edx + 0x60], ecx
mov ecx, eax
mov eax, edx
mov dword [edx + 0x64], ecx
mov edx, ebx
shr ebx, 0xe
shr edx, 0xa
mov dword [esp + 0x28], ebx
and edx, 0xf
add edx, 4
cmp ecx, 0x1e
mov dword [eax + 0x5c], edx
ja 0x4e54b0
cmp dword [esp + 0x38], 0x11e
ja 0x4e54b0
mov eax, dword [esp + 0x24]
mov dword [eax + 0x68], 0
mov dword [eax], 0x11
xor eax, eax
jmp 0x4e47e4
mov ebx, esi
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov dword [edi], 0x1d
jmp 0x4e3b24
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.004ea010
mov dword [ebx + 0x18], eax
jmp 0x4e4078
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], 4
mov eax, ebx
mov byte [esp + 0x7c], bl
shr eax, 8
mov byte [esp + 0x7d], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x7e], al
mov eax, ebx
mov ebx, dword [esp + 0x24]
shr eax, 0x18
mov byte [esp + 0x7f], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.004ea010
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x24]
jmp 0x4e3f15
test bl, 0x40
je 0x4e5859
mov ebx, esi
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], 0x504153
mov dword [edi], 0x1d
jmp 0x4e3b24
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x24]
mov dword [eax + 0x40], ebx
mov dword [eax], 0xe
je 0x4e5dc1
xor ebp, ebp
mov dword [esp + 0x28], 0
jmp 0x4e48ca
test dword [esp + 0x28], 0xe000
je 0x4e5895
mov esi, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.unknown_header_flags_set
mov dword [edi], 0x1d
jmp 0x4e3b24
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, ebx
mov byte [esp + 0x7c], bl
mov ebx, dword [esp + 0x24]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.004ea010
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x10]
jmp 0x4e3fef
mov edx, dword [edi + 0x10]
mov dword [esp + 8], eax
test edx, edx
mov edx, dword [esp + 0x30]
je 0x4e58fa
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.004ea010
mov ecx, eax
mov eax, dword [esp + 0xa0]
mov dword [edi + 0x18], ecx
mov dword [eax + 0x30], ecx
jmp 0x4e4e8d
mov edi, edx
jmp 0x4e4d37
lea esi, [eax + 2]
cmp esi, ebp
mov edx, esi
jbe 0x4e5685
test edi, edi
je 0x4e57a1
mov ecx, ebp
mov esi, dword [esp + 0x44]
mov ebp, eax
mov eax, edx
jmp 0x4e5668
test edi, edi
je 0x4e44b0
add esi, 1
movzx edx, byte [esi - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x4e5660
mov eax, ebp
mov dword [esp + 0x44], esi
mov ebp, ecx
mov esi, dword [esp + 0x40]
mov ecx, eax
sub ebp, eax
shr ebx, cl
test esi, esi
je 0x4e5d98
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov edx, ebx
and edx, 3
shr ebx, 2
sub ebp, 2
add edx, 3
movzx eax, word [eax + esi*2 + 0x6e]
mov ecx, esi
jmp 0x4e50cf
mov ebx, esi
mov edi, dword [esp + 0x24]
mov esi, ecx
jmp 0x4e529a
mov dword [esp + 0x38], esi
jmp 0x4e421f
mov ebp, ecx
mov edi, ebx
jmp 0x4e421f
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov dword [esp + 0x28], ebp
mov ebp, ecx
cmp eax, 0x12
lea edx, [eax + eax + 0x504ae0]
mov ecx, 0x504b06
mov esi, dword [esp + 0x24]
ja 0x4e572c
lea esi, [esi]
movzx eax, word [edx]
add edx, 2
cmp ecx, edx
mov word [esi + eax*2 + 0x70], 0
jne 0x4e5710
mov eax, dword [esp + 0x24]
mov dword [eax + 0x68], 0x13
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x54]
mov dword [eax + 0x6c], esi
mov dword [eax + 0x4c], esi
mov esi, dword [esp + 0x50]
mov dword [eax + 0x54], 7
mov dword [esp + 8], 0x13
mov dword [esp], 0
mov dword [esp + 0x14], esi
mov esi, eax
add eax, 0x54
mov dword [esp + 0x10], eax
mov eax, esi
add eax, 0x6c
mov dword [esp + 0xc], eax
mov eax, esi
add eax, 0x70
mov dword [esp + 4], eax
call fcn.004e66a0
test eax, eax
je 0x4e59d6
mov esi, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov dword [edi], 0x1d
jmp 0x4e3b24
mov dword [esp + 0x28], ebx
mov esi, ebp
mov ebx, dword [esp + 0x44]
mov ebp, edi
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
lea esi, [eax + 3]
cmp esi, ebp
mov edx, esi
jbe 0x4e5805
test edi, edi
je 0x4e57a1
mov ecx, ebp
mov esi, dword [esp + 0x44]
mov ebp, eax
mov eax, edx
jmp 0x4e57e8
test edi, edi
je 0x4e44b0
add esi, 1
movzx edx, byte [esi - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x4e57e0
mov eax, ebp
mov dword [esp + 0x44], esi
mov ebp, ecx
mov ecx, eax
mov esi, 0xfffffffd
shr ebx, cl
sub esi, eax
mov ecx, dword [esp + 0x40]
mov edx, ebx
add ebp, esi
shr ebx, 3
and edx, 7
xor eax, eax
add edx, 3
jmp 0x4e50cf
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov ebp, ecx
mov edi, ebx
mov eax, dword [esp + 0x28]
jmp 0x4e43d8
mov esi, ebp
mov ebx, eax
mov ebp, edi
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov eax, dword [esp + 0x24]
and ebx, 0xf
mov dword [eax + 0x48], ebx
mov dword [eax], 0x15
jmp 0x4e3cfe
mov edi, dword [esp + 0x24]
mov esi, ecx
jmp 0x4e529a
mov eax, esi
jmp 0x4e42f3
mov eax, ebx
mov ebx, esi
mov esi, ebp
mov dword [esp + 0x28], eax
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov eax, dword [edx + 0x20]
test eax, eax
je 0x4e58a8
mov edx, dword [esp + 0x28]
shr edx, 8
and edx, 1
mov dword [eax], edx
test dword [esp + 0x28], 0x200
jne 0x4e5b79
mov eax, dword [esp + 0x24]
mov esi, ebx
mov dword [esp + 0x28], 0
xor ebp, ebp
mov dword [eax], 2
jmp 0x4e3ec3
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 8]
mov dword [edi], 0x1b
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], esi
xor esi, esi
jmp 0x4e4903
mov dword [esp + 0x24], ebx
jmp 0x4e49b7
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.004e97f0
mov ecx, eax
jmp 0x4e562a
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x4e598a
lea eax, [edx - 2]
mov dword [esp + 0x68], edx
shr eax, 1
add eax, 1
mov dword [esp + 0x28], eax
add eax, eax
mov dword [esp + 0x6c], eax
movzx edx, word [esp + 0x38]
mov esi, dword [esp + 0x24]
mov eax, edx
shl eax, 0x10
or edx, eax
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x64]
lea ecx, [esi + eax*2]
mov esi, dword [esp + 0x44]
xor eax, eax
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [esp + 0x28]
jb 0x4e5951
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x6c]
add dword [esp + 0x40], esi
cmp dword [esp + 0x68], esi
je 0x4e5143
movzx edx, word [esp + 0x38]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
mov word [eax + esi*2 + 0x70], dx
jmp 0x4e5143
mov ecx, esi
mov esi, dword [esp + 0x40]
add esi, 1
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x24]
mov word [esi + ecx*2], ax
lea eax, [edx - 1]
mov esi, eax
mov dword [esp + 0x68], eax
lea eax, [edx - 3]
shr eax, 1
add eax, 1
mov dword [esp + 0x28], eax
add eax, eax
cmp esi, 1
mov dword [esp + 0x6c], eax
je 0x4e5973
jmp 0x4e5930
mov esi, ecx
jmp 0x4e529a
mov esi, ecx
mov ebp, dword [esp + 0x24]
jmp 0x4e4e6d
mov eax, dword [esp + 0x24]
mov esi, ebx
mov dword [esp + 0x40], 0
mov dword [eax + 0x68], 0
mov dword [eax], 0x12
mov ebx, eax
jmp 0x4e4700
mov eax, ebx
mov dword [esp + 0x38], 0
mov ebx, esi
mov dword [esp + 0x28], eax
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov ebx, esi
jmp 0x4e4569
mov esi, eax
mov eax, dword [esp + 0x28]
jmp 0x4e43d8
mov esi, eax
mov ebx, dword [esp + 0x28]
jmp 0x4e5440
mov ebp, ecx
mov edi, edx
jmp 0x4e4569
mov edi, ebx
mov ebp, ecx
mov ebx, edx
jmp 0x4e5440
mov ebp, ecx
mov edi, ebx
mov eax, edx
jmp 0x4e43d8
mov ebx, esi
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov edi, dword [esp + 0x24]
mov esi, ebp
jmp 0x4e529a
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x28], ebx
cmp word [eax + 0x270], 0
jne 0x4e5c95
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code____missing_end_of_block
mov dword [edi], 0x1d
jmp 0x4e3b24
mov dword [esp + 8], 0
mov dword [esp + 4], 0
xor ebp, ebp
mov dword [esp], 0
call fcn.004ea010
mov ebx, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x7d], 0x8b
mov dword [ebx + 0x18], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004ea010
mov dword [ebx], 1
mov dword [ebx + 0x18], eax
mov dword [esp + 0x28], 0
jmp 0x4e4529
mov ecx, ebx
mov edx, dword [esp + 0x30]
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x38], 2
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov dword [eax + 0x10], edx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], esi
jmp 0x4e392c
mov ebx, esi
mov dword [esp + 0x38], 0
mov esi, ebp
mov ebp, edi
mov edi, eax
jmp 0x4e3b30
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
jmp 0x4e4600
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.004ea010
mov dword [esi + 0x18], eax
jmp 0x4e58b6
mov edi, dword [esp + 0x24]
mov ebx, edx
mov esi, ecx
mov dword [esp + 0x28], eax
xor ebp, ebp
mov dword [esp + 0x38], 0
jmp 0x4e3b30
mov ebp, ecx
mov edi, dword [esp + 0x40]
jmp 0x4e45fe
mov ebx, edx
mov edx, dword [esp + 0x24]
shr ebx, 4
mov ecx, ebx
mov eax, dword [edx + 0x24]
and ecx, 0xf
add ecx, 8
test eax, eax
jne 0x4e5c65
mov dword [edx + 0x24], ecx
mov ebp, dword [esp + 0x24]
mov eax, 1
shl eax, cl
mov dword [ebp + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004e97f0
mov ecx, dword [esp + 0xa0]
and ebx, 0x200
mov dword [ebp + 0x18], eax
mov dword [ecx + 0x30], eax
jne 0x4e5c41
mov dword [ebp], 0xb
xor ebp, ebp
jmp 0x4e42b2
mov eax, dword [esp + 0x24]
xor ebp, ebp
mov dword [eax], 9
jmp 0x4e4cb0
mov ebx, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x4e445d
cmp ecx, eax
jbe 0x4e5bf4
mov edx, ebx
mov eax, dword [esp + 0xa0]
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
sub esi, 4
mov dword [esp + 0x28], edx
mov dword [eax + 0x18], str.invalid_window_size
mov dword [edi], 0x1d
jmp 0x4e3b24
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
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 + 0x58]
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 + 0x38], edx
mov dword [esp + 8], ecx
call fcn.004e66a0
test eax, eax
mov edx, dword [esp + 0x38]
je 0x4e5d23
mov ebx, esi
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_literal_lengths_set
mov dword [edi], 0x1d
jmp 0x4e3b24
mov esi, ebp
shr ebx, 3
mov ebp, edi
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x24]
sub esi, 3
mov ebx, eax
jmp 0x4e3b30
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 + 0x50]
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 dword [esp + 8], eax
mov eax, dword [ecx + 0x60]
mov dword [esp], 2
add eax, eax
add eax, edx
mov dword [esp + 4], eax
call fcn.004e66a0
test eax, eax
mov dword [esp + 0x38], eax
je 0x4e5e1e
mov ebx, esi
mov eax, dword [esp + 0xa0]
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_distances_set
mov dword [edi], 0x1d
jmp 0x4e3b24
mov esi, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x44]
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov dword [edi], 0x1d
jmp 0x4e3b24
mov ebp, edi
mov ebx, esi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x4e3b30
mov eax, esi
jmp 0x4e53ed
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edx, ebx
mov edi, dword [esp + 0x24]
jmp 0x4e4452
mov ebx, esi
mov dword [esp + 0x38], 1
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x4e3b24
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x24]
mov dword [eax], 0x13
jne case.0x4e3908.19
mov ebx, esi
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x4e3b30
mov eax, esi
jmp 0x4e4331
mov ebx, dword [esp + 0x28]
jmp 0x4e42bd
mov ebx, dword [esp + 0x28]
jmp 0x4e42b2
mov ebx, dword [esp + 0x28]
jmp 0x4e4d7d