Function at 0x70b88610
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
movaps xmmword [rsp + 0x20], xmm6
test rcx, rcx
mov rbx, rcx
je 0x70b889c0
mov rdi, qword [rcx]
lea rcx, [0x70ba1360]
mov ebp, 7
cmp rdi, 7
cmovge rbp, rdi
call fcn.70b9bdf0
lea rdx, [rbp + 0x21]
mov rcx, rax
call fcn.70b87900
lea r8, [rbp + 0x11]
xor edx, edx
lea r9, [rax + 0x10]
mov qword [rax + 8], 1
mov rsi, rax
mov rcx, r9
call sub.msvcrt.dll_memset
movq xmm0, rdi
movq xmm3, rbp
punpcklqdq xmm0, xmm3
movups xmmword [rsi + 0x10], xmm0
mov rcx, qword [rbx]
mov r9, rax
mov rdx, rcx
sub rdx, 1
js 0x70b889a2
lea r10, [rbx + 0x10]
lea r8, [rsi + 0x30]
lea rax, [rsi + 0x20]
cmp r10, r8
lea r8, [rbx + 0x20]
setae r10b
cmp rax, r8
setae r8b
or r10b, r8b
je 0x70b88a00
cmp rdx, 0xe
jbe 0x70b88a00
mov r8, rcx
movdqa xmm6, xmmword [0x70bbf400]
pxor xmm3, xmm3
and r8, 0xfffffffffffffff0
movdqa xmm5, xmmword [0x70bbf410]
lea r10, [rsi + r8 + 0x20]
movdqa xmm4, xmmword [str.]
mov r8, rbx
sub r8, rsi
nop dword [rax]
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rax + r8 - 0x10]
add rax, 0x10
movdqa xmm0, xmm2
movdqa xmm1, xmm2
paddb xmm0, xmm6
pxor xmm1, xmm4
psubusb xmm0, xmm5
pcmpeqb xmm0, xmm3
pand xmm1, xmm0
pandn xmm0, xmm2
por xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rax, r10
jne 0x70b88700
mov rax, rcx
and rax, 0xfffffffffffffff0
cmp rcx, rax
je 0x70b889a2
movzx ecx, byte [rbx + rax + 0x10]
lea r10d, [rcx - 0x41]
mov r8d, ecx
xor r8d, 0x20
cmp r10b, 0x1a
cmovb ecx, r8d
lea r8, [rax + 1]
mov byte [r9 + rax + 0x10], cl
cmp rdx, r8
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x11]
lea r8, [rax + 2]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x11], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x12]
lea r8, [rax + 3]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x12], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x13]
lea r8, [rax + 4]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x13], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x14]
lea r8, [rax + 5]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x14], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x15]
lea r8, [rax + 6]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x15], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x16]
lea r8, [rax + 7]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x16], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x17]
lea r8, [rax + 8]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x17], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x18]
lea r8, [rax + 9]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x18], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x19]
lea r8, [rax + 0xa]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x19], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x1a]
lea r8, [rax + 0xb]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x1a], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x1b]
lea r8, [rax + 0xc]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x1b], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x1c]
lea r8, [rax + 0xd]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
cmp rdx, r8
mov byte [r9 + rax + 0x1c], cl
jl 0x70b889a2
movzx ecx, byte [rbx + rax + 0x1d]
lea r11d, [rcx - 0x41]
mov r10d, ecx
xor r10d, 0x20
cmp r11b, 0x1a
cmovb ecx, r10d
mov byte [r9 + rax + 0x1d], cl
add rax, 0xe
cmp rdx, rax
jl 0x70b889a2
movzx edx, byte [rbx + rax + 0x10]
lea r8d, [rdx - 0x41]
mov ecx, edx
xor ecx, 0x20
cmp r8b, 0x1a
cmovb edx, ecx
mov byte [r9 + rax + 0x10], dl
movaps xmm6, xmmword [rsp + 0x20]
mov rax, r9
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
lea rcx, [0x70ba1360]
call fcn.70b9bdf0
mov edx, 0x28
mov rcx, rax
call fcn.70b87900
movdqa xmm0, xmmword [0x70bbf430]
mov qword [rax + 8], 1
lea r9, [rax + 0x10]
mov qword [rax + 0x20], 0
movups xmmword [rax + 0x10], xmm0
jmp 0x70b889a2
xor eax, eax
nop dword [rax]
nop word cs:[rax + rax]
movzx edx, byte [rbx + rax + 0x10]
lea r8d, [rdx - 0x41]
cmp r8b, 0x19
ja 0x70b88a43
xor edx, 0x20
mov byte [r9 + rax + 0x10], dl
add rax, 1
cmp rcx, rax
je 0x70b889a2
movzx edx, byte [rbx + rax + 0x10]
lea r8d, [rdx - 0x41]
cmp r8b, 0x19
jbe 0x70b88a1f
mov byte [r9 + rax + 0x10], dl
add rax, 1
cmp rcx, rax
jne 0x70b88a10
jmp 0x70b889a2