Function at 0x180055550
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 0x180056688
mov r14, qword [rcx + 0x28]
test r14, r14
je 0x180056688
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 0x1800555ba
mov edi, dword [rcx + 8]
jmp 0x1800555bd
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.0x18005560d.1
lea r11, [0x180000000]
lea rdx, str.invalid_block_type
mov ebp, 1
nop word [rax + rax]
cdqe
mov ecx, dword [r11 + rax*4 + 0x56698]
add rcx, r11
jmp rcx
cmp dword [r14 + 4], 0
je 0x180055631
mov ecx, esi
mov dword [r14], 0x1a
mov r10, qword [rsp + 0x38]
and ecx, 7
shr r12d, cl
sub esi, ecx
jmp 0x180056517
cmp esi, 3
jae 0x180055685
test edi, edi
jne 0x180055656
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x18005653e
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 0x180055636
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 0x180055721
sub eax, 1
je 0x1800556e3
sub eax, 1
je 0x1800556cb
cmp eax, 1
jne 0x180055728
mov qword [r8 + 0x20], rdx
shr r12d, 2
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
add esi, 0xfffffffe
jmp 0x180056517
mov dword [r14], send
mov r10, qword [rsp + 0x38]
shr r12d, 2
add esi, 0xfffffffe
jmp 0x180056517
lea rax, [0x1800e20c0]
mov dword [r14 + 0x68], 9
mov dword [r14 + 0x6c], 5
mov qword [r14 + 0x58], rax
lea rax, [0x1800e43d0]
mov dword [r14], send
shr r12d, 2
mov qword [r14 + 0x60], rax
mov r10, qword [rsp + 0x38]
add esi, 0xfffffffe
jmp 0x180056517
mov dword [r14], send
mov r10, qword [rsp + 0x38]
shr r12d, 2
add esi, 0xfffffffe
jmp 0x180056517
mov ecx, esi
and ecx, 7
sub esi, ecx
shr r12d, cl
cmp esi, 0x20
jae 0x180055790
test edi, edi
jne 0x180055768
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x18005654a
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 0x180055748
mov r8, qword [rsp + 0x80]
xor r9d, r9d
mov eax, r12d
movzx ecx, r12w
not eax
shr eax, 0x10
cmp ecx, eax
je 0x1800557bc
lea rax, str.invalid_stored_block_lengths
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180056517
mov dword [r14 + 0x48], ecx
mov r12d, r9d
mov esi, r9d
test ecx, ecx
je 0x180055864
nop
mov ebp, dword [r14 + 0x48]
test edi, edi
jne 0x1800557ef
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180056556
test ebx, ebx
jne 0x18005581f
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 0x180056562
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.18006c2d0
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 0x1800557d0
xor r9d, r9d
mov r8, qword [rsp + 0x80]
mov dword [r14], reloc.WS2_32.dll_inet_addr
mov r10, qword [rsp + 0x38]
jmp 0x180056517
cmp esi, 0xe
jae 0x1800558d1
test edi, edi
jne 0x1800558a2
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180056571
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 0x180055882
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 0x180055f22
cmp ecx, 0x1e
ja 0x180055f22
mov dword [r14 + 0x7c], r9d
test edx, edx
je 0x1800559ab
cmp esi, 3
jae 0x180055975
mov rdx, qword [rsp + 0x38]
test edi, edi
jne 0x180055952
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x18005657d
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 0x180055932
lea r11, [0x180000000]
mov eax, dword [r14 + 0x7c]
movzx ecx, r12w
add esi, 0xfffffffd
movzx eax, word [r11 + rax*2 + 0xe4450]
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 0x180055928
xor r9d, r9d
cmp dword [r14 + 0x7c], 0x13
jae 0x1800559d3
mov eax, dword [r14 + 0x7c]
movzx eax, word [r11 + rax*2 + 0xe4450]
mov word [r14 + rax*2 + 0x88], r9w
inc dword [r14 + 0x7c]
cmp dword [r14 + 0x7c], 0x13
jb 0x1800559b2
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.180029410
test eax, eax
je 0x180055a50
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 0x180056517
mov eax, dword [r14 + 0x78]
mov dword [r14 + 0x7c], 0
add eax, dword [r14 + 0x74]
je 0x180055d9e
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 0x180055b00
nop dword [rax]
test edi, edi
jne 0x180055ac0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180056589
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 0x180055aa0
mov ecx, eax
shr ecx, 0x10
cmp cx, 0x10
jae 0x180055b87
movzx ebx, byte [rsp + 0x35]
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x180055b5f
nop word [rax + rax]
test edi, edi
jne 0x180055b40
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x180056595
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 0x180055b20
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 0x180055d1c
movzx eax, word [rsp + 0x36]
cmp ax, 0x10
jne 0x180055c0f
movzx ebp, byte [rsp + 0x35]
lea ebx, [rbp + 2]
cmp esi, ebx
jae 0x180055bdc
nop
test edi, edi
jne 0x180055bc0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565a1
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 0x180055ba0
mov eax, dword [r14 + 0x7c]
mov ecx, ebp
sub esi, ebp
shr r12d, cl
test eax, eax
je 0x180055d3e
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 0x180055cea
cmp ax, 0x11
jne 0x180055c7d
movzx ebp, byte [rsp + 0x35]
lea ebx, [rbp + 3]
cmp esi, ebx
jae 0x180055c5d
test edi, edi
jne 0x180055c41
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565ad
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 0x180055c21
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 0x180055cea
movzx ebp, byte [rsp + 0x35]
lea ebx, [rbp + 7]
cmp esi, ebx
jae 0x180055ccc
nop dword [rax]
test edi, edi
jne 0x180055cb0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565b9
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 0x180055c90
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 0x180055d6e
test edx, edx
je 0x180055d1c
mov eax, dword [r14 + 0x7c]
mov word [r14 + rax*2 + 0x88], r8w
inc dword [r14 + 0x7c]
add edx, 0xffffffff
jne 0x180055d01
mov r10, qword [rsp + 0x38]
mov eax, dword [r14 + 0x78]
add eax, dword [r14 + 0x74]
cmp dword [r14 + 0x7c], eax
jb 0x180055a70
lea rbx, [r14 + 0x80]
lea rbp, [r14 + 0x548]
jmp 0x180055da3
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 0x180056517
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 0x180056517
mov r10, qword [rsp + 0x38]
cmp dword [r14], 0x1b
je 0x180056503
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.180029410
test eax, eax
je 0x180055e19
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 0x180056517
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.180029410
test eax, eax
je 0x180055e85
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 0x180056517
mov r13, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x80]
mov dword [r14], send
mov r10, qword [rsp + 0x38]
mov ebp, 1
cmp edi, 6
jb 0x180055f3e
cmp ebx, 0x102
jb 0x180055f3e
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 0x180055ee5
mov eax, edx
sub eax, ebx
mov dword [r14 + 0x30], eax
mov rcx, r8
call fcn.180057ec0
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 0x180056517
lea rax, str.too_many_length_or_distance_symbols
mov qword [r8 + 0x20], rax
mov dword [r14], 0x1b
mov r10, qword [rsp + 0x38]
jmp 0x180056517
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 0x180055fbe
test edi, edi
jne 0x180055f82
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565c5
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 0x180055f62
test al, al
je 0x18005609c
test al, 0xf0
jne 0x18005609c
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 0x180056093
movzx ebp, word [rsp + 0x36]
test edi, edi
jne 0x180056040
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565ce
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 0x180056020
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 0x180056129
mov ebx, dword [rsp + 0x30]
test ebx, ebx
jne 0x1800560f1
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 0x1800560f6
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180056648
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], send
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x40], r13
xor r9d, r9d
mov dword [rsp + 0x30], ebx
jmp 0x180056517
test al, 0x20
je 0x180056152
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 0x180056517
test al, 0x40
je 0x180056186
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 0x180056517
movzx ecx, al
and ecx, 0xf
mov dword [r14 + 0x50], ecx
je 0x1800561f3
cmp esi, ecx
jae 0x1800561dd
mov rdx, qword [rsp + 0x38]
nop dword [rax + rax]
test edi, edi
jne 0x1800561c0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565d7
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 0x1800561a0
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 0x18005627e
mov r10, qword [rsp + 0x38]
nop dword [rax]
test edi, edi
jne 0x180056240
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565e0
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 0x180056220
jmp 0x180056283
mov r10, qword [rsp + 0x38]
test al, 0xf0
jne 0x18005635c
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 0x180056353
movzx ebp, word [rsp + 0x36]
nop dword [rax]
test edi, edi
jne 0x180056300
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565e9
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 0x1800562e0
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 0x18005639d
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 0x180056517
mov ecx, eax
shr ecx, 0x10
mov dword [r14 + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [r14 + 0x50], ecx
je 0x180056413
cmp esi, ecx
jae 0x1800563fd
mov rdx, qword [rsp + 0x38]
nop dword [rax + rax]
test edi, edi
jne 0x1800563e0
mov rax, qword [r15]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax]
mov edi, eax
test eax, eax
je 0x1800565f2
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 0x1800563c0
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 0x180056459
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 0x180056517
mov r13, qword [rsp + 0x40]
nop
test ebx, ebx
jne 0x18005648c
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 0x1800565fb
mov ecx, dword [r14 + 0x4c]
mov eax, dword [r14 + 0x2c]
sub eax, ecx
cmp eax, ebx
jae 0x1800564a5
mov ecx, eax
mov edx, ebx
add rcx, r13
sub edx, eax
jmp 0x1800564b0
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 0x1800564d0
mov qword [rsp + 0x40], r13
cmp dword [r14 + 0x48], edx
jne 0x180056460
mov r10, qword [rsp + 0x38]
mov r8, qword [rsp + 0x80]
xor r9d, r9d
jmp 0x180056517
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.0x18005560d.1
mov ebp, 1
lea r11, [0x180000000]
lea rdx, str.invalid_block_type
jmp 0x180055600
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
xor r10d, r10d
lea ebp, [r10 - 5]
jmp 0x180056648
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180056648
mov r8d, dword [r14 + 0x2c]
cmp ebx, r8d
jae 0x180056648
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 0x180056635
mov r10, qword [rsp + 0x38]
mov ebp, 0xfffffffb
jmp 0x180056648
mov r10, qword [rsp + 0x38]
jmp 0x180056648
mov ebp, 0xfffffffd
jmp 0x180056648
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