Function at 0x180002750
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x20
movsxd rbx, dword [rcx]
xor r13d, r13d
mov rsi, r9
mov ebp, r8d
mov r14, rdx
mov r15, rcx
mov edi, r13d
test ebx, ebx
je 0x1800027b7
mov rcx, rbx
cmp rbx, 0x10
jge 0x1800027b0
cmp edi, ebp
jae 0x1800027b0
movzx eax, byte [r14]
inc ebx
xor byte [rcx + r15 + 0x64], al
inc r14
movzx eax, byte [rcx + r15 + 0x64]
inc edi
mov byte [rsi], al
inc rcx
inc rsi
cmp rcx, 0x10
jl 0x180002788
cmp ebx, 0x10
cmove ebx, r13d
mov eax, ebp
mov qword [rsp + 0x50], r12
sub eax, edi
cmp eax, 0x10
jb 0x180002912
lea r12d, [rdi + 0x10]
cmp r12d, ebp
ja 0x180002912
nop word [rax + rax]
lea rdx, [r15 + 0x64]
mov rcx, r15
call fcn.1800021b0
movzx eax, byte [r14]
add edi, 0x10
xor byte [r15 + 0x64], al
add r12d, 0x10
movzx eax, byte [r15 + 0x64]
mov byte [rsi], al
movzx eax, byte [r14 + 1]
xor byte [r15 + 0x65], al
movzx eax, byte [r15 + 0x65]
mov byte [rsi + 1], al
movzx eax, byte [r14 + 2]
xor byte [r15 + 0x66], al
movzx eax, byte [r15 + 0x66]
mov byte [rsi + 2], al
movzx eax, byte [r14 + 3]
xor byte [r15 + 0x67], al
movzx eax, byte [r15 + 0x67]
mov byte [rsi + 3], al
movzx eax, byte [r14 + 4]
xor byte [r15 + 0x68], al
movzx eax, byte [r15 + 0x68]
mov byte [rsi + 4], al
movzx eax, byte [r14 + 5]
xor byte [r15 + 0x69], al
movzx eax, byte [r15 + 0x69]
mov byte [rsi + 5], al
movzx eax, byte [r14 + 6]
xor byte [r15 + 0x6a], al
movzx eax, byte [r15 + 0x6a]
mov byte [rsi + 6], al
movzx eax, byte [r14 + 7]
xor byte [r15 + 0x6b], al
movzx eax, byte [r15 + 0x6b]
mov byte [rsi + 7], al
movzx eax, byte [r14 + 8]
xor byte [r15 + 0x6c], al
movzx eax, byte [r15 + 0x6c]
mov byte [rsi + 8], al
movzx eax, byte [r14 + 9]
xor byte [r15 + 0x6d], al
movzx eax, byte [r15 + 0x6d]
mov byte [rsi + 9], al
movzx eax, byte [r14 + 0xa]
xor byte [r15 + 0x6e], al
movzx eax, byte [r15 + 0x6e]
mov byte [rsi + 0xa], al
movzx eax, byte [r14 + 0xb]
xor byte [r15 + 0x6f], al
movzx eax, byte [r15 + 0x6f]
mov byte [rsi + 0xb], al
movzx eax, byte [r14 + 0xc]
xor byte [r15 + 0x70], al
movzx eax, byte [r15 + 0x70]
mov byte [rsi + 0xc], al
movzx eax, byte [r14 + 0xd]
xor byte [r15 + 0x71], al
movzx eax, byte [r15 + 0x71]
mov byte [rsi + 0xd], al
movzx eax, byte [r14 + 0xe]
xor byte [r15 + 0x72], al
movzx eax, byte [r15 + 0x72]
mov byte [rsi + 0xe], al
movzx eax, byte [r14 + 0xf]
add r14, 0x10
xor byte [r15 + 0x73], al
movzx eax, byte [r15 + 0x73]
mov byte [rsi + 0xf], al
add rsi, 0x10
cmp r12d, ebp
jbe 0x1800027e0
cmp edi, ebp
jae 0x180002975
nop word [rax + rax]
lea rdx, [r15 + 0x64]
mov rcx, r15
call fcn.1800021b0
cmp edi, ebp
jae 0x18000296a
movsxd rax, ebx
mov rdx, 0xffffffffffffff9c
add rax, 0x64
add rax, r15
sub rdx, r15
lea rcx, [rdx + rax]
cmp rcx, 0x10
jge 0x18000296a
movzx ecx, byte [r14]
inc ebx
xor byte [rax], cl
inc r14
movzx ecx, byte [rax]
inc edi
mov byte [rsi], cl
inc rax
inc rsi
cmp edi, ebp
jb 0x180002944
cmp ebx, 0x10
cmove ebx, r13d
cmp edi, ebp
jb 0x180002920
mov r12, qword [rsp + 0x50]
mov eax, 1
mov rbp, qword [rsp + 0x60]
mov dword [r15], ebx
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r13
pop rdi
pop rsi
ret