Function at 0x140199d50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push r14
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0x88
cmp dword [rcx], 0
mov r14, r9
mov eax, r8d
mov rsi, rdx
mov r15, rcx
je 0x140199d87
mov eax, 0xfffffffb
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret
mov r8d, dword [rcx + 4]
cmp r8d, 2
je 0x140199daa
cmp dword [rcx + 8], 0
jne 0x140199daa
mov eax, 0xfffffffa
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret
test rsi, rsi
je 0x14019a1a6
test eax, eax
jle 0x14019a1a6
mov qword [rsp + 0xb8], rbx
cdq
mov qword [rsp + 0xc0], rdi
and edx, 0x7f
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0x80], r13
lea edi, [rdx + rax]
sar edi, 7
mov dword [rbp + 0x1b], edi
test r8d, r8d
je 0x14019a178
sub r8d, 1
je 0x14019a0bb
cmp r8d, 1
je 0x140199e34
mov eax, 0xffffffff
mov r12, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb8]
mov r13, qword [rsp + 0x80]
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret
mov eax, dword [rcx + 0xc]
mov r12d, edi
mov dword [rbp + 7], eax
mov eax, dword [rcx + 0x10]
mov dword [rbp + 0xb], eax
mov eax, dword [rcx + 0x14]
mov dword [rbp + 0xf], eax
mov eax, dword [rcx + 0x18]
mov dword [rbp + 0x13], eax
mov dword [rbp + 0x17], edi
test edi, edi
jle 0x14019a19c
movzx eax, byte [rbp + 0x14]
movzx ecx, byte [rbp + 0x13]
movzx ebx, byte [rbp + 0x16]
movzx r13d, byte [rbp + 0x15]
mov byte [rbp + 3], al
movzx eax, byte [rbp + 0x12]
mov byte [rbp - 5], al
movzx eax, byte [rbp + 0x10]
mov byte [rbp - 9], al
movzx eax, byte [rbp + 0xe]
mov byte [rbp - 1], cl
movzx ecx, byte [rbp + 0x11]
mov byte [rbp - 0x19], al
movzx eax, byte [rbp + 0xc]
mov byte [rbp - 7], cl
movzx ecx, byte [rbp + 0xf]
mov byte [rbp - 0x1d], al
movzx eax, byte [rbp + 0xa]
mov byte [rbp - 0x11], cl
movzx ecx, byte [rbp + 0xd]
mov byte [rbp - 0x25], al
movzx eax, byte [rbp + 8]
mov byte [rbp - 0x1b], cl
movzx ecx, byte [rbp + 0xb]
mov byte [rbp - 0x29], al
movzx eax, byte [rbp + 7]
mov byte [rbp - 0x21], cl
movzx ecx, byte [rbp + 9]
mov byte [rbp + 0x67], al
mov byte [rbp - 0x27], cl
nop word [rax + rax]
movzx r12d, byte [rbp + 3]
xor edi, edi
nop word [rax + rax]
movaps xmm0, xmmword [rbp + 7]
lea r8, [rbp + 0x27]
lea rdx, [rbp + 0x27]
movdqa xmmword [rbp + 0x27], xmm0
mov rcx, r15
call fcn.14019aa30
movzx ecx, byte [rbp - 0x29]
movzx eax, byte [rbp + 0x67]
shr cl, 7
add al, al
or cl, al
movzx eax, byte [rbp - 0x29]
mov byte [rbp + 0x67], cl
add al, al
mov byte [rbp + 7], cl
movzx ecx, byte [rbp - 0x27]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x27]
mov byte [rbp - 0x29], cl
add al, al
mov byte [rbp + 8], cl
movzx ecx, byte [rbp - 0x25]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x25]
mov byte [rbp - 0x27], cl
add al, al
mov byte [rbp + 9], cl
movzx ecx, byte [rbp - 0x21]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x21]
mov byte [rbp - 0x25], cl
add al, al
mov byte [rbp + 0xa], cl
movzx ecx, byte [rbp - 0x1d]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x1d]
mov byte [rbp - 0x21], cl
add al, al
mov byte [rbp + 0xb], cl
movzx ecx, byte [rbp - 0x1b]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x1b]
mov byte [rbp - 0x1d], cl
add al, al
mov byte [rbp + 0xc], cl
movzx ecx, byte [rbp - 0x19]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x19]
mov byte [rbp - 0x1b], cl
add al, al
mov byte [rbp + 0xd], cl
movzx ecx, byte [rbp - 0x11]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 0x11]
mov byte [rbp - 0x19], cl
add al, al
mov byte [rbp + 0xe], cl
movzx ecx, byte [rbp - 9]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 9]
mov byte [rbp - 0x11], cl
add al, al
mov byte [rbp + 0xf], cl
movzx ecx, byte [rbp - 7]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 7]
mov byte [rbp - 9], cl
add al, al
mov byte [rbp + 0x10], cl
movzx ecx, byte [rbp - 5]
shr cl, 7
or cl, al
movzx eax, byte [rbp - 5]
movzx r10d, r12b
movzx r11d, byte [rbp - 1]
add al, al
mov byte [rbp - 7], cl
movzx r9d, dil
mov byte [rbp + 0x11], cl
and r9b, 7
movzx ecx, r13b
shr r11b, 7
or r11b, al
shr cl, 7
movzx eax, byte [rbp - 1]
add al, al
shr r10b, 7
or r10b, al
mov byte [rbp - 5], r11b
movzx eax, r12b
mov byte [rbp + 0x12], r11b
add al, al
mov byte [rbp - 1], r10b
movzx r12d, cl
mov byte [rbp + 0x13], r10b
or r12b, al
movzx ecx, bl
movzx eax, r13b
shr cl, 7
add al, al
mov byte [rbp + 0x14], r12b
movzx r13d, cl
or r13b, al
mov eax, edi
mov byte [rbp + 0x15], r13b
test edi, edi
jns 0x14019a053
lea eax, [rdi + 7]
sar eax, 3
mov ecx, 7
movsxd r8, eax
sub cl, r9b
movzx eax, bl
inc edi
add al, al
movzx edx, byte [r8 + rsi]
shr dl, cl
movzx ecx, r9b
and dl, 1
movzx ebx, dl
or bl, al
movzx eax, byte [rbp + 0x27]
and al, 0x80
mov byte [rbp + 0x16], bl
shr al, cl
xor byte [r8 + r14], al
cmp edi, 0x80
jl 0x140199ee0
mov byte [rbp + 3], r12b
mov r12d, dword [rbp + 0x17]
dec r12d
mov dword [rbp + 0x17], r12d
test r12d, r12d
jg 0x140199ed0
mov edi, dword [rbp + 0x1b]
shl edi, 7
mov eax, edi
jmp 0x140199e06
mov eax, dword [rcx + 0xc]
mov r13d, edi
mov dword [rbp + 7], eax
mov eax, dword [rcx + 0x10]
mov dword [rbp + 0xb], eax
mov eax, dword [rcx + 0x14]
mov dword [rbp + 0xf], eax
mov eax, dword [rcx + 0x18]
mov dword [rbp + 0x13], eax
test edi, edi
jle 0x14019a19c
lea r12, [rsi + 8]
sub rsi, r14
add rsi, 0xfffffffffffffff8
lea rdi, [r9 + 8]
nop dword [rax]
lea rbx, [rsi + rdi]
mov rcx, r15
mov rdx, rbx
lea r8, [rbp + 0x27]
call fcn.14019a610
mov eax, dword [rbx]
lea rdi, [rdi + 0x10]
movdqa xmm1, xmmword [rbp + 7]
lea r12, [r12 + 0x10]
pxor xmm1, xmmword [rbp + 0x27]
dec r13d
movd dword [rdi - 0x18], xmm1
movdqa xmm0, xmm1
psrldq xmm0, 4
mov dword [rbp + 7], eax
mov eax, dword [r12 - 0x14]
movd dword [rdi - 0x14], xmm0
movdqa xmm0, xmm1
mov dword [rbp + 0xb], eax
mov eax, dword [r12 - 0x10]
psrldq xmm0, 8
movd dword [rdi - 0x10], xmm0
movdqa xmmword [rbp + 0x27], xmm1
mov dword [rbp + 0xf], eax
mov eax, dword [r12 - 0xc]
psrldq xmm1, 0xc
movd dword [rdi - 0xc], xmm1
mov dword [rbp + 0x13], eax
test r13d, r13d
jg 0x14019a0f0
mov edi, dword [rbp + 0x1b]
shl edi, 7
mov eax, edi
jmp 0x140199e06
mov ebx, edi
test edi, edi
jle 0x14019a19c
nop
mov r8, r14
mov rdx, rsi
mov rcx, r15
call fcn.14019a610
add rsi, 0x10
add r14, 0x10
dec ebx
test ebx, ebx
jg 0x14019a180
shl edi, 7
mov eax, edi
jmp 0x140199e06
xor eax, eax
add rsp, 0x88
pop r15
pop r14
pop rsi
pop rbp
ret