Function at 0x140012180
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x60], rdx
mov rdx, qword [rcx + 0x18]
mov rax, rdx
inc rax
je 0x140012b3e
mov r8, rcx
mov r13, qword [rcx + 8]
lea r12, [r13 + 1]
mov rcx, r12
shr rcx, 3
mov r9, r12
and r9, 0xfffffffffffffff8
sub r9, rcx
cmp r13, 8
cmovb r9, r13
mov rcx, r9
shr rcx, 1
cmp rax, rcx
mov qword [rsp + 0x38], r8
jbe 0x14001220a
inc r9
cmp rax, r9
cmova r9, rax
cmp r9, 8
jae 0x14001223c
mov r15, rdx
xor eax, eax
cmp r9, 4
setae al
lea r14, [rax*4 + 4]
jmp 0x14001228d
mov qword [rsp + 0x68], rdx
mov r14, qword [r8]
mov rcx, r12
shr rcx, 4
xor eax, eax
test r12b, 0xf
setne al
add rax, rcx
je 0x1400125a0
cmp rax, 1
jne 0x14001252c
xor ecx, ecx
jmp 0x140012588
movabs rax, 0x1ffffffffffffffe
or rax, 1
cmp r9, rax
ja 0x140012b3e
mov r15, rdx
shl r9, 3
movabs rcx, 0x2492492492492493
mov rax, r9
mul rcx
sub r9, rdx
shr r9, 1
add r9, rdx
shr r9, 2
dec r9
bsr rcx, r9
not ecx
mov r14, 0xffffffffffffffff
shr r14, cl
inc r14
mov ecx, 0x58
mov rax, r14
mul rcx
jo 0x140012b3e
mov rdi, rax
add rdi, 0xf
and rdi, 0xfffffffffffffff0
lea rbp, [r14 + 0x10]
mov rsi, rdi
add rsi, rbp
jb 0x140012b3e
movabs rax, 0x7ffffffffffffff0
cmp rsi, rax
ja 0x140012b3e
test rsi, rsi
je 0x1400122f2
movzx eax, byte [0x1402f31d1]
xor ecx, ecx
mov rdx, rsi
call fcn.14018e330
mov rbx, rax
test rax, rax
jne 0x1400122f7
mov rcx, rsi
call fcn.14003b890
mov ebx, 0x10
add rbx, rdi
lea rsi, [r14 - 1]
mov rax, r14
shr rax, 3
mov rdi, r14
and rdi, 0xfffffffffffffff8
sub rdi, rax
cmp r14, 9
cmovb rdi, rsi
mov rcx, rbx
mov dl, 0xff
mov r8, rbp
call sub.msvcrt.dll_memset
test r15, r15
je 0x1400124d7
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r12
mov rax, qword [rsp + 0x38]
mov r12, qword [rax]
movdqa xmm0, xmmword [r12]
pmovmskb ebp, xmm0
not ebp
lea rax, [rbx - 0x58]
mov qword [rsp + 0x58], rax
lea r14, [r12 - 0x58]
xor edi, edi
mov qword [rsp + 0x68], r15
mov r10, r15
mov qword [rsp + 0x48], r12
jmp 0x1400123eb
lea ecx, [rbp - 1]
and ecx, ebp
dec r10
shr rax, 0x39
lea r8, [rdx - 0x10]
and r8, rsi
mov byte [rbx + rdx], al
mov byte [rbx + r8 + 0x10], al
imul rax, r15, 0xffffffffffffffa8
imul rdx, rdx, 0xffffffffffffffa8
mov r8, qword [r14 + rax + 0x50]
mov r9, qword [rsp + 0x58]
mov qword [r9 + rdx + 0x50], r8
movups xmm0, xmmword [r14 + rax + 0x40]
movups xmmword [r9 + rdx + 0x40], xmm0
movdqu xmm0, xmmword [r14 + rax]
movdqu xmm1, xmmword [r14 + rax + 0x10]
movups xmm2, xmmword [r14 + rax + 0x20]
movups xmm3, xmmword [r14 + rax + 0x30]
movups xmmword [r9 + rdx + 0x30], xmm3
movups xmmword [r9 + rdx + 0x20], xmm2
movdqu xmmword [r9 + rdx + 0x10], xmm1
movdqu xmmword [r9 + rdx], xmm0
mov ebp, ecx
test r10, r10
je 0x1400124bc
test bp, bp
mov qword [rsp + 0x30], r10
jne 0x14001241d
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r12 + 0x10]
add r12, 0x10
pmovmskb ebp, xmm0
add rdi, 0x10
cmp ebp, 0xffff
je 0x140012400
not ebp
tzcnt r15d, ebp
add r15, rdi
mov rax, r15
neg rax
imul rax, rax, 0x58
mov r8, qword [r14 + rax + 8]
mov r9, qword [r14 + rax + 0x10]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x28]
call fcn.140008da0
mov rcx, rsi
and rcx, rax
movdqu xmm0, xmmword [rbx + rcx]
pmovmskb edx, xmm0
test edx, edx
je 0x140012470
mov r10, qword [rsp + 0x30]
jmp 0x140012497
mov r8d, 0x10
mov r10, qword [rsp + 0x30]
nop dword [rax + rax]
add rcx, r8
and rcx, rsi
movdqu xmm0, xmmword [rbx + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x140012480
tzcnt edx, edx
add rdx, rcx
and rdx, rsi
cmp byte [rbx + rdx], 0
js 0x140012370
movdqa xmm0, xmmword [rbx]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x140012370
mov rax, qword [rsp + 0x38]
mov r15, qword [rsp + 0x68]
mov r12, qword [rsp + 0x50]
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
jmp 0x1400124df
mov rax, qword [rsp + 0x38]
mov r8, qword [rax]
sub rdi, r15
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rdi
test r13, r13
je 0x1400125d2
mov ecx, 0x58
mov rax, r12
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add r13, rax
cmp r13, 0xffffffffffffffef
je 0x1400125d2
sub r8, rax
mov rcx, qword [0x1402f3170]
xor edx, edx
call fcn.1401d7c44
jmp 0x1400125d2
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor ecx, ecx
movdqa xmm0, xmmword [0x1401fd1a0]
nop word cs:[rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r14 + rcx]
por xmm1, xmm0
movdqa xmmword [r14 + rcx], xmm1
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r14 + rcx + 0x10]
por xmm1, xmm0
movdqa xmmword [r14 + rcx + 0x10], xmm1
add rcx, 0x20
add rdx, 0xfffffffffffffffe
jne 0x140012550
test al, 1
je 0x1400125a0
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r14 + rcx]
por xmm0, xmmword [0x1401fd1a0]
movdqa xmmword [r14 + rcx], xmm0
mov qword [rsp + 0x70], r9
cmp r12, 0x10
jae 0x1400125f4
lea rcx, [r14 + 0x10]
mov rdx, r14
mov r8, r12
call sub.msvcrt.dll_memmove
test r12, r12
jne 0x1400125ff
mov rcx, qword [rsp + 0x70]
sub rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], rcx
movabs rax, 0x7ffffffffffffff0
add rax, 0x11
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm0, xmmword [r14]
movdqu xmmword [r14 + r12], xmm0
lea r15, [r14 - 0x58]
movabs rax, 0x736f6d6570736575
mov rdx, qword [rsp + 0x60]
xor rax, rdx
mov qword [rsp + 0x58], rax
movabs rax, 0x646f72616e646f6d
mov rcx, qword [rsp + 0x28]
xor rax, rcx
mov qword [rsp + 0x50], rax
movabs rax, 0x6c7967656e657261
xor rax, rdx
mov qword [rsp + 0x48], rax
movabs rax, 0x7465646279746573
xor rax, rcx
mov qword [rsp + 0x40], rax
xor ebp, ebp
mov rdi, r14
mov qword [rsp + 0x78], r15
jmp 0x140012698
shr rax, 0x39
lea rcx, [rbp - 0x10]
and rcx, r13
mov byte [r14 + rbp], al
mov byte [r14 + rcx + 0x10], al
lea rax, [rbp + 1]
add rdi, 0xffffffffffffffa8
cmp rbp, r13
mov rbp, rax
je 0x1400125bf
cmp byte [r14 + rbp], 0x80
jne 0x140012684
imul rcx, rbp, 0xffffffffffffffa8
lea rax, [r15 + rcx]
mov qword [rsp + 0x30], rax
add rcx, r14
mov qword [rsp + 0x80], rcx
mov rax, rbp
neg rax
imul rax, rax, 0x58
add rax, r14
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x28], rbp
jmp 0x140012791
mov r8, qword [rsp + 0x30]
mov rax, qword [r8]
mov rdx, qword [rcx]
mov qword [r8], rdx
mov qword [rcx], rax
mov rax, qword [r8 + 8]
mov rdx, qword [rcx + 8]
mov qword [r8 + 8], rdx
mov qword [rcx + 8], rax
mov rax, qword [r8 + 0x10]
mov rdx, qword [rcx + 0x10]
mov qword [r8 + 0x10], rdx
mov qword [rcx + 0x10], rax
mov rax, qword [r8 + 0x18]
mov rdx, qword [rcx + 0x18]
mov qword [r8 + 0x18], rdx
mov qword [rcx + 0x18], rax
mov rax, qword [r8 + 0x20]
mov rdx, qword [rcx + 0x20]
mov qword [r8 + 0x20], rdx
mov qword [rcx + 0x20], rax
mov rax, qword [r8 + 0x28]
mov rdx, qword [rcx + 0x28]
mov qword [r8 + 0x28], rdx
mov qword [rcx + 0x28], rax
mov rax, qword [r8 + 0x30]
mov rdx, qword [rcx + 0x30]
mov qword [r8 + 0x30], rdx
mov qword [rcx + 0x30], rax
mov rax, qword [r8 + 0x38]
mov rdx, qword [rcx + 0x38]
mov qword [r8 + 0x38], rdx
mov qword [rcx + 0x38], rax
mov rax, qword [r8 + 0x40]
mov rdx, qword [rcx + 0x40]
mov qword [r8 + 0x40], rdx
mov qword [rcx + 0x40], rax
mov rax, qword [r8 + 0x48]
mov rdx, qword [rcx + 0x48]
mov qword [r8 + 0x48], rdx
mov qword [rcx + 0x48], rax
mov rax, qword [r8 + 0x50]
mov rdx, qword [rcx + 0x50]
mov qword [r8 + 0x50], rdx
mov qword [rcx + 0x50], rax
mov rax, qword [rsp + 0x60]
mov r8, qword [rax - 0x50]
mov rsi, qword [rax - 0x48]
mov rax, rsi
and rax, 0xfffffffffffffff8
je 0x140012840
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov r11, qword [rsp + 0x40]
xor r12d, r12d
mov rbx, qword [rsp + 0x58]
nop word cs:[rax + rax]
add rbx, r9
rol r9, 0xd
mov rcx, qword [r8 + r12]
xor r9, rbx
rol rbx, 0x20
xor r11, rcx
add r10, r11
rol r11, 0x10
xor r11, r10
add rbx, r11
rol r11, 0x15
add r10, r9
rol r9, 0x11
xor r9, r10
rol r10, 0x20
xor r11, rbx
xor rbx, rcx
add r12, 8
cmp r12, rax
jb 0x1400127d0
mov edx, esi
and edx, 7
cmp edx, 4
jb 0x140012861
mov ebp, dword [r8 + r12]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, rdx
jb 0x140012871
jmp 0x140012896
mov r11, qword [rsp + 0x40]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x58]
xor r12d, r12d
mov edx, esi
and edx, 7
cmp edx, 4
jae 0x14001281d
xor ebp, ebp
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, rdx
jae 0x140012896
lea rcx, [r8 + rax]
mov r15, r13
movzx r13d, word [r12 + rcx]
lea ecx, [rax*8]
shl r13, cl
or rbp, r13
mov r13, r15
mov r15, qword [rsp + 0x78]
or rax, 2
cmp rax, rdx
jae 0x1400128c0
add r12, rax
movzx r8d, byte [r8 + r12]
shl eax, 3
mov ecx, eax
shl r8, cl
or rbp, r8
inc rsi
jmp 0x1400128c8
inc rsi
test rdx, rdx
je 0x14001291a
lea ecx, [rdx*8]
mov eax, 0xff
shl rax, cl
or rax, rbp
cmp rdx, 7
jne 0x140012920
add rbx, r9
rol r9, 0xd
xor r11, rax
xor r9, rbx
rol rbx, 0x20
add r10, r11
rol r11, 0x10
xor r11, r10
add rbx, r11
rol r11, 0x15
xor r11, rbx
add r10, r9
rol r9, 0x11
xor r9, r10
rol r10, 0x20
xor rbx, rax
xor eax, eax
jmp 0x140012920
mov eax, 0xff
nop
mov rbp, qword [rsp + 0x28]
shl rsi, 0x38
add rbx, r9
rol r9, 0xd
or rsi, rax
xor r9, rbx
rol rbx, 0x20
xor r11, rsi
add r10, r11
rol r11, 0x10
xor r11, r10
add rbx, r11
rol r11, 0x15
add r10, r9
rol r9, 0x11
xor r11, rbx
xor r9, r10
rol r10, 0x20
xor rbx, rsi
add rbx, r9
rol r9, 0xd
xor r9, rbx
rol rbx, 0x20
xor r10, 0xff
add r10, r11
rol r11, 0x10
xor r11, r10
add rbx, r11
rol r11, 0x15
add r10, r9
rol r9, 0x11
xor r9, r10
rol r10, 0x20
xor r11, rbx
add rbx, r9
rol r9, 0xd
xor r9, rbx
rol rbx, 0x20
add r10, r11
rol r11, 0x10
xor r11, r10
add rbx, r11
rol r11, 0x15
add r10, r9
rol r9, 0x11
xor r9, r10
rol r10, 0x20
xor r11, rbx
add rbx, r9
rol r9, 0xd
add r10, r11
rol r11, 0x10
xor r11, r10
rol r11, 0x15
xor r9, rbx
add r10, r9
rol r9, 0x11
mov rax, r10
rol rax, 0x20
xor rax, r9
xor rax, r11
xor rax, r10
mov rcx, rax
and rcx, r13
movdqu xmm0, xmmword [r14 + rcx]
pmovmskb r8d, xmm0
mov rdx, rcx
test r8d, r8d
jne 0x140012a3a
mov r9d, 0x10
mov rdx, rcx
nop word [rax + rax]
add rdx, r9
and rdx, r13
movdqu xmm0, xmmword [r14 + rdx]
pmovmskb r8d, xmm0
add r9, 0x10
test r8d, r8d
je 0x140012a20
tzcnt r8d, r8d
add r8, rdx
and r8, r13
cmp byte [r14 + r8], 0
js 0x140012a5a
movdqa xmm0, xmmword [r14]
pmovmskb edx, xmm0
tzcnt r8d, edx
mov rdx, rbp
sub rdx, rcx
mov r9, r8
sub r9, rcx
xor r9, rdx
and r9, r13
cmp r9, 0x10
jb 0x140012670
imul rdx, r8, 0xffffffffffffffa8
lea rcx, [r15 + rdx]
movzx r9d, byte [r14 + r8]
shr rax, 0x39
lea r10, [r8 - 0x10]
and r10, r13
mov byte [r14 + r8], al
mov byte [r14 + r10 + 0x10], al
cmp r9b, 0xff
je 0x140012af0
add rdx, r14
cmp qword [rsp + 0x30], rdx
jae 0x1400126e0
cmp rcx, qword [rsp + 0x80]
jae 0x1400126e0
mov rax, 0xffffffffffffffa8
movzx ecx, byte [rdi + rax]
movzx r8d, byte [rdx + rax]
mov byte [rdi + rax], r8b
mov byte [rdx + rax], cl
movzx ecx, byte [rdi + rax + 1]
movzx r8d, byte [rdx + rax + 1]
mov byte [rdi + rax + 1], r8b
mov byte [rdx + rax + 1], cl
add rax, 2
jne 0x140012ac0
jmp 0x140012791
lea rax, [rbp - 0x10]
and rax, r13
mov byte [r14 + rbp], 0xff
mov byte [r14 + rax + 0x10], 0xff
mov rdx, qword [rsp + 0x30]
mov rax, qword [rdx + 0x50]
mov qword [rcx + 0x50], rax
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rcx + 0x40], xmm0
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movups xmm3, xmmword [rdx + 0x30]
movups xmmword [rcx + 0x30], xmm3
movups xmmword [rcx + 0x20], xmm2
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
jmp 0x140012684
call fcn.14003b850
int3