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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push r14
push r15
sub rsp, 0x68
mov r15, r8
mov r8, rcx
test rcx, rcx
je 0x180055c98
mov r14, qword [rcx + 0x28]
test r14, r14
je 0x180055c98
mov qword [rax + 0x10], rbx
xor r9d, r9d
mov qword [rax + 0x18], rbp
mov qword [rcx + 0x20], r9
mov qword [rax + 0x20], rsi
mov dword [r14], reloc.WS2_32.dll_inet_addr
mov dword [r14 + 4], r9d
mov dword [r14 + 0x30], r9d
mov r10, qword [rcx]
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x40], r10
test r10, r10
je 0x180054bca
mov edi, dword [rcx + 8]
jmp 0x180054bcd
mov edi, r9d
mov eax, dword [r14]
mov r13, qword [r14 + 0x38]
mov ebx, dword [r14 + 0x2c]
sub eax, 0xb
mov r12d, r9d
mov esi, r9d
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x30], ebx
cmp eax, 0x10
ja case.0x180054c1d.1
lea r11, [0x180000000]
lea rdx, str.invalid_block_type
mov ebp, 1
nop word [rax + rax]
cdqe
mov ecx, dword [r11 + rax*4 + 0x55ca8]
add rcx, r11
jmp rcx
cmp dword [r14 + 4], 0
je 0x180054c41
mov ecx, esi
mov dword [r14], 0x1a
mov r10, qword [rsp + 0x38]
and ecx, 7
shr r12d, cl
sub esi, ecx
jmp 0x180055b27
cmp esi, 3
jae 0x180054c95
test edi, edi
jne 0x180054c66
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055b4e
mov r10, qword [rsp + 0x38]
movzx edx, byte [r10]
mov ecx, esi
inc r10
shl edx, cl
add esi, 8
dec edi
add r12d, edx
mov qword [rsp + 0x38], r10
cmp esi, 3
jb 0x180054c46
mov r8, qword [rsp + 0x80]
xor r9d, r9d
lea rdx, str.invalid_block_type
mov eax, r12d
shr r12d, 1
dec esi
and eax, 1
mov dword [r14 + 4], eax
mov eax, r12d
and eax, 3
je 0x180054d31
sub eax, 1
je 0x180054cf3
sub eax, 1
je 0x180054cdb
cmp eax, 1
jne 0x180054d38
mov qword [r8 + 0x20], rdx
shr r12d, 2
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
add esi, 0xfffffffe
jmp 0x180055b27
mov dword [r14], recv
mov r10, qword [rsp + 0x38]
shr r12d, 2
add esi, 0xfffffffe
jmp 0x180055b27
lea rax, [0x1800f4ae0]
mov dword [r14 + 0x68], 9
mov dword [r14 + 0x6c], 5
mov qword [r14 + 0x58], rax
lea rax, [0x1800f3ff0]
mov dword [r14], socket
shr r12d, 2
mov qword [r14 + 0x60], rax
mov r10, qword [rsp + 0x38]
add esi, 0xfffffffe
jmp 0x180055b27
mov dword [r14], recv
mov r10, qword [rsp + 0x38]
shr r12d, 2
add esi, 0xfffffffe
jmp 0x180055b27
mov ecx, esi
and ecx, 7
sub esi, ecx
shr r12d, cl
cmp esi, 0x20
jae 0x180054da0
test edi, edi
jne 0x180054d78
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055b5a
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], r10
cmp esi, 0x20
jb 0x180054d58
mov r8, qword [rsp + 0x80]
xor r9d, r9d
mov eax, r12d
movzx ecx, r12w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x180054dcc
lea rax, str.invalid_stored_block_lengths
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov dword [r14 + 0x48], ecx
mov r12d, r9d
mov esi, r9d
test ecx, ecx
je 0x180054e74
nop
mov ebp, dword [r14 + 0x48]
test edi, edi
jne 0x180054dff
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055b66
test ebx, ebx
jne 0x180054e2f
mov ebx, dword [r14 + 0x2c]
mov rcx, qword [rsp + 0xa0]
mov r13, qword [r14 + 0x38]
mov dword [r14 + 0x30], ebx
mov rax, qword [rcx]
mov r8d, ebx
mov rdx, r13
mov dword [rsp + 0x30], ebx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
jne 0x180055b72
mov rdx, qword [rsp + 0x38]
cmp ebp, edi
mov rcx, r13
cmova ebp, edi
cmp ebp, ebx
cmova ebp, ebx
mov r8d, ebp
mov ebx, ebp
call fcn.1800785c0
add qword [rsp + 0x38], rbx
sub dword [rsp + 0x30], ebp
sub dword [r14 + 0x48], ebp
add r13, rbx
mov ebx, dword [rsp + 0x30]
sub edi, ebp
cmp dword [r14 + 0x48], 0
mov qword [rsp + 0x40], r13
jne 0x180054de0
xor r9d, r9d
mov r8, qword [rsp + 0x80]
mov dword [r14], reloc.WS2_32.dll_inet_addr
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
cmp esi, 0xe
jae 0x180054ee1
test edi, edi
jne 0x180054eb2
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055b81
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], r10
cmp esi, 0xe
jb 0x180054e92
mov r8, qword [rsp + 0x80]
xor r9d, r9d
lea r11, [0x180000000]
mov eax, r12d
shr r12d, 5
add esi, 0xfffffff2
mov ecx, r12d
shr r12d, 5
and eax, 0x1f
mov edx, r12d
and ecx, 0x1f
add eax, 0x101
and edx, 0xf
inc ecx
shr r12d, 4
add edx, 4
mov dword [r14 + 0x74], eax
mov dword [r14 + 0x78], ecx
mov dword [r14 + 0x70], edx
cmp eax, 0x11e
ja 0x180055532
cmp ecx, 0x1e
ja 0x180055532
mov dword [r14 + 0x7c], r9d
test edx, edx
je 0x180054fbb
cmp esi, 3
jae 0x180054f85
mov rdx, qword [rsp + 0x38]
test edi, edi
jne 0x180054f62
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055b8d
mov rdx, qword [rsp + 0x38]
movzx eax, byte [rdx]
mov ecx, esi
inc rdx
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], rdx
cmp esi, 3
jb 0x180054f42
lea r11, [0x180000000]
mov eax, dword [r14 + 0x7c]
movzx ecx, r12w
add esi, 0xfffffffd
movzx eax, word [r11 + rax*2 + 0xf4070]
and cx, 7
shr r12d, 3
mov word [r14 + rax*2 + 0x88], cx
inc dword [r14 + 0x7c]
mov eax, dword [r14 + 0x70]
cmp dword [r14 + 0x7c], eax
jb 0x180054f38
xor r9d, r9d
cmp dword [r14 + 0x7c], 0x13
jae 0x180054fe3
mov eax, dword [r14 + 0x7c]
movzx eax, word [r11 + rax*2 + 0xf4070]
mov word [r14 + rax*2 + 0x88], r9w
inc dword [r14 + 0x7c]
cmp dword [r14 + 0x7c], 0x13
jb 0x180054fc2
lea rbx, [r14 + 0x80]
lea r13, [r14 + 0x68]
lea rax, [r14 + 0x308]
lea rbp, [r14 + 0x548]
mov qword [rsp + 0x28], rax
lea rdx, [r14 + 0x88]
mov r9, rbx
mov r8d, reloc.WS2_32.dll_send
xor ecx, ecx
mov qword [rbx], rbp
mov qword [r14 + 0x58], rbp
mov dword [r13], 7
mov qword [rsp + 0x20], r13
call fcn.1800574c0
test eax, eax
je 0x180055060
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_code_lengths_set
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov eax, dword [r14 + 0x78]
mov dword [r14 + 0x7c], 0
add eax, dword [r14 + 0x74]
je 0x1800553ae
mov r10, qword [rsp + 0x38]
nop dword [rax + rax]
mov ecx, dword [r13]
mov ebx, 1
mov eax, ebx
shl eax, cl
lea ecx, [rax - 1]
mov eax, r12d
and rcx, rax
mov rax, qword [r14 + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
mov dword [rsp + 0x34], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
jbe 0x180055110
nop dword [rax]
test edi, edi
jne 0x1800550d0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055b99
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
mov qword [rsp + 0x38], r10
mov ecx, dword [r13]
add r12d, eax
mov eax, ebx
add esi, 8
shl eax, cl
dec edi
lea ecx, [rax - 1]
mov eax, r12d
and rcx, rax
mov rax, qword [r14 + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
mov dword [rsp + 0x34], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x1800550b0
mov ecx, eax
shr ecx, 0x10
cmp cx, 0x10
jae 0x180055197
movzx ebx, byte [rsp + 0x35]
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x18005516f
nop word [rax + rax]
test edi, edi
jne 0x180055150
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055ba5
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
add esi, 8
dec edi
add r12d, eax
movzx eax, bl
mov qword [rsp + 0x38], r10
cmp esi, eax
jb 0x180055130
movzx eax, word [rsp + 0x36]
movzx ecx, bl
shr r12d, cl
sub esi, ecx
mov ecx, dword [r14 + 0x7c]
mov word [r14 + rcx*2 + 0x88], ax
inc dword [r14 + 0x7c]
mov r10, qword [rsp + 0x38]
jmp 0x18005532c
movzx eax, word [rsp + 0x36]
cmp ax, 0x10
jne 0x18005521f
movzx ebp, byte [rsp + 0x35]
lea ebx, [rbp + 2]
cmp esi, ebx
jae 0x1800551ec
nop
test edi, edi
jne 0x1800551d0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bb1
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], r10
cmp esi, ebx
jb 0x1800551b0
mov eax, dword [r14 + 0x7c]
mov ecx, ebp
sub esi, ebp
shr r12d, cl
test eax, eax
je 0x18005534e
mov edx, r12d
dec eax
shr r12d, 2
movzx r8d, word [r14 + rax*2 + 0x88]
and edx, 3
add edx, 3
add esi, 0xfffffffe
jmp 0x1800552fa
cmp ax, 0x11
jne 0x18005528d
movzx ebp, byte [rsp + 0x35]
lea ebx, [rbp + 3]
cmp esi, ebx
jae 0x18005526d
test edi, edi
jne 0x180055251
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bbd
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], r10
cmp esi, ebx
jb 0x180055231
mov ecx, ebp
mov eax, 0xfffffffd
xor r8d, r8d
shr r12d, cl
sub eax, ebp
mov edx, r12d
shr r12d, 3
and edx, 7
add edx, 3
add esi, eax
jmp 0x1800552fa
movzx ebp, byte [rsp + 0x35]
lea ebx, [rbp + 7]
cmp esi, ebx
jae 0x1800552dc
nop dword [rax]
test edi, edi
jne 0x1800552c0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bc9
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], r10
cmp esi, ebx
jb 0x1800552a0
mov ecx, ebp
mov eax, 0xfffffff9
xor r8d, r8d
shr r12d, cl
sub eax, ebp
mov edx, r12d
shr r12d, 7
and edx, 0x7f
add edx, 0xb
add esi, eax
mov eax, dword [r14 + 0x7c]
lea ecx, [rdx + rax]
mov eax, dword [r14 + 0x78]
add eax, dword [r14 + 0x74]
cmp ecx, eax
ja 0x18005537e
test edx, edx
je 0x18005532c
mov eax, dword [r14 + 0x7c]
mov word [r14 + rax*2 + 0x88], r8w
inc dword [r14 + 0x7c]
add edx, 0xffffffff
jne 0x180055311
mov r10, qword [rsp + 0x38]
mov eax, dword [r14 + 0x78]
add eax, dword [r14 + 0x74]
cmp dword [r14 + 0x7c], eax
jb 0x180055080
lea rbx, [r14 + 0x80]
lea rbp, [r14 + 0x548]
jmp 0x1800553b3
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_bit_length_repeat
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_bit_length_repeat
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov r10, qword [rsp + 0x38]
cmp dword [r14], 0x1b
je 0x180055b13
mov r8d, dword [r14 + 0x74]
mov qword [rbx], rbp
mov qword [r14 + 0x58], rbp
lea rbp, [r14 + 0x308]
lea rdx, [r14 + 0x88]
mov r9, rbx
mov ecx, 1
mov qword [rsp + 0x28], rbp
mov dword [r13], 9
mov qword [rsp + 0x20], r13
call fcn.1800574c0
test eax, eax
je 0x180055429
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_literal_lengths_set
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov rax, qword [rbx]
mov r8d, dword [r14 + 0x78]
lea rcx, [r14 + 0x6c]
mov qword [r14 + 0x60], rax
mov eax, dword [r14 + 0x74]
mov dword [rcx], 6
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rcx
lea rdx, [r14 + rax*2 + 0x88]
mov r9, rbx
mov ecx, 2
call fcn.1800574c0
test eax, eax
je 0x180055495
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_distances_set
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x80]
mov dword [r14], socket
mov r10, qword [rsp + 0x38]
mov ebp, 1
cmp edi, 6
jb 0x18005554e
cmp ebx, 0x102
jb 0x18005554e
mov qword [r8 + 0x10], r13
mov dword [r8 + 0x18], ebx
mov qword [r8], r10
mov dword [r8 + 8], edi
mov edx, dword [r14 + 0x2c]
mov dword [r14 + 0x40], r12d
mov dword [r14 + 0x44], esi
cmp dword [r14 + 0x30], edx
jae 0x1800554f5
mov eax, edx
sub eax, ebx
mov dword [r14 + 0x30], eax
mov rcx, r8
call fcn.1800579a0
mov r8, qword [rsp + 0x80]
xor r9d, r9d
mov r10, qword [r8]
mov r13, qword [r8 + 0x10]
mov ebx, dword [r8 + 0x18]
mov edi, dword [r8 + 8]
mov qword [rsp + 0x38], r10
mov r12d, dword [r14 + 0x40]
mov esi, dword [r14 + 0x44]
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x30], ebx
jmp 0x180055b27
lea rax, str.too_many_length_or_distance_symbols
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov ecx, dword [r14 + 0x68]
mov eax, ebp
shl eax, cl
lea ecx, [rax - 1]
mov eax, r12d
and rcx, rax
mov rax, qword [r14 + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
jbe 0x1800555ce
test edi, edi
jne 0x180055592
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bd5
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
mov qword [rsp + 0x38], r10
mov ecx, dword [r14 + 0x68]
add r12d, eax
mov eax, ebp
add esi, 8
shl eax, cl
dec edi
lea ecx, [rax - 1]
mov eax, r12d
and rcx, rax
mov rax, qword [r14 + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x180055572
test al, al
je 0x1800556ac
test al, 0xf0
jne 0x1800556ac
mov r9d, eax
movzx ecx, al
mov dword [rsp + 0x34], eax
movzx r13d, byte [rsp + 0x35]
shr r9d, 8
mov ebx, eax
shr eax, 0x10
movzx edx, r9b
mov r8d, ebp
add ecx, edx
shl r8d, cl
mov ecx, edx
dec r8d
and r8d, r12d
shr r8d, cl
add r8d, eax
mov rax, qword [r14 + 0x58]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, r9b
add edx, ecx
cmp edx, esi
jbe 0x1800556a3
movzx ebp, word [rsp + 0x36]
test edi, edi
jne 0x180055650
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bde
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
movzx r8d, r13b
shl eax, cl
mov edx, 1
inc r10
add r12d, eax
movzx eax, bp
mov qword [rsp + 0x38], r10
movzx ecx, bl
add esi, 8
dec edi
add ecx, r8d
shl edx, cl
mov ecx, r8d
dec edx
and edx, r12d
shr edx, cl
add edx, eax
mov rax, qword [r14 + 0x58]
mov eax, dword [rax + rdx*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
add edx, r8d
cmp edx, esi
ja 0x180055630
mov ebp, 1
movzx ecx, r13b
shr r12d, cl
sub esi, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr r12d, cl
sub esi, ecx
mov ecx, eax
shr ecx, 0x10
mov dword [r14 + 0x48], ecx
test al, al
jne 0x180055739
mov ebx, dword [rsp + 0x30]
test ebx, ebx
jne 0x180055701
mov ebx, dword [r14 + 0x2c]
mov rcx, qword [rsp + 0xa0]
mov r13, qword [r14 + 0x38]
mov dword [r14 + 0x30], ebx
mov rax, qword [rcx]
mov r8d, ebx
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
je 0x180055706
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180055c58
mov r13, qword [rsp + 0x40]
movzx eax, byte [r14 + 0x48]
mov r8, qword [rsp + 0x80]
inc r13
mov byte [r13 - 1], al
dec ebx
mov dword [r14], socket
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x40], r13
xor r9d, r9d
mov dword [rsp + 0x30], ebx
jmp 0x180055b27
test al, 0x20
je 0x180055762
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x80]
mov dword [r14], reloc.WS2_32.dll_inet_addr
mov r10, qword [rsp + 0x38]
xor r9d, r9d
jmp 0x180055b27
test al, 0x40
je 0x180055796
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_literal_length_code
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
movzx ecx, al
and ecx, 0xf
mov dword [r14 + 0x50], ecx
je 0x180055803
cmp esi, ecx
jae 0x1800557ed
mov rdx, qword [rsp + 0x38]
nop dword [rax + rax]
test edi, edi
jne 0x1800557d0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055be7
mov rdx, qword [rsp + 0x38]
movzx eax, byte [rdx]
mov ecx, esi
inc rdx
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], rdx
cmp esi, dword [r14 + 0x50]
jb 0x1800557b0
mov ecx, dword [r14 + 0x50]
mov eax, ebp
shl eax, cl
dec eax
and eax, r12d
shr r12d, cl
add dword [r14 + 0x48], eax
sub esi, ecx
mov ecx, dword [r14 + 0x6c]
mov eax, ebp
shl eax, cl
lea ecx, [rax - 1]
mov eax, r12d
and rcx, rax
mov rax, qword [r14 + 0x60]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
jbe 0x18005588e
mov r10, qword [rsp + 0x38]
nop dword [rax]
test edi, edi
jne 0x180055850
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bf0
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
inc r10
shl eax, cl
mov qword [rsp + 0x38], r10
mov ecx, dword [r14 + 0x6c]
add r12d, eax
mov eax, ebp
add esi, 8
shl eax, cl
dec edi
lea ecx, [rax - 1]
mov eax, r12d
and rcx, rax
mov rax, qword [r14 + 0x60]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x180055830
jmp 0x180055893
mov r10, qword [rsp + 0x38]
test al, 0xf0
jne 0x18005596c
mov r9d, eax
movzx ecx, al
mov dword [rsp + 0x34], eax
movzx r13d, byte [rsp + 0x35]
shr r9d, 8
mov ebx, eax
shr eax, 0x10
movzx edx, r9b
mov r8d, ebp
add ecx, edx
shl r8d, cl
mov ecx, edx
dec r8d
and r8d, r12d
shr r8d, cl
add r8d, eax
mov rax, qword [r14 + 0x60]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, r9b
add edx, ecx
cmp edx, esi
jbe 0x180055963
movzx ebp, word [rsp + 0x36]
nop dword [rax]
test edi, edi
jne 0x180055910
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055bf9
mov r10, qword [rsp + 0x38]
movzx eax, byte [r10]
mov ecx, esi
movzx r8d, r13b
shl eax, cl
mov edx, 1
inc r10
add r12d, eax
movzx eax, bp
mov qword [rsp + 0x38], r10
movzx ecx, bl
add esi, 8
dec edi
add ecx, r8d
shl edx, cl
mov ecx, r8d
dec edx
and edx, r12d
shr edx, cl
add edx, eax
mov rax, qword [r14 + 0x60]
mov eax, dword [rax + rdx*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
add edx, r8d
cmp edx, esi
ja 0x1800558f0
mov ebp, 1
movzx ecx, r13b
shr r12d, cl
sub esi, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr r12d, cl
sub esi, ecx
test al, 0x40
je 0x1800559ad
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
lea rax, str.invalid_distance_code
xor r9d, r9d
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov ecx, eax
shr ecx, 0x10
mov dword [r14 + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [r14 + 0x50], ecx
je 0x180055a23
cmp esi, ecx
jae 0x180055a0d
mov rdx, qword [rsp + 0x38]
nop dword [rax + rax]
test edi, edi
jne 0x1800559f0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180055c02
mov rdx, qword [rsp + 0x38]
movzx eax, byte [rdx]
mov ecx, esi
inc rdx
shl eax, cl
add esi, 8
dec edi
add r12d, eax
mov qword [rsp + 0x38], rdx
cmp esi, dword [r14 + 0x50]
jb 0x1800559d0
mov ecx, dword [r14 + 0x50]
mov eax, ebp
shl eax, cl
dec eax
and eax, r12d
shr r12d, cl
add dword [r14 + 0x4c], eax
sub esi, ecx
mov ecx, dword [r14 + 0x2c]
mov ebx, dword [rsp + 0x30]
xor r9d, r9d
cmp dword [r14 + 0x30], ecx
mov eax, r9d
cmovb eax, ebx
sub ecx, eax
cmp dword [r14 + 0x4c], ecx
jbe 0x180055a69
mov r8, qword [rsp + 0x80]
mov r13, qword [rsp + 0x40]
lea rax, str.invalid_distance_too_far_back
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180055b27
mov r13, qword [rsp + 0x40]
nop
test ebx, ebx
jne 0x180055a9c
mov ebx, dword [r14 + 0x2c]
mov rcx, qword [rsp + 0xa0]
mov r13, qword [r14 + 0x38]
mov dword [r14 + 0x30], ebx
mov rax, qword [rcx]
mov r8d, ebx
mov rdx, r13
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
jne 0x180055c0b
mov ecx, dword [r14 + 0x4c]
mov eax, dword [r14 + 0x2c]
sub eax, ecx
cmp eax, ebx
jae 0x180055ab5
mov ecx, eax
mov edx, ebx
add rcx, r13
sub edx, eax
jmp 0x180055ac0
mov rax, rcx
mov rcx, r13
mov edx, ebx
sub rcx, rax
mov eax, dword [r14 + 0x48]
cmp edx, eax
cmova edx, eax
sub eax, edx
sub ebx, edx
mov dword [rsp + 0x30], ebx
mov dword [r14 + 0x48], eax
nop word [rax + rax]
movzx eax, byte [rcx]
inc r13
inc rcx
add edx, 0xffffffff
mov byte [r13 - 1], al
jne 0x180055ae0
mov qword [rsp + 0x40], r13
cmp dword [r14 + 0x48], edx
jne 0x180055a70
mov r10, qword [rsp + 0x38]
mov r8, qword [rsp + 0x80]
xor r9d, r9d
jmp 0x180055b27
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x80]
xor r9d, r9d
mov eax, dword [r14]
sub eax, 0xb
cmp eax, 0x10
ja case.0x180054c1d.1
mov ebp, 1
lea r11, [0x180000000]
lea rdx, str.invalid_block_type
jmp 0x180054c10
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180055c58
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180055c58
mov r8d, dword [r14 + 0x2c]
cmp ebx, r8d
jae 0x180055c58
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [r14 + 0x38]
sub r8d, ebx
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
je 0x180055c45
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180055c58
mov r10, qword [rsp + 0x38]
jmp 0x180055c58
mov ebp, 0xfffffffd
jmp 0x180055c58
mov ebp, 0xfffffffe
mov rax, qword [rsp + 0x80]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x88]
mov dword [rax + 8], edi
mov rdi, qword [rsp + 0x60]
mov qword [rax], r10
mov eax, ebp
mov rbp, qword [rsp + 0x90]
add rsp, 0x68
pop r15
pop r14
ret
mov eax, 0xfffffffe
add rsp, 0x68
pop r15
pop r14
ret