Function at 0x140001890
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x30
mov edi, 4
lea r10, [rbp - 0x1e]
mov r11d, edi
mov r14, r9
mov r13, r8
mov rbx, rcx
add rdx, 8
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
mov byte [r10 - 2], al
lea r10, [r10 + 4]
movzx eax, byte [rdx - 5]
mov byte [r10 - 5], al
movzx eax, byte [rdx - 1]
mov byte [r10 - 4], al
movzx eax, byte [rdx + 3]
mov byte [r10 - 3], al
sub r11, 1
jne 0x1400018c0
lea rcx, [rbp - 0x1e]
mov r8, rdi
lea rdx, [r9 + 8]
nop dword [rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x140001900
mov r15d, dword [rbx + 4]
lea r12, [0x140000000]
mov ebx, 1
lea esi, [r15 - 1]
cmp esi, ebx
jb 0x140001b24
nop word [rax + rax]
lea rcx, [rbp - 0x1e]
mov rdx, rdi
movzx eax, byte [rcx - 2]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 6], al
movzx eax, byte [rcx - 5]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 5], al
movzx eax, byte [rcx - 4]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 4], al
movzx eax, byte [rcx - 3]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 3], al
sub rdx, 1
jne 0x140001957
movzx eax, byte [rbp - 0x1b]
xorps xmm0, xmm0
mov byte [rbp + 0x40], al
xor r9d, r9d
movzx eax, byte [rbp - 0x1a]
mov byte [rbp + 0x41], al
movzx eax, byte [rbp - 0x19]
mov byte [rbp + 0x42], al
movzx eax, byte [rbp - 0x1c]
mov byte [rbp + 0x43], al
mov eax, dword [rbp + 0x40]
mov dword [rbp - 0x1c], eax
movzx eax, byte [rbp - 0x16]
mov byte [rbp + 0x58], al
movzx eax, byte [rbp - 0x15]
mov byte [rbp + 0x59], al
movzx eax, byte [rbp - 0x18]
mov byte [rbp + 0x5a], al
movzx eax, byte [rbp - 0x17]
mov byte [rbp + 0x5b], al
mov eax, dword [rbp + 0x58]
mov dword [rbp - 0x18], eax
movzx eax, byte [rbp - 0x11]
mov byte [rbp - 0x30], al
movzx eax, byte [rbp - 0x14]
mov byte [rbp - 0x2f], al
movzx eax, byte [rbp - 0x13]
mov byte [rbp - 0x2e], al
movzx eax, byte [rbp - 0x12]
mov byte [rbp - 0x2d], al
mov eax, dword [rbp - 0x30]
mov dword [rbp - 0x14], eax
movups xmmword [rbp - 0x10], xmm0
xor eax, eax
lea r11, [r12 + 0x13bc0]
add r11, r9
nop
movzx ecx, byte [r11 + rax]
movzx r8d, byte [rbp + r9 - 0x10]
mov r10d, ecx
movzx edx, byte [rbp + rax*4 - 0x20]
cmp cl, 1
jne 0x140001a5b
xor dl, r8b
mov byte [rbp + r9 - 0x10], dl
movzx ecx, byte [rbp + rax*4 - 0x1f]
xor byte [rbp + r9 - 0xf], cl
movzx ecx, byte [rbp + rax*4 - 0x1e]
xor byte [rbp + r9 - 0xe], cl
movzx ecx, byte [rbp + rax*4 - 0x1d]
jmp 0x140001aad
shl r10, 8
lea rcx, [r10 + rdx]
xor r8b, byte [rcx + r12 + 0x13cd0]
mov byte [rbp + r9 - 0x10], r8b
movzx ecx, byte [rbp + rax*4 - 0x1f]
add rcx, r10
movzx ecx, byte [rcx + r12 + 0x13cd0]
xor byte [rbp + r9 - 0xf], cl
movzx ecx, byte [rbp + rax*4 - 0x1e]
add rcx, r10
movzx ecx, byte [rcx + r12 + 0x13cd0]
xor byte [rbp + r9 - 0xe], cl
movzx ecx, byte [rbp + rax*4 - 0x1d]
add rcx, r10
movzx ecx, byte [rcx + r12 + 0x13cd0]
xor cl, byte [rbp + r9 - 0xd]
inc rax
mov byte [rbp + r9 - 0xd], cl
cmp rax, rdi
jb 0x140001a20
add r9, rdi
cmp r9, 0x10
jb 0x140001a11
movaps xmm0, xmmword [rbp - 0x10]
lea rcx, [rbp - 0x1e]
mov edx, ebx
movdqa xmmword [rbp - 0x20], xmm0
shl edx, 4
mov r8, rdi
add rdx, 8
add rdx, r14
nop dword [rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x140001af0
inc ebx
cmp ebx, esi
jbe 0x140001950
lea rcx, [rbp - 0x1e]
mov rdx, rdi
nop dword [rax + rax]
movzx eax, byte [rcx - 2]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 6], al
movzx eax, byte [rcx - 5]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 5], al
movzx eax, byte [rcx - 4]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 4], al
movzx eax, byte [rcx - 3]
movzx eax, byte [rax + r12 + 0x13bd0]
mov byte [rcx - 3], al
sub rdx, 1
jne 0x140001b30
movzx eax, byte [rbp - 0x1b]
lea rcx, [rbp - 0x1e]
mov byte [rbp + 0x40], al
mov r8, rdi
movzx eax, byte [rbp - 0x1a]
mov byte [rbp + 0x41], al
movzx eax, byte [rbp - 0x19]
mov byte [rbp + 0x42], al
movzx eax, byte [rbp - 0x1c]
mov byte [rbp + 0x43], al
mov eax, dword [rbp + 0x40]
mov dword [rbp - 0x1c], eax
movzx eax, byte [rbp - 0x16]
mov byte [rbp + 0x40], al
movzx eax, byte [rbp - 0x15]
mov byte [rbp + 0x41], al
movzx eax, byte [rbp - 0x18]
mov byte [rbp + 0x42], al
movzx eax, byte [rbp - 0x17]
mov byte [rbp + 0x43], al
mov eax, dword [rbp + 0x40]
mov dword [rbp - 0x18], eax
movzx eax, byte [rbp - 0x11]
mov byte [rbp + 0x40], al
movzx eax, byte [rbp - 0x14]
mov byte [rbp + 0x41], al
movzx eax, byte [rbp - 0x13]
mov byte [rbp + 0x42], al
movzx eax, byte [rbp - 0x12]
shl r15d, 4
mov edx, r15d
mov byte [rbp + 0x43], al
add rdx, 8
mov eax, dword [rbp + 0x40]
add rdx, r14
mov dword [rbp - 0x14], eax
nop word [rax + rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x140001c00
lea rcx, [r13 + 8]
lea rdx, [rbp - 0x1e]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov byte [rcx - 8], al
lea rcx, [rcx + 1]
movzx eax, byte [rdx - 5]
mov byte [rcx - 5], al
movzx eax, byte [rdx - 4]
mov byte [rcx - 1], al
movzx eax, byte [rdx - 3]
mov byte [rcx + 3], al
sub rdi, 1
jne 0x140001c40
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret