Function at 0x140323ee0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
movabs r8, 0xa87cd78f37ac0498
mov rax, qword [0x140543ab0]
add rax, r8
cmp rdx, rax
ja 0x14032445c
mov rdi, rdx
mov rsi, rcx
mov rcx, qword [rcx]
mov rax, qword [rsi + 8]
sub rax, rcx
mov rdx, qword [0x140543ab0]
movabs r9, 0xa549a45c0478d1b5
xor r9, rdx
movabs r10, 0x2549a45c0478d1b5
and r10, rdx
lea r9, [r9 + r10*2]
mov rdx, rax
or rdx, r9
shr rdx, 0x20
je 0x140323f65
cqo
idiv r9
mov r14, rax
jmp 0x140323f6d
xor edx, edx
div r9d
mov r14d, eax
mov rax, qword [rsi + 0x10]
sub rax, rcx
sar rax, 4
movabs rcx, 0xcccccccccccccccd
imul rcx, rax
mov r12, rcx
shr r12, 1
movabs rax, 0x333333333333333
mov rdx, rax
sub rdx, r12
add r12, rcx
cmp r12, rdi
cmovbe r12, rdi
cmp rcx, rdx
cmova r12, rax
movabs rax, 0x333333333333334
cmp r12, rax
jae 0x140324457
mov rax, r12
shl rax, 4
lea rcx, [rax + rax*4]
cmp r12, 0x34
jb 0x140324032
mov rax, qword [0x140543ab0]
xor r8, rax
movabs rdx, 0x287cd78f37ac0498
and rdx, rax
lea rax, [r8 + rdx*2]
cmp r12, rax
jae 0x140324457
add rcx, 0x27
mov eax, dword [0x140543aa8]
lea edx, [rax - 0x15a4098a]
lea r8d, [rax + 0x214ce770]
mov r9d, eax
xor r9d, 0xf4368684
and eax, 0x74368684
lea r9d, [r9 + rax*2]
call fcn.1400aaef0
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1403240a3
mov edx, dword [0x140566bc8]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x140543aa8]
lea r9d, [r8 + 0x25dd221a]
xor edx, edx
div r9d
mov eax, r8d
xor eax, 0x25dd2218
and r8d, 0x25dd2218
lea eax, [rax + r8*2]
cmp edx, eax
nop word cs:[rax + rax]
mov eax, dword [0x140566bc8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x140324070
test r12, r12
je 0x1403240a1
mov edx, 0xc47ed45e
mov r8d, 0xfb6fc558
mov r9d, 0xce59646c
call fcn.1400aaef0
mov rbx, rax
jmp 0x1403240a3
xor ebx, ebx
mov rdx, rdi
sub rdx, r14
je 0x14032419b
lea rax, [r14 + r14*4]
shl rax, 4
add rax, rbx
not r14
mov qword [rbp - 8], rdi
add r14, rdi
movabs r8, 0xa549a45c0478d16c
add r8, qword [0x140543ab0]
and r8, rdx
je 0x14032418a
xor r9d, r9d
xorps xmm0, xmm0
movabs r10, 0xa549a45c0478d164
lea rcx, [fcn.140323ee0]
lea r11d, [rcx + rcx]
add r11d, 0x4be0
mov r15d, r11d
not r15d
jmp 0x140324130
add rax, 0x50
add rcx, r10
mov rdx, r9
xor rdx, 1
and r9d, 1
lea r9, [rdx + r9*2]
mov rdx, rcx
cmp r9, r8
je 0x14032418d
nop word cs:[rax + rax]
movups xmmword [rax + 0x3c], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
mov rcx, qword [0x140543ab0]
add rcx, rdx
mov r13d, dword [0x140566bc8]
lea edi, [r13 - 1]
imul edi, r13d
test dil, 1
je 0x140324108
nop word cs:[rax + rax]
movups xmmword [rax + 0x3c], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
test r15d, r11d
jne 0x140324170
jmp 0x140324130
mov rcx, rdx
cmp r14, 7
mov rdi, qword [rbp - 8]
jae 0x140324330
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
cmp rax, rcx
je 0x14032427b
mov edx, 0x25dd225f
mov r8, rbx
jmp 0x1403241d0
add r8, 0x50
add rax, 0x50
cmp rax, rcx
je 0x140324278
nop word cs:[rax + rax]
movups xmm0, xmmword [rax + 0x40]
movups xmmword [r8 + 0x40], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movups xmmword [r8 + 0x30], xmm3
movups xmmword [r8 + 0x20], xmm2
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
mov r9d, dword [0x140566bcc]
mov r10d, dword [0x140543aa8]
add r10d, edx
cmp r9d, r10d
jl 0x1403241b5
nop word cs:[rax + rax]
movups xmm0, xmmword [rax + 0x40]
movups xmmword [r8 + 0x40], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movups xmmword [r8 + 0x30], xmm3
movups xmmword [r8 + 0x20], xmm2
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
mov r9d, dword [0x140566bcc]
mov r10d, dword [0x140543aa8]
mov r11d, r10d
xor r11d, 0x25dd225c
and r10d, 0x25dd225c
lea r10d, [r11 + r10*2]
cmp r9d, r10d
jge 0x140324220
jmp 0x1403241d0
mov rax, qword [rsi]
test rax, rax
je 0x1403244c0
mov rcx, qword [rsi + 8]
cmp rax, rcx
je 0x1403242bf
add rax, 0x50
xorps xmm0, xmm0
nop word cs:[rax + rax]
movups xmmword [rax - 0x14], xmm0
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x30], xmm0
movups xmmword [rax - 0x40], xmm0
movups xmmword [rax - 0x50], xmm0
cmp rax, rcx
je 0x1403242bf
add rax, 0x50
jmp 0x1403242a0
mov r15, qword [rsi]
mov r14, qword [rsi + 0x10]
sub r14, r15
cmp r14, 0x1000
jb 0x140324312
mov rax, qword [r15 - 8]
sub r15, rax
add r15, 0xfffffffffffffff8
mov rcx, qword [0x140543ab0]
movabs rdx, 0xa549a45c0478d185
xor rdx, rcx
movabs r8, 0x2549a45c0478d185
and r8, rcx
lea rcx, [rdx + r8*2]
cmp r15, rcx
jae 0x140324461
add r14, 0x27
mov r15, rax
mov eax, dword [0x140566bcc]
mov ecx, 0x25dd226b
add ecx, dword [0x140543aa8]
cmp eax, ecx
jl 0x140324466
jmp 0x140324496
add rcx, 0xfffffffffffffff8
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rax + 0x3c], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
movups xmmword [rax + 0x8c], xmm0
movups xmmword [rax + 0xa0], xmm0
movups xmmword [rax + 0xb0], xmm0
movups xmmword [rax + 0xc0], xmm0
movups xmmword [rax + 0xd0], xmm0
movups xmmword [rax + 0xdc], xmm0
movups xmmword [rax + 0xf0], xmm0
movups xmmword [rax + 0x100], xmm0
movups xmmword [rax + 0x110], xmm0
movups xmmword [rax + 0x120], xmm0
movups xmmword [rax + 0x12c], xmm0
movups xmmword [rax + 0x17c], xmm0
movups xmmword [rax + 0x170], xmm0
movups xmmword [rax + 0x160], xmm0
movups xmmword [rax + 0x150], xmm0
movups xmmword [rax + 0x140], xmm0
movups xmmword [rax + 0x190], xmm0
movups xmmword [rax + 0x1a0], xmm0
movups xmmword [rax + 0x1b0], xmm0
movups xmmword [rax + 0x1c0], xmm0
movups xmmword [rax + 0x1cc], xmm0
movups xmmword [rax + 0x1e0], xmm0
movups xmmword [rax + 0x1f0], xmm0
movups xmmword [rax + 0x200], xmm0
movups xmmword [rax + 0x210], xmm0
movups xmmword [rax + 0x21c], xmm0
movups xmmword [rax + 0x230], xmm0
movups xmmword [rax + 0x240], xmm0
movups xmmword [rax + 0x250], xmm0
movups xmmword [rax + 0x260], xmm0
movups xmmword [rax + 0x26c], xmm0
test rcx, rcx
je 0x14032419b
add rcx, 0xfffffffffffffff8
add rax, 0x280
jmp 0x140324340
call fcn.140084910
call fcn.140324520
call fcn.1403c3cac
mov dword [rsp + 0x20], 0x4fda09ee
mov rcx, r15
mov rdx, r14
mov r8d, 0x718fdb14
mov r9d, 0xb6835e37
call fcn.1400a9560
mov eax, dword [0x140566bc8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403244c0
mov eax, dword [0x140543aa8]
lea r8d, [rax - 0x689302d4]
lea r9d, [rax - 0x239f7fb1]
add eax, 0x75b72c06
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r14
call fcn.1400a9560
jmp 0x140324466
mov qword [rsi], rbx
lea rax, [rdi + rdi*4]
shl rax, 4
add rax, rbx
mov qword [rsi + 8], rax
lea rax, [r12 + r12*4]
shl rax, 4
add rax, rbx
mov qword [rsi + 0x10], rax
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret