Function at 0x1800024e0
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 0x180002553
cmp rbx, 0x10
jge 0x18000254c
add rcx, 0x64
mov rdx, 0xffffffffffffff9c
add rcx, rbx
sub rdx, r15
cmp edi, ebp
jae 0x18000254c
movzx eax, byte [r14]
inc ebx
xor byte [rcx], al
inc r14
movzx eax, byte [rcx]
inc edi
inc rcx
mov byte [rsi], al
inc rsi
lea rax, [rdx + rcx]
cmp rax, 0x10
jl 0x180002526
cmp ebx, 0x10
cmove ebx, r13d
mov eax, ebp
mov qword [rsp + 0x50], r12
sub eax, edi
cmp eax, 0x10
jb 0x1800026a4
lea r12d, [rdi + 0x10]
cmp r12d, ebp
ja 0x1800026a4
lea rdx, [r15 + 0x64]
mov rcx, r15
call fcn.1800021d0
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 0x180002572
cmp edi, ebp
jae 0x180002701
nop dword [rax + rax]
lea rdx, [r15 + 0x64]
mov rcx, r15
call fcn.1800021d0
movsxd rax, ebx
mov rdx, 0xffffffffffffff9c
add rax, 0x64
add rax, r15
sub rdx, r15
lea rcx, [rax + rdx]
cmp rcx, 0x10
jge 0x1800026f6
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 0x1800026d0
cmp ebx, 0x10
cmove ebx, r13d
cmp edi, ebp
jb 0x1800026b0
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