Function at 0x18000c978
Capabilities:
Encode data using xor

Disassembly:
test rdx, rdx
je 0x18000cc05
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x4f]
sub rsp, 0xa0
mov r15, qword [rbp + 0x77]
lea r10, [0x180067fc0]
mov rbx, r9
lea rax, [rbp - 0x19]
mov rsi, rbx
mov rdi, rcx
sub rsi, r10
mov r14b, r8b
sub rdi, rax
lea r13, [r15 + 0x200]
mov r12, rdx
xor edx, edx
lea rax, [rdi + rdx*4]
mov ecx, dword [rbp + rax - 0x19]
bswap ecx
mov dword [rbp + rdx*4 - 0x19], ecx
inc rdx
cmp rdx, 0x10
jl 0x18000c9d1
cmp byte [rbp + 0x7f], 0
mov rcx, r15
movups xmm0, xmmword [rbx]
cmove rcx, r13
xor r9d, r9d
movups xmm1, xmmword [rbx + 0x10]
mov rax, rcx
movaps xmmword [rbp - 0x59], xmm0
shr rax, 0x20
test r14b, r14b
movaps xmmword [rbp - 0x49], xmm1
cmove r9d, eax
xor r8d, r8d
test r14b, r14b
cmove r8d, ecx
xor edx, edx
lea rax, [rdx + r10]
mov ecx, dword [rsi + rax + 0x20]
xor ecx, dword [rax]
mov dword [rbp + rdx - 0x39], ecx
add rdx, 4
cmp rdx, 0x10
jl 0x18000ca1f
mov eax, r8d
lea rdx, [rbp - 0x19]
xor eax, 0xa4093822
xor r8d, 0x299f31d0
mov dword [rbp - 0x29], eax
xor ecx, ecx
mov eax, r9d
mov dword [rbp - 0x25], r8d
xor eax, 0x82efa98
lea r8, [rbp - 0x59]
xor r9d, 0xec4e6c89
mov dword [rbp - 0x21], eax
mov dword [rbp - 0x1d], r9d
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 1
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 2
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 3
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 4
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 5
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 6
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 7
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 8
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 9
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 0xa
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 0xb
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 0xc
lea rdx, [rbp - 0x19]
call fcn.18001ae70
lea r8, [rbp - 0x59]
mov ecx, 0xd
lea rdx, [rbp - 0x19]
call fcn.18001ae70
mov ecx, dword [rbx + 0x20]
mov eax, ecx
xor eax, dword [rbx]
xor eax, dword [rbp - 0x59]
xor eax, dword [rbp - 0x39]
xor ecx, dword [rbp - 0x49]
mov dword [rbx], eax
xor ecx, dword [rbx + 0x10]
xor ecx, dword [rbp - 0x29]
mov dword [rbx + 0x10], ecx
mov ecx, dword [rbx + 0x24]
mov eax, ecx
xor eax, dword [rbp - 0x55]
xor eax, dword [rbp - 0x35]
xor dword [rbx + 4], eax
xor ecx, dword [rbx + 0x14]
lea r10, [0x180067fc0]
xor ecx, dword [rbp - 0x45]
add rdi, 0x40
xor ecx, dword [rbp - 0x25]
add r13, 0x200
mov dword [rbx + 0x14], ecx
mov eax, dword [rbx + 0x28]
xor eax, dword [rbx + 8]
xor eax, dword [rbp - 0x51]
xor eax, dword [rbp - 0x31]
mov dword [rbx + 8], eax
mov eax, dword [rbx + 0x18]
xor eax, dword [rbx + 0x28]
xor eax, dword [rbp - 0x41]
xor eax, dword [rbp - 0x21]
mov dword [rbx + 0x18], eax
mov ecx, dword [rbx + 0x2c]
mov eax, dword [rbx + 0xc]
xor eax, ecx
xor ecx, dword [rbp - 0x3d]
xor eax, dword [rbp - 0x4d]
xor eax, dword [rbp - 0x2d]
xor ecx, dword [rbp - 0x1d]
mov dword [rbx + 0xc], eax
xor dword [rbx + 0x1c], ecx
sub r12, 1
jne 0x18000c9cf
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret