Function at 0x498100
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.0x4981b8
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0x4981b8
mov edx, dword [eax + 0xc]
test edx, edx
je case.default.0x4981b8
mov ecx, dword [eax]
test ecx, ecx
je 0x499940
mov eax, dword [edi]
cmp eax, 0xb
je 0x498371
mov ebp, ecx
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], 0
mov esi, dword [esi + 0x10]
sub edx, 5
mov dword [esp + 0x4c], edx
mov ecx, esi
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x28], ecx
lea ecx, [edi + 0x530]
mov dword [esp + 0x54], ecx
lea ecx, [edi + 0x2f0]
mov dword [esp + 0x50], ecx
mov esi, dword [esi + 4]
mov ebx, esi
mov dword [esp + 0x38], esi
mov esi, dword [edi + 0x38]
mov dword [esp + 0x24], esi
mov esi, dword [edi + 0x3c]
mov edi, ebx
cmp eax, 0x1e
ja case.default.0x4981b8
jmp dword [eax*4 + 0x54be70]
cmp esi, 0x1f
ja 0x498258
test edi, edi
nop
lea esi, [esi]
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a277
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a277
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 2]
add esi, 0x18
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
add dword [esp + 0x24], eax
cmp esi, 0x1f
ja 0x49a277
test edx, edx
je 0x49a557
movzx eax, byte [ebp + 3]
mov ecx, esi
sub edi, 4
lea ebx, [ebp + 4]
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, ebx
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x24], 0
mov edx, esi
mov eax, esi
shr eax, 0x18
shl edx, 0x18
add edx, eax
mov eax, esi
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, esi
mov esi, dword [esp + 0x20]
and eax, 0xff00
shl eax, 8
add eax, edx
mov dword [esi + 0x18], eax
mov dword [ebx + 0x30], eax
mov dword [esi], 0xa
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x49a5bc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0049b180
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov dword [ebx], 0xb
cmp dword [esp + 0x4c], 1
jbe 0x4998a0
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 4]
test edx, edx
jne 0x498391
cmp esi, 2
ja 0x49a467
test edi, edi
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
sub edi, 1
lea edx, [ebp + 1]
add esi, 8
shl eax, cl
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov eax, ecx
and eax, 1
shr ecx, 1
mov dword [ebx + 4], eax
mov eax, ecx
and eax, 3
cmp eax, 2
je 0x499d74
cmp eax, 3
je 0x49a162
cmp eax, 1
je 0x49a124
mov dword [ebx], 0xd
mov eax, 0xd
shr ecx, 2
sub esi, 3
mov dword [esp + 0x24], ecx
mov ebp, edx
jmp 0x4981af
mov eax, dword [esp + 0xa0]
mov dword [edi], 0xc
mov ebp, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], eax
mov eax, 0xc
jmp 0x498151
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
mov dword [eax], 0x1a
mov eax, 0x1a
shr dword [esp + 0x24], cl
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x48]
test ebx, ebx
je 0x498418
cmp esi, ebx
jae 0x4983f3
test edi, edi
je 0x4998a0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x4983d8
test edi, edi
je 0x4999a0
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x4983d0
mov dword [esp + 0x24], edx
mov esi, ecx
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov eax, 1
shl eax, cl
mov ecx, ebx
sub eax, 1
sub esi, ebx
and eax, dword [esp + 0x24]
add dword [edx + 0x1bc4], ebx
add dword [edx + 0x44], eax
shr dword [esp + 0x24], cl
mov eax, dword [esp + 0x20]
mov dword [eax], 0x18
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x4998a0
mov eax, dword [esp + 0x28]
sub eax, ebx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + 0x44]
cmp eax, edx
jae 0x499a30
sub edx, eax
cmp edx, dword [ebx + 0x2c]
mov ecx, edx
ja 0x499ca0
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
cmp ecx, eax
jbe 0x499f21
mov ebx, dword [esp + 0x20]
sub ecx, eax
mov eax, dword [ebx + 0x28]
sub eax, ecx
add eax, dword [ebx + 0x34]
mov edx, dword [ebx + 0x40]
cmp ecx, edx
cmova ecx, edx
jmp 0x499a3b
mov eax, dword [esp + 0x20]
cmp dword [esp + 0xa4], 6
mov dword [eax], 0x13
je 0x4998a0
mov eax, dword [esp + 0x20]
mov dword [eax], 0x14
cmp edi, 5
ja 0x499e41
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
mov ebx, dword [eax + 0x4c]
mov dword [eax + 0x1bc4], 0
mov eax, 1
shl eax, cl
sub eax, 1
and edx, eax
mov dword [esp + 0x44], eax
lea eax, [ebx + edx*4]
movzx edx, byte [eax + 1]
mov dword [esp + 0x3c], ebx
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x40], ax
movzx eax, dl
cmp esi, eax
jae 0x498543
test edi, edi
je 0x4998a0
mov ecx, esi
mov esi, dword [esp + 0x24]
jmp 0x498508
test edi, edi
je 0x499e11
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
mov ebx, dword [esp + 0x3c]
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x44]
and eax, esi
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x40], ax
movzx eax, dl
cmp eax, ecx
ja 0x498500
mov dword [esp + 0x24], esi
mov esi, ecx
test bl, bl
jne 0x499f30
mov ebx, dword [esp + 0x20]
sub esi, eax
mov ecx, edx
shr dword [esp + 0x24], cl
mov dword [ebx + 0x1bc4], eax
movzx eax, word [esp + 0x40]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [eax], 0x19
mov eax, 0x19
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x48]
test ebx, ebx
jne 0x499c01
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
mov dword [ebx + 0x1bc8], eax
mov dword [ebx], 0x16
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x58]
mov ebx, dword [eax + 0x50]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x24]
sub eax, 1
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], ebx
and ecx, eax
lea eax, [ebx + ecx*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x3c], ax
movzx eax, dl
cmp esi, eax
mov dword [esp + 0x44], eax
jae 0x498641
test edi, edi
je 0x4998a0
mov ecx, esi
mov esi, edi
mov edi, dword [esp + 0x24]
jmp 0x498600
test esi, esi
je 0x499e00
add ebp, 1
movzx eax, byte [ebp - 1]
sub esi, 1
mov ebx, dword [esp + 0x40]
shl eax, cl
add ecx, 8
add edi, eax
mov eax, dword [esp + 0x48]
and eax, edi
lea eax, [ebx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x3c], ax
movzx eax, dl
cmp eax, ecx
mov dword [esp + 0x44], eax
ja 0x4985f8
mov dword [esp + 0x24], edi
mov edi, esi
mov esi, ecx
test bl, 0xf0
jne 0x499cd0
movzx ecx, word [esp + 0x3c]
mov dword [esp + 0x44], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
sub ebx, 1
mov dword [esp + 0x58], ebx
and ebx, dword [esp + 0x24]
shr ebx, cl
mov ecx, dword [esp + 0x40]
add ebx, dword [esp + 0x44]
lea edx, [ecx + ebx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x3c], cx
lea ecx, [eax + edx]
cmp esi, ecx
mov dword [esp + 0x48], edx
jae 0x498704
test edi, edi
je 0x4998a0
mov edx, edi
mov ebx, dword [esp + 0x24]
mov edi, ebp
mov ebp, edx
jmp 0x4986ae
test ebp, ebp
je 0x49a007
add edi, 1
movzx edx, byte [edi - 1]
mov ecx, esi
add esi, 8
sub ebp, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x58]
and edx, ebx
shr edx, cl
mov ecx, dword [esp + 0x40]
add edx, dword [esp + 0x44]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x5c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x3c], cx
lea ecx, [edx + eax]
cmp ecx, esi
mov dword [esp + 0x48], edx
ja 0x4986a6
mov dword [esp + 0x24], ebx
movzx ebx, byte [esp + 0x5c]
mov ecx, ebp
mov ebp, edi
mov edi, ecx
mov ecx, eax
sub esi, eax
shr dword [esp + 0x24], cl
mov ecx, dword [esp + 0x20]
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 0x499ce4
mov dword [esp + 8], 1
mov ecx, dword [ebx + 0x24]
mov al, 1
shl eax, cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
call dword [eax + 0x20]
test eax, eax
mov dword [ebx + 0x34], eax
jne 0x498819
mov dword [edi], 0x1e
nop
lea esi, [esi]
mov eax, 0xfffffffc
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x34], 1
nop
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [eax], ebp
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [edi + 0x28]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0xa0]
test ebx, ebx
mov eax, dword [eax + 0x10]
jne 0x4987f0
cmp eax, dword [esp + 0x28]
je 0x49a8b1
mov edx, dword [edi]
cmp edx, 0x1c
ja 0x49889d
cmp edx, 0x19
jbe 0x4987f0
cmp dword [esp + 0xa4], 4
je 0x49889d
lea esi, [esi]
mov esi, dword [esp + 0x28]
sub esi, eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x498730
mov edx, dword [ebx + 0x28]
test edx, edx
jne 0x498838
mov ecx, dword [ebx + 0x24]
mov dl, 1
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x2c], 0
shl edx, cl
mov dword [ebx + 0x28], edx
cmp esi, edx
jae 0x4999b1
mov ebp, dword [ebx + 0x30]
sub edx, ebp
cmp edx, esi
cmova edx, esi
add eax, ebp
mov ecx, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 0x24], ecx
sub edx, esi
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x24]
sub esi, ecx
jne 0x4999f0
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x28]
add edx, ecx
cmp edx, eax
mov dword [ebx + 0x30], edx
je 0x4999e0
mov edx, dword [ebx + 0x2c]
cmp eax, edx
jbe 0x498893
add edx, ecx
mov dword [ebx + 0x2c], edx
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0x38]
sub esi, dword [ebx + 4]
mov ebx, dword [esp + 0x28]
sub ebx, eax
mov eax, dword [esp + 0xa0]
add dword [eax + 8], esi
add dword [eax + 0x14], ebx
mov ecx, dword [edi + 8]
add dword [edi + 0x1c], ebx
test ecx, ecx
je 0x4988fc
test ebx, ebx
je 0x4988fc
mov edx, dword [edi + 0x10]
mov dword [esp + 8], ebx
test edx, edx
je 0x499980
mov eax, dword [eax + 0xc]
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x18], eax
mov dword [edx + 0x30], eax
cmp dword [edi + 4], 1
mov edx, dword [edi]
sbb eax, eax
not eax
and eax, 0x40
add eax, dword [edi + 0x3c]
cmp edx, 0xb
je 0x4998b0
cmp edx, 0xe
jne 0x4998c0
mov edx, 0x100
mov edi, dword [esp + 0xa0]
add eax, edx
or ebx, esi
mov dword [edi + 0x2c], eax
je 0x498945
cmp dword [esp + 0xa4], 4
mov eax, dword [esp + 0x34]
jne 0x498775
mov esi, dword [esp + 0x34]
mov eax, 0xfffffffb
test esi, esi
cmovne eax, esi
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0x1f
ja 0x498997
test edi, edi
je 0x4998a0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x49897d
test edi, edi
je 0x4999a0
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x498975
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4989a9
mov esi, dword [esp + 0x24]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x20]
test byte [eax + 0x11], 2
jne 0x49a1e1
mov dword [eax], 3
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x498a35
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
mov ebx, dword [esp + 0x20]
mov dword [ebx], 0xf
test eax, eax
je 0x499a17
mov ebx, dword [esp + 0x30]
cmp edi, eax
cmovbe eax, edi
cmp eax, ebx
cmova eax, ebx
test eax, eax
mov ebx, eax
je 0x4998a0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
sub edi, ebx
mov dword [esp + 4], ebp
add ebp, ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x20]
sub dword [esp + 0x30], ebx
add dword [esp + 0x2c], ebx
sub dword [eax + 0x40], ebx
mov eax, dword [eax]
jmp 0x4981af
cmp esi, 0xf
ja 0x498a67
test edi, edi
je 0x4998a0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x498a4d
test edi, edi
je 0x4999a0
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x498a45
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x498a89
mov esi, dword [esp + 0x24]
mov ecx, esi
movzx edx, cl
mov dword [eax + 8], edx
mov eax, dword [ebx + 0x20]
mov edx, esi
shr edx, 8
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 2
jne 0x499fc6
xor esi, esi
test bh, 4
mov dword [eax], 4
mov dword [esp + 0x24], 0
jne 0x4997fd
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x499de2
mov dword [eax + 0x10], 0
mov ebx, dword [ecx + 0x10]
mov eax, ebx
and eax, 0x400
jmp 0x49987d
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x60], eax
add eax, dword [ebx + 0x64]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x40], eax
jae 0x49a575
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x4c]
mov eax, 1
shl eax, cl
lea eax, [eax - 1]
mov dword [esp + 0x3c], eax
and eax, ebx
lea eax, [edx + eax*4]
movzx ecx, byte [eax + 1]
movzx eax, word [eax + 2]
mov word [esp + 0x24], ax
movzx eax, cl
cmp esi, eax
jae 0x498b8e
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x49a184
mov ecx, esi
mov esi, edx
jmp 0x498b58
test edi, edi
je 0x499bf0
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
mov eax, dword [esp + 0x3c]
and eax, ebx
lea eax, [esi + eax*4]
movzx edx, byte [eax + 1]
movzx eax, word [eax + 2]
mov word [esp + 0x24], ax
movzx eax, dl
cmp eax, ecx
ja 0x498b50
mov esi, ecx
mov ecx, edx
mov dword [esp + 0x44], ebp
cmp word [esp + 0x24], 0xf
jbe 0x499d25
cmp word [esp + 0x24], 0x10
je 0x49a27e
cmp word [esp + 0x24], 0x11
je 0x49a3e7
lea ecx, [eax + 7]
cmp esi, ecx
mov edx, ecx
jae 0x498bf5
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x49a184
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x498bd8
test edi, edi
je 0x499bf0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x498bd0
mov eax, esi
mov esi, ecx
mov dword [esp + 0x44], ebp
mov ecx, eax
sub esi, eax
shr ebx, cl
sub esi, 7
mov edx, ebx
mov ecx, ebx
and edx, 0x7f
xor eax, eax
lea ebx, [edx + 0xb]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], ebx
mov ebx, ecx
shr ebx, 7
mov ebp, dword [esp + 0x3c]
mov ecx, edx
add ecx, ebp
cmp ecx, dword [esp + 0x48]
mov dword [esp + 0x64], ecx
ja 0x49a872
mov word [esp + 0x5c], ax
lea eax, [edx + 0x38]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], eax
mov ecx, ebp
sub ecx, 1
mov dword [esp + 0x24], ecx
lea eax, [edx + eax*2]
and eax, 0xf
shr eax, 1
neg eax
and eax, 7
cmp ebp, eax
cmovbe eax, ebp
cmp ebp, 0xa
mov dword [esp + 0x58], ebp
ja 0x49a4e1
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x20]
add eax, 1
mov dword [esp + 0x6c], eax
movzx eax, word [esp + 0x5c]
cmp dword [esp + 0x58], 1
mov word [ebp + edx*2], ax
mov eax, dword [esp + 0x3c]
lea edx, [eax - 2]
mov dword [esp + 0x24], edx
je 0x49a736
mov ecx, dword [esp + 0x40]
movzx eax, word [esp + 0x5c]
cmp dword [esp + 0x58], 2
lea edx, [ecx + 2]
mov word [ebp + ecx*2 + 0x72], ax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], edx
mov edx, ebp
lea ebp, [eax - 3]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 3]
cmp dword [esp + 0x58], 3
mov dword [esp + 0x6c], ebp
mov word [edx + ecx*2 + 0x74], ax
mov eax, dword [esp + 0x3c]
lea ebp, [eax - 4]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 4]
cmp dword [esp + 0x58], 4
mov dword [esp + 0x6c], ebp
mov word [edx + ecx*2 + 0x76], ax
mov eax, dword [esp + 0x3c]
lea ebp, [eax - 5]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 5]
cmp dword [esp + 0x58], 5
mov dword [esp + 0x6c], ebp
mov word [edx + ecx*2 + 0x78], ax
mov eax, dword [esp + 0x3c]
lea ebp, [eax - 6]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 6]
cmp dword [esp + 0x58], 6
mov dword [esp + 0x6c], ebp
mov word [edx + ecx*2 + 0x7a], ax
mov eax, dword [esp + 0x3c]
lea ebp, [eax - 7]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 7]
cmp dword [esp + 0x58], 7
mov dword [esp + 0x6c], ebp
mov word [edx + ecx*2 + 0x7c], ax
mov eax, dword [esp + 0x3c]
lea ebp, [eax - 8]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 8]
cmp dword [esp + 0x58], 8
mov dword [esp + 0x6c], ebp
mov word [edx + ecx*2 + 0x7e], ax
mov eax, dword [esp + 0x3c]
lea ebp, [eax - 9]
mov dword [esp + 0x24], ebp
je 0x49a3da
movzx eax, word [esp + 0x5c]
lea ebp, [ecx + 9]
cmp dword [esp + 0x58], 0xa
mov word [edx + ecx*2 + 0x80], ax
mov ecx, dword [esp + 0x3c]
mov word [esp + 0x6c], ax
lea eax, [ecx - 0xa]
mov dword [esp + 0x24], eax
jne 0x49a743
movzx eax, word [esp + 0x6c]
add dword [esp + 0x40], 0xa
mov word [edx + ebp*2 + 0x70], ax
mov eax, ecx
sub eax, 0xb
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x3c], eax
je 0x498ee4
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x3c]
sub edx, ecx
mov dword [esp + 0x6c], edx
shr edx, 3
lea eax, [edx*8]
test eax, eax
mov dword [esp + 0x58], edx
je 0x498e86
mov edx, dword [esp + 0x68]
movd xmm0, dword [esp + 0x5c]
punpcklwd xmm0, xmm0
mov dword [esp + 0x68], eax
mov ebp, dword [esp + 0x44]
pshufd xmm0, xmm0, 0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], 0
add edx, ecx
mov ecx, dword [esp + 0x20]
lea edx, [ecx + edx*2]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x3c], 1
movdqa xmmword [edx], xmm0
add edx, 0x10
cmp dword [esp + 0x3c], eax
jb 0x498e54
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
sub dword [esp + 0x24], eax
add edx, eax
cmp eax, dword [esp + 0x6c]
mov dword [esp + 0x44], ebp
je 0x498ee4
mov dword [esp + 0x40], edx
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
movzx ecx, word [esp + 0x5c]
test ebp, ebp
mov word [eax + edx*2 + 0x70], cx
je 0x498ee4
cmp ebp, 1
mov word [eax + edx*2 + 0x72], cx
je 0x498ee4
cmp ebp, 2
mov word [eax + edx*2 + 0x74], cx
je 0x498ee4
cmp ebp, 3
mov word [eax + edx*2 + 0x76], cx
je 0x498ee4
cmp ebp, 4
mov word [eax + edx*2 + 0x78], cx
je 0x498ee4
cmp ebp, 5
mov word [eax + edx*2 + 0x7a], cx
je 0x498ee4
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
movzx ecx, word [esp + 0x5c]
mov word [eax + edx*2 + 0x7c], cx
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov dword [edx + 0x68], eax
mov eax, dword [esp + 0x48]
jmp 0x498afc
cmp esi, 0xd
ja 0x49a52e
test edi, edi
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xd
ja 0x49a545
test edx, edx
je 0x49a4f6
movzx eax, byte [ebp + 1]
sub edi, 2
add esi, 0x10
lea ebx, [ebp + 2]
shl eax, cl
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
sub esi, 0xe
mov ebp, dword [esp + 0x20]
shr dword [esp + 0x24], 0xe
mov eax, ecx
mov edx, ecx
and eax, 0x1f
shr edx, 5
add eax, 0x101
shr ecx, 0xa
and edx, 0x1f
and ecx, 0xf
add edx, 1
add ecx, 4
cmp eax, 0x11e
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
mov dword [esp + 0x40], ecx
mov dword [ebp + 0x5c], ecx
ja 0x499d50
cmp edx, 0x1e
ja 0x499d50
mov eax, dword [esp + 0x20]
mov ecx, esi
mov ebp, ebx
mov esi, dword [esp + 0x24]
mov dword [eax + 0x68], 0
mov dword [eax], 0x11
xor eax, eax
jmp 0x498fd2
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x5c]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x40], ebx
cmp ebx, eax
jbe 0x49a32c
mov ecx, esi
mov esi, dword [esp + 0x24]
cmp ecx, 2
ja 0x499029
test edi, edi
je 0x499e11
lea ebx, [ebp + 1]
sub edi, 1
mov dword [esp + 0x3c], ebx
movzx ebx, byte [ebp]
shl ebx, cl
add ecx, 8
add esi, ebx
add eax, 1
mov edx, dword [esp + 0x20]
mov ebp, esi
movzx ebx, word [eax + eax + 0x54c77e]
and ebp, 7
sub ecx, 3
shr esi, 3
cmp eax, dword [esp + 0x40]
mov dword [edx + 0x68], eax
mov word [edx + ebx*2 + 0x70], bp
jae 0x49a320
cmp ecx, 2
mov ebp, dword [esp + 0x3c]
jbe 0x498fd7
mov dword [esp + 0x3c], ebp
jmp 0x498ff4
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
jmp 0x4989e1
cmp esi, 0xf
ja 0x49a535
test edi, edi
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xf
ja 0x49a54e
test edx, edx
je 0x49a564
movzx eax, byte [ebp + 1]
sub edi, 2
add esi, 0x10
lea ebx, [ebp + 2]
shl eax, cl
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp al, 8
mov dword [ecx + 0x10], eax
je 0x499db0
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.unknown_compression_method
mov eax, 0x1d
mov dword [ecx], 0x1d
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, ebx
and eax, 0x400
test eax, eax
je 0x499164
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
cmp edi, eax
mov ecx, eax
cmovbe ecx, edi
mov edx, eax
test ecx, ecx
mov dword [esp + 0x3c], ecx
je 0x499155
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x499138
mov edx, dword [ecx + 0x10]
test edx, edx
mov dword [esp + 0x40], edx
je 0x499138
mov edx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x3c]
sub edx, eax
mov eax, dword [ecx + 0x18]
add ebx, edx
mov dword [esp + 4], ebp
mov ecx, eax
sub ecx, edx
cmp ebx, eax
cmovbe ecx, dword [esp + 0x3c]
add edx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x10]
and bh, 2
jne 0x49a193
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov edx, dword [ebx + 0x40]
sub edi, eax
add ebp, eax
sub edx, eax
mov dword [ebx + 0x40], edx
test edx, edx
jne 0x4998a0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
test bh, 8
mov dword [eax + 0x40], 0
mov dword [eax], 6
jne 0x4991a4
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x49922d
mov dword [eax + 0x1c], 0
mov ebx, dword [edx + 0x10]
jmp 0x49922d
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 8
je 0x49917a
test edi, edi
je 0x4998a0
mov dword [esp + 0x44], esi
xor ebx, ebx
mov esi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
jmp 0x4991c6
cmp ebx, dword [esp + 0x40]
jae 0x4991f8
mov eax, dword [esp + 0x3c]
add ebx, 1
movzx edx, byte [eax + ebx - 1]
mov eax, dword [esi + 0x20]
movzx ebp, dl
test eax, eax
je 0x4991f4
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x4991f4
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x20]
jae 0x4991f4
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [edi + ecx], dl
test ebp, ebp
jne 0x4991c0
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x3c]
test byte [eax + 0x11], 2
jne 0x499ef3
mov eax, dword [esp + 0x40]
sub edi, ebx
add ebp, ebx
test eax, eax
jne 0x4998a0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x40], 0
mov dword [eax], 7
test bh, 0x10
je 0x499960
test edi, edi
je 0x4998a0
mov dword [esp + 0x44], esi
xor ebx, ebx
mov esi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
jmp 0x499269
cmp ebx, dword [esp + 0x40]
jae 0x49929b
mov eax, dword [esp + 0x3c]
add ebx, 1
movzx edx, byte [eax + ebx - 1]
mov eax, dword [esi + 0x20]
movzx ebp, dl
test eax, eax
je 0x499297
mov edi, dword [eax + 0x24]
test edi, edi
je 0x499297
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x28]
jae 0x499297
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [edi + ecx], dl
test ebp, ebp
jne 0x499263
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x3c]
test byte [eax + 0x11], 2
jne 0x499e22
sub edi, ebx
add ebp, ebx
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x4998a0
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov dword [eax], 8
test bh, 2
je 0x4998e0
cmp esi, 0xf
ja 0x49a2fd
test edi, edi
je 0x4998a0
lea eax, [ebp + 1]
mov ecx, esi
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
lea edx, [edi - 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xf
ja 0x49a306
test edx, edx
je 0x49a30f
lea eax, [ebp + 2]
sub edi, 2
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp + 1]
add esi, 0x10
shl eax, cl
add dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
movzx eax, word [edx + 0x18]
cmp eax, dword [esp + 0x24]
je 0x4998d0
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x3c]
mov dword [eax + 0x18], str.header_crc_mismatch
mov eax, 0x1d
mov dword [edx], 0x1d
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
jmp 0x49923e
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
test eax, eax
je 0x499c80
cmp esi, 0x1f
ja 0x49a5ee
test edi, edi
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a505
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a505
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 2]
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a505
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 3]
sub edi, 4
add esi, 0x20
lea ebx, [ebp + 4]
shl eax, cl
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x30]
add dword [ecx + 0x14], eax
mov ecx, dword [esp + 0x20]
add dword [ecx + 0x1c], eax
test eax, eax
je 0x499477
mov ecx, dword [ecx + 0x10]
mov dword [esp + 8], eax
test ecx, ecx
je 0x49a4c3
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ecx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x30], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x4994aa
mov edx, eax
mov ecx, eax
shl edx, 0x18
shr eax, 0x18
add edx, eax
mov eax, ecx
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, ecx
and eax, 0xff00
shl eax, 8
add eax, edx
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 0x18]
je 0x499c65
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov eax, 0x1d
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
test eax, eax
je 0x49a4aa
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x49a4aa
cmp esi, 0x1f
ja 0x499595
test edi, edi
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a018
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a018
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 2]
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a018
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 3]
sub edi, 4
add esi, 0x20
lea ebx, [ebp + 4]
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, ebx
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
cmp dword [eax + 0x1c], ebx
je 0x49a63e
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.incorrect_length_check
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 8]
test edx, edx
je 0x499c90
cmp esi, 0xf
ja 0x499623
test edi, edi
je 0x4998a0
lea eax, [edi - 1]
mov ecx, esi
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0xf
ja 0x49a633
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x49a4f6
movzx eax, byte [ebp + 1]
sub edi, 2
add esi, 0x10
lea ebx, [ebp + 2]
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, ebx
test dl, 2
je 0x499636
cmp dword [esp + 0x24], 0x8b1f
je 0x49a6d4
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x10], 0
test eax, eax
je 0x499652
mov dword [eax + 0x30], 0xffffffff
mov edx, dword [ebx + 8]
and edx, 1
je 0x49a102
mov eax, dword [esp + 0x24]
mov edx, 0x8421085
mov ecx, eax
shl ecx, 8
shr eax, 8
movzx ecx, cx
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 0x49a102
mov eax, dword [esp + 0x24]
and eax, 0xf
cmp eax, 8
je 0x49a653
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
shr dword [esp + 0x24], cl
cmp esi, 0x1f
ja 0x49a53c
test edi, edi
je 0x4998a0
movzx eax, byte [ebp]
mov ecx, esi
lea edx, [edi - 1]
lea ebx, [ebp + 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a26e
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a26e
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 2]
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x24], eax
cmp ecx, 0x1f
ja 0x49a26e
test edx, edx
je 0x499f12
movzx eax, byte [ebp + 3]
sub edi, 4
add esi, 0x20
lea ebx, [ebp + 4]
shl eax, cl
add dword [esp + 0x24], eax
mov edx, dword [esp + 0x24]
movzx eax, dx
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x499d84
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x34], 0xfffffffd
jmp 0x498790
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x4998a0
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
sub dword [esp + 0x30], 1
mov eax, dword [ebx + 0x40]
mov byte [edx], al
lea eax, [edx + 1]
mov dword [esp + 0x2c], eax
mov eax, 0x14
mov dword [ebx], 0x14
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 4
je 0x498ab2
cmp esi, 0xf
ja 0x499849
test edi, edi
je 0x4998a0
lea eax, [ebp + 1]
mov ecx, esi
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
add esi, 8
lea edx, [edi - 1]
shl eax, cl
add dword [esp + 0x24], eax
cmp esi, 0xf
ja 0x499de9
test edx, edx
je 0x49a5ad
lea eax, [ebp + 2]
mov ecx, esi
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp + 1]
sub edi, 2
shl eax, cl
add dword [esp + 0x24], eax
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov esi, eax
mov dword [eax + 0x40], ecx
mov eax, dword [eax + 0x20]
test eax, eax
je 0x499863
mov dword [eax + 0x14], ecx
mov ebx, dword [esi + 0x10]
test bh, 2
jne 0x49a231
mov eax, ebx
xor esi, esi
and eax, 0x400
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x20]
mov dword [edx], 5
jmp 0x4990ce
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
jmp 0x4992da
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x498790
sub eax, 0xffffff80
xor edx, edx
jmp 0x498923
cmp edx, 0x13
je 0x49891e
xor edx, edx
jmp 0x498923
mov ebp, dword [esp + 0x3c]
xor esi, esi
mov dword [esp + 0x24], 0
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x499900
sar ebx, 9
mov edx, ebx
and edx, 1
mov dword [eax + 0x2c], edx
mov eax, dword [ecx + 0x20]
mov dword [eax + 0x30], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00492e10
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x18], eax
mov dword [edx + 0x30], eax
mov eax, 0xb
mov dword [ebx], 0xb
jmp switch.0x004981b8
mov eax, dword [eax + 4]
test eax, eax
je 0x498140
nop
lea esi, [esi]
mov eax, 0xfffffffe
jmp 0x498775
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x4992d0
mov dword [eax + 0x24], 0
mov ebx, dword [edx + 0x10]
jmp 0x4992d0
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.0049b180
jmp 0x4988ef
mov ebx, edi
mov esi, ecx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], edx
jmp 0x498790
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], edx
mov dword [esp], eax
sub ecx, edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x2c], eax
jmp 0x498893
mov dword [ebx + 0x30], 0
jmp 0x498887
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 0x34]
mov dword [esp + 8], esi
sub eax, esi
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x2c], eax
jmp 0x498893
mov eax, dword [esp + 0x20]
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x004981b8
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x40]
sub eax, edx
mov edx, ecx
mov ebx, dword [esp + 0x30]
cmp ecx, ebx
cmova ecx, ebx
sub edx, ecx
mov ebx, ecx
sub dword [esp + 0x30], ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x40], edx
lea edx, [eax + 0x10]
cmp dword [esp + 0x2c], edx
mov edx, dword [esp + 0x2c]
setae cl
add edx, 0x10
cmp eax, edx
setae dl
or cl, dl
je 0x499fa0
cmp ebx, 0xf
jbe 0x499fa0
mov ecx, ebx
xor ebx, ebx
shr ecx, 4
mov edx, ecx
shl edx, 4
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
movdqu xmm0, xmmword [eax + ecx]
add ebx, 1
movdqu xmmword [edx + ecx], xmm0
add ecx, 0x10
cmp ebx, dword [esp + 0x3c]
jb 0x499a98
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
add eax, dword [esp + 0x40]
add ebx, ecx
mov dword [esp + 0x3c], ebx
add ecx, edx
mov ebx, edx
sub ebx, dword [esp + 0x40]
cmp dword [esp + 0x40], edx
mov dword [esp + 0x48], ecx
je 0x499bd1
movzx edx, byte [eax]
cmp ebx, 1
mov ecx, dword [esp + 0x3c]
mov byte [ecx], dl
je 0x499bd1
movzx edx, byte [eax + 1]
cmp ebx, 2
mov byte [ecx + 1], dl
je 0x499bd1
movzx edx, byte [eax + 2]
cmp ebx, 3
mov byte [ecx + 2], dl
je 0x499bd1
movzx edx, byte [eax + 3]
cmp ebx, 4
mov byte [ecx + 3], dl
je 0x499bd1
movzx edx, byte [eax + 4]
cmp ebx, 5
mov byte [ecx + 4], dl
je 0x499bd1
movzx edx, byte [eax + 5]
cmp ebx, 6
mov byte [ecx + 5], dl
je 0x499bd1
movzx edx, byte [eax + 6]
cmp ebx, 7
mov byte [ecx + 6], dl
je 0x499bd1
movzx edx, byte [eax + 7]
cmp ebx, 8
mov byte [ecx + 7], dl
je 0x499bd1
movzx edx, byte [eax + 8]
cmp ebx, 9
mov ecx, dword [esp + 0x3c]
mov byte [ecx + 8], dl
je 0x499ee0
movzx edx, byte [eax + 9]
cmp ebx, 0xa
mov byte [ecx + 9], dl
je 0x499ee0
movzx edx, byte [eax + 0xa]
cmp ebx, 0xb
mov byte [ecx + 0xa], dl
je 0x499ee0
movzx edx, byte [eax + 0xb]
cmp ebx, 0xc
mov byte [ecx + 0xb], dl
je 0x499ee0
movzx edx, byte [eax + 0xc]
cmp ebx, 0xd
mov byte [ecx + 0xc], dl
je 0x499ee0
movzx edx, byte [eax + 0xd]
cmp ebx, 0xe
mov byte [ecx + 0xd], dl
je 0x499ee0
movzx eax, byte [eax + 0xe]
mov ebx, dword [esp + 0x44]
mov byte [ecx + 0xe], al
mov eax, dword [esp + 0x2c]
add eax, ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x40]
test edx, edx
je 0x499df0
mov eax, dword [eax]
jmp 0x4981af
mov dword [esp + 0x24], ebx
mov esi, ecx
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x498790
cmp esi, ebx
jae 0x499c38
test edi, edi
je 0x4998a0
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x499c1d
test edi, edi
je 0x4999a0
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x499c15
mov dword [esp + 0x24], edx
mov esi, ecx
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov eax, 1
shl eax, cl
sub esi, ebx
sub eax, 1
and eax, dword [esp + 0x24]
add eax, dword [edx + 0x40]
add dword [edx + 0x1bc4], ebx
mov ebx, edx
shr dword [esp + 0x24], cl
mov dword [edx + 0x40], eax
jmp 0x49859a
mov esi, dword [esp + 0x30]
mov ebp, ebx
mov eax, dword [ecx + 8]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], esi
xor esi, esi
lea esi, [esi]
mov ebx, dword [esp + 0x20]
mov dword [ebx], 0x1b
jmp 0x4994ea
mov dword [eax], 0xc
mov eax, 0xc
jmp switch.0x004981b8
mov eax, dword [ebx + 0x1bc0]
test eax, eax
je 0x498450
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x54be25
mov eax, 0x1d
mov dword [ebx], 0x1d
jmp switch.0x004981b8
mov ecx, dword [esp + 0x20]
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 + 0x20]
shr dword [esp + 0x24], cl
sub esi, dword [esp + 0x44]
test bl, 0x40
mov dword [eax + 0x1bc4], edx
je 0x499f80
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x54be0f
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov edx, dword [esp + 0x40]
shr ebx, cl
sub esi, eax
mov ecx, dword [esp + 0x20]
mov eax, edx
add eax, 1
mov dword [ecx + 0x68], eax
mov dword [esp + 0x40], eax
movzx eax, word [esp + 0x24]
mov word [ecx + edx*2 + 0x70], ax
mov eax, dword [esp + 0x48]
jmp 0x498afc
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov dword [ebx], 0x10
mov eax, 0x10
jmp 0x498360
mov esi, dword [esp + 0x20]
mov ebp, ebx
cmp dword [esp + 0xa4], 6
mov dword [esi + 0x40], eax
mov dword [esi], 0xe
je 0x49a89c
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x4989d7
test dword [esp + 0x24], 0xe000
je 0x49a46e
mov eax, dword [esp + 0xa0]
mov ebp, ebx
mov dword [eax + 0x18], str.unknown_header_flags_set
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
xor eax, eax
jmp 0x49987d
mov edi, edx
jmp 0x499845
mov dword [eax], 0x14
mov eax, 0x14
jmp switch.0x004981b8
mov ebx, esi
mov esi, ecx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x20]
jmp 0x498790
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
mov esi, ecx
jmp 0x498790
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x18], eax
jmp 0x4992b9
cmp dword [esp + 0x30], 0x101
jbe 0x4984a5
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x2c]
mov dword [eax], ebp
mov dword [eax + 0xc], ebx
mov ebx, dword [esp + 0x30]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x10], ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
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.0049db10
mov eax, dword [esp + 0xa0]
mov esi, dword [ebx + 0x38]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], esi
mov esi, dword [ebx + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebx]
cmp eax, 0xb
jne 0x4981af
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x1bc4], 0xffffffff
jmp switch.0x004981b8
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
add eax, ebx
mov dword [esp + 0x48], eax
jmp 0x499bd1
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x18], eax
jmp 0x499216
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
jmp 0x498790
mov ebx, dword [esp + 0x20]
sub eax, ecx
add eax, dword [ebx + 0x34]
jmp 0x49846d
test bl, 0xf0
je 0x49a021
mov ecx, edx
mov edx, dword [esp + 0x20]
sub esi, eax
shr dword [esp + 0x24], cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x40]
mov dword [edx + 0x40], eax
test bl, 0x20
je 0x49a1b6
mov eax, dword [esp + 0x20]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x004981b8
mov edx, eax
movzx eax, word [esp + 0x3c]
and ebx, 0xf
mov dword [edx + 0x48], ebx
mov dword [edx], 0x17
mov dword [edx + 0x44], eax
jmp 0x4983b7
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
add ebx, edx
mov dword [esp + 0x48], ebx
nop
add eax, 1
movzx ecx, byte [eax - 1]
add edx, 1
cmp edx, ebx
mov byte [edx - 1], cl
jne 0x499fb0
jmp 0x499bd1
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x70], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 8
mov byte [esp + 0x71], al
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x498a99
mov dword [esp + 0x24], ebx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x20]
jmp 0x498790
mov esi, ecx
mov edi, edx
jmp 0x499593
movzx ecx, word [esp + 0x40]
mov dword [esp + 0x40], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
mov edx, dword [esp + 0x3c]
sub ebx, 1
mov dword [esp + 0x48], ebx
and ebx, dword [esp + 0x24]
shr ebx, cl
add ebx, dword [esp + 0x40]
lea edx, [edx + ebx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [eax + edx]
cmp esi, ecx
mov dword [esp + 0x5c], ecx
jae 0x49a0cf
test edi, edi
je 0x4998a0
mov ebx, dword [esp + 0x24]
jmp 0x49a07f
test edi, edi
je 0x49a184
add ebp, 1
movzx edx, byte [ebp - 1]
mov ecx, esi
add esi, 8
sub edi, 1
shl edx, cl
mov ecx, eax
add ebx, edx
mov edx, dword [esp + 0x48]
and edx, ebx
shr edx, cl
mov ecx, dword [esp + 0x3c]
add edx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x58], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [edx + eax]
cmp ecx, esi
ja 0x49a077
mov dword [esp + 0x24], ebx
movzx ebx, byte [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov ecx, eax
sub esi, eax
movzx eax, word [esp + 0x44]
shr dword [esp + 0x24], cl
sub esi, edx
mov ecx, edx
mov edx, dword [esp + 0x20]
shr dword [esp + 0x24], cl
test bl, bl
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x40], eax
mov dword [edx + 0x1bc4], ecx
jne 0x499f53
jmp 0x498565
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_header_check
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov eax, dword [esp + 0x20]
cmp dword [esp + 0xa4], 6
mov dword [eax + 0x4c], 0x54bf80
mov dword [eax + 0x54], 9
mov dword [eax + 0x50], 0x54bf00
mov dword [eax + 0x58], 5
mov dword [eax], 0x13
je 0x49a85f
mov eax, 0x13
jmp 0x498360
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_block_type
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp 0x498360
mov dword [esp + 0x24], ebx
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x498790
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov dword [ebx + 0x18], eax
jmp 0x499141
test bl, 0x40
je 0x49a452
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x54bdf3
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 4
mov eax, esi
mov byte [esp + 0x70], al
mov eax, esi
shr eax, 8
mov byte [esp + 0x71], al
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x72], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 0x18
mov byte [esp + 0x73], al
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x4989b7
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x70], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 8
mov byte [esp + 0x71], al
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], eax
jmp 0x49986c
mov esi, ecx
mov edi, edx
jmp 0x49975f
mov edi, edx
jmp 0x498256
lea edx, [eax + 2]
cmp esi, edx
jae 0x49a2c5
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x49a184
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x49a2a8
test edi, edi
je 0x499bf0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x49a2a0
mov eax, esi
mov esi, ecx
mov dword [esp + 0x44], ebp
mov ecx, eax
sub esi, eax
mov eax, dword [esp + 0x40]
shr ebx, cl
test eax, eax
je 0x49a872
mov ecx, dword [esp + 0x40]
mov edx, ebx
sub esi, 2
mov eax, dword [esp + 0x20]
and edx, 3
add edx, 3
mov dword [esp + 0x3c], edx
shr ebx, 2
mov edx, ecx
movzx eax, word [eax + ecx*2 + 0x6e]
jmp 0x498c17
mov dword [esp + 0x3c], ebp
jmp 0x499335
mov esi, ecx
mov edi, edx
jmp 0x499335
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x3c]
jmp 0x498790
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
mov esi, ecx
mov ebp, edx
cmp eax, 0x12
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax + 0x54c780]
ja 0x49a360
lea esi, [esi]
movzx eax, word [edx]
add edx, 2
xor ebx, ebx
cmp edx, 0x54c7a6
mov word [ecx + eax*2 + 0x70], bx
jne 0x49a340
mov eax, dword [esp + 0x20]
mov dword [eax + 0x68], 0x13
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov dword [eax + 0x54], 7
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x4c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], 0x13
mov dword [esp], 0
mov dword [esp + 0x14], ebx
mov ebx, eax
add eax, 0x54
mov dword [esp + 0x10], eax
mov eax, ebx
add eax, 0x6c
mov dword [esp + 0xc], eax
mov eax, ebx
add eax, 0x70
mov dword [esp + 4], eax
call fcn.0049e630
test eax, eax
mov dword [esp + 0x34], eax
je 0x49a50e
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
jmp 0x498df2
lea edx, [eax + 3]
cmp esi, edx
jae 0x49a427
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x49a184
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x49a40a
test edi, edi
je 0x499bf0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x49a402
mov eax, esi
mov esi, ecx
mov dword [esp + 0x44], ebp
mov ecx, eax
shr ebx, cl
mov edx, ebx
mov ecx, ebx
and edx, 7
lea ebx, [edx + 3]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], ebx
mov ebx, ecx
mov ecx, 0xfffffffd
sub ecx, eax
xor eax, eax
shr ebx, 3
add esi, ecx
jmp 0x498c17
mov eax, dword [esp + 0x20]
and ebx, 0xf
mov dword [eax + 0x48], ebx
mov dword [eax], 0x15
jmp 0x498587
mov edx, ebp
jmp 0x498323
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x49a485
mov edx, dword [esp + 0x24]
shr edx, 8
and edx, 1
mov dword [eax], edx
mov eax, dword [esp + 0x20]
test byte [eax + 0x11], 2
jne 0x49a5f5
mov dword [eax], 2
mov ebp, ebx
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x498965
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [edi], 0x1c
mov dword [esp + 0x34], 1
jmp 0x498790
mov edx, dword [esp + 0x2c]
sub edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.0049b180
jmp 0x499466
test eax, eax
jne 0x49a8c9
mov dword [esp + 0x58], 0
jmp 0x498e00
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
jmp 0x498790
mov esi, ecx
mov edi, edx
jmp 0x499421
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], 0
mov dword [eax + 0x68], 0
mov ebx, eax
mov dword [eax], 0x12
jmp 0x498ae6
mov ebx, ebp
jmp 0x498f4a
mov ebx, ebp
jmp 0x49908a
mov ebx, ebp
nop
jmp 0x49975f
mov esi, ecx
mov edi, edx
jmp 0x498f4a
mov esi, ecx
mov edi, edx
jmp 0x49908a
mov ebp, ebx
mov edi, dword [esp + 0x20]
xor ebx, ebx
jmp 0x498790
mov edx, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
mov ebp, edx
jmp 0x498790
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x24], ebx
cmp word [eax + 0x270], 0
jne 0x49a74c
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.0x004981b8
mov edi, dword [esp + 0x20]
xor ebx, ebx
mov ebp, dword [esp + 0x3c]
jmp 0x498790
mov ebx, edi
mov ecx, dword [esp + 0x2c]
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x24]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], eax
mov eax, 2
jmp 0x498775
mov ebx, ebp
jmp 0x499421
mov esi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x70], al
mov eax, esi
mov esi, dword [esp + 0x20]
shr eax, 8
mov byte [esp + 0x71], al
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00492e10
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x49a493
mov esi, ecx
mov edi, dword [esp + 0x3c]
jmp 0x499621
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], 0
jmp 0x49a4b0
mov eax, dword [esp + 0x20]
shr dword [esp + 0x24], 4
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
and ecx, 0xf
add ecx, 8
test eax, eax
jne 0x49a7c0
mov eax, dword [esp + 0x20]
mov dword [eax + 0x24], ecx
mov esi, dword [esp + 0x20]
mov eax, 1
shl eax, cl
mov dword [esi + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0049b180
mov ebx, dword [esp + 0xa0]
mov dword [esi + 0x18], eax
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], 0
and eax, 0x200
cmp eax, 1
sbb eax, eax
and eax, 2
add eax, 9
mov dword [esi], eax
xor esi, esi
jmp 0x4981af
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00492e10
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x70]
mov byte [esp + 0x70], 0x1f
mov byte [esp + 0x71], 0x8b
mov dword [esi + 0x18], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00492e10
mov dword [esi], 1
mov dword [esp + 0x24], 0
mov dword [esi + 0x18], eax
mov eax, 1
xor esi, esi
jmp switch.0x004981b8
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
jmp 0x498e00
mov dword [esp + 0x40], ebp
jmp 0x498df2
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x54], 9
mov dword [eax + 0x6c], ebx
mov dword [eax + 0x4c], ebx
lea ebx, [eax + 0x6c]
mov dword [esp + 0x14], ecx
mov ecx, eax
add eax, 0x54
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], ebx
mov dword [esp], 1
mov dword [esp + 8], eax
mov eax, ecx
add eax, 0x70
mov dword [esp + 4], eax
call fcn.0049e630
test eax, eax
mov dword [esp + 0x34], eax
je 0x49a7ed
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.invalid_literal_lengths_set
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
cmp ecx, eax
jbe 0x49a678
mov eax, dword [esp + 0xa0]
sub esi, 4
mov dword [eax + 0x18], str.invalid_window_size
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
mov eax, dword [ecx + 0x6c]
mov dword [ecx + 0x58], 6
mov dword [ecx + 0x50], eax
mov eax, ecx
add eax, 0x58
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov eax, dword [ecx + 0x64]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x60]
mov dword [esp], 2
lea eax, [ecx + eax*2 + 0x70]
mov dword [esp + 4], eax
call fcn.0049e630
test eax, eax
mov dword [esp + 0x34], eax
je 0x49847a
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_distances_set
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov ebx, edi
sub esi, 3
mov edi, eax
mov ebp, edx
shr dword [esp + 0x24], 3
jmp 0x498790
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x24], ebx
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x004981b8
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], 0
jmp 0x498790
mov eax, dword [esp + 0xa0]
xor ebx, ebx
mov esi, dword [esp + 0x38]
sub esi, dword [eax + 4]
add dword [eax + 8], esi
jmp 0x4988fc
mov dword [esp + 0x58], eax
jmp 0x498c65