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

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r15, rcx
call fcn.00466e30
xor edx, edx
test eax, eax
jne case.0x467d56.16211
cmp qword [rcx + 0x18], rdx
je case.0x467d56.16211
cmp qword [rcx], rdx
jne 0x467cd1
cmp dword [rcx + 8], edx
jne case.0x467d56.16211
mov rdi, qword [rcx + 0x38]
mov eax, 0x3f40
mov ecx, dword [rdi + 8]
cmp ecx, 0x3f3f
jne 0x467cea
mov dword [rdi + 8], eax
mov ecx, eax
mov r10d, dword [r15 + 0x20]
add ecx, 0xffffc0cc
mov r9d, dword [rdi + 0x3c]
mov ebx, r10d
mov eax, dword [rdi + 0x34]
mov r12d, dword [r15 + 8]
add r9, rax
add r9, qword [rdi + 0x40]
mov r13, qword [r15]
mov esi, dword [rdi + 0xa0]
mov r14d, dword [rdi + 0xa4]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r10d
mov dword [rbp - 0x10], r12d
mov dword [rbp - 0x1c], ebx
mov dword [rbp + 0x58], edx
cmp ecx, 0x1f
ja case.0x467d56.16211
movsxd rax, ecx
lea r11, [rdi + 0xc8]
lea rcx, [0x00400000]
mov ecx, dword [rcx + rax*4 + 0x695e0]
lea rax, [0x00400000]
add rcx, rax
jmp rcx
xor r8d, r8d
cmp dword [rdi + 0x10], r8d
jne 0x467d6d
mov dword [rdi + 8], 0x3f40
jmp 0x467dee
mov ebx, select
jmp 0x467d93
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, ebx
jb 0x467d74
test byte [rdi + 0x10], 2
je 0x467e08
cmp esi, 0x8b1f
jne 0x467e08
cmp dword [rdi + 0x30], r8d
jne 0x467db3
mov dword [rdi + 0x30], select
mov byte [rbp - 0x20], sil
lea rdx, [rbp - 0x20]
mov dword [rdi + 0x20], r8d
xor ecx, ecx
shr esi, 8
mov r8d, 2
mov byte [rbp - 0x1f], sil
call fcn.0046387c
xor r11d, r11d
mov dword [rdi + 0x20], eax
mov esi, r11d
mov dword [rdi + 8], 0x3f35
mov r14d, r11d
mov r10d, dword [rbp + 0x50]
mov r9, qword [rbp - 8]
mov ecx, dword [rdi + 8]
sub ecx, 0x3f34
cmp ecx, 0x1f
ja case.0x467d56.16211
mov ebx, dword [rbp - 0x1c]
jmp 0x467d34
mov rax, qword [rdi + 0x28]
mov dword [rdi + 0x18], r8d
test rax, rax
je 0x467e19
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 0x10], 1
je 0x467f68
movzx ecx, sil
mov eax, esi
shr eax, 8
shl ecx, 8
add ecx, eax
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x467f68
mov eax, esi
and al, 0xf
cmp al, 8
je 0x467e62
lea rax, str.unknown_compression_method
jmp 0x467f6f
mov eax, dword [rdi + 0x30]
add r14d, 0xfffffffc
shr esi, 4
mov ebx, esi
and ebx, 0xf
add ebx, 8
test eax, eax
jne 0x467e7d
mov eax, ebx
mov dword [rdi + 0x30], ebx
cmp ebx, 0xf
ja 0x467f5f
cmp ebx, eax
ja 0x467f5f
cmp qword [rdi + 0x40], r8
jne 0x467f28
sub r9d, dword [rdi + 0x34]
mov edx, 1
sub r9d, dword [rdi + 0x40]
mov r8d, 4
mov dword [rdi + 0x3c], r9d
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov ecx, dword [rdi + 0x30]
shl edx, cl
mov dword [rdi + 0x34], edx
add edx, 0x10
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
mov rax, qword [r15 + 0x40]
mov rcx, qword [r15 + 0x50]
call rax
xor r8d, r8d
mov qword [rdi + 0x40], rax
test rax, rax
jne 0x467f01
mov rcx, qword [r15 + 0x50]
mov rdx, rdi
call qword [r15 + 0x48]
xor r8d, r8d
mov dword [rbp + 0x58], 0xfffffffc
mov qword [r15 + 0x38], r8
mov r9d, dword [rdi + 0x3c]
mov eax, dword [rdi + 0x34]
mov r10d, dword [r15 + 0x20]
add r9, rax
add r9, qword [rdi + 0x40]
mov r13, qword [r15]
mov r12d, dword [r15 + 8]
mov esi, dword [rdi + 0xa0]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r10d
shr esi, 8
mov ecx, ebx
not esi
mov dword [rdi + 0x20], 1
and esi, 2
mov eax, 1
shl eax, cl
mov r14d, r8d
or esi, 0x3f3d
mov dword [rdi + 0x1c], eax
mov dword [r15 + 0x5c], 1
mov dword [rdi + 8], esi
mov esi, r8d
jmp 0x467dee
lea rax, str.invalid_window_size
jmp 0x467f6f
lea rax, str.incorrect_header_check
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
jmp 0x467dee
mov ebx, select
xor r8d, r8d
cmp r14d, ebx
jae 0x467fad
test r12d, r12d
je 0x4695ae
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x467f87
mov dword [rdi + 0x18], esi
cmp sil, 8
jne 0x467e56
test esi, 0xe000
je 0x467fcb
lea rax, str.unknown_header_flags_set
jmp 0x467f6f
mov rdx, qword [rdi + 0x28]
mov ecx, esi
shr ecx, 8
test rdx, rdx
je 0x467fe0
mov eax, ecx
and eax, 1
mov dword [rdx], eax
test dword [rdi + 0x18], 0x200
je 0x46800e
test byte [rdi + 0x10], 4
je 0x46800e
mov byte [rbp - 0x1f], cl
lea rdx, [rbp - 0x20]
mov ecx, dword [rdi + 0x20]
mov r8d, 2
mov byte [rbp - 0x20], sil
call fcn.0046387c
mov dword [rdi + 0x20], eax
xor r8d, r8d
mov esi, r8d
mov dword [rdi + 8], 0x3f36
mov r14d, r8d
jmp 0x468029
mov dword [rbp - 0x18], esi
xor r8d, r8d
cmp r14d, 0x20
jae 0x46804a
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x468023
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x468056
mov dword [rax + 4], esi
test dword [rdi + 0x18], 0x200
je 0x468098
test byte [rdi + 0x10], 4
je 0x468098
mov ecx, dword [rdi + 0x20]
lea rdx, [rbp - 0x20]
mov eax, esi
mov byte [rbp - 0x20], sil
shr eax, 8
mov r8d, 4
mov byte [rbp - 0x1f], al
mov eax, esi
shr eax, 0x10
shr esi, 0x18
mov byte [rbp - 0x1e], al
mov byte [rbp - 0x1d], sil
call fcn.0046387c
mov dword [rdi + 0x20], eax
xor r8d, r8d
mov esi, r8d
mov dword [rdi + 8], 0x3f37
mov r14d, r8d
mov ebx, select
jmp 0x4680bc
mov dword [rbp - 0x18], esi
mov ebx, select
xor r8d, r8d
cmp r14d, ebx
jae 0x4680dd
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x4680b7
mov rdx, qword [rdi + 0x28]
mov ecx, esi
shr ecx, 8
test rdx, rdx
je 0x4680f9
movzx eax, sil
mov dword [rdx + 8], eax
mov rax, qword [rdi + 0x28]
mov dword [rax + 0xc], ecx
test dword [rdi + 0x18], 0x200
je 0x468127
test byte [rdi + 0x10], 4
je 0x468127
mov byte [rbp - 0x1f], cl
lea rdx, [rbp - 0x20]
mov ecx, dword [rdi + 0x20]
mov r8d, 2
mov byte [rbp - 0x20], sil
call fcn.0046387c
mov dword [rdi + 0x20], eax
xor r8d, r8d
mov esi, r8d
mov dword [rdi + 8], 0x3f38
mov r14d, r8d
jmp 0x46813d
xor r8d, r8d
lea ebx, [r8 + 0x10]
test dword [rdi + 0x18], 0x400
jne 0x46817b
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x468153
mov qword [rax + 0x10], r8
mov dword [rdi + 8], 0x3f39
jmp 0x4681cf
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, ebx
jb 0x46815c
mov rax, qword [rdi + 0x28]
mov dword [rdi + 0xa8], esi
test rax, rax
je 0x468192
mov dword [rax + 0x18], esi
test dword [rdi + 0x18], 0x200
je 0x4681c4
test byte [rdi + 0x10], 4
je 0x4681c4
mov ecx, dword [rdi + 0x20]
lea rdx, [rbp - 0x20]
mov byte [rbp - 0x20], sil
mov r8d, 2
shr esi, 8
mov byte [rbp - 0x1f], sil
call fcn.0046387c
mov dword [rdi + 0x20], eax
xor r8d, r8d
mov esi, r8d
mov r14d, r8d
jmp 0x468153
xor r8d, r8d
test dword [rdi + 0x18], 0x400
je 0x468288
mov ebx, dword [rdi + 0xa8]
mov ecx, r12d
cmp ebx, r12d
cmovbe ecx, ebx
mov dword [rbp + 0x48], ecx
test ecx, ecx
je 0x468280
mov rax, qword [rdi + 0x28]
mov edx, ebx
test rax, rax
je 0x468240
mov r10, qword [rax + 0x10]
test r10, r10
je 0x468240
mov r9d, dword [rax + 0x18]
mov edx, dword [rax + 0x1c]
sub r9d, ebx
lea eax, [rcx + r9]
cmp eax, edx
jbe 0x468221
sub edx, r9d
jmp 0x468223
mov edx, ecx
mov ecx, r9d
mov r8d, edx
add rcx, r10
mov rdx, r13
call fcn.00424180
mov edx, dword [rdi + 0xa8]
xor r8d, r8d
mov ecx, dword [rbp + 0x48]
test dword [rdi + 0x18], 0x200
mov ebx, edx
je 0x46826f
test byte [rdi + 0x10], 4
je 0x46826f
test r13, r13
jne 0x46825b
mov eax, r8d
jmp 0x46826c
mov r8d, ecx
mov rdx, r13
mov ecx, dword [rdi + 0x20]
call fcn.0046387c
xor r8d, r8d
mov dword [rdi + 0x20], eax
mov ecx, dword [rbp + 0x48]
sub r12d, ecx
add r13, rcx
sub ebx, ecx
mov dword [rdi + 0xa8], ebx
test ebx, ebx
jne 0x4683f0
mov dword [rdi + 0xa8], r8d
mov dword [rdi + 8], 0x3f3a
jmp 0x46829b
xor r8d, r8d
test dword [rdi + 0x18], 0x800
je 0x468338
test r12d, r12d
je 0x4683f0
mov ebx, r8d
xor r9d, r9d
mov eax, ebx
inc ebx
mov r8b, byte [rax + r13]
mov rax, qword [rdi + 0x28]
mov byte [rbp + 0x48], r8b
test rax, rax
je 0x4682ea
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x4682ea
mov ecx, dword [rdi + 0xa8]
cmp ecx, dword [rax + 0x28]
jae 0x4682ea
mov byte [rcx + rdx], r8b
inc dword [rdi + 0xa8]
test r8b, r8b
je 0x4682f4
cmp ebx, r12d
jb 0x4682b7
test dword [rdi + 0x18], 0x200
je 0x468322
test byte [rdi + 0x10], 4
je 0x468322
test r13, r13
jne 0x46830d
mov eax, r9d
jmp 0x46831f
mov ecx, dword [rdi + 0x20]
mov rdx, r13
mov r8d, ebx
call fcn.0046387c
mov r8b, byte [rbp + 0x48]
mov dword [rdi + 0x20], eax
mov eax, ebx
sub r12d, ebx
add r13, rax
test r8b, r8b
jne 0x4683f0
xor r8d, r8d
jmp 0x468345
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x468345
mov qword [rax + 0x20], r8
mov dword [rdi + 0xa8], r8d
mov dword [rdi + 8], 0x3f3b
jmp 0x468358
xor r8d, r8d
test dword [rdi + 0x18], 0x1000
je 0x4684b3
test r12d, r12d
je 0x4683f0
mov ebx, r8d
xor r9d, r9d
mov eax, ebx
inc ebx
mov r8b, byte [rax + r13]
mov rax, qword [rdi + 0x28]
mov byte [rbp + 0x48], r8b
test rax, rax
je 0x4683a7
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x4683a7
mov ecx, dword [rdi + 0xa8]
cmp ecx, dword [rax + 0x38]
jae 0x4683a7
mov byte [rcx + rdx], r8b
inc dword [rdi + 0xa8]
test r8b, r8b
je 0x4683b1
cmp ebx, r12d
jb 0x468374
test dword [rdi + 0x18], 0x200
je 0x4683df
test byte [rdi + 0x10], 4
je 0x4683df
test r13, r13
jne 0x4683ca
mov eax, r9d
jmp 0x4683dc
mov ecx, dword [rdi + 0x20]
mov rdx, r13
mov r8d, ebx
call fcn.0046387c
mov r8b, byte [rbp + 0x48]
mov dword [rdi + 0x20], eax
mov eax, ebx
sub r12d, ebx
add r13, rax
test r8b, r8b
je 0x4684c0
mov ebx, dword [rbp + 0x58]
mov r8d, dword [rbp + 0x50]
mov rax, qword [rbp - 8]
sub eax, dword [rdi + 0x34]
sub eax, dword [rdi + 0x40]
mov dword [rdi + 0x3c], eax
mov dword [r15 + 0x20], r8d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
xor esi, esi
mov dword [rdi + 0xa4], r14d
cmp dword [rdi + 0x3c], esi
je 0x468431
cmp dword [r15 + 0x20], esi
je 0x468431
mov rcx, r15
call fcn.0041b8c4
mov r10d, dword [rbp - 0x10]
sub r10d, dword [r15 + 8]
mov r9d, dword [rbp - 0x1c]
sub r9d, dword [r15 + 0x20]
mov eax, r10d
add qword [r15 + 0x10], rax
mov eax, r9d
add qword [r15 + 0x28], rax
add dword [rdi + 0x24], r9d
cmp dword [rdi + 8], 0x3f47
je 0x468468
cmp dword [rdi + 8], 0x3f42
mov r8d, esi
jne 0x46846e
mov r8d, 0x100
mov eax, dword [rdi + 0xc]
mov edx, esi
neg eax
mov eax, 0x80
sbb ecx, ecx
and ecx, 0x40
cmp dword [rdi + 8], 0x3f3f
cmove edx, eax
lea eax, [r8 + rcx]
add edx, eax
add edx, dword [rdi + 0xa4]
mov dword [r15 + 0x58], edx
test r10d, r10d
jne 0x4684ac
test r9d, r9d
jne 0x4684ac
test ebx, ebx
lea eax, [r10 - 5]
cmove ebx, eax
mov eax, ebx
jmp 0x4695c6
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x4684c0
mov qword [rax + 0x30], r8
mov r9, qword [rbp - 8]
mov r10d, dword [rbp + 0x50]
mov dword [rdi + 8], 0x3f3c
mov edx, dword [rdi + 0x18]
xor r8d, r8d
bt edx, 9
jae 0x468525
lea ebx, [r8 + 0x10]
cmp r14d, ebx
jae 0x468505
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x4684df
test byte [rdi + 0x10], 4
je 0x46851f
movzx eax, word [rdi + 0x20]
cmp esi, eax
je 0x46851f
lea rax, str.header_crc_mismatch
jmp 0x467f6f
mov esi, r8d
mov r14d, r8d
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x468542
sar edx, 9
and edx, 1
mov dword [rax + 0x3c], edx
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x40], 1
cmp dword [0x004bb5c4], r8d
mov dword [rdi + 0x20], r8d
mov dword [r15 + 0x5c], r8d
je 0x468586
movdqu xmm2, xmmword [rdi + 0x90]
mov eax, 0x9db42487
xorps xmm1, xmm1
movdqu xmmword [rdi + 0x60], xmm1
movd xmm0, eax
movdqu xmmword [rdi + 0x50], xmm0
movdqu xmmword [rdi + 0x70], xmm1
movdqu xmmword [rdi + 0x80], xmm1
movdqu xmmword [rdi + 0x90], xmm2
mov dword [rdi + 8], 0x3f3f
jmp 0x467dee
xor r8d, r8d
cmp r14d, 0x20
jae 0x4685bc
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x468595
mov ecx, esi
mov eax, esi
shl eax, 0x10
mov edx, 0xff00
and ecx, edx
mov r14d, r8d
add ecx, eax
mov eax, esi
shr eax, 8
and eax, edx
shl ecx, 8
shr esi, 0x18
add eax, ecx
add eax, esi
mov esi, r8d
mov dword [rdi + 0x20], eax
mov dword [r15 + 0x5c], eax
mov dword [rdi + 8], 0x3f3e
jmp 0x4685f6
xor r8d, r8d
cmp dword [rdi + 0x14], r8d
je 0x469552
mov dword [rdi + 0x20], 1
mov dword [r15 + 0x5c], 1
mov dword [rdi + 8], 0x3f3f
jmp 0x46861b
xor r8d, r8d
cmp dword [rdi + 0xc], r8d
je 0x468657
mov ecx, r14d
mov dword [rdi + 8], 0x3f4e
and ecx, 7
shr esi, cl
sub r14d, ecx
jmp 0x467dee
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, 3
jb 0x468638
mov eax, esi
shr esi, 1
and eax, 1
mov dword [rdi + 0xc], eax
mov eax, esi
and eax, 3
je 0x4686d0
sub eax, 1
je 0x46869a
sub eax, 1
je 0x468691
cmp eax, 1
jne 0x4686d7
lea rax, str.invalid_block_type
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
jmp 0x4686d7
mov dword [rdi + 8], 0x3f44
jmp 0x4686d7
lea rax, [0x00496280]
mov dword [r11], 9
mov qword [rdi + 0xb8], rax
lea rax, [0x00496200]
mov qword [rdi + 0xc0], rax
mov dword [rdi + 0xcc], 5
mov dword [rdi + 8], 0x3f47
jmp 0x4686d7
mov dword [rdi + 8], 0x3f41
shr esi, 2
add r14d, 0xfffffffd
jmp 0x467dee
mov ecx, r14d
and ecx, 7
shr esi, cl
sub r14d, ecx
xor r8d, r8d
cmp r14d, 0x20
jae 0x468718
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x4686f1
mov eax, esi
movzx ecx, si
not eax
shr eax, 0x10
cmp ecx, eax
je 0x468732
lea rax, str.invalid_stored_block_lengths
jmp 0x467f6f
mov dword [rdi + 0xa8], ecx
mov esi, r8d
mov r14d, r8d
mov dword [rdi + 8], 0x3f43
mov edx, dword [rdi + 0xa8]
test edx, edx
je 0x468586
mov r8d, dword [rdi + 0x34]
mov ebx, r12d
lea eax, [r8*4]
add rax, qword [rdi + 0x40]
mov ecx, eax
mov qword [rbp - 0x18], rax
sub ecx, r9d
cmp edx, r12d
cmovbe ebx, edx
mov dword [rbp + 0x48], ebx
mov eax, ebx
cmp ebx, ecx
jbe 0x4687fb
test r10d, r10d
je 0x4687f0
sub r9d, r8d
mov rcx, r15
sub r9d, dword [rdi + 0x40]
mov dword [rdi + 0x3c], r9d
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
call fcn.0041b8c4
mov eax, dword [rdi + 0x34]
mov ecx, dword [rbp - 0x18]
mov r9d, dword [rdi + 0x3c]
mov r8d, dword [r15 + 0x20]
add r9, rax
add r9, qword [rdi + 0x40]
mov eax, ebx
mov esi, dword [rdi + 0xa0]
sub ecx, r9d
mov r13, qword [r15]
mov r12d, dword [r15 + 8]
mov r14d, dword [rdi + 0xa4]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r8d
mov dword [rbp + 0x48], ebx
mov dword [rbp - 0x18], esi
cmp ebx, ecx
jbe 0x4687ff
jmp 0x4687f4
mov r8d, dword [rbp + 0x50]
mov eax, ecx
mov dword [rbp + 0x48], ecx
jmp 0x4687ff
mov r8d, dword [rbp + 0x50]
test eax, eax
je 0x4695b2
mov r8d, eax
mov rdx, r13
mov rcx, r9
mov ebx, eax
call fcn.00424180
mov r9, qword [rbp - 8]
add r13, rbx
mov eax, dword [rbp + 0x48]
add r9, rbx
sub r12d, eax
mov qword [rbp - 8], r9
sub dword [rdi + 0xa8], eax
mov r10d, dword [rbp + 0x50]
jmp 0x467dee
xor r8d, r8d
cmp r14d, 0xe
jae 0x468864
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x46883d
mov ecx, esi
add r14d, 0xfffffff2
shr esi, 5
and ecx, 0x1f
mov edx, esi
add ecx, 0x101
shr esi, 5
and edx, 0x1f
mov eax, esi
mov dword [rdi + 0xd4], ecx
and eax, 0xf
shr esi, 4
add eax, 4
inc edx
mov dword [rdi + 0xd8], edx
mov dword [rdi + 0xd0], eax
cmp ecx, 0x11e
ja 0x4688ba
cmp edx, 0x1e
ja 0x4688ba
mov dword [rdi + 0xdc], r8d
mov dword [rdi + 8], 0x3f45
jmp 0x4688c9
lea rax, str.too_many_length_or_distance_symbols
jmp 0x467f6f
xor r8d, r8d
mov edx, 7
lea r9, [0x00400000]
mov eax, dword [rdi + 0xdc]
cmp eax, dword [rdi + 0xd0]
jae 0x468954
jmp 0x468904
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, 3
jb 0x4688e5
mov eax, dword [rdi + 0xdc]
movzx ecx, si
and cx, dx
shr esi, 3
movzx eax, word [r9 + rax*2 + 0x96a80]
mov word [rdi + rax*2 + 0xe8], cx
inc dword [rdi + 0xdc]
add r14d, 0xfffffffd
jmp 0x4688d5
movzx eax, word [r9 + rax*2 + 0x96a80]
mov word [rdi + rax*2 + 0xe8], r8w
inc dword [rdi + 0xdc]
mov eax, dword [rdi + 0xdc]
cmp eax, 0x13
jb 0x468936
lea rax, [rdi + 0x5a8]
mov dword [r11], edx
lea r9, [rdi + 0xe0]
mov qword [rdi + 0xb8], rax
xor ecx, ecx
mov qword [r9], rax
lea rax, [rdi + 0x368]
mov qword [rsp + 0x28], rax
lea rdx, [rdi + 0xe8]
mov qword [rsp + 0x20], r11
lea r8d, [rcx + 0x13]
call fcn.004668ac
mov r10d, dword [rbp + 0x50]
xor r8d, r8d
mov dword [rbp + 0x58], eax
test eax, eax
je 0x4689bc
lea rax, str.invalid_code_lengths_set
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
jmp 0x467dea
mov dword [rdi + 0xdc], r8d
lea r11, [rdi + 0xc8]
mov dword [rdi + 8], 0x3f46
jmp 0x4689d6
xor r8d, r8d
mov eax, dword [rdi + 0xd8]
add eax, dword [rdi + 0xd4]
cmp dword [rdi + 0xdc], eax
jae 0x468c15
mov r8d, dword [r11]
mov eax, 1
mov r9, qword [rdi + 0xb8]
mov ecx, r8d
shl eax, cl
lea ecx, [rax - 1]
mov eax, esi
and rcx, rax
mov eax, dword [r9 + rcx*4]
mov ecx, eax
shr ecx, 8
xor ebx, ebx
movzx ecx, cl
mov dword [rbp + 0x48], eax
cmp ecx, r14d
jbe 0x468a5b
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
mov ecx, r8d
mov eax, 1
mov edx, esi
shl eax, cl
inc r13
dec eax
add r14d, 8
and rax, rdx
mov eax, dword [r9 + rax*4]
mov ecx, eax
shr ecx, 8
jmp 0x468a15
mov edx, eax
mov ecx, select
shr edx, 0x10
cmp dx, cx
jae 0x468a95
shr eax, 8
movzx ecx, al
mov eax, dword [rdi + 0xdc]
sub r14d, ecx
shr esi, cl
mov word [rdi + rax*2 + 0xe8], dx
inc dword [rdi + 0xdc]
mov r8d, dword [rdi + 0xdc]
jmp 0x468bd6
jne 0x468aff
shr eax, 8
movzx edx, al
add edx, 2
xor r8d, r8d
cmp r14d, edx
jae 0x468ac9
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
jmp 0x468aa3
movzx ecx, byte [rbp + 0x49]
mov eax, dword [rdi + 0xdc]
sub r14d, ecx
shr esi, cl
test eax, eax
je 0x468bec
mov edx, esi
add r14d, 0xfffffffe
and edx, 3
shr esi, 2
add edx, 3
dec eax
movzx r9d, word [rdi + rax*2 + 0xe8]
jmp 0x468b98
cmp word [rbp + 0x4a], 0x11
movzx r8d, byte [rbp + 0x49]
jne 0x468b4f
lea edx, [r8 + 3]
jmp 0x468b30
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, edx
jb 0x468b11
mov ecx, r8d
mov eax, 0xfffffffd
shr esi, cl
mov r9d, ebx
mov edx, esi
and edx, 7
add edx, 3
shr esi, 3
jmp 0x468b92
lea edx, [r8 + 7]
jmp 0x468b74
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, edx
jb 0x468b55
mov ecx, r8d
mov eax, 0xfffffff9
shr esi, cl
movzx r9d, bx
mov edx, esi
and edx, 0x7f
add edx, 0xb
shr esi, 7
sub eax, r8d
add r14d, eax
mov r8d, dword [rdi + 0xdc]
mov ecx, dword [rdi + 0xd4]
add ecx, dword [rdi + 0xd8]
lea eax, [r8 + rdx]
cmp eax, ecx
ja 0x468c00
mov eax, r8d
mov word [rdi + rax*2 + 0xe8], r9w
mov r8d, dword [rdi + 0xdc]
lea r8d, [r8 + 1]
mov dword [rdi + 0xdc], r8d
add edx, 0xffffffff
jne 0x468bb3
mov eax, dword [rdi + 0xd4]
add eax, dword [rdi + 0xd8]
cmp r8d, eax
jae 0x468c12
jmp 0x4689ee
lea rax, str.invalid_bit_length_repeat
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
jmp 0x468c15
lea rax, str.invalid_bit_length_repeat
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
xor r8d, r8d
cmp dword [rdi + 8], 0x3f51
je 0x467dea
cmp word [rdi + 0x2e8], r8w
jne 0x468c38
lea rax, str.invalid_code____missing_end_of_block
jmp 0x4689ac
mov r8d, dword [rdi + 0xd4]
lea rax, [rdi + 0x5a8]
lea rbx, [rdi + 0xe0]
mov qword [rdi + 0xb8], rax
mov qword [rbx], rax
lea rdx, [rdi + 0xe8]
lea rax, [rdi + 0x368]
mov dword [r11], 9
mov qword [rsp + 0x28], rax
mov r9, rbx
mov ecx, 1
mov qword [rsp + 0x20], r11
call fcn.004668ac
mov dword [rbp + 0x58], eax
test eax, eax
je 0x468ca1
lea rax, str.invalid_literal_lengths_set
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
jmp 0x467de6
mov rax, qword [rbx]
lea rcx, [rdi + 0xcc]
mov r8d, dword [rdi + 0xd8]
mov r9, rbx
mov qword [rdi + 0xc0], rax
mov eax, dword [rdi + 0xd4]
add rax, 0x74
mov dword [rcx], 6
lea rdx, [rdi + rax*2]
lea rax, [rdi + 0x368]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov ecx, 2
call fcn.004668ac
mov r9, qword [rbp - 8]
mov r10d, dword [rbp + 0x50]
mov dword [rbp + 0x58], eax
test eax, eax
je 0x468d06
lea rax, str.invalid_distances_set
jmp 0x467f6f
lea r11, [rdi + 0xc8]
mov dword [rdi + 8], 0x3f48
cmp r12d, 6
jb 0x468d96
cmp r10d, 0x102
jb 0x468d96
sub r9d, dword [rdi + 0x34]
mov rcx, r15
sub r9d, dword [rdi + 0x40]
mov dword [rdi + 0x3c], r9d
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
call fcn.00463498
mov r9d, dword [rdi + 0x3c]
mov eax, dword [rdi + 0x34]
mov r10d, dword [r15 + 0x20]
add r9, rax
add r9, qword [rdi + 0x40]
cmp dword [rdi + 8], 0x3f3f
mov r13, qword [r15]
mov r12d, dword [r15 + 8]
mov esi, dword [rdi + 0xa0]
mov r14d, dword [rdi + 0xa4]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r10d
jne 0x467dee
or dword [rdi + 0x1c3c], 0xffffffff
jmp 0x467dee
mov r8d, dword [r11]
xor edx, edx
mov r10, qword [rdi + 0xb8]
mov ecx, r8d
mov dword [rdi + 0x1c3c], edx
lea eax, [rdx + 1]
shl eax, cl
lea ecx, [rax - 1]
mov eax, esi
and rcx, rax
mov eax, dword [r10 + rcx*4]
jmp 0x468df2
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
mov ecx, r8d
mov eax, 1
mov edx, esi
shl eax, cl
inc r13
dec eax
add r14d, 8
and rax, rdx
mov eax, dword [r10 + rax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, r14d
ja 0x468dbe
mov r11d, eax
test al, al
je 0x468ec5
test al, 0xf0
jne 0x468ec5
mov ecx, eax
mov dword [rbp + 0x48], eax
shr ecx, 8
mov r9d, 1
movzx r8d, cl
mov edx, eax
movzx ecx, al
add ecx, r8d
shr eax, 0x10
shl r9d, cl
mov ecx, r8d
dec r9d
shr r11d, 8
and r9d, esi
shr r9d, cl
add r9d, eax
mov eax, dword [r10 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r11b
add r8d, ecx
jmp 0x468eb1
test r12d, r12d
je 0x4683f0
movzx r9d, byte [rbp + 0x49]
mov ecx, r14d
movzx eax, byte [r13]
mov r8d, 1
shl eax, cl
dec r12d
add esi, eax
movzx ecx, dl
movzx eax, word [rbp + 0x4a]
add ecx, r9d
shl r8d, cl
inc r13
dec r8d
mov ecx, r9d
and r8d, esi
add r14d, 8
shr r8d, cl
add r8d, eax
mov eax, dword [r10 + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, r14d
ja 0x468e5b
movzx ecx, byte [rbp + 0x49]
shr esi, cl
sub r14d, ecx
mov dword [rdi + 0x1c3c], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1c3c], ecx
sub r14d, ecx
shr esi, cl
mov ecx, eax
shr ecx, 0x10
mov dword [rdi + 0xa8], ecx
test al, al
jne 0x468ef3
mov dword [rdi + 8], 0x3f4d
jmp 0x467de6
test al, 0x20
je 0x468f0a
or dword [rdi + 0x1c3c], 0xffffffff
mov dword [rdi + 8], 0x3f3f
jmp 0x467de6
test al, 0x40
je 0x468f1a
lea rax, str.invalid_literal_length_code
jmp 0x468c91
movzx ecx, al
and ecx, 0xf
mov dword [rdi + 8], 0x3f49
mov dword [rdi + 0xb0], ecx
mov edx, dword [rdi + 0xb0]
test edx, edx
je 0x468f7b
jmp 0x468f58
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, edx
jb 0x468f39
mov ecx, edx
mov eax, 1
shl eax, cl
sub r14d, edx
dec eax
and eax, esi
shr esi, cl
add dword [rdi + 0xa8], eax
add dword [rdi + 0x1c3c], edx
mov eax, dword [rdi + 0xa8]
mov dword [rdi + 0x1c40], eax
mov dword [rdi + 8], 0x3f4a
mov r8d, dword [rdi + 0xcc]
mov eax, 1
mov r10, qword [rdi + 0xc0]
mov ecx, r8d
shl eax, cl
lea ecx, [rax - 1]
mov eax, esi
and rcx, rax
mov eax, dword [r10 + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, r14d
jbe 0x468ff5
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
mov ecx, r8d
mov eax, 1
mov edx, esi
shl eax, cl
inc r13
dec eax
add r14d, 8
and rax, rdx
mov eax, dword [r10 + rax*4]
jmp 0x468fb2
mov r11d, eax
test al, 0xf0
jne 0x4690b5
mov ecx, eax
mov dword [rbp + 0x48], eax
shr ecx, 8
mov r9d, 1
movzx r8d, cl
mov edx, eax
movzx ecx, al
add ecx, r8d
shr eax, 0x10
shl r9d, cl
mov ecx, r8d
dec r9d
shr r11d, 8
and r9d, esi
shr r9d, cl
add r9d, eax
mov eax, dword [r10 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r11b
add r8d, ecx
jmp 0x46909f
test r12d, r12d
je 0x4683f0
movzx r9d, byte [rbp + 0x49]
mov ecx, r14d
movzx eax, byte [r13]
mov r8d, 1
shl eax, cl
dec r12d
add esi, eax
movzx ecx, dl
movzx eax, word [rbp + 0x4a]
add ecx, r9d
shl r8d, cl
inc r13
dec r8d
mov ecx, r9d
and r8d, esi
add r14d, 8
shr r8d, cl
add r8d, eax
mov eax, dword [r10 + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, r14d
ja 0x469049
movzx edx, byte [rbp + 0x49]
mov ecx, edx
sub r14d, edx
shr esi, cl
add dword [rdi + 0x1c3c], edx
mov r9, qword [rbp - 8]
mov ecx, eax
mov r10d, dword [rbp + 0x50]
shr ecx, 8
movzx ecx, cl
add dword [rdi + 0x1c3c], ecx
sub r14d, ecx
shr esi, cl
test al, 0x40
je 0x4690e0
lea rax, str.invalid_distance_code
jmp 0x467f6f
mov ecx, eax
mov dword [rdi + 8], 0x3f4b
shr ecx, 0x10
mov dword [rdi + 0xac], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rdi + 0xb0], ecx
mov edx, dword [rdi + 0xb0]
xor r11d, r11d
test edx, edx
je 0x46914f
jmp 0x46912c
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, edx
jb 0x46910d
mov ecx, edx
mov eax, 1
shl eax, cl
sub r14d, edx
dec eax
and eax, esi
shr esi, cl
add dword [rdi + 0xac], eax
add dword [rdi + 0x1c3c], edx
mov dword [rdi + 8], 0x3f4c
jmp 0x46915b
xor r11d, r11d
mov ecx, dword [rdi + 0x34]
mov ebx, dword [rdi + 0xa8]
lea eax, [rcx*4]
add rax, qword [rdi + 0x40]
mov edx, eax
mov qword [rbp - 0x18], rax
mov eax, r9d
sub edx, r9d
sub eax, dword [rdi + 0x40]
sub eax, ecx
mov dword [rdi + 0x3c], eax
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
cmp ebx, edx
jbe 0x4691f1
cmp dword [r15 + 0x20], r11d
jbe 0x4691e6
mov rcx, r15
call fcn.0041b8c4
mov r9d, dword [rdi + 0x3c]
mov eax, dword [rdi + 0x34]
mov edx, dword [rbp - 0x18]
add r9, rax
add r9, qword [rdi + 0x40]
mov r8d, dword [r15 + 0x20]
sub edx, r9d
mov r13, qword [r15]
xor r11d, r11d
mov r12d, dword [r15 + 8]
mov esi, dword [rdi + 0xa0]
mov r14d, dword [rdi + 0xa4]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r8d
jmp 0x4691ea
mov r8d, dword [rbp + 0x50]
cmp ebx, edx
cmova ebx, edx
jmp 0x4691f5
mov r8d, dword [rbp + 0x50]
test ebx, ebx
je 0x4695b2
mov r8d, dword [rdi + 0x3c]
mov ecx, dword [rdi + 0x38]
mov r10d, dword [rdi + 0xac]
add ecx, r8d
cmp r10d, ecx
jbe 0x469233
cmp dword [rdi + 0x1c38], r11d
je 0x469233
lea rax, str.invalid_distance_too_far_back
mov qword [r15 + 0x30], rax
mov dword [rdi + 8], 0x3f51
jmp 0x468831
mov rcx, qword [rdi + 0x40]
mov r11, r8
mov edx, dword [rdi + 0x34]
mov r9, rcx
sub dword [rdi + 0xa8], ebx
sub r9, r10
add r9, rdx
add r9, r8
cmp ebx, r10d
jbe 0x469305
cmp ebx, 2
jbe 0x4692cd
lea ecx, [rbx - 3]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea r10d, [rdx + 1]
mov dl, byte [r9]
add ebx, 0xfffffffd
mov ecx, dword [rdi + 0x34]
mov eax, r8d
add rcx, rax
mov rax, qword [rdi + 0x40]
mov byte [rcx + rax], dl
inc dword [rdi + 0x3c]
mov cl, byte [r9 + 1]
mov edx, dword [rdi + 0x3c]
mov eax, dword [rdi + 0x34]
add rdx, rax
mov rax, qword [rdi + 0x40]
mov byte [rdx + rax], cl
inc dword [rdi + 0x3c]
mov cl, byte [r9 + 2]
add r9, 3
mov edx, dword [rdi + 0x3c]
mov eax, dword [rdi + 0x34]
add rdx, rax
mov rax, qword [rdi + 0x40]
mov byte [rdx + rax], cl
mov ecx, dword [rdi + 0x3c]
inc ecx
mov dword [rdi + 0x3c], ecx
mov r8d, ecx
sub r10, 1
jne 0x46926d
mov edx, dword [rdi + 0x34]
mov rcx, qword [rdi + 0x40]
xor r11d, r11d
test ebx, ebx
je 0x469320
mov eax, r8d
add rcx, rax
mov al, byte [r9]
mov byte [rdx + rcx], al
inc dword [rdi + 0x3c]
mov r8d, dword [rdi + 0x3c]
cmp ebx, 1
jbe 0x469320
mov eax, dword [rdi + 0x34]
mov rcx, qword [rdi + 0x40]
mov edx, r8d
add rdx, rax
mov al, byte [r9 + 1]
mov byte [rdx + rcx], al
inc dword [rdi + 0x3c]
jmp 0x46931c
add rcx, r11
mov r8d, ebx
add rcx, rdx
mov rdx, r9
call fcn.00424180
add dword [rdi + 0x3c], ebx
xor r11d, r11d
mov r8d, dword [rdi + 0x3c]
mov r9d, dword [rdi + 0x34]
mov r10d, dword [r15 + 0x20]
mov r13, qword [r15]
mov r12d, dword [r15 + 8]
mov esi, dword [rdi + 0xa0]
mov r14d, dword [rdi + 0xa4]
mov eax, r8d
add r9, rax
mov dword [rbp + 0x50], r10d
add r9, qword [rdi + 0x40]
mov qword [rbp - 8], r9
cmp dword [rdi + 0xa8], r11d
jne 0x467dee
mov dword [rdi + 8], 0x3f48
jmp 0x467dee
mov edx, dword [rdi + 0x34]
lea ecx, [rdx*4]
add rcx, qword [rdi + 0x40]
cmp r9, rcx
jb 0x4693d3
sub r9d, edx
mov rcx, r15
sub r9d, dword [rdi + 0x40]
mov dword [rdi + 0x3c], r9d
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
call fcn.0041b8c4
mov r9d, dword [rdi + 0x3c]
mov eax, dword [rdi + 0x34]
mov r10d, dword [r15 + 0x20]
add r9, rax
add r9, qword [rdi + 0x40]
mov r13, qword [r15]
mov r12d, dword [r15 + 8]
mov esi, dword [rdi + 0xa0]
mov r14d, dword [rdi + 0xa4]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r10d
test r10d, r10d
je 0x4683f0
mov al, byte [rdi + 0xa8]
mov byte [r9], al
inc r9
mov qword [rbp - 8], r9
jmp 0x46935b
sub r9d, dword [rdi + 0x34]
mov rcx, r15
sub r9d, dword [rdi + 0x40]
mov dword [rdi + 0x3c], r9d
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
call fcn.0041b8c4
mov r10d, dword [r15 + 0x20]
xor r8d, r8d
mov eax, dword [rdi + 0x3c]
mov r9d, dword [rdi + 0x34]
mov r13, qword [r15]
add r9, rax
add r9, qword [rdi + 0x40]
mov r12d, dword [r15 + 8]
mov esi, dword [rdi + 0xa0]
mov r14d, dword [rdi + 0xa4]
mov qword [rbp - 8], r9
mov dword [rbp + 0x50], r10d
test r10d, r10d
jne 0x46945b
test eax, eax
jne 0x4695a9
cmp dword [rdi + 0x10], r8d
je 0x469502
jmp 0x469486
test r12d, r12d
je 0x46959e
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, 0x20
jb 0x469467
sub ebx, r10d
mov dword [rbp - 0x1c], r10d
mov eax, ebx
add qword [r15 + 0x28], rax
add dword [rdi + 0x24], ebx
test byte [rdi + 0x10], 2
je 0x4694bb
cmp dword [0x004bb5c4], r8d
je 0x4694bb
lea rcx, [rdi + 0x50]
call fcn.00462270
mov dword [rdi + 0x20], eax
mov dword [r15 + 0x5c], eax
test byte [rdi + 0x10], 4
je 0x4694fc
mov edx, 0xff00
mov ecx, esi
and ecx, edx
mov eax, esi
shl eax, 0x10
add ecx, eax
mov eax, esi
shr eax, 8
and eax, edx
shl ecx, 8
add ecx, eax
mov eax, esi
shr eax, 0x18
add ecx, eax
cmp dword [rdi + 0x18], r8d
cmovne ecx, esi
cmp ecx, dword [rdi + 0x20]
je 0x4694fc
lea rax, str.incorrect_data_check
jmp 0x467f6f
mov esi, r8d
mov r14d, r8d
mov dword [rdi + 8], 0x3f4f
jmp 0x46950e
xor r8d, r8d
cmp dword [rdi + 0x10], r8d
je 0x469583
cmp dword [rdi + 0x18], r8d
je 0x469583
jmp 0x46953b
test r12d, r12d
je 0x4683f0
movzx eax, byte [r13]
mov ecx, r14d
shl eax, cl
dec r12d
add esi, eax
inc r13
add r14d, 8
cmp r14d, 0x20
jb 0x46951c
cmp esi, dword [rdi + 0x24]
je 0x46957d
lea rax, str.incorrect_length_check
jmp 0x467f6f
sub r9d, dword [rdi + 0x34]
mov eax, 2
sub r9d, dword [rdi + 0x40]
mov dword [rdi + 0x3c], r9d
mov dword [r15 + 0x20], r10d
mov qword [r15], r13
mov dword [r15 + 8], r12d
mov dword [rdi + 0xa0], esi
mov dword [rdi + 0xa4], r14d
jmp 0x4695c6
mov esi, r8d
mov r14d, r8d
mov dword [rdi + 8], 0x3f50
mov ebx, 1
jmp 0x4683f3
mov ebx, 0xfffffffd
jmp 0x4683f3
mov ebx, dword [rbp + 0x58]
mov r8d, r10d
jmp 0x4683f7
mov r8d, r10d
jmp 0x4695b2
mov r8d, dword [rbp + 0x50]
mov ebx, dword [rbp + 0x58]
jmp 0x4683f7
mov eax, 0xfffffffc
jmp 0x4695c6
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret