Function at 0x1401cb0f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x60], rax
test rcx, rcx
je 0x1401cbaf2
mov rsi, rdx
mov rdi, rcx
mov eax, dword [rcx + 0x16c]
test eax, 0x100000
je 0x1401cb150
mov r9, qword [rdi + 0x150]
test r9, r9
je 0x1401cb150
mov r8, qword [rdi + 0x248]
inc r8
mov rcx, rdi
mov rdx, rsi
call r9
mov eax, dword [rdi + 0x16c]
test ax, ax
js 0x1401cb165
test eax, 0x10000
jne 0x1401cb192
test al, 4
jne 0x1401cb1b2
jmp 0x1401cb441
xor r8d, r8d
cmp byte [rdi + 0x168], 0
setns r8b
mov rdx, qword [rdi + 0x248]
inc rdx
mov rcx, rsi
call fcn.1400b69b0
mov eax, dword [rdi + 0x16c]
test eax, 0x10000
je 0x1401cb15c
mov rdx, qword [rdi + 0x248]
inc rdx
mov rcx, rsi
call fcn.1400b6940
mov eax, dword [rdi + 0x16c]
test al, 4
je 0x1401cb441
cmp byte [rsi + 0x11], 8
jne 0x1401cb441
cmp byte [rsi + 0x12], 1
jne 0x1401cb441
movzx ecx, byte [rdi + 0x288]
movzx r8d, cl
mov rdx, qword [rdi + 0x248]
lea rax, [rdx + 1]
cmp r8d, 4
je 0x1401cb323
cmp r8d, 2
je 0x1401cb373
cmp r8d, 1
jne 0x1401cb40a
mov r8d, dword [rsi]
test r8d, r8d
je 0x1401cb40a
neg r8d
xor edx, edx
xor r10d, r10d
xor r9d, r9d
cmp byte [rax + r10], 0
setne r9b
shl r9d, 7
lea r11d, [r8 + r10]
cmp r11d, 0xffffffff
je 0x1401cb401
xor r11d, r11d
cmp byte [rax + r10 + 1], 0
setne r11b
shl r11d, 6
or r9d, r11d
lea r11d, [r8 + r10]
cmp r11d, 0xfffffffe
je 0x1401cb401
xor r11d, r11d
cmp byte [rax + r10 + 2], 0
setne r11b
shl r11d, 5
or r9d, r11d
lea r11d, [r8 + r10]
cmp r11d, 0xfffffffd
je 0x1401cb401
xor r11d, r11d
cmp byte [rax + r10 + 3], 0
setne r11b
shl r11d, 4
or r9d, r11d
lea r11d, [r8 + r10]
cmp r11d, 0xfffffffc
je 0x1401cb401
xor r11d, r11d
cmp byte [rax + r10 + 4], 0
setne r11b
shl r11d, 3
or r9d, r11d
lea r11d, [r8 + r10]
cmp r11d, 0xfffffffb
je 0x1401cb401
xor r11d, r11d
cmp byte [rax + r10 + 5], 0
setne r11b
shl r11d, 2
or r9d, r11d
lea r11d, [r8 + r10]
cmp r11d, 0xfffffffa
je 0x1401cb401
xor r11d, r11d
cmp byte [rax + r10 + 6], 0
setne r11b
add r11d, r11d
or r11d, r9d
lea r9d, [r8 + r10]
cmp r9d, 0xfffffff9
je 0x1401cb3fe
xor r9d, r9d
cmp byte [rax + r10 + 7], 0
setne r9b
or r11d, r9d
mov byte [rax + rdx], r11b
add r10, 8
inc rdx
mov r9d, r10d
add r9d, r8d
jne 0x1401cb20e
jmp 0x1401cb40a
mov r8d, dword [rsi]
test r8d, r8d
je 0x1401cb40a
neg r8d
mov r9d, 1
movzx r10d, byte [rdx + r9]
shl r10b, 4
mov r11d, r8d
add r11d, r9d
je 0x1401cb3f8
movzx r11d, byte [rdx + r9 + 1]
and r11b, 0xf
or r11b, r10b
mov byte [rax], r11b
inc rax
add r9, 2
lea r10d, [r9 + r8]
cmp r10d, 1
jne 0x1401cb338
jmp 0x1401cb40a
mov r8d, dword [rsi]
test r8d, r8d
je 0x1401cb40a
neg r8d
xor r9d, r9d
mov rdx, rax
movzx r10d, byte [rax + r9]
shl r10b, 6
lea r11d, [r8 + r9]
cmp r11d, 0xffffffff
je 0x1401cb3f2
movzx r11d, byte [rax + r9 + 1]
shl r11b, 4
and r11b, 0x30
or r10b, r11b
lea r11d, [r8 + r9]
cmp r11d, 0xfffffffe
je 0x1401cb3f2
movzx r11d, byte [rax + r9 + 2]
shl r11b, 2
and r11b, 0xc
or r10b, r11b
lea r11d, [r8 + r9]
cmp r11d, 0xfffffffd
je 0x1401cb3f2
movzx r11d, byte [rax + r9 + 3]
and r11b, 3
or r11b, r10b
mov byte [rdx], r11b
inc rdx
add r9, 4
mov r10d, r9d
add r10d, r8d
jne 0x1401cb388
jmp 0x1401cb40a
movzx r9d, r10b
jmp 0x1401cb407
movzx r9d, r10b
jmp 0x1401cb404
mov r9d, r11d
add rax, rdx
mov rdx, rax
mov byte [rdx], r9b
mov byte [rsi + 0x11], cl
movzx eax, byte [rsi + 0x12]
mul cl
mov byte [rsi + 0x13], al
mov ecx, dword [rsi]
cmp al, 8
jb 0x1401cb428
shr al, 3
movzx eax, al
imul rcx, rax
jmp 0x1401cb437
movzx eax, al
imul rcx, rax
add rcx, 7
shr rcx, 3
mov qword [rsi + 8], rcx
mov eax, dword [rdi + 0x16c]
test al, 0x10
je 0x1401cb45d
mov rdx, qword [rdi + 0x248]
inc rdx
mov rcx, rsi
call fcn.1400b68d0
mov eax, dword [rdi + 0x16c]
test al, 8
je 0x1401cb6e5
movzx ecx, byte [rsi + 0x10]
cmp cl, 3
je 0x1401cb6e5
movzx r8d, byte [rsi + 0x11]
test cl, 2
jne 0x1401cb48b
movzx eax, byte [rdi + 0x300]
mov r10d, 1
jmp 0x1401cb4c4
movzx eax, byte [rdi + 0x2fd]
movzx edx, byte [rdi + 0x2fe]
mov r9d, r8d
sub r9d, edx
mov dword [rsp + 0x54], r9d
mov dword [rsp + 0x44], edx
movzx edx, byte [rdi + 0x2ff]
mov r9d, r8d
sub r9d, edx
mov dword [rsp + 0x58], r9d
mov dword [rsp + 0x48], edx
mov r10d, 3
mov r9, qword [rdi + 0x248]
movzx r11d, al
mov eax, r8d
sub eax, r11d
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x40], r11d
test cl, 4
je 0x1401cb4fd
movzx eax, byte [rdi + 0x301]
mov ecx, r8d
sub ecx, eax
mov edx, r10d
mov dword [rsp + rdx*4 + 0x50], ecx
mov dword [rsp + rdx*4 + 0x40], eax
inc r10d
inc r9
cmp r8b, 7
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rdi
ja 0x1401cb5c9
mov r10, qword [rsi + 8]
movzx eax, byte [rdi + 0x300]
mov ecx, eax
xor cl, 1
mov edx, r8d
xor dl, 2
mov ebx, r8d
xor bl, 4
xor al, 3
or al, bl
mov eax, 0x11
mov esi, 0xff
cmove esi, eax
or dl, cl
mov ebx, 0x55
cmovne ebx, esi
test r10, r10
je 0x1401cb6d5
mov eax, r11d
sub eax, r8d
mov dword [rsp + 0x2c], eax
mov r14d, r11d
neg r14d
xor r15d, r15d
jmp 0x1401cb582
mov byte [r9], r12b
inc r15
inc r9
cmp r15, r10
je 0x1401cb6d5
mov r12d, 0
test r8b, r8b
je 0x1401cb570
movzx ebp, byte [r9]
xor r12d, r12d
mov esi, r8d
mov eax, dword [rsp + 0x2c]
nop dword [rax + rax]
lea edx, [r14 + rsi]
mov r13d, ebp
mov ecx, edx
shl r13d, cl
mov edi, ebp
mov ecx, eax
shr edi, cl
and edi, ebx
test edx, edx
cmovg edi, r13d
or r12d, edi
add eax, r11d
sub esi, r11d
test esi, esi
jg 0x1401cb5a0
jmp 0x1401cb570
mov r11d, dword [rsi]
imul r11d, r10d
cmp r8b, 8
jne 0x1401cb655
test r11d, r11d
je 0x1401cb6d5
xor r8d, r8d
jmp 0x1401cb602
mov byte [r9], bpl
inc r8d
inc r9
cmp r8d, r11d
je 0x1401cb6d5
mov eax, r8d
xor edx, edx
div r10d
mov eax, dword [rsp + rdx*4 + 0x50]
mov ebx, dword [rsp + rdx*4 + 0x40]
mov ecx, ebx
neg ecx
mov ebp, 0
cmp eax, ecx
jle 0x1401cb5f0
movzx esi, byte [r9]
mov edx, eax
neg edx
xor ebp, ebp
mov r14d, eax
nop dword [rax]
mov edi, esi
mov ecx, eax
shl edi, cl
mov r15d, esi
mov ecx, edx
shr r15d, cl
test eax, eax
cmovg r15d, edi
or ebp, r15d
sub r14d, ebx
add edx, ebx
test eax, eax
mov eax, r14d
jg 0x1401cb630
jmp 0x1401cb5f0
test r11d, r11d
je 0x1401cb6d5
xor r8d, r8d
jmp 0x1401cb674
rol bp, 8
mov word [r9], bp
add r9, 2
inc r8d
cmp r8d, r11d
je 0x1401cb6d5
mov eax, r8d
xor edx, edx
div r10d
mov eax, dword [rsp + rdx*4 + 0x50]
mov ebx, dword [rsp + rdx*4 + 0x40]
mov ecx, ebx
neg ecx
mov ebp, 0
cmp eax, ecx
jle 0x1401cb660
movzx ecx, word [r9]
rol cx, 8
movzx esi, cx
mov edx, eax
neg edx
xor ebp, ebp
mov r14d, eax
nop word cs:[rax + rax]
mov edi, esi
mov ecx, eax
shl edi, cl
mov r15d, esi
mov ecx, edx
shr r15d, cl
test eax, eax
cmovg r15d, edi
or ebp, r15d
sub r14d, ebx
add edx, ebx
test eax, eax
mov eax, r14d
jg 0x1401cb6b0
jmp 0x1401cb660
mov rdi, qword [rsp + 0x30]
mov eax, dword [rdi + 0x16c]
mov rsi, qword [rsp + 0x38]
test eax, 0x20000
je 0x1401cb926
mov rax, qword [rdi + 0x248]
inc rax
movzx ecx, byte [rsi + 0x10]
cmp ecx, 4
je 0x1401cb7e8
cmp ecx, 6
jne 0x1401cb926
cmp byte [rsi + 0x11], 8
mov ecx, dword [rsi]
jne 0x1401cb851
test ecx, ecx
je 0x1401cb926
cmp ecx, 4
jb 0x1401cb7a4
mov edx, ecx
and edx, 0xfffffffc
nop
movd xmm0, dword [rax]
movdqa xmm1, xmm0
psrld xmm1, 8
pslld xmm0, 0x18
por xmm0, xmm1
movd xmm1, dword [rax + 8]
movdqa xmm2, xmm1
psrld xmm2, 8
pslld xmm1, 0x18
por xmm1, xmm2
movd xmm2, dword [rax + 0xc]
movdqa xmm3, xmm2
psrld xmm3, 8
pslld xmm2, 0x18
por xmm2, xmm3
punpckldq xmm1, xmm2
movd xmm2, dword [rax + 4]
movdqa xmm3, xmm2
psrld xmm3, 8
pslld xmm2, 0x18
por xmm2, xmm3
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
movdqu xmmword [rax], xmm0
add rax, 0x10
add edx, 0xfffffffc
jne 0x1401cb730
test cl, 3
je 0x1401cb926
and ecx, 3
xor edx, edx
nop word cs:[rax + rax]
movd xmm0, dword [rax + rdx*4]
movdqa xmm1, xmm0
psrld xmm1, 8
pslld xmm0, 0x18
por xmm0, xmm1
movd dword [rax + rdx*4], xmm0
inc rdx
cmp ecx, edx
jne 0x1401cb7c0
jmp 0x1401cb926
cmp byte [rsi + 0x11], 8
mov ecx, dword [rsi]
jne 0x1401cb8ac
test ecx, ecx
je 0x1401cb926
cmp ecx, 4
jb 0x1401cb82c
mov edx, ecx
and edx, 0xfffffffc
nop word cs:[rax + rax]
rol word [rax], 8
rol word [rax + 2], 8
rol word [rax + 4], 8
rol word [rax + 6], 8
add rax, 8
add edx, 0xfffffffc
jne 0x1401cb810
test cl, 3
je 0x1401cb926
and ecx, 3
xor edx, edx
nop word [rax + rax]
rol word [rax + rdx*2], 8
inc rdx
cmp ecx, edx
jne 0x1401cb840
jmp 0x1401cb926
test ecx, ecx
je 0x1401cb926
cmp ecx, 1
je 0x1401cb894
mov edx, ecx
and edx, 0xfffffffe
nop word cs:[rax + rax]
movq xmm0, qword [rax]
pshuflw xmm0, xmm0, 0x39
movq xmm1, qword [rax + 8]
pshuflw xmm1, xmm1, 0x39
punpcklqdq xmm0, xmm1
movdqu xmmword [rax], xmm0
add rax, 0x10
add edx, 0xfffffffe
jne 0x1401cb870
test cl, 1
je 0x1401cb926
movq xmm0, qword [rax]
pshuflw xmm0, xmm0, 0x39
movq qword [rax], xmm0
jmp 0x1401cb926
test ecx, ecx
je 0x1401cb926
cmp ecx, 4
jb 0x1401cb900
mov edx, ecx
and edx, 0xfffffffc
nop word [rax + rax]
movd xmm0, dword [rax]
pshuflw xmm0, xmm0, 0xe1
movd xmm1, dword [rax + 8]
pshuflw xmm1, xmm1, 0xe1
movd xmm2, dword [rax + 0xc]
pshuflw xmm2, xmm2, 0xe1
punpckldq xmm1, xmm2
movd xmm2, dword [rax + 4]
pshuflw xmm2, xmm2, 0xe1
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
movdqu xmmword [rax], xmm0
add rax, 0x10
add edx, 0xfffffffc
jne 0x1401cb8c0
test cl, 3
je 0x1401cb926
and ecx, 3
xor edx, edx
nop word [rax + rax]
movd xmm0, dword [rax + rdx*4]
pshuflw xmm0, xmm0, 0xe1
movd dword [rax + rdx*4], xmm0
inc rdx
cmp ecx, edx
jne 0x1401cb910
test byte [rdi + 0x16e], 8
je 0x1401cbacc
mov rcx, qword [rdi + 0x248]
lea rax, [rcx + 1]
movzx edx, byte [rsi + 0x10]
cmp edx, 4
je 0x1401cb9c0
cmp edx, 6
jne 0x1401cbacc
cmp byte [rsi + 0x11], 8
mov edx, dword [rsi]
jne 0x1401cba30
test rdx, rdx
je 0x1401cbacc
cmp edx, 4
jb 0x1401cb9a1
mov r8d, edx
and r8d, 0xfffffffc
xor r9d, r9d
nop word cs:[rax + rax]
not byte [rcx + r9*4 + 4]
not byte [rcx + r9*4 + 8]
not byte [rcx + r9*4 + 0xc]
not byte [rcx + r9*4 + 0x10]
add rax, 0x10
add r9, 4
cmp r8d, r9d
jne 0x1401cb980
test dl, 3
je 0x1401cbacc
and edx, 3
xor ecx, ecx
nop
not byte [rax + rcx*4 + 3]
inc rcx
cmp edx, ecx
jne 0x1401cb9b0
jmp 0x1401cbacc
cmp byte [rsi + 0x11], 8
mov edx, dword [rsi]
jne 0x1401cba7e
test rdx, rdx
je 0x1401cbacc
cmp edx, 4
jb 0x1401cba11
mov r8d, edx
and r8d, 0xfffffffc
xor r9d, r9d
nop word cs:[rax + rax]
not byte [rcx + r9*2 + 2]
not byte [rcx + r9*2 + 4]
not byte [rcx + r9*2 + 6]
not byte [rcx + r9*2 + 8]
add rax, 8
add r9, 4
cmp r8d, r9d
jne 0x1401cb9f0
test dl, 3
je 0x1401cbacc
and edx, 3
xor ecx, ecx
nop
not byte [rax + rcx*2 + 1]
inc rcx
cmp edx, ecx
jne 0x1401cba20
jmp 0x1401cbacc
test rdx, rdx
je 0x1401cbacc
cmp edx, 1
je 0x1401cba71
mov r8d, edx
and r8d, 0xfffffffe
xor r9d, r9d
nop dword [rax + rax]
not byte [rcx + r9*8 + 7]
not byte [rcx + r9*8 + 8]
not byte [rcx + r9*8 + 0xf]
not byte [rcx + r9*8 + 0x10]
add rax, 0x10
add r9, 2
cmp r8d, r9d
jne 0x1401cba50
test dl, 1
je 0x1401cbacc
not byte [rax + 6]
not byte [rax + 7]
jmp 0x1401cbacc
test rdx, rdx
je 0x1401cbacc
cmp edx, 1
je 0x1401cbac1
mov r8d, edx
and r8d, 0xfffffffe
xor r9d, r9d
nop word cs:[rax + rax]
not byte [rcx + r9*4 + 3]
not byte [rcx + r9*4 + 4]
not byte [rcx + r9*4 + 7]
not byte [rcx + r9*4 + 8]
add rax, 8
add r9, 2
cmp r8d, r9d
jne 0x1401cbaa0
test dl, 1
je 0x1401cbacc
not byte [rax + 2]
not byte [rax + 3]
mov eax, dword [rdi + 0x16c]
test al, 1
je 0x1401cbaee
mov rdx, qword [rdi + 0x248]
inc rdx
mov rcx, rsi
call fcn.1400b6b70
mov eax, dword [rdi + 0x16c]
test al, 0x20
jne 0x1401cbb11
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1405602f0
nop
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rdi + 0x248]
inc rdi
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1405602f0
mov rcx, rsi
mov rdx, rdi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400b6740