Function at 0x48b300
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebx, dword [esp + 0xa0]
test ebx, ebx
je case.default.0x48b41d
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je case.default.0x48b41d
mov edx, dword [eax + 0x24]
test edx, edx
je case.default.0x48b41d
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x24], 0xfffffffe
test edi, edi
je 0x48b350
mov eax, dword [edi]
cmp dword [esp + 0xa0], eax
je 0x48b360
mov eax, dword [esp + 0x24]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi + 4]
lea edx, [eax - 0x3f34]
cmp edx, 0x1f
ja 0x48b350
mov ecx, dword [esp + 0xa0]
mov esi, dword [ecx + 0xc]
test esi, esi
mov dword [esp + 0x30], esi
je 0x48b350
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
test ebx, ebx
mov dword [esp + 0x38], esi
je 0x48b410
cmp eax, 0x3f3f
je 0x48b400
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov esi, dword [edi + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x24], edi
mov eax, dword [eax + 0x10]
sub ecx, 5
mov dword [esp + 0x28], esi
mov dword [esp + 0x4c], ecx
mov esi, dword [edi + 0x40]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
lea eax, [edi + 0x534]
mov dword [esp + 0x54], eax
lea eax, [edi + 0x2f4]
mov edi, ebp
mov ebp, ebx
mov dword [esp + 0x50], eax
cmp edx, 0x1e
jbe switch.0x0048b41d
mov dword [esp + 0x24], 0xfffffffe
mov eax, dword [esp + 0x24]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [edi + 4], 0x3f40
mov edx, 0xc
jmp 0x48b398
test esi, esi
je 0x48b391
jmp 0x48b350
jmp dword [edx*4 + 0x4dda70]
mov dword [esp + 0x28], esi
mov esi, ecx
test bl, bl
jne 0x48cc71
mov ebx, dword [esp + 0x24]
sub esi, eax
mov ecx, edx
shr dword [esp + 0x28], cl
mov dword [ebx + 0x1bc8], eax
movzx eax, word [esp + 0x40]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f4d
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x48b980
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, dword [edx + 0x44]
mov byte [ecx], al
mov eax, ebx
mov dword [edx + 4], 0x3f48
sub eax, 1
mov dword [esp + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
cmp edi, 5
jbe 0x48b49b
mov eax, dword [esp + 0x2c]
cmp eax, 0x101
ja 0x48c7d0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x58]
mov ebx, dword [eax + 0x50]
mov dword [eax + 0x1bc8], 0
mov eax, 1
shl eax, cl
mov dword [esp + 0x3c], ebx
sub eax, 1
mov edx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
and eax, edx
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 esi, eax
jae 0x48b42a
test edi, edi
je 0x48b980
mov ecx, esi
mov esi, dword [esp + 0x28]
jmp 0x48b508
test edi, edi
je 0x48c7b0
add ebp, 1
movzx eax, byte [ebp - 1]
mov ebx, dword [esp + 0x3c]
sub edi, 1
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 0x48b500
jmp 0x48b424
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x4c]
test ebx, ebx
je 0x48b5b1
cmp esi, ebx
jae 0x48b584
test edi, edi
je 0x48b980
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x48b569
test edi, edi
je 0x48bfa4
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x48b561
mov dword [esp + 0x28], edx
mov esi, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x24]
sub esi, ebx
sub eax, 1
and eax, edx
add dword [ecx + 0x48], eax
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
add dword [ecx + 0x1bc8], ebx
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f4c
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x48b980
mov eax, dword [esp + 0x34]
sub eax, ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x48]
cmp eax, edx
jae 0x48c630
sub edx, eax
cmp edx, dword [ebx + 0x30]
mov eax, ebx
jbe 0x48c780
mov ecx, dword [ebx + 0x1bc4]
test ecx, ecx
je 0x48c780
mov ebx, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_distance_too_far_back
mov dword [edi + 4], 0x3f51
mov dword [esp + 0x24], 0xfffffffd
nop
lea esi, [esi]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x30]
mov edx, eax
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x2c]
mov dword [edx], ebx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov dword [edx + 4], ebp
test ecx, ecx
mov dword [edx + 0x10], eax
mov dword [edi + 0x40], esi
mov dword [edi + 0x3c], ebx
jne 0x48b680
cmp dword [esp + 0x34], eax
je 0x48b721
mov eax, dword [edi + 4]
cmp eax, 0x3f50
ja 0x48b721
cmp eax, 0x3f4d
jbe 0x48b680
cmp dword [esp + 0xa4], 4
je 0x48b721
lea esi, [esi]
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0x2c]
mov ebp, dword [eax + 0x1c]
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x48ca32
mov esi, dword [ebp + 0x2c]
test esi, esi
jne 0x48b6bf
mov ecx, dword [ebp + 0x28]
mov esi, 1
mov dword [ebp + 0x34], 0
mov dword [ebp + 0x30], 0
shl esi, cl
mov dword [ebp + 0x2c], esi
cmp ebx, esi
jae 0x48b930
mov ecx, dword [ebp + 0x34]
sub esi, ecx
cmp ebx, esi
cmovbe esi, ebx
add eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp], eax
sub ecx, ebx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
sub ebx, esi
jne 0x48b995
mov edx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x2c]
add edx, esi
cmp edx, eax
mov dword [ebp + 0x34], edx
je 0x48b970
mov edx, dword [ebp + 0x30]
cmp eax, edx
jbe 0x48b710
add esi, edx
mov dword [ebp + 0x30], esi
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
sub ebx, dword [esp + 0x2c]
sub esi, ebp
add dword [eax + 0x14], ebx
add dword [eax + 8], esi
add dword [edi + 0x20], ebx
test byte [edi + 0xc], 4
je 0x48b77d
test ebx, ebx
je 0x48b77d
mov edx, dword [edi + 0x14]
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
test edx, edx
mov dword [esp + 0x28], eax
je 0x48b915
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x1c], eax
mov dword [edx + 0x30], eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov edx, 0x40
test eax, eax
cmovne eax, edx
add eax, dword [edi + 0x40]
cmp ecx, 0x3f3f
je 0x48b7f0
cmp ecx, 0x3f47
je 0x48b7aa
xor edx, edx
cmp ecx, 0x3f42
jne 0x48b7af
mov edx, 0x100
mov edi, dword [esp + 0xa0]
add eax, edx
or esi, ebx
mov dword [edi + 0x2c], eax
je 0x48b7cd
cmp dword [esp + 0xa4], 4
jne 0x48b350
mov edi, dword [esp + 0x24]
mov eax, 0xfffffffb
test edi, edi
cmovne eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
sub eax, 0xffffff80
xor edx, edx
jmp 0x48b7af
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x4c]
test ebx, ebx
jne 0x48c860
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x44]
mov dword [ebx + 0x1bcc], eax
mov dword [ebx + 4], 0x3f4a
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x5c]
mov edx, dword [eax + 0x54]
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], edx
sub eax, 1
mov ebx, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
and eax, ebx
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
movzx eax, word [eax + 2]
mov word [esp + 0x3c], ax
movzx eax, dl
cmp esi, eax
mov dword [esp + 0x44], eax
jae 0x48b8bb
test edi, edi
je 0x48b980
mov ecx, esi
mov esi, edi
mov edi, dword [esp + 0x28]
jmp 0x48b87a
test esi, esi
je 0x48c760
add ebp, 1
movzx eax, byte [ebp - 1]
mov ebx, dword [esp + 0x40]
sub esi, 1
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 0x48b872
mov dword [esp + 0x28], edi
mov edi, esi
mov esi, ecx
test bl, 0xf0
je 0x48ca80
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov edx, dword [edx + 0x1bc8]
mov dword [esp + 0x40], edx
add edx, eax
mov ecx, eax
mov eax, dword [esp + 0x24]
shr dword [esp + 0x28], cl
sub esi, dword [esp + 0x44]
test bl, 0x40
mov dword [eax + 0x1bc8], edx
je 0x48ccc0
mov ebx, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x4dda0f
mov dword [edi + 4], 0x3f51
jmp 0x48b613
sub eax, ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.00491ac0
jmp 0x48b770
mov edx, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp], eax
sub edx, esi
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov dword [ebp + 0x34], 0
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
jmp 0x48b721
mov dword [ebp + 0x34], 0
jmp 0x48b704
mov dword [esp + 0x28], ebx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 8], ebx
sub eax, ebx
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov dword [ebp + 0x34], ebx
jmp 0x48b94d
cmp esi, 0x1f
ja 0x48b9e6
test edi, edi
je 0x48b980
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x48b9cc
test edi, edi
je 0x48bfa4
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0x1f
jbe 0x48b9c4
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48b9f8
mov esi, dword [esp + 0x28]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x24]
test byte [eax + 0x15], 2
je 0x48ba0c
test byte [eax + 0xc], 4
jne 0x48d287
mov dword [eax + 4], 0x3f37
xor esi, esi
mov dword [esp + 0x28], 0
test edi, edi
je 0x48b980
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x48ba38
test edi, edi
je 0x48bfa4
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, 0xf
jbe 0x48ba30
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48ba6d
mov ebx, dword [esp + 0x28]
movzx edx, bl
shr ebx, 8
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
test dh, 2
mov ebx, edx
je 0x48ba85
test byte [eax + 0xc], 4
jne 0x48d0d7
xor esi, esi
test dh, 4
mov dword [eax + 4], 0x3f38
mov dword [esp + 0x28], 0
je 0x48c740
test edi, edi
je 0x48b980
mov ebx, dword [esp + 0x28]
mov ecx, esi
jmp 0x48bab8
test edi, edi
je 0x48bfe0
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
cmp ecx, 0xf
jbe 0x48bab0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
mov esi, ebx
mov dword [eax + 0x44], esi
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48bae5
mov dword [eax + 0x14], esi
test dh, 2
je 0x48baf8
mov eax, dword [esp + 0x24]
test byte [eax + 0xc], 4
jne 0x48d357
mov eax, edx
mov ebx, edx
xor esi, esi
and eax, 0x400
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x24]
mov dword [edx + 4], 0x3f39
test eax, eax
je 0x48bbb6
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x44]
cmp edi, eax
mov ecx, eax
cmovbe ecx, edi
test ecx, ecx
mov dword [esp + 0x3c], ecx
je 0x48bba7
mov edx, dword [edx + 0x24]
test edx, edx
je 0x48bb7c
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x48bb7c
mov ebx, dword [edx + 0x14]
sub ebx, eax
mov eax, ebx
mov ebx, dword [edx + 0x18]
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], ebp
add edx, eax
mov dword [esp + 0x40], edx
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x40], ebx
cmovbe edx, dword [esp + 0x3c]
add eax, ecx
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + 0x14]
and bh, 2
je 0x48bb8f
mov eax, dword [esp + 0x24]
test byte [eax + 0xc], 4
jne 0x48d20b
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x44]
sub edi, edx
add ebp, edx
mov dword [esp + 0x3c], eax
sub eax, edx
mov dword [ebx + 0x44], eax
test eax, eax
jne 0x48b980
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], 0
mov dword [eax + 4], 0x3f3a
test bh, 8
je 0x48bfc0
test edi, edi
je 0x48b980
mov dword [esp + 0x40], esi
xor ebx, ebx
mov dword [esp + 0x3c], edi
mov esi, dword [esp + 0x24]
jmp 0x48bbf6
cmp dword [esp + 0x3c], ebx
jbe 0x48bc21
mov eax, dword [esi + 0x24]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
test eax, eax
je 0x48bc1d
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x48bc1d
mov ecx, dword [esi + 0x44]
cmp ecx, dword [eax + 0x20]
jae 0x48bc1d
lea eax, [ecx + 1]
mov dword [esi + 0x44], eax
mov byte [edi + ecx], dl
test dl, dl
jne 0x48bbf0
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
test byte [eax + 0x15], 2
je 0x48bc3d
test byte [eax + 0xc], 4
jne 0x48cd69
sub edi, ebx
add ebp, ebx
test dl, dl
jne 0x48b980
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], 0
mov dword [eax + 4], 0x3f3b
test bh, 0x10
je 0x48bf40
test edi, edi
je 0x48b980
mov dword [esp + 0x40], esi
xor ebx, ebx
mov dword [esp + 0x3c], edi
mov esi, dword [esp + 0x24]
jmp 0x48bc89
cmp dword [esp + 0x3c], ebx
jbe 0x48bcb4
mov eax, dword [esi + 0x24]
add ebx, 1
movzx edx, byte [ebp + ebx - 1]
test eax, eax
je 0x48bcb0
mov edi, dword [eax + 0x24]
test edi, edi
je 0x48bcb0
mov ecx, dword [esi + 0x44]
cmp ecx, dword [eax + 0x28]
jae 0x48bcb0
lea eax, [ecx + 1]
mov dword [esi + 0x44], eax
mov byte [edi + ecx], dl
test dl, dl
jne 0x48bc83
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
test byte [eax + 0x15], 2
je 0x48bcd0
test byte [eax + 0xc], 4
jne 0x48cd2a
sub edi, ebx
add ebp, ebx
test dl, dl
jne 0x48b980
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f3c
test bh, 2
je 0x48bd8a
cmp esi, 0xf
ja 0x48bd47
test edi, edi
je 0x48b980
lea eax, [edi - 1]
mov ecx, esi
lea edx, [ebp + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xf
ja 0x48d11a
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x48d125
movzx eax, byte [ebp + 1]
lea edx, [ebp + 2]
sub edi, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x28], eax
mov ebp, edx
mov edx, dword [esp + 0x24]
test byte [edx + 0xc], 4
je 0x48bd80
movzx eax, word [edx + 0x1c]
cmp eax, dword [esp + 0x28]
je 0x48bd80
mov eax, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, edi
mov edi, edx
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [edx + 4], 0x3f51
jmp 0x48b613
xor esi, esi
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48bda7
sar ebx, 9
mov dword [eax + 0x30], 1
mov edx, ebx
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004921a0
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x1c], eax
mov dword [edx + 0x30], eax
mov dword [ebx + 4], 0x3f3f
mov ebx, ebp
lea esi, [esi]
cmp dword [esp + 0x4c], 1
jbe 0x48d46c
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 8]
test edx, edx
jne 0x48bf60
cmp esi, 2
ja 0x48d2ed
test edi, edi
je 0x48d2ff
movzx eax, byte [ebx]
mov ecx, esi
lea ebp, [ebx + 1]
sub edi, 1
add esi, 8
shl eax, cl
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov eax, ebx
and eax, 1
mov dword [ecx + 8], eax
mov eax, ebx
shr eax, 1
and eax, 3
cmp eax, 2
je 0x48ceca
cmp eax, 3
je 0x48cea0
cmp eax, 1
je 0x48c462
mov eax, ebx
mov dword [ecx + 4], 0x3f41
sub esi, 3
shr eax, 3
mov ebx, ebp
mov dword [esp + 0x28], eax
mov ecx, esi
and esi, 0xfffffff8
and ecx, 7
shr dword [esp + 0x28], cl
cmp esi, 0x1f
ja 0x48bf03
test edi, edi
je 0x48b980
movzx eax, byte [ebx]
mov ecx, esi
add ebp, 1
lea edx, [edi - 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d05b
test edx, edx
je 0x48cd52
movzx eax, byte [ebx + 1]
lea edx, [edi - 2]
lea ebp, [ebx + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d05b
test edx, edx
je 0x48cd52
movzx eax, byte [ebx + 2]
lea edx, [edi - 3]
lea ebp, [ebx + 3]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d05b
test edx, edx
je 0x48cd52
movzx eax, byte [ebx + 3]
lea ebp, [ebx + 4]
sub edi, 4
add esi, 0x20
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
movzx ebx, ax
shr eax, 0x10
xor eax, 0xffff
cmp ebx, eax
je 0x48d029
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48bce3
mov dword [eax + 0x24], 0
jmp 0x48bce3
mov ecx, esi
mov ebp, edi
mov edi, dword [esp + 0x24]
and ecx, 7
shr dword [esp + 0x28], cl
mov dword [esp + 0x3c], ebx
and esi, 0xfffffff8
mov dword [edi + 4], 0x3f4e
mov eax, dword [edi + 0xc]
test eax, eax
mov dword [esp + 0x40], eax
jne 0x48c8d0
mov ebx, dword [esp + 0x3c]
mov dword [edi + 4], 0x3f50
mov dword [esp + 0x24], 1
jmp 0x48b620
mov ebx, ebp
mov dword [esp + 0x28], edx
mov ebp, edi
mov esi, ecx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48bc50
mov dword [eax + 0x1c], 0
jmp 0x48bc50
mov dword [esp + 0x28], ebx
mov esi, ecx
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
mov eax, ebx
and eax, 0x400
jmp 0x48bb16
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
test dh, 4
mov ebx, edx
je 0x48c740
cmp esi, 0xf
jbe 0x48ba9f
mov esi, dword [esp + 0x28]
jmp 0x48bad8
cmp esi, 0xf
jbe 0x48ba1d
jmp 0x48ba52
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x48c731
cmp esi, 0xf
ja 0x48d617
test edi, edi
je 0x48d5f3
lea eax, [edi - 1]
mov ecx, esi
lea ebx, [ebp + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xf
ja 0x48d61e
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x48d45f
movzx eax, byte [ebp + 1]
lea ebx, [ebp + 2]
sub edi, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x28], eax
test dl, 2
mov eax, dword [esp + 0x24]
je 0x48c0b8
cmp dword [esp + 0x28], 0x8b1f
je 0x48d4e4
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48c0c6
mov dword [eax + 0x30], 0xffffffff
and edx, 1
je 0x48cd0a
mov eax, dword [esp + 0x28]
mov edx, 0x8421085
mov ecx, eax
shr eax, 8
shl ecx, 8
movzx ecx, cx
add ecx, eax
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub eax, edx
cmp ecx, eax
jne 0x48cd0a
mov eax, dword [esp + 0x28]
and eax, 0xf
cmp eax, 8
je 0x48d629
mov ebp, edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edi + 4], 0x3f51
jmp 0x48b613
cmp esi, 0x1f
ja 0x48d4a6
test edi, edi
je 0x48b980
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 + 0x28], eax
cmp ecx, 0x1f
ja 0x48d054
test edx, edx
je 0x48cd54
movzx eax, byte [ebp + 1]
lea edx, [edi - 2]
lea ebx, [ebp + 2]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d054
test edx, edx
je 0x48cd54
movzx eax, byte [ebp + 2]
add esi, 0x18
lea edx, [edi - 3]
lea ebx, [ebp + 3]
shl eax, cl
add dword [esp + 0x28], eax
cmp esi, 0x1f
ja 0x48d054
test edx, edx
je 0x48d4db
movzx eax, byte [ebp + 3]
mov ecx, esi
lea ebx, [ebp + 4]
sub edi, 4
shl eax, cl
add dword [esp + 0x28], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 0x28], 0
mov edx, esi
mov ecx, esi
mov eax, esi
shr edx, 0x18
shl ecx, 0x18
shr eax, 8
and eax, 0xff00
add ecx, edx
lea edx, [ecx + eax]
mov eax, esi
mov esi, dword [esp + 0x24]
shl eax, 8
and eax, 0xff0000
add eax, edx
mov edx, dword [esp + 0xa0]
mov dword [esi + 0x1c], eax
mov dword [edx + 0x30], eax
mov dword [esi + 4], 0x3f3e
xor esi, esi
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x48d5b5
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00491ac0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x1c], eax
mov dword [ecx + 0x30], eax
mov dword [edx + 4], 0x3f3f
jmp 0x48bde0
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x48d7af
mov eax, dword [edi + 0x14]
test eax, eax
je 0x48bf90
cmp esi, 0x1f
ja 0x48d2f6
test ebp, ebp
je 0x48b988
lea eax, [ebx + 1]
mov ecx, esi
lea edx, [ebp - 1]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48cd91
test edx, edx
je 0x48cd9a
lea eax, [ebx + 2]
lea edx, [ebp - 2]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 1]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48cd91
test edx, edx
je 0x48cd9a
lea eax, [ebx + 3]
lea edx, [ebp - 3]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 2]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48cd91
test edx, edx
je 0x48cd9a
lea eax, [ebx + 4]
sub ebp, 4
add esi, 0x20
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 3]
shl eax, cl
add dword [esp + 0x28], eax
test byte [esp + 0x40], 4
je 0x48d58c
mov eax, dword [esp + 0x28]
cmp dword [edi + 0x20], eax
je 0x48d58c
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x24]
mov dword [eax + 0x18], str.incorrect_length_check
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov eax, dword [esp + 0x24]
mov ebx, ebp
mov edx, dword [eax + 0x60]
mov eax, dword [eax + 0x6c]
cmp edx, eax
jbe 0x48d142
mov ecx, esi
lea ebx, [edx + 1]
add eax, 1
cmp ecx, 2
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
ja 0x48c3d9
test edi, edi
je 0x48c7b0
movzx edx, byte [ebp]
lea ebx, [ebp + 1]
sub edi, 1
shl edx, cl
add ecx, 8
add esi, edx
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
sub ecx, 3
movzx edx, word [ebp + ebp + 0x4de37e]
mov dword [eax + 0x6c], ebp
mov ebp, esi
and ebp, 7
shr esi, 3
mov word [eax + edx*2 + 0x74], bp
mov eax, dword [esp + 0x3c]
lea edx, [eax + 1]
cmp edx, dword [esp + 0x40]
je 0x48d13c
cmp ecx, 2
mov dword [esp + 0x3c], edx
mov ebp, ebx
jbe 0x48c381
mov ebx, ebp
jmp 0x48c39a
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x44]
test ebx, ebx
je 0x48c440
mov eax, dword [esp + 0x2c]
cmp edi, ebx
cmovbe ebx, edi
cmp ebx, eax
cmova ebx, eax
test ebx, ebx
je 0x48b980
mov edx, dword [esp + 0x30]
mov dword [esp + 4], ebp
sub edi, ebx
mov dword [esp + 8], ebx
add ebp, ebx
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x24]
sub dword [esp + 0x2c], ebx
add dword [esp + 0x30], ebx
sub dword [eax + 0x44], ebx
mov eax, dword [eax + 4]
lea edx, [eax - 0x3f34]
jmp 0x48b3e2
mov eax, dword [esp + 0x24]
mov ebx, ebp
mov dword [eax + 4], 0x3f3f
jmp 0x48bde0
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x44]
mov dword [eax + 4], 0x3f43
jmp 0x48c3e7
cmp dword [esp + 0xa4], 6
mov dword [ecx + 0x50], 0x4ddb80
mov dword [ecx + 0x58], 9
mov dword [ecx + 0x54], 0x4ddb00
mov dword [ecx + 0x5c], 5
mov dword [ecx + 4], 0x3f47
je 0x48d852
shr dword [esp + 0x28], 3
sub esi, 3
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f48
jmp case.0x48b41d.20
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x58], eax
add eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov edx, eax
cmp dword [esp + 0x40], edx
jae 0x48d552
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x50]
mov eax, 1
shl eax, cl
mov ebp, edx
mov dword [esp + 0x28], edx
lea eax, [eax - 1]
mov dword [esp + 0x3c], eax
and eax, ebx
lea eax, [ebp + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx eax, cl
cmp esi, eax
jae 0x48c55c
test edi, edi
je 0x48d1f0
mov ebp, dword [esp + 0x44]
mov ecx, esi
jmp 0x48c528
test edi, edi
je 0x48bfe0
add ebp, 1
movzx eax, byte [ebp - 1]
mov esi, dword [esp + 0x28]
sub edi, 1
shl eax, cl
add ecx, 8
add ebx, eax
mov eax, dword [esp + 0x3c]
and eax, ebx
lea edx, [esi + eax*4]
movzx esi, byte [edx + 1]
movzx edx, word [edx + 2]
cmp esi, ecx
mov eax, esi
ja 0x48c520
mov esi, ecx
mov dword [esp + 0x44], ebp
mov ecx, eax
cmp dx, 0xf
ja 0x48cb60
shr ebx, cl
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x24]
sub esi, eax
mov eax, ecx
add eax, 1
mov dword [ebp + 0x6c], eax
mov dword [esp + 0x40], eax
mov word [ebp + ecx*2 + 0x74], dx
mov edx, dword [esp + 0x48]
jmp 0x48c4d2
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
jmp 0x48bc62
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
jmp 0x48bcee
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
jmp 0x48bbc8
cmp esi, 0xf
ja 0x48d4ad
test edi, edi
je 0x48b980
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 + 0x28], eax
cmp ecx, 0xf
ja 0x48d4b4
test edx, edx
je 0x48d4c6
movzx eax, byte [ebp + 1]
lea ebx, [ebp + 2]
sub edi, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
cmp al, 8
mov dword [ecx + 0x14], eax
je 0x48cffb
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, ecx
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [ecx + 4], 0x3f51
jmp 0x48b613
mov eax, dword [esp + 0x30]
sub eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x44]
mov ecx, edx
mov ebx, dword [esp + 0x2c]
mov eax, edx
cmp edx, ebx
mov edx, ebx
cmova eax, ebx
sub edx, eax
sub ecx, eax
mov ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov dword [eax + 0x44], ecx
mov eax, dword [esp + 0x3c]
lea edx, [eax + 4]
mov eax, dword [esp + 0x30]
cmp eax, edx
mov edx, eax
setae cl
add edx, 4
cmp dword [esp + 0x3c], edx
setae dl
or edx, ecx
cmp ebx, 9
seta cl
test dl, cl
je 0x48cce0
mov edx, dword [esp + 0x3c]
or edx, eax
and edx, 3
jne 0x48cce0
lea ecx, [ebx - 4]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0x44], esi
shr ecx, 2
add ecx, 1
lea eax, [ecx*4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + edx*4]
mov dword [ebx + edx*4], esi
add edx, 1
cmp ecx, edx
ja 0x48c6c2
mov edx, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov ecx, ebx
sub ecx, eax
add edx, eax
mov dword [esp + 0x40], ecx
mov ecx, eax
add eax, dword [esp + 0x3c]
cmp ebx, ecx
je 0x48c716
movzx ecx, byte [eax]
cmp dword [esp + 0x40], 1
mov byte [edx], cl
je 0x48c716
movzx ecx, byte [eax + 1]
cmp dword [esp + 0x40], 2
mov byte [edx + 1], cl
je 0x48c716
movzx eax, byte [eax + 2]
mov byte [edx + 2], al
mov eax, dword [esp + 0x24]
add dword [esp + 0x30], ebx
mov ebx, dword [eax + 0x44]
test ebx, ebx
je 0x48c49f
mov eax, dword [eax + 4]
jmp 0x48c42b
mov dword [eax + 4], 0x3f40
mov ebx, ebp
jmp 0x48bdeb
mov eax, dword [eax + 0x24]
test eax, eax
je 0x48bbb6
mov dword [eax + 0x10], 0
mov eax, edx
mov ebx, edx
and eax, 0x400
jmp 0x48bb0b
mov ebx, ebp
mov dword [esp + 0x28], edi
mov ebp, esi
mov edi, dword [esp + 0x24]
mov esi, ecx
mov dword [esp + 0x24], 0
jmp 0x48b620
mov eax, dword [ebx + 0x34]
cmp edx, eax
jbe 0x48cc61
sub edx, eax
mov eax, dword [ebx + 0x2c]
sub eax, edx
add eax, dword [ebx + 0x38]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ecx, dword [eax + 0x44]
cmp edx, ecx
cmova edx, ecx
jmp 0x48c643
mov ebx, ebp
mov dword [esp + 0x28], esi
mov ebp, edi
mov esi, ecx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x10], eax
mov dword [ebx], ebp
mov dword [ebx + 4], edi
mov dword [ebx + 0xc], edx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x3c], edi
mov dword [ebx + 0x40], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.00492450
mov eax, dword [esp + 0xa0]
mov esi, dword [ebx + 0x3c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], esi
mov esi, dword [ebx + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebx + 4]
cmp eax, 0x3f3f
jne 0x48c42b
mov eax, dword [esp + 0x24]
mov ebx, ebp
mov dword [eax + 0x1bc8], 0xffffffff
jmp 0x48bde0
cmp esi, ebx
jae 0x48c897
test edi, edi
je 0x48b980
mov edx, dword [esp + 0x28]
mov ecx, esi
jmp 0x48c87c
test edi, edi
je 0x48bfa4
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
shl eax, cl
add ecx, 8
add edx, eax
cmp ecx, ebx
jb 0x48c874
mov dword [esp + 0x28], edx
mov esi, ecx
mov ecx, ebx
mov eax, 1
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x24]
sub esi, ebx
sub eax, 1
and eax, edx
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
add dword [ecx + 0x1bc8], ebx
mov ebx, ecx
jmp 0x48b811
cmp esi, 0x1f
ja 0x48d5ea
test ebp, ebp
je 0x48d606
mov eax, dword [esp + 0x3c]
mov ecx, esi
lea edx, [ebp - 1]
lea ebx, [eax + 1]
movzx eax, byte [eax]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d454
test edx, edx
je 0x48cd58
mov eax, dword [esp + 0x3c]
lea edx, [ebp - 2]
lea ebx, [eax + 2]
movzx eax, byte [eax + 1]
shl eax, cl
lea ecx, [esi + 0x10]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d454
test edx, edx
je 0x48cd58
mov eax, dword [esp + 0x3c]
lea edx, [ebp - 3]
lea ebx, [eax + 3]
movzx eax, byte [eax + 2]
shl eax, cl
lea ecx, [esi + 0x18]
add dword [esp + 0x28], eax
cmp ecx, 0x1f
ja 0x48d454
test edx, edx
je 0x48cd58
mov eax, dword [esp + 0x3c]
sub ebp, 4
add esi, 0x20
lea ebx, [eax + 4]
movzx eax, byte [eax + 3]
shl eax, cl
add dword [esp + 0x28], eax
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x2c]
add dword [edx + 0x14], eax
mov edx, dword [esp + 0x40]
add dword [edi + 0x20], eax
and edx, 4
je 0x48c9d0
test eax, eax
je 0x48c9d0
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x30]
mov dword [esp + 8], eax
test ecx, ecx
je 0x48d59f
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x1c], eax
mov dword [edx + 0x30], eax
mov eax, dword [edi + 0xc]
mov edx, eax
mov dword [esp + 0x40], eax
and edx, 4
test edx, edx
je 0x48cfb2
mov edx, dword [edi + 0x14]
mov ecx, dword [esp + 0x28]
test edx, edx
mov eax, ecx
jne 0x48ca07
mov edx, ecx
shl eax, 0x18
shr edx, 0x18
add edx, eax
mov eax, ecx
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, ecx
shl eax, 8
and eax, 0xff0000
add eax, edx
cmp eax, dword [edi + 0x1c]
je 0x48cfb2
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x2c]
mov dword [edi + 4], 0x3f51
mov dword [esp + 0x34], eax
jmp 0x48b613
mov dword [esp + 8], 1
mov ecx, dword [ebp + 0x28]
mov eax, 1
shl eax, cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
call dword [eax + 0x20]
test eax, eax
mov dword [ebp + 0x38], eax
jne 0x48b69d
mov dword [edi + 4], 0x3f52
mov dword [esp + 0x24], 0xfffffffc
jmp 0x48b350
movzx ecx, word [esp + 0x3c]
mov dword [esp + 0x44], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x58], ebx
and ebx, dword [esp + 0x28]
shr ebx, cl
mov ecx, dword [esp + 0x44]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x40]
lea edx, [ebx + edx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x3c], cx
lea ecx, [eax + edx]
mov dword [esp + 0x48], edx
cmp ecx, esi
jbe 0x48cb38
test edi, edi
je 0x48b980
mov ebx, dword [esp + 0x28]
jmp 0x48cae8
test edi, edi
je 0x48b97c
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 + 0x58]
and edx, ebx
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x5c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x3c], cx
lea ecx, [edx + eax]
mov dword [esp + 0x48], edx
cmp ecx, esi
ja 0x48cae0
mov dword [esp + 0x28], ebx
movzx ebx, byte [esp + 0x5c]
mov ecx, eax
shr dword [esp + 0x28], cl
mov ecx, dword [esp + 0x24]
sub esi, eax
mov dword [esp + 0x44], edx
add eax, dword [ecx + 0x1bc8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
jmp 0x48b8d6
cmp dx, 0x10
je 0x48d064
cmp dx, 0x11
je 0x48d22c
lea edx, [eax + 7]
cmp edx, esi
jbe 0x48cbb5
test edi, edi
je 0x48d1f0
mov ecx, esi
mov ebp, dword [esp + 0x44]
mov esi, eax
mov eax, edx
jmp 0x48cb98
test edi, edi
je 0x48bfe0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp eax, ecx
ja 0x48cb90
mov eax, esi
mov dword [esp + 0x44], ebp
mov esi, ecx
mov ecx, eax
sub esi, eax
xor eax, eax
shr ebx, cl
sub esi, 7
mov edx, ebx
shr ebx, 7
and edx, 0x7f
add edx, 0xb
mov ebp, dword [esp + 0x40]
mov ecx, ebp
add ecx, edx
cmp ecx, dword [esp + 0x48]
mov dword [esp + 0x60], ecx
ja 0x48d7b8
mov ecx, ebp
mov ebp, dword [esp + 0x24]
mov word [esp + 0x3c], ax
add ecx, 0x3a
mov dword [esp + 0x5c], ecx
lea ecx, [ebp + ecx*2]
shr ecx, 1
and ecx, 1
cmp edx, 6
mov dword [esp + 0x64], ecx
ja 0x48d3a5
mov ecx, ebp
mov ebp, dword [esp + 0x40]
cmp edx, 2
mov word [ecx + ebp*2 + 0x74], ax
mov word [ecx + ebp*2 + 0x76], ax
je 0x48cc49
mov ebp, dword [esp + 0x5c]
cmp edx, 3
mov word [ecx + ebp*2 + 4], ax
je 0x48cc49
mov ebp, dword [esp + 0x40]
cmp edx, 4
mov word [ecx + ebp*2 + 0x7a], ax
je 0x48cc49
cmp edx, 6
mov word [ecx + ebp*2 + 0x7c], ax
jne 0x48cc49
mov word [ecx + ebp*2 + 0x7e], ax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
mov dword [edx + 0x6c], eax
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x48]
jmp 0x48c4d2
sub eax, edx
add eax, dword [ebx + 0x38]
mov dword [esp + 0x3c], eax
mov eax, ebx
jmp 0x48c79b
test bl, 0xf0
je 0x48cda2
mov ecx, edx
mov edx, dword [esp + 0x24]
sub esi, eax
shr dword [esp + 0x28], cl
mov dword [edx + 0x1bc8], eax
movzx eax, word [esp + 0x40]
mov dword [edx + 0x44], eax
test bl, 0x20
je 0x48cfd0
mov eax, dword [esp + 0x24]
mov ebx, ebp
mov dword [eax + 0x1bc8], 0xffffffff
mov dword [eax + 4], 0x3f3f
jmp 0x48bde0
mov edx, eax
movzx eax, word [esp + 0x3c]
and ebx, 0xf
mov dword [edx + 0x4c], ebx
mov dword [edx + 4], 0x3f4b
mov dword [edx + 0x48], eax
jmp 0x48b549
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
lea ecx, [eax + ebx]
nop
add eax, 1
movzx ebx, byte [eax - 1]
add edx, 1
cmp ecx, eax
mov byte [edx - 1], bl
jne 0x48ccf0
mov ebx, dword [esp + 0x3c]
jmp 0x48c716
mov ebp, edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.incorrect_header_check
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x1c]
mov byte [esp + 0x3c], dl
mov dword [esp], eax
call fcn.004921a0
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1c], eax
movzx edx, byte [esp + 0x3c]
jmp 0x48bcd0
mov ebx, ebp
mov edi, dword [esp + 0x24]
mov esi, ecx
mov dword [esp + 0x24], 0
xor ebp, ebp
jmp 0x48b620
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 0x1c]
mov byte [esp + 0x3c], dl
mov dword [esp], eax
call fcn.004921a0
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1c], eax
movzx edx, byte [esp + 0x3c]
jmp 0x48bc3d
mov esi, ecx
mov ebp, edx
jmp 0x48c31e
mov esi, ecx
mov ebx, dword [esp + 0x24]
jmp 0x48cd5a
movzx ecx, word [esp + 0x40]
mov dword [esp + 0x40], ecx
lea ecx, [ebx + eax]
mov ebx, 1
shl ebx, cl
mov ecx, edx
lea ebx, [ebx - 1]
mov dword [esp + 0x48], ebx
and ebx, dword [esp + 0x28]
shr ebx, cl
mov ecx, dword [esp + 0x40]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x3c]
lea edx, [ebx + edx*4]
movzx ecx, word [edx + 2]
movzx ebx, byte [edx]
movzx edx, byte [edx + 1]
mov word [esp + 0x44], cx
lea ecx, [edx + eax]
mov dword [esp + 0x58], edx
cmp ecx, esi
mov dword [esp + 0x5c], ecx
jbe 0x48ce5c
test edi, edi
je 0x48b980
mov ebx, dword [esp + 0x28]
jmp 0x48ce08
test edi, edi
je 0x48b97c
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
add edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
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 0x48ce00
mov dword [esp + 0x28], ebx
mov dword [esp + 0x5c], ecx
movzx ebx, byte [esp + 0x58]
mov dword [esp + 0x58], edx
sub esi, eax
mov ecx, eax
mov edx, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x58]
shr edx, cl
sub eax, esi
mov ecx, esi
shr edx, cl
mov esi, eax
movzx eax, word [esp + 0x44]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x5c]
test bl, bl
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1bc8], ecx
mov dword [edx + 0x44], eax
jne 0x48cc94
jmp 0x48b44c
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
shr dword [esp + 0x28], 3
sub esi, 3
mov dword [eax + 0x18], str.invalid_block_type
mov dword [edi + 4], 0x3f51
jmp 0x48b613
shr dword [esp + 0x28], 3
mov dword [ecx + 4], 0x3f44
sub esi, 3
mov ebx, ebp
cmp esi, 0xd
ja 0x48cf20
test edi, edi
je 0x48b980
movzx eax, byte [ebx]
mov ecx, esi
add ebp, 1
lea edx, [edi - 1]
shl eax, cl
lea ecx, [esi + 8]
add dword [esp + 0x28], eax
cmp ecx, 0xd
ja 0x48d4bd
test edx, edx
je 0x48d45d
movzx eax, byte [ebx + 1]
lea ebp, [ebx + 2]
sub edi, 2
add esi, 0x10
shl eax, cl
add dword [esp + 0x28], eax
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
sub esi, 0xe
mov ecx, ebx
and ecx, 0x1f
lea eax, [ecx + 0x101]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ecx, dword [esp + 0x3c]
shr eax, 5
and eax, 0x1f
add eax, 1
mov dword [edx + 0x64], ecx
mov ecx, eax
mov eax, edx
mov dword [edx + 0x68], ecx
mov edx, ebx
shr ebx, 0xe
shr edx, 0xa
mov dword [esp + 0x28], ebx
and edx, 0xf
add edx, 4
cmp ecx, 0x1e
mov dword [eax + 0x60], edx
ja 0x48cf90
cmp dword [esp + 0x3c], 0x11e
ja 0x48cf90
mov eax, dword [esp + 0x24]
mov dword [eax + 0x6c], 0
mov dword [eax + 4], 0x3f45
xor eax, eax
jmp 0x48c368
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov eax, dword [esp + 0x2c]
mov dword [edi + 4], 0x3f4f
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], eax
jmp 0x48c266
test bl, 0x40
je 0x48d2d7
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], 0x4dd9f3
mov dword [edi + 4], 0x3f51
jmp 0x48b613
test dword [esp + 0x28], 0xe000
je 0x48d310
mov ebp, edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.unknown_header_flags_set
mov dword [edi + 4], 0x3f51
jmp 0x48b613
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], ebx
mov dword [eax + 4], 0x3f42
je 0x48d86b
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x48c459
mov edi, edx
jmp 0x48c1c4
mov esi, ecx
mov edi, edx
jmp 0x48bf03
lea edx, [eax + 2]
cmp edx, esi
jbe 0x48d0a5
test edi, edi
je 0x48d1f0
mov ecx, esi
mov ebp, dword [esp + 0x44]
mov esi, eax
mov eax, edx
jmp 0x48d088
test edi, edi
je 0x48bfe0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x48d080
mov eax, esi
mov dword [esp + 0x44], ebp
mov esi, ecx
mov ebp, dword [esp + 0x40]
mov ecx, eax
sub esi, eax
shr ebx, cl
test ebp, ebp
je 0x48d7b8
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
sub esi, 2
movzx eax, word [eax + edx*2 + 0x72]
mov edx, ebx
shr ebx, 2
and edx, 3
add edx, 3
jmp 0x48cbcb
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov edx, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x24]
mov ebx, edx
jmp 0x48ba85
mov esi, ecx
mov edi, dword [esp + 0x3c]
jmp 0x48bd45
mov edi, dword [esp + 0x24]
mov ebx, edx
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x24], 0
jmp 0x48b620
mov dword [esp + 0x28], esi
mov esi, ecx
cmp eax, 0x12
lea edx, [eax + eax + 0x4de380]
mov ecx, 0x4de3a6
mov ebp, dword [esp + 0x24]
ja 0x48d17c
mov esi, esi
lea edi, [edi]
movzx eax, word [edx]
add edx, 2
cmp ecx, edx
mov word [ebp + eax*2 + 0x74], 0
jne 0x48d160
mov eax, dword [esp + 0x24]
mov dword [eax + 0x6c], 0x13
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov dword [eax + 0x70], edx
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x58], 7
mov dword [esp + 8], 0x13
mov dword [esp], 0
mov dword [esp + 0x14], edx
mov edx, eax
add eax, 0x58
mov dword [esp + 0x10], eax
mov eax, edx
add eax, 0x70
mov dword [esp + 0xc], eax
mov eax, edx
add eax, 0x74
mov dword [esp + 4], eax
call fcn.0048e400
test eax, eax
je 0x48d483
mov ebp, edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov dword [esp + 0x28], ebx
mov ebp, edi
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov ebx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov dword [ebx + 0x1c], eax
jmp 0x48bb8f
lea edx, [eax + 3]
cmp edx, esi
jbe 0x48d268
test edi, edi
je 0x48d1f0
mov ecx, esi
mov ebp, dword [esp + 0x44]
mov esi, eax
mov eax, edx
jmp 0x48d24b
test edi, edi
je 0x48bfe0
add ebp, 1
movzx edx, byte [ebp - 1]
sub edi, 1
shl edx, cl
add ecx, 8
add ebx, edx
cmp ecx, eax
jb 0x48d243
mov eax, esi
mov dword [esp + 0x44], ebp
mov esi, ecx
mov ecx, eax
shr ebx, cl
mov ecx, 0xfffffffd
mov edx, ebx
sub ecx, eax
shr ebx, 3
and edx, 7
add esi, ecx
xor eax, eax
add edx, 3
jmp 0x48cbcb
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 4
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
shr eax, 8
mov byte [esp + 0x7d], al
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x7e], al
mov eax, esi
mov esi, dword [esp + 0x24]
shr eax, 0x18
mov byte [esp + 0x7f], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x24]
jmp 0x48ba0c
mov eax, dword [esp + 0x24]
and ebx, 0xf
mov dword [eax + 0x4c], ebx
mov dword [eax + 4], 0x3f49
jmp 0x48b7fe
mov ebp, ebx
mov ecx, eax
jmp 0x48be23
mov dword [esp + 0x24], ebx
jmp 0x48c31e
mov ebp, edi
mov dword [esp + 0x3c], ebx
mov edi, eax
mov dword [esp + 0x24], edx
jmp 0x48b620
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x48d323
mov edx, dword [esp + 0x28]
shr edx, 8
and edx, 1
mov dword [eax], edx
test dword [esp + 0x28], 0x200
je 0x48d33b
mov eax, dword [esp + 0x24]
test byte [eax + 0xc], 4
jne 0x48d678
mov eax, dword [esp + 0x24]
mov ebp, ebx
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [eax + 4], 0x3f36
jmp 0x48b9b8
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
xor esi, esi
mov dword [esp + 0x28], 0
mov eax, ebx
and eax, 0x400
jmp 0x48bb0b
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x48d41b
lea eax, [edx - 2]
mov dword [esp + 0x68], edx
mov ecx, ebp
shr eax, 1
add eax, 1
mov dword [esp + 0x28], eax
add eax, eax
mov dword [esp + 0x6c], eax
movzx edx, word [esp + 0x3c]
mov ebp, dword [esp + 0x44]
mov eax, edx
shl eax, 0x10
or edx, eax
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x64]
lea ecx, [ecx + eax*2]
xor eax, eax
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [esp + 0x28]
jb 0x48d3e2
mov edx, dword [esp + 0x6c]
add dword [esp + 0x40], edx
cmp dword [esp + 0x68], edx
mov dword [esp + 0x44], ebp
je 0x48cc49
movzx ecx, word [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov word [eax + edx*2 + 0x74], cx
jmp 0x48cc49
mov ebp, dword [esp + 0x40]
lea ecx, [ebp + 1]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
mov word [ecx + ebp*2 + 0x74], ax
lea eax, [edx - 1]
mov ebp, eax
mov dword [esp + 0x68], eax
lea eax, [edx - 3]
shr eax, 1
add eax, 1
mov dword [esp + 0x28], eax
add eax, eax
cmp ebp, 1
mov dword [esp + 0x6c], eax
je 0x48d404
jmp 0x48d3c5
mov esi, ecx
mov ebp, edx
jmp 0x48c971
mov ebx, ebp
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
jmp 0x48b988
mov ebp, edi
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov eax, dword [esp + 0x24]
mov ebp, ebx
mov dword [esp + 0x40], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 4], 0x3f46
mov ebx, eax
jmp 0x48c4ba
mov ebx, ebp
jmp 0x48c1c4
mov ebx, ebp
jmp 0x48c5fa
mov esi, ecx
mov edi, edx
jmp 0x48c5fa
mov esi, ecx
mov edi, edx
jmp 0x48cf20
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x24], 0
jmp 0x48b620
mov edi, dword [esp + 0x24]
jmp 0x48cd5a
mov edx, dword [eax + 0x28]
test edx, edx
jne 0x48d4f2
mov dword [eax + 0x28], 0xf
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov ebp, ebx
mov dword [esp], 0
call fcn.004921a0
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x7d], 0x8b
mov dword [esi + 0x1c], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004921a0
mov dword [esi + 4], 0x3f35
mov dword [esi + 0x1c], eax
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x48c5b9
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x28], ebx
cmp word [eax + 0x274], 0
jne 0x48d6b2
mov ebx, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code____missing_end_of_block
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov ebx, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x28], 0
jmp 0x48bf90
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.00491ac0
jmp 0x48c9b7
mov ebp, edi
mov edx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x24], 2
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov dword [eax + 0x10], edx
mov eax, dword [esp + 0x28]
mov dword [edi + 0x40], esi
mov dword [edi + 0x3c], eax
jmp 0x48b350
mov ebx, dword [esp + 0x3c]
jmp 0x48c971
mov ebx, ebp
mov dword [esp + 0x24], 0
mov ebp, edi
mov edi, eax
jmp 0x48b620
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov ebx, ebp
jmp 0x48c0a1
mov esi, ecx
mov edi, dword [esp + 0x3c]
jmp 0x48c0a1
shr dword [esp + 0x28], 4
mov edx, dword [esp + 0x24]
sub esi, 4
mov eax, dword [esp + 0x28]
and eax, 0xf
mov ecx, eax
mov eax, dword [edx + 0x28]
add ecx, 8
test eax, eax
jne 0x48d72a
cmp ecx, 0xf
mov dword [edx + 0x28], ecx
jbe 0x48d73b
mov ebp, edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_window_size
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov esi, dword [esp + 0x28]
mov dword [esp + 8], 2
mov eax, esi
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call fcn.004921a0
mov dword [esi + 0x1c], eax
jmp 0x48d33b
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x70], ebx
mov dword [eax + 0x50], ebx
lea edx, [eax + 0x74]
mov dword [eax + 0x58], 9
mov dword [esp + 0x14], ecx
lea ebx, [eax + 0x70]
mov ecx, dword [esp + 0x58]
add eax, 0x58
mov dword [esp + 4], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov dword [esp], 1
mov dword [esp + 0x3c], edx
mov dword [esp + 8], ecx
call fcn.0048e400
test eax, eax
mov edx, dword [esp + 0x3c]
je 0x48d7e0
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_literal_lengths_set
mov dword [edi + 4], 0x3f51
jmp 0x48b613
cmp ecx, 0xf
ja 0x48d658
cmp ecx, eax
ja 0x48d658
mov esi, dword [esp + 0x24]
mov eax, 1
shl eax, cl
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00491ac0
and dword [esp + 0x28], 0x200
mov edx, esi
mov dword [esi + 0x1c], eax
mov esi, dword [esp + 0xa0]
mov dword [esi + 0x30], eax
je 0x48d7a1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], 0
mov ebp, ebx
xor esi, esi
mov dword [eax + 4], 0x3f3d
jmp 0x48c13c
mov dword [edx + 4], 0x3f3f
xor esi, esi
jmp 0x48bde0
mov dword [esp + 0x3c], ebx
jmp 0x48bf8c
mov ebp, edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x44]
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x70]
mov dword [ecx + 0x5c], 6
mov dword [ecx + 0x54], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], ecx
mov ecx, eax
add eax, 0x5c
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x68]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x64]
mov dword [esp], 2
add eax, eax
add eax, edx
mov dword [esp + 4], eax
call fcn.0048e400
test eax, eax
mov edx, eax
je 0x48d8c4
mov ebx, ebp
mov eax, dword [esp + 0xa0]
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x18], str.invalid_distances_set
mov dword [edi + 4], 0x3f51
jmp 0x48b613
mov ebx, ebp
shr dword [esp + 0x28], 3
mov ebp, edi
sub esi, 3
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], edx
jmp 0x48b620
mov ebx, ebp
xor esi, esi
mov ebp, edi
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 0
jmp 0x48b620
mov ebx, ebp
jmp 0x48cedb
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], 1
jmp 0x48b620
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], ebx
jmp 0x48bf7d
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
jmp 0x48b613
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f47
jne case.0x48b41d.19
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], edx
jmp 0x48b620
mov ebx, ebp
jmp 0x48be66
mov ebx, ebp
jmp 0x48bdeb
mov ebx, ebp
jmp 0x48bde0
mov ebx, ebp
jmp 0x48c20f