Function at 0x4114b0
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.0x411568
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 0x1c]
test edi, edi
je case.default.0x411568
mov edx, dword [eax + 0xc]
test edx, edx
je case.default.0x411568
mov ecx, dword [eax]
test ecx, ecx
je 0x412cf0
mov eax, dword [edi]
cmp eax, 0xb
je 0x411721
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.0x411568
jmp dword [eax*4 + 0x4463d0]
cmp esi, 0x1f
ja 0x411608
test edi, edi
nop
lea esi, [esi]
je 0x412c50
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 0x413627
test edx, edx
je 0x4132c2
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 0x413627
test edx, edx
je 0x4132c2
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 0x413627
test edx, edx
je 0x413907
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 0x41396c
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00417cc0
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 0x412c50
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 4]
test edx, edx
jne 0x411741
cmp esi, 2
ja 0x413817
test edi, edi
je 0x412c50
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 0x413124
cmp eax, 3
je 0x413512
cmp eax, 1
je 0x4134d4
mov dword [ebx], 0xd
mov eax, 0xd
shr ecx, 2
sub esi, 3
mov dword [esp + 0x24], ecx
mov ebp, edx
jmp 0x41155f
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 0x411501
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
mov dword [eax], 0x1a
mov eax, 0x1a
shr dword [esp + 0x24], cl
jmp switch.0x00411568
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x48]
test ebx, ebx
je 0x4117c8
cmp esi, ebx
jae 0x4117a3
test edi, edi
je 0x412c50
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x411788
test edi, edi
je 0x412d50
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x411780
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 0x412c50
mov eax, dword [esp + 0x28]
sub eax, ebx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + 0x44]
cmp eax, edx
jae 0x412de0
sub edx, eax
cmp edx, dword [ebx + 0x2c]
mov ecx, edx
ja 0x413050
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
cmp ecx, eax
jbe 0x4132d1
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 0x412deb
mov eax, dword [esp + 0x20]
cmp dword [esp + 0xa4], 6
mov dword [eax], 0x13
je 0x412c50
mov eax, dword [esp + 0x20]
mov dword [eax], 0x14
cmp edi, 5
ja 0x4131f1
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 0x4118f3
test edi, edi
je 0x412c50
mov ecx, esi
mov esi, dword [esp + 0x24]
jmp 0x4118b8
test edi, edi
je 0x4131c1
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 0x4118b0
mov dword [esp + 0x24], esi
mov esi, ecx
test bl, bl
jne 0x4132e0
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.0x00411568
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x48]
test ebx, ebx
jne 0x412fb1
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 0x4119f1
test edi, edi
je 0x412c50
mov ecx, esi
mov esi, edi
mov edi, dword [esp + 0x24]
jmp 0x4119b0
test esi, esi
je 0x4131b0
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 0x4119a8
mov dword [esp + 0x24], edi
mov edi, esi
mov esi, ecx
test bl, 0xf0
jne 0x413080
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 0x411ab4
test edi, edi
je 0x412c50
mov edx, edi
mov ebx, dword [esp + 0x24]
mov edi, ebp
mov ebp, edx
jmp 0x411a5e
test ebp, ebp
je 0x4133b7
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 0x411a56
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 0x413094
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 0x411bc9
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 0x411ba0
cmp eax, dword [esp + 0x28]
je 0x413c61
mov edx, dword [edi]
cmp edx, 0x1c
ja 0x411c4d
cmp edx, 0x19
jbe 0x411ba0
cmp dword [esp + 0xa4], 4
je 0x411c4d
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 0x411ae0
mov edx, dword [ebx + 0x28]
test edx, edx
jne 0x411be8
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 0x412d61
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 0x412da0
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x28]
add edx, ecx
cmp edx, eax
mov dword [ebx + 0x30], edx
je 0x412d90
mov edx, dword [ebx + 0x2c]
cmp eax, edx
jbe 0x411c43
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 0x411cac
test ebx, ebx
je 0x411cac
mov edx, dword [edi + 0x10]
mov dword [esp + 8], ebx
test edx, edx
je 0x412d30
mov eax, dword [eax + 0xc]
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call fcn.00410a90
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 0x412c60
cmp edx, 0xe
jne 0x412c70
mov edx, 0x100
mov edi, dword [esp + 0xa0]
add eax, edx
or ebx, esi
mov dword [edi + 0x2c], eax
je 0x411cf5
cmp dword [esp + 0xa4], 4
mov eax, dword [esp + 0x34]
jne 0x411b25
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 0x411d47
test edi, edi
je 0x412c50
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x411d2d
test edi, edi
je 0x412d50
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x411d25
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x411d59
mov esi, dword [esp + 0x24]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x20]
test byte [eax + 0x11], 2
jne 0x413591
mov dword [eax], 3
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x411de5
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
mov ebx, dword [esp + 0x20]
mov dword [ebx], 0xf
test eax, eax
je 0x412dc7
mov ebx, dword [esp + 0x30]
cmp edi, eax
cmovbe eax, edi
cmp eax, ebx
cmova eax, ebx
test eax, eax
mov ebx, eax
je 0x412c50
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 0x41155f
cmp esi, 0xf
ja 0x411e17
test edi, edi
je 0x412c50
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x411dfd
test edi, edi
je 0x412d50
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x411df5
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x411e39
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 0x413376
xor esi, esi
test bh, 4
mov dword [eax], 4
mov dword [esp + 0x24], 0
jne 0x412bad
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x413192
mov dword [eax + 0x10], 0
mov ebx, dword [ecx + 0x10]
mov eax, ebx
and eax, 0x400
jmp 0x412c2d
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 0x413925
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 0x411f3e
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x413534
mov ecx, esi
mov esi, edx
jmp 0x411f08
test edi, edi
je 0x412fa0
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 0x411f00
mov esi, ecx
mov ecx, edx
mov dword [esp + 0x44], ebp
cmp word [esp + 0x24], 0xf
jbe 0x4130d5
cmp word [esp + 0x24], 0x10
je 0x41362e
cmp word [esp + 0x24], 0x11
je 0x413797
lea ecx, [eax + 7]
cmp esi, ecx
mov edx, ecx
jae 0x411fa5
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x413534
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x411f88
test edi, edi
je 0x412fa0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x411f80
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 0x413c22
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 0x413891
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 0x413ae6
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 0x41378a
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 0x41378a
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 0x41378a
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 0x41378a
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 0x41378a
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 0x41378a
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 0x41378a
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 0x413af3
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 0x412294
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 0x412236
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 0x412204
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 0x412294
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 0x412294
cmp ebp, 1
mov word [eax + edx*2 + 0x72], cx
je 0x412294
cmp ebp, 2
mov word [eax + edx*2 + 0x74], cx
je 0x412294
cmp ebp, 3
mov word [eax + edx*2 + 0x76], cx
je 0x412294
cmp ebp, 4
mov word [eax + edx*2 + 0x78], cx
je 0x412294
cmp ebp, 5
mov word [eax + edx*2 + 0x7a], cx
je 0x412294
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 0x411eac
cmp esi, 0xd
ja 0x4138de
test edi, edi
je 0x412c50
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 0x4138f5
test edx, edx
je 0x4138a6
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 0x413100
cmp edx, 0x1e
ja 0x413100
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 0x412382
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x5c]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x40], ebx
cmp ebx, eax
jbe 0x4136dc
mov ecx, esi
mov esi, dword [esp + 0x24]
cmp ecx, 2
ja 0x4123d9
test edi, edi
je 0x4131c1
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 + 0x446cde]
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 0x4136d0
cmp ecx, 2
mov ebp, dword [esp + 0x3c]
jbe 0x412387
mov dword [esp + 0x3c], ebp
jmp 0x4123a4
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x40]
jmp 0x411d91
cmp esi, 0xf
ja 0x4138e5
test edi, edi
je 0x412c50
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 0x4138fe
test edx, edx
je 0x413914
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 0x413160
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.0x00411568
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, ebx
and eax, 0x400
test eax, eax
je 0x412514
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 0x412505
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x4124e8
mov edx, dword [ecx + 0x10]
test edx, edx
mov dword [esp + 0x40], edx
je 0x4124e8
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 0x413543
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 0x412c50
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 0x412554
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x4125dd
mov dword [eax + 0x1c], 0
mov ebx, dword [edx + 0x10]
jmp 0x4125dd
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 8
je 0x41252a
test edi, edi
je 0x412c50
mov dword [esp + 0x44], esi
xor ebx, ebx
mov esi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
jmp 0x412576
cmp ebx, dword [esp + 0x40]
jae 0x4125a8
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 0x4125a4
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x4125a4
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x20]
jae 0x4125a4
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [edi + ecx], dl
test ebp, ebp
jne 0x412570
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 0x4132a3
mov eax, dword [esp + 0x40]
sub edi, ebx
add ebp, ebx
test eax, eax
jne 0x412c50
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 0x412d10
test edi, edi
je 0x412c50
mov dword [esp + 0x44], esi
xor ebx, ebx
mov esi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], edi
jmp 0x412619
cmp ebx, dword [esp + 0x40]
jae 0x41264b
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 0x412647
mov edi, dword [eax + 0x24]
test edi, edi
je 0x412647
mov ecx, dword [esi + 0x40]
cmp ecx, dword [eax + 0x28]
jae 0x412647
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov byte [edi + ecx], dl
test ebp, ebp
jne 0x412613
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 0x4131d2
sub edi, ebx
add ebp, ebx
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x412c50
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov dword [eax], 8
test bh, 2
je 0x412c90
cmp esi, 0xf
ja 0x4136ad
test edi, edi
je 0x412c50
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 0x4136b6
test edx, edx
je 0x4136bf
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 0x412c80
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.0x00411568
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
jmp 0x4125ee
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
test eax, eax
je 0x413030
cmp esi, 0x1f
ja 0x41399e
test edi, edi
je 0x412c50
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 0x4138b5
test edx, edx
je 0x4132c2
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 0x4138b5
test edx, edx
je 0x4132c2
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 0x4138b5
test edx, edx
je 0x4132c2
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 0x412827
mov ecx, dword [ecx + 0x10]
mov dword [esp + 8], eax
test ecx, ecx
je 0x413873
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.00410a90
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 0x41285a
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 0x413015
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.0x00411568
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
test eax, eax
je 0x41385a
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x41385a
cmp esi, 0x1f
ja 0x412945
test edi, edi
je 0x412c50
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 0x4133c8
test edx, edx
je 0x4132c2
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 0x4133c8
test edx, edx
je 0x4132c2
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 0x4133c8
test edx, edx
je 0x4132c2
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 0x4139ee
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x18], str.incorrect_length_check
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00411568
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 8]
test edx, edx
je 0x413040
cmp esi, 0xf
ja 0x4129d3
test edi, edi
je 0x412c50
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 0x4139e3
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4138a6
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 0x4129e6
cmp dword [esp + 0x24], 0x8b1f
je 0x413a84
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x10], 0
test eax, eax
je 0x412a02
mov dword [eax + 0x30], 0xffffffff
mov edx, dword [ebx + 8]
and edx, 1
je 0x4134b2
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 0x4134b2
mov eax, dword [esp + 0x24]
and eax, 0xf
cmp eax, 8
je 0x413a03
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.0x00411568
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
shr dword [esp + 0x24], cl
cmp esi, 0x1f
ja 0x4138ec
test edi, edi
je 0x412c50
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 0x41361e
test edx, edx
je 0x4132c2
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 0x41361e
test edx, edx
je 0x4132c2
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 0x41361e
test edx, edx
je 0x4132c2
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 0x413134
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.0x00411568
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x34], 0xfffffffd
jmp 0x411b40
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x412c50
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.0x00411568
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
test bh, 4
je 0x411e62
cmp esi, 0xf
ja 0x412bf9
test edi, edi
je 0x412c50
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 0x413199
test edx, edx
je 0x41395d
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 0x412c13
mov dword [eax + 0x14], ecx
mov ebx, dword [esi + 0x10]
test bh, 2
jne 0x4135e1
mov eax, ebx
xor esi, esi
and eax, 0x400
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x20]
mov dword [edx], 5
jmp 0x41247e
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x10]
jmp 0x41268a
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x411b40
sub eax, 0xffffff80
xor edx, edx
jmp 0x411cd3
cmp edx, 0x13
je 0x411cce
xor edx, edx
jmp 0x411cd3
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 0x412cb0
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.00410a90
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.0x00411568
mov eax, dword [eax + 4]
test eax, eax
je 0x4114f0
nop
lea esi, [esi]
mov eax, 0xfffffffe
jmp 0x411b25
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x412680
mov dword [eax + 0x24], 0
mov ebx, dword [edx + 0x10]
jmp 0x412680
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.00417cc0
jmp 0x411c9f
mov ebx, edi
mov esi, ecx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], edx
jmp 0x411b40
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 0x411c43
mov dword [ebx + 0x30], 0
jmp 0x411c37
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 0x411c43
mov eax, dword [esp + 0x20]
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x00411568
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 0x413350
cmp ebx, 0xf
jbe 0x413350
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 0x412e48
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 0x412f81
movzx edx, byte [eax]
cmp ebx, 1
mov ecx, dword [esp + 0x3c]
mov byte [ecx], dl
je 0x412f81
movzx edx, byte [eax + 1]
cmp ebx, 2
mov byte [ecx + 1], dl
je 0x412f81
movzx edx, byte [eax + 2]
cmp ebx, 3
mov byte [ecx + 2], dl
je 0x412f81
movzx edx, byte [eax + 3]
cmp ebx, 4
mov byte [ecx + 3], dl
je 0x412f81
movzx edx, byte [eax + 4]
cmp ebx, 5
mov byte [ecx + 4], dl
je 0x412f81
movzx edx, byte [eax + 5]
cmp ebx, 6
mov byte [ecx + 5], dl
je 0x412f81
movzx edx, byte [eax + 6]
cmp ebx, 7
mov byte [ecx + 6], dl
je 0x412f81
movzx edx, byte [eax + 7]
cmp ebx, 8
mov byte [ecx + 7], dl
je 0x412f81
movzx edx, byte [eax + 8]
cmp ebx, 9
mov ecx, dword [esp + 0x3c]
mov byte [ecx + 8], dl
je 0x413290
movzx edx, byte [eax + 9]
cmp ebx, 0xa
mov byte [ecx + 9], dl
je 0x413290
movzx edx, byte [eax + 0xa]
cmp ebx, 0xb
mov byte [ecx + 0xa], dl
je 0x413290
movzx edx, byte [eax + 0xb]
cmp ebx, 0xc
mov byte [ecx + 0xb], dl
je 0x413290
movzx edx, byte [eax + 0xc]
cmp ebx, 0xd
mov byte [ecx + 0xc], dl
je 0x413290
movzx edx, byte [eax + 0xd]
cmp ebx, 0xe
mov byte [ecx + 0xd], dl
je 0x413290
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 0x4131a0
mov eax, dword [eax]
jmp 0x41155f
mov dword [esp + 0x24], ebx
mov esi, ecx
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x411b40
cmp esi, ebx
jae 0x412fe8
test edi, edi
je 0x412c50
mov edx, dword [esp + 0x24]
mov ecx, esi
jmp 0x412fcd
test edi, edi
je 0x412d50
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x412fc5
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 0x41194a
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 0x41289a
mov dword [eax], 0xc
mov eax, 0xc
jmp switch.0x00411568
mov eax, dword [ebx + 0x1bc0]
test eax, eax
je 0x411800
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x446385
mov eax, 0x1d
mov dword [ebx], 0x1d
jmp switch.0x00411568
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 0x413330
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x44636f
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00411568
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 0x411eac
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.0x00411568
mov dword [ebx], 0x10
mov eax, 0x10
jmp 0x411710
mov esi, dword [esp + 0x20]
mov ebp, ebx
cmp dword [esp + 0xa4], 6
mov dword [esi + 0x40], eax
mov dword [esi], 0xe
je 0x413c4c
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x411d87
test dword [esp + 0x24], 0xe000
je 0x41381e
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.0x00411568
xor eax, eax
jmp 0x412c2d
mov edi, edx
jmp 0x412bf5
mov dword [eax], 0x14
mov eax, 0x14
jmp switch.0x00411568
mov ebx, esi
mov esi, ecx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x20]
jmp 0x411b40
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
mov esi, ecx
jmp 0x411b40
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.00410a90
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x18], eax
jmp 0x412669
cmp dword [esp + 0x30], 0x101
jbe 0x411855
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.00418200
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 0x41155f
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x1bc4], 0xffffffff
jmp switch.0x00411568
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
add eax, ebx
mov dword [esp + 0x48], eax
jmp 0x412f81
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.00410a90
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x18], eax
jmp 0x4125c6
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
jmp 0x411b40
mov ebx, dword [esp + 0x20]
sub eax, ecx
add eax, dword [ebx + 0x34]
jmp 0x41181d
test bl, 0xf0
je 0x4133d1
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 0x413566
mov eax, dword [esp + 0x20]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x00411568
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 0x411767
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 0x413360
jmp 0x412f81
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.00410a90
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x411e49
mov dword [esp + 0x24], ebx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x20]
jmp 0x411b40
mov esi, ecx
mov edi, edx
jmp 0x412943
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 0x41347f
test edi, edi
je 0x412c50
mov ebx, dword [esp + 0x24]
jmp 0x41342f
test edi, edi
je 0x413534
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 0x413427
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 0x413303
jmp 0x411915
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.0x00411568
mov eax, dword [esp + 0x20]
cmp dword [esp + 0xa4], 6
mov dword [eax + 0x4c], 0x4464e0
mov dword [eax + 0x54], 9
mov dword [eax + 0x50], 0x446460
mov dword [eax + 0x58], 5
mov dword [eax], 0x13
je 0x413c0f
mov eax, 0x13
jmp 0x411710
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 0x411710
mov dword [esp + 0x24], ebx
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x411b40
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.00410a90
mov dword [ebx + 0x18], eax
jmp 0x4124f1
test bl, 0x40
je 0x413802
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x446353
mov eax, dword [esp + 0x20]
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00411568
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.00410a90
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x411d67
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.00410a90
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x18], eax
jmp 0x412c1c
mov esi, ecx
mov edi, edx
jmp 0x412b0f
mov edi, edx
jmp 0x411606
lea edx, [eax + 2]
cmp esi, edx
jae 0x413675
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x413534
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x413658
test edi, edi
je 0x412fa0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x413650
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 0x413c22
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 0x411fc7
mov dword [esp + 0x3c], ebp
jmp 0x4126e5
mov esi, ecx
mov edi, edx
jmp 0x4126e5
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x3c]
jmp 0x411b40
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 + 0x446ce0]
ja 0x413710
lea esi, [esi]
movzx eax, word [edx]
add edx, 2
xor ebx, ebx
cmp edx, 0x446d06
mov word [ecx + eax*2 + 0x70], bx
jne 0x4136f0
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.00418d20
test eax, eax
mov dword [esp + 0x34], eax
je 0x4138be
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.0x00411568
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
jmp 0x4121a2
lea edx, [eax + 3]
cmp esi, edx
jae 0x4137d7
test edi, edi
mov ebp, dword [esp + 0x44]
je 0x413534
mov ecx, esi
mov esi, eax
mov eax, edx
jmp 0x4137ba
test edi, edi
je 0x412fa0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x4137b2
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 0x411fc7
mov eax, dword [esp + 0x20]
and ebx, 0xf
mov dword [eax + 0x48], ebx
mov dword [eax], 0x15
jmp 0x411937
mov edx, ebp
jmp 0x4116d3
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x413835
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 0x4139a5
mov dword [eax], 2
mov ebp, ebx
xor esi, esi
mov dword [esp + 0x24], 0
jmp 0x411d15
mov ebx, edi
mov edi, dword [esp + 0x20]
mov dword [edi], 0x1c
mov dword [esp + 0x34], 1
jmp 0x411b40
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.00417cc0
jmp 0x412816
test eax, eax
jne 0x413c79
mov dword [esp + 0x58], 0
jmp 0x4121b0
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
jmp 0x411b40
mov esi, ecx
mov edi, edx
jmp 0x4127d1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], 0
mov dword [eax + 0x68], 0
mov ebx, eax
mov dword [eax], 0x12
jmp 0x411e96
mov ebx, ebp
jmp 0x4122fa
mov ebx, ebp
jmp 0x41243a
mov ebx, ebp
nop
jmp 0x412b0f
mov esi, ecx
mov edi, edx
jmp 0x4122fa
mov esi, ecx
mov edi, edx
jmp 0x41243a
mov ebp, ebx
mov edi, dword [esp + 0x20]
xor ebx, ebx
jmp 0x411b40
mov edx, ebx
mov edi, dword [esp + 0x20]
mov esi, ecx
xor ebx, ebx
mov ebp, edx
jmp 0x411b40
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x24], ebx
cmp word [eax + 0x270], 0
jne 0x413afc
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.0x00411568
mov edi, dword [esp + 0x20]
xor ebx, ebx
mov ebp, dword [esp + 0x3c]
jmp 0x411b40
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 0x411b25
mov ebx, ebp
jmp 0x4127d1
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.00410a90
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
jmp 0x413843
mov esi, ecx
mov edi, dword [esp + 0x3c]
jmp 0x4129d1
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], 0
jmp 0x413860
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 0x413b70
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.00417cc0
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 0x41155f
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00410a90
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.00410a90
mov dword [esi], 1
mov dword [esp + 0x24], 0
mov dword [esi + 0x18], eax
mov eax, 1
xor esi, esi
jmp switch.0x00411568
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
jmp 0x4121b0
mov dword [esp + 0x40], ebp
jmp 0x4121a2
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.00418d20
test eax, eax
mov dword [esp + 0x34], eax
je 0x413b9d
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.0x00411568
cmp ecx, eax
jbe 0x413a28
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.0x00411568
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.00418d20
test eax, eax
mov dword [esp + 0x34], eax
je 0x41182a
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.0x00411568
mov ebx, edi
sub esi, 3
mov edi, eax
mov ebp, edx
shr dword [esp + 0x24], 3
jmp 0x411b40
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.0x00411568
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], 0
jmp 0x411b40
mov eax, dword [esp + 0xa0]
xor ebx, ebx
mov esi, dword [esp + 0x38]
sub esi, dword [eax + 4]
add dword [eax + 8], esi
jmp 0x411cac
mov dword [esp + 0x58], eax
jmp 0x412015