Function at 0x18005afc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
lea eax, [r9 + 0x6e4]
movaps xmmword [rsp + 0x70], xmm6
mov dword [rsp + 0x44], eax
mov r13d, r9d
mov r12, rdx
mov rdi, rcx
cmp r9d, eax
jae case.0x18005b216.372
movsd xmm6, qword [0x18034d478]
lea rdx, [0x180000000]
mov ebp, dword [rsp + 0xd8]
mov rbx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x60]
mov esi, dword [rsp + 0xd8]
nop word [rax + rax]
cmp r13d, 0x14b
ja 0x18005b1f2
je 0x18005b1de
cmp r13d, 0xcd
ja 0x18005b149
je 0x18005b0b5
mov eax, r13d
sub eax, 0x32
je 0x18005b3b0
sub eax, 0x6f
je 0x18005b084
cmp eax, 0x21
jne case.0x18005b216.374
lea r8, [rdi + 0x48]
xor r9d, r9d
xor edx, edx
mov ecx, 0x103
call fcn.18000d820
jmp 0x18005b390
mov eax, dword [rdi]
xor ecx, ecx
mov dword [rsp + 0xd8], ecx
test eax, eax
je case.0x18005b216.374
dec eax
mov dword [rdi], eax
test eax, eax
je case.0x18005b216.374
inc ecx
shr dword [rdi], 1
jne 0x18005b0a3
mov dword [rsp + 0xd8], ecx
jmp case.0x18005b216.374
mov rcx, qword [r8]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rcx, qword [r12]
mov rbx, rax
mov rdx, qword [rcx]
call qword [rdx + 0x28]
cmp rax, rbx
jbe 0x18005b0d6
mov rcx, qword [r12]
jmp 0x18005b0e1
mov rcx, qword [rsp + 0xd0]
mov rcx, qword [rcx]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov qword [rsp + 0x50], rax
xor r9d, r9d
mov rax, qword [rdi]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x58], rax
xor edx, edx
lea rax, [rsp + 0x50]
mov r8d, 0x8d
mov qword [rsp + 0x20], rax
call fcn.18006c150
mov rcx, qword [rdi]
mov r8, qword [rsp + 0xd0]
mov rax, qword [rcx + 0x10]
mov rbx, qword [rcx + 0x18]
mov qword [rsp + 0x60], rax
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x58], rax
mov rax, qword [r8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x50], rax
jmp 0x18005b398
mov eax, r13d
sub eax, 0xf2
je 0x18005b1cf
sub eax, 0x2d
je 0x18005b3c0
cmp eax, 0x21
jne case.0x18005b216.374
mov qword [rsp + 0x38], 0
lea r8, [rdi + 8]
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov qword [rsp + 0x28], 0
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], 9
call fcn.1800161d0
test al, al
je 0x18005b3b9
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x36]
call fcn.180008d50
mov ecx, eax
xorps xmm0, xmm0
movaps xmm1, xmm6
cvtsi2sd xmm0, rcx
divsd xmm1, xmm0
movsd qword [rdi + 0x110], xmm1
jmp 0x18005b390
mov eax, dword [r12]
xor ebp, ebp
mov dword [rsp + 0x40], eax
jmp case.0x18005b216.374
mov rax, qword [r12]
mov r15, qword [rax + 0x18]
mov rax, qword [r8]
mov r14, qword [rax + 0x18]
jmp case.0x18005b216.374
lea eax, [r13 - 0x170]
cmp eax, 0xfc
ja case.0x18005b216.374
movzx eax, byte [rdx + rax + 0x5b414]
mov ecx, dword [rdx + rax*4 + 0x5b3f8]
add rcx, rdx
jmp rcx
mov byte [rsp + 0x48], 1
jmp case.0x18005b216.374
mov rax, qword [rsp + 0x58]
cmp rax, qword [rsp + 0x50]
mov rdx, rax
cmova rdx, qword [rsp + 0x50]
xor ecx, ecx
cmp rdx, 0x10
jb 0x18005b2e7
lea eax, [rdx - 1]
mov r8d, eax
lea r9, [rbx + rax*4]
lea rax, [r15 + rax*4]
cmp rbx, rax
ja 0x18005b25d
cmp r9, r15
jae 0x18005b2e7
lea rax, [r14 + r8*4]
cmp rbx, rax
ja 0x18005b26b
cmp r9, r14
jae 0x18005b2e7
mov r8, rdx
and r8, 0xfffffffffffffff0
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [r15]
add ecx, 0x10
movdqu xmm1, xmmword [r14]
mov eax, ecx
pand xmm1, xmm0
movdqu xmm0, xmmword [r15 + 0x10]
movdqu xmmword [rbx], xmm1
movdqu xmm1, xmmword [r14 + 0x10]
pand xmm1, xmm0
movdqu xmm0, xmmword [r15 + 0x20]
movdqu xmmword [rbx + 0x10], xmm1
movdqu xmm1, xmmword [r14 + 0x20]
pand xmm1, xmm0
movdqu xmm0, xmmword [r15 + 0x30]
add r15, 0x40
movdqu xmmword [rbx + 0x20], xmm1
movdqu xmm1, xmmword [r14 + 0x30]
add r14, 0x40
pand xmm1, xmm0
movdqu xmmword [rbx + 0x30], xmm1
add rbx, 0x40
cmp rax, r8
jb 0x18005b280
mov eax, ecx
cmp rax, rdx
jae 0x18005b30d
nop
mov eax, dword [r14]
inc ecx
and eax, dword [r15]
add r14, 4
mov dword [rbx], eax
add r15, 4
add rbx, 4
mov eax, ecx
cmp rax, rdx
jb 0x18005b2f0
mov r8, qword [rsp + 0x60]
mov rcx, rbx
sub r8, rdx
xor edx, edx
shl r8, 2
call sub.VCRUNTIME140.dll_memset
jmp 0x18005b390
movsxd rsi, dword [r12]
test byte [rdi + rsi*4], 2
jne 0x18005b34e
nop
movsxd rax, dword [r12]
mov esi, dword [rdi + rax*4]
mov eax, esi
and eax, 1
sar esi, 2
xor ebp, eax
mov dword [r12], esi
movsxd rax, esi
test byte [rdi + rax*4], 2
je 0x18005b330
test r8, r8
je 0x18005b356
mov dword [r8], ebp
mov eax, dword [rsp + 0x40]
mov dword [r12], eax
jmp case.0x18005b216.374
mov edx, dword [r12]
cmp edx, esi
je 0x18005b398
lea r8d, [rsi*4]
movsxd rcx, edx
mov eax, r8d
or eax, ebp
mov edx, dword [rdi + rcx*4]
mov dword [rdi + rcx*4], eax
mov eax, edx
and eax, 1
sar edx, 2
xor ebp, eax
mov dword [r12], edx
cmp edx, esi
jne 0x18005b370
mov r8, qword [rsp + 0xd0]
lea rdx, [0x180000000]
add r13d, 0x7e
cmp r13d, dword [rsp + 0x44]
jb 0x18005b030
jmp case.0x18005b216.372
lea rax, str.libSieve_is_written_and_maintained_by_Aaron_Stone_with_many_thanks_to_those_who_have_helped_to_debug_and_to_secure_this_fine_piece_of_software._Special_thanks_to:_Timo_Sirainen__Oliver_Tappe__Brandon_Knitter._Portions_of_libSieve_are_based_on_the_Sieve_support_of_the_Cyrus_Email_Server_by_Carnegie_Mellon_University.
jmp 0x18005b3d6
mov byte [rsp + 0x48], 0
jmp case.0x18005b216.372
mov eax, dword [rsp + 0xd8]
jmp 0x18005b3cd
mov eax, dword [r12]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret