Function at 0x180009e90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x260
mov rax, qword [0x18004a020]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, r8
mov r14, rdx
mov r12, rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x48], r8
mov rbp, qword [r8 + 0x10]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
xor r13d, r13d
mov esi, r13d
mov qword [rsp + 0x40], r13
mov ebx, r13d
movabs rdx, 0x7fffffffffffffff
test rbp, rbp
je 0x180009f70
cmp rbp, rdx
ja 0x18000a2fb
cmp rbp, 0x1000
jb 0x180009f36
lea rcx, [rbp + 0x27]
cmp rcx, rbp
jbe 0x18000a301
call fcn.180011460
test rax, rax
je 0x18000a319
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x180009f41
mov rcx, rbp
call fcn.180011460
mov rbx, rax
mov r15, rbx
mov qword [rsp + 0x30], rbx
lea rsi, [rbx + rbp]
mov qword [rsp + 0x40], rsi
mov r8, rbp
xor edx, edx
mov rcx, rbx
call fcn.180013dd0
mov qword [rsp + 0x38], rsi
movabs rdx, 0x7fffffffffffffff
jmp 0x180009f75
mov r15, qword [rsp + 0x30]
mov rax, qword [r14 + 8]
sub rax, qword [r14]
cmp eax, 1
jge 0x18000a053
mov qword [r12], r13
mov qword [r12 + 8], r13
mov qword [r12 + 0x10], r13
test rbx, rbx
je 0x180009fcc
sub rsi, rbx
cmp rsi, 0x1000
jb 0x180009fc0
add rsi, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x18000a319
mov rbx, rcx
mov rdx, rsi
mov rcx, rbx
call fcn.180011450
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x18000a010
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x18000a000
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18000a2ef
mov rcx, r8
call fcn.180011450
mov qword [r14], r13
mov qword [r14 + 8], r13
mov qword [r14 + 0x10], r13
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x18000a04a
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x18000a045
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18000a2f5
mov rcx, r8
call fcn.180011450
mov qword [rdi + 0x10], r13
jmp 0x18000a2b6
mov ecx, dword [rdi + 0x10]
mov dword [rsp + 0x20], ecx
movsxd rbp, eax
cmp rbp, rdx
ja 0x18000a307
cmp rbp, 0x1000
jb 0x18000a098
lea rcx, [rbp + 0x27]
cmp rcx, rbp
jbe 0x18000a30d
call fcn.180011460
test rax, rax
je 0x18000a313
lea r13, [rax + 0x27]
and r13, 0xffffffffffffffe0
mov qword [r13 - 8], rax
jmp 0x18000a0a3
mov rcx, rbp
call fcn.180011460
mov r13, rax
mov rax, rbp
add rax, r13
mov qword [rsp + 0x28], rax
mov r8, rbp
xor edx, edx
mov rcx, r13
call fcn.180013dd0
xor ecx, ecx
lea rdx, [rsp + 0x50]
mov ebx, 0x100
nop word [rax + rax]
mov byte [rdx], cl
inc ecx
lea rdx, [rdx + 1]
cmp ecx, ebx
jl 0x18000a0d0
cmp dword [rsp + 0x20], 0
jle 0x18000a192
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x18000a0fa
add r8, qword [rdi]
mov rdx, qword [rdi]
jmp 0x18000a100
add r8, rdi
mov rdx, rdi
sub r8, rdx
mov rcx, r15
call fcn.180013720
xor edx, edx
xor r8d, r8d
lea r9, [rsp + 0x150]
mov r10, rbx
mov r11d, dword [rsp + 0x20]
movzx eax, byte [r15 + r8]
mov byte [r9], al
lea ecx, [rdx + 2]
lea r9, [r9 + 1]
lea eax, [rdx + 1]
xor edx, edx
cmp ecx, r11d
cmovle edx, eax
lea rax, [r8 + 1]
xor r8d, r8d
cmp ecx, r11d
cmovle r8, rax
sub r10, 1
jne 0x18000a120
xor r9d, r9d
xor r8d, r8d
nop dword [rax]
nop dword [rax + rax]
movzx edx, byte [rsp + r8 + 0x50]
movzx ecx, byte [rsp + r8 + 0x150]
add ecx, r9d
add ecx, edx
movzx r9d, cl
movzx eax, byte [rsp + r9 + 0x50]
mov byte [rsp + r8 + 0x50], al
mov byte [rsp + r9 + 0x50], dl
lea r8, [r8 + 1]
sub rbx, 1
jne 0x18000a160
xor ebx, ebx
mov r10d, ebx
mov r9d, ebx
test rbp, rbp
jle 0x18000a1ec
mov r8d, ebx
lea eax, [r10 + 1]
movzx r10d, al
movzx ecx, byte [rsp + r10 + 0x50]
lea eax, [r9 + rcx]
movzx r9d, al
movzx eax, byte [rsp + r9 + 0x50]
mov byte [rsp + r10 + 0x50], al
mov byte [rsp + r9 + 0x50], cl
mov rdx, qword [r14]
movzx eax, byte [rsp + r10 + 0x50]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rsp + rax + 0x50]
xor cl, byte [rdx + r8]
mov byte [r8 + r13], cl
inc r8
cmp r8, rbp
jl 0x18000a1a2
mov qword [r12], r13
mov rax, qword [rsp + 0x28]
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], rax
test r15, r15
je 0x18000a238
sub rsi, r15
mov rax, r15
cmp rsi, 0x1000
jb 0x18000a22c
add rsi, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000a319
mov rdx, rsi
mov rcx, r15
call fcn.180011450
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x18000a27c
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x18000a26c
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18000a2ef
mov rcx, r8
call fcn.180011450
mov qword [r14], rbx
mov qword [r14 + 8], rbx
mov qword [r14 + 0x10], rbx
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x18000a2b2
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x18000a2ad
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18000a2f5
mov rcx, r8
call fcn.180011450
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], send
mov rax, r12
mov byte [rdi], 0
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.180011430
mov rbx, qword [rsp + 0x2b8]
add rsp, 0x260
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180019bb8
nop
call fcn.180019bb8
nop
call fcn.18000e490
int3
call fcn.180001690
nop
call fcn.18000e490
int3
call fcn.180001690
int3
call fcn.180019bb8
nop
call fcn.180019bb8
int3