Function at 0x140151000
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0xe0]
xor eax, eax
mov qword [rbp - 0xa8], rax
xorps xmm4, xmm4
movabs rax, 0xffffffffffffffa0
movaps xmmword [rbp + rax - 0x40], xmm4
movaps xmmword [rbp + rax - 0x30], xmm4
movaps xmmword [rbp + rax - 0x20], xmm4
add rax, 0x30
jne 0x140151031
mov qword [rbp + 0x18], rdx
mov rbx, rcx
lea rcx, [0x1401ecf50]
cmp qword [rcx - 8], 0
jne 0x140151448
mov r14, qword [rbp + 0x18]
mov r15, qword [0x140347ac0]
mov r13, qword [r15 + 0x10]
mov qword [rbp - 0xb0], r13
xor ecx, ecx
mov dword [rbp - 0x3c], ecx
mov rcx, r13
call fcn.1400cb390
mov dword [rbp - 0x3c], 1
lea r12, [0x1401ecf50]
cmp qword [r12 - 8], 0
jne 0x140151299
mov r13, qword [rbp - 0xb0]
cmp dword [r12], 0
je 0x14015142b
mov rcx, qword [r15 + 0x10]
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0xa8], xmm0
movups xmm0, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x98], xmm0
lea rdx, [rbp - 0xa8]
lea r8, [rbp - 0x48]
cmp dword [rcx], ecx
call fcn.140186fa0
test eax, eax
jne 0x14015142b
mov rcx, qword [r15 + 0x18]
mov esi, dword [rcx + 0x10]
mov ecx, dword [r12]
cmp esi, ecx
jne 0x1401511fd
cmp ecx, 0x1e
jg 0x1401512a3
xor edi, edi
xor r12d, r12d
mov rcx, qword [r15 + 0x18]
cmp r12d, dword [rcx + 0x10]
jae 0x140151283
mov rcx, qword [rcx + 8]
cmp r12d, dword [rcx + 8]
jae 0x1401512d7
mov edx, r12d
mov rcx, qword [rcx + rdx*8 + 0x10]
mov rax, qword [rcx + 0x10]
mov qword [rbp - 0x58], rax
mov r8d, 1
cmp esi, 1
jle 0x140151195
mov dword [rbp - 0x4c], edi
test edi, edi
jne 0x1401512dc
mov dword [rbp - 0x5c], r8d
mov r10d, r8d
mov rdx, qword [r15 + 0x18]
cmp r10d, dword [rdx + 0x10]
jae 0x140151283
mov rdx, qword [rdx + 8]
cmp r10d, dword [rdx + 8]
jae 0x1401512d7
mov ecx, r10d
mov rdx, qword [rdx + rcx*8 + 0x10]
mov rdx, qword [rdx + 0x10]
mov rax, qword [rbp - 0x58]
cmp rdx, rax
jge 0x140151182
mov r12d, r10d
mov rax, rdx
mov r8d, dword [rbp - 0x5c]
inc r8d
cmp r8d, esi
mov qword [rbp - 0x58], rax
mov edi, dword [rbp - 0x4c]
jl 0x140151139
mov rcx, qword [r15 + 0x10]
mov r8, qword [r15 + 0x18]
cmp r12d, dword [r8 + 0x10]
jae 0x140151283
mov r8, qword [r8 + 8]
cmp r12d, dword [r8 + 8]
jae 0x1401512d7
mov edx, r12d
mov r8, qword [r8 + rdx*8 + 0x10]
movups xmm0, xmmword [r8 + 0x18]
movups xmmword [rbp - 0x88], xmm0
movups xmm0, xmmword [r8 + 0x28]
movups xmmword [rbp - 0x78], xmm0
cmp byte [rcx], cl
xor r8d, r8d
mov qword [rsp + 0x20], r8
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x88]
xor r9d, r9d
call fcn.140186b60
mov rcx, qword [r15 + 0x18]
mov edx, r12d
cmp dword [rcx], ecx
call fcn.140192c60
lea rcx, [0x140208a20]
call fcn.140005240
mov r12, rax
lea rdi, [r12 + 0x18]
mov rsi, rbx
call fcn.140005640
call fcn.140005640
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
lea rcx, [r12 + 8]
mov rdx, r14
call fcn.140005450
lea rcx, [r15 + 8]
mov rdx, r12
call fcn.140005450
mov rcx, qword [r15 + 0x18]
inc dword [rcx + 0x14]
mov rdx, qword [rcx + 8]
mov eax, dword [rcx + 0x10]
mov r8d, dword [rdx + 8]
cmp r8d, eax
jbe 0x14015141e
lea r8d, [rax + 1]
mov dword [rcx + 0x10], r8d
mov ecx, eax
lea rcx, [rdx + rcx*8 + 0x10]
mov rdx, r12
call fcn.140005450
mov rcx, qword [r15 + 0x10]
mov rdx, rbx
mov r8, r12
cmp dword [rcx], ecx
call fcn.140186b10
jmp 0x14015142b
call fcn.1400a9910
int3
mov ecx, r9d
lea rdx, [0x1401e3ed0]
call fcn.1401b58d0
int3
call fcn.1400013da
jmp 0x14015109c
mov r12d, 0x1e
mov edi, 1
mov rcx, qword [r15 + 0x20]
mov edx, esi
lea rax, [0x1401f51e0]
cmp qword [rcx], rax
jne 0x1401512c7
call fcn.1400a7ae0
jmp 0x1401512cc
call fcn.140002808
mov esi, r12d
mov r12d, eax
jmp 0x140151102
call fcn.140116720
mov rcx, qword [r15 + 0x20]
mov rdx, qword [r15 + 0x18]
mov r9d, dword [rdx + 0x10]
lea rdx, [0x1401f51e0]
cmp qword [rcx], rdx
jne 0x14015140a
test r9d, r9d
jl 0x140151289
mov rcx, qword [rcx + 8]
lea rdx, [0x140201ce0]
cmp qword [rcx], rdx
jne 0x14015131e
mov dword [rbp - 0x5c], r8d
mov edx, r9d
call fcn.14011dbd0
jmp 0x140151405
mov qword [rbp + 0x18], r14
mov rdx, qword [rcx + 8]
mov r10, qword [rcx + 0x10]
mov r11, qword [rcx + 0x18]
mov r13, qword [rcx + 0x20]
lea r14, [r10 + r10*4]
rol r14, 7
lea r14, [r14 + r14*8]
mov qword [rbp - 0x68], r14
mov r14, r10
shl r14, 0x11
xor r11, rdx
xor r13, r10
xor r10, r11
xor rdx, r13
xor r11, r14
rol r13, 0x2d
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], r10
mov qword [rcx + 0x18], r11
mov qword [rcx + 0x20], r13
mov r10d, r9d
mov r14, qword [rbp - 0x68]
shr r14, 0x20
mov r11d, r14d
imul r11, r10
mov r14d, r11d
cmp r14d, r9d
jae 0x1401513ef
mov eax, r9d
neg eax
xor edx, edx
div r9d
cmp r14d, edx
jae 0x1401513ef
mov r11, qword [rcx + 8]
mov r9, qword [rcx + 0x10]
mov rax, qword [rcx + 0x18]
mov r14, qword [rcx + 0x20]
lea r13, [r9 + r9*4]
rol r13, 7
lea r13, [r13 + r13*8]
mov rdi, r9
shl rdi, 0x11
xor rax, r11
xor r14, r9
xor r9, rax
xor r11, r14
xor rax, rdi
rol r14, 0x2d
mov qword [rcx + 8], r11
mov qword [rcx + 0x10], r9
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], r14
shr r13, 0x20
mov r11d, r13d
imul r11, r10
mov r14d, r11d
cmp r14d, edx
jb 0x140151395
shr r11, 0x20
mov eax, r11d
mov dword [rbp - 0x5c], r8d
mov r13, qword [rbp - 0xb0]
mov r14, qword [rbp + 0x18]
mov r10d, eax
jmp 0x140151419
mov dword [rbp - 0x5c], r8d
mov edx, r9d
call fcn.140002808
mov r10d, eax
jmp 0x14015114b
mov rdx, r12
call fcn.140192550
jmp 0x14015126d
mov rcx, r13
call fcn.1400cb520
nop
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140001ee8
mov r14, qword [rbp + 0x18]
jmp 0x140151063