Function at 0x140012cb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push r12
push r14
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1401150f8]
xor rax, rsp
mov qword [rbp - 0x20], rax
cmp dword [rcx], 0
mov rsi, r9
mov r12d, r8d
mov rbx, rdx
mov r14, rcx
je 0x140012ce5
mov eax, 0xfffffffb
jmp 0x140012d33
cmp dword [rcx + 8], 0
jne 0x140012cde
test rdx, rdx
je 0x140012fea
test r12d, r12d
jle 0x140012fea
mov eax, r12d
mov qword [rsp + 0x58], rdi
cdq
mov qword [rsp + 0x50], r15
and edx, 0xf
lea r15d, [rdx + rax]
mov eax, dword [rcx + 4]
sar r15d, 4
test eax, eax
je 0x140012f75
cmp eax, 1
je 0x140012d4b
or eax, 0xffffffff
mov rdi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x50]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1400c0280
add rsp, 0x60
pop r14
pop r12
pop rsi
pop rbx
pop rbp
ret
cmp dword [rcx + 0xc], 0
jne 0x140012d5e
movups xmm0, xmmword [rcx + 0x10]
mov dword [rcx + 0xc], 1
jmp 0x140012d62
movups xmm0, xmmword [rcx + 0x20]
mov edi, r15d
movups xmmword [rbp - 0x30], xmm0
test r15d, r15d
jle 0x140012db7
nop
mov eax, dword [rbx]
lea rdx, [rbp - 0x40]
xor eax, dword [rbp - 0x30]
mov r8, rsi
mov dword [rbp - 0x40], eax
mov rcx, r14
mov eax, dword [rbx + 4]
xor eax, dword [rbp - 0x2c]
mov dword [rbp - 0x3c], eax
mov eax, dword [rbx + 8]
xor eax, dword [rbp - 0x28]
mov dword [rbp - 0x38], eax
mov eax, dword [rbx + 0xc]
xor eax, dword [rbp - 0x24]
mov dword [rbp - 0x34], eax
call fcn.140013330
movups xmm0, xmmword [rsi]
add rsi, 0x10
add rbx, 0x10
dec edi
movups xmmword [rbp - 0x30], xmm0
test edi, edi
jg 0x140012d70
shl r15d, 4
xor edx, edx
mov r9d, r15d
mov r11d, sendto
sub r9d, r12d
mov r8d, r11d
add r9d, 0x10
mov r10d, edx
sub r8d, r9d
test r8d, r8d
jle 0x140012e82
cmp r8d, 0x20
jb 0x140012e82
lea eax, [r8 - 1]
movsxd rcx, eax
lea rdi, [rbp - 0x40]
add rdi, rcx
lea rax, [rcx + rbx]
lea rcx, [rbp - 0x40]
cmp rcx, rax
ja 0x140012e0d
cmp rdi, rbx
jae 0x140012e82
mov ecx, r8d
and ecx, 0x8000001f
jge 0x140012e1f
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, r8d
lea r12, [rbp - 0x20]
sub eax, ecx
mov rcx, rbx
movsxd rdi, eax
lea rax, [rbp - 0x30]
sub rcx, rax
mov rax, rbx
sub rax, r12
lea r12, [rax + 0x10]
nop
lea rax, [rbp - 0x30]
add r10d, 0x20
add rax, rdx
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rbp - 0x20]
add rax, rdx
pxor xmm1, xmm0
movdqu xmmword [rbp + rdx - 0x40], xmm1
movdqu xmm1, xmmword [r12 + rax]
movdqu xmm0, xmmword [rax]
pxor xmm1, xmm0
movdqu xmmword [rbp + rdx - 0x30], xmm1
add rdx, 0x20
cmp rdx, rdi
jl 0x140012e40
movsxd rdx, r10d
movsxd r10, r8d
cmp rdx, r10
jge 0x140012eb9
lea rax, [rbp - 0x30]
sub rbx, rax
nop dword [rax]
nop dword [rax + rax]
lea rax, [rbp - 0x30]
add rax, rdx
movzx ecx, byte [rbx + rax]
xor cl, byte [rax]
mov byte [rbp + rdx - 0x40], cl
inc rdx
cmp rdx, r10
jl 0x140012ea0
mov ecx, r11d
sub ecx, r8d
cmp r8d, r11d
jge 0x140012f2d
cmp ecx, 0x20
jb 0x140012f2d
movsx eax, r9b
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
movsxd rax, r8d
and ecx, 0x8000001f
jge 0x140012ef0
dec ecx
or ecx, 0xffffffe0
inc ecx
sub r11d, ecx
movsxd rcx, r11d
nop word [rax + rax]
movdqu xmm0, xmmword [rbp + rax - 0x30]
add r8d, 0x20
movdqu xmm1, xmmword [rbp + rax - 0x20]
pxor xmm0, xmm2
movdqu xmmword [rbp + rax - 0x40], xmm0
pxor xmm1, xmm2
movdqu xmmword [rbp + rax - 0x30], xmm1
add rax, 0x20
cmp rax, rcx
jl 0x140012f00
movsxd rcx, r8d
cmp rcx, 0x10
jge 0x140012f55
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x30]
xor al, r9b
mov byte [rbp + rcx - 0x40], al
inc rcx
cmp rcx, 0x10
jl 0x140012f40
mov r8, rsi
lea rdx, [rbp - 0x40]
mov rcx, r14
call fcn.140013330
movups xmm0, xmmword [rsi]
lea eax, [r15 + 0x10]
movups xmmword [r14 + 0x20], xmm0
jmp 0x140012d29
mov edi, r15d
test r15d, r15d
jle 0x140012f9c
nop dword [rax]
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.140013330
add rbx, 0x10
add rsi, 0x10
dec edi
test edi, edi
jg 0x140012f80
mov r11d, sendto
shl r15d, 4
mov edi, r15d
lea rcx, [rbp - 0x40]
sub edi, r12d
mov rdx, rbx
add edi, 0x10
sub r11d, edi
movsxd r8, r11d
call fcn.1400c1540
movsxd r8, edi
lea rcx, [rbp - 0x30]
sub rcx, r8
mov edx, edi
call fcn.1400c1990
mov r8, rsi
lea rdx, [rbp - 0x40]
mov rcx, r14
call fcn.140013330
lea eax, [r15 + 0x10]
jmp 0x140012d29
xor eax, eax
jmp 0x140012d33