Function at 0x180017880
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
mov qword [r11 + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x88
mov eax, dword [rcx + 4]
mov r9, rdx
cdq
mov qword [r11 + 0x10], rbx
and edx, 3
mov qword [r11 - 0x38], r14
add eax, edx
lea rbx, [r11 - 0x80]
sar eax, 2
mov r12, r8
movsxd r13, eax
mov r8, rcx
lea rax, [0x180000000]
movsx rdx, byte [rax + r13 + 0x43cc0]
movsx edi, byte [rax + rdx*8 + 0x43cd5]
movsx r15d, byte [rax + rdx*8 + 0x43cd7]
movsx esi, byte [rax + rdx*8 + 0x43cd3]
mov dword [rsp + 0xd8], edi
mov dword [rsp + 0x20], r15d
test r13d, r13d
jle 0x18001795c
lea r11, [rcx + 0x1f0]
mov r14, r13
nop dword [rax]
nop word [rax + rax]
movzx r10d, byte [r9]
mov r8, rbx
movzx eax, byte [r9 + 1]
add rbx, 4
movzx ecx, byte [r9 + 2]
lea r11, [r11 + 4]
movzx edx, byte [r9 + 3]
lea r9, [r9 + 4]
shl r10d, 8
or r10d, eax
shl r10d, 8
or r10d, ecx
shl r10d, 8
or r10d, edx
xor r10d, dword [r11 - 4]
mov dword [r8], r10d
sub r14, 1
jne 0x180017910
mov r8, qword [rsp + 0xc0]
movsxd rcx, dword [r8 + 8]
xor r9d, r9d
cmp rcx, 1
jle 0x180017a87
lea eax, [r13*4]
mov rbx, r8
cdqe
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x30], rax
sub rbx, rdx
lea rax, [rcx - 1]
add rbx, 0x210
mov qword [rsp + 0x28], rax
mov r12d, edi
nop word [rax + rax]
mov r15, r9
test r13d, r13d
jle 0x180017a41
mov edi, dword [rsp + 0x20]
mov r11d, r12d
sub r11d, esi
lea r12, [0x180000000]
sub edi, esi
mov r14d, esi
lea eax, [r14 + r11]
cdq
lea r10, [rsp + 0x38]
idiv r13d
lea r10, [r10 + r15*4]
movsxd rax, edx
mov ecx, dword [rsp + rax*4 + 0x38]
lea eax, [r14 + rdi]
cdq
sar ecx, 8
idiv r13d
movzx r8d, cl
movsxd rax, edx
mov r9d, dword [r12 + r8*4 + 0x41280]
movzx ecx, byte [rsp + rax*4 + 0x38]
mov eax, r14d
cdq
inc r14d
idiv r13d
xor r9d, dword [r12 + rcx*4 + 0x41680]
movsxd rax, edx
movzx ecx, byte [rsp + rax*4 + 0x3a]
movzx eax, byte [r10 + 3]
xor r9d, dword [r12 + rcx*4 + 0x40e80]
xor r9d, dword [r12 + rax*4 + 0x40a80]
xor r9d, dword [r10 + rbx]
mov dword [rsp + r15*4 + 0x58], r9d
inc r15
cmp r15, r13
jl 0x1800179c2
mov r12d, dword [rsp + 0xd8]
mov r8, qword [rsp + 0x30]
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x38]
call fcn.180008d80
add rbx, 0x20
mov r9d, 0
sub qword [rsp + 0x28], 1
jne 0x1800179a0
mov r12, qword [rsp + 0xd0]
mov edi, dword [rsp + 0xd8]
mov r15d, dword [rsp + 0x20]
mov r8, qword [rsp + 0xc0]
mov r14, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xc8]
test r13d, r13d
jle 0x180017b59
sub esi, edi
lea r10, [0x180000000]
sub r15d, edi
nop dword [rax]
movsxd rax, dword [r8 + 8]
lea r12, [r12 + 4]
lea rcx, [r9 + rax*8]
mov r8d, dword [r8 + rcx*4 + 0x1f0]
mov eax, r8d
movzx ecx, byte [rsp + r9*4 + 0x3b]
inc r9
sar eax, 0x18
xor al, byte [rcx + r10 + 0x3e980]
mov byte [r12 - 4], al
lea eax, [rsi + rdi]
cdq
idiv r13d
movsxd rax, edx
movzx ecx, byte [rsp + rax*4 + 0x3a]
mov eax, r8d
sar eax, 0x10
xor al, byte [rcx + r10 + 0x3e980]
mov byte [r12 - 3], al
mov eax, edi
cdq
idiv r13d
movsxd rax, edx
mov ecx, dword [rsp + rax*4 + 0x38]
mov eax, r8d
sar eax, 8
sar ecx, 8
movzx edx, cl
xor al, byte [rdx + r10 + 0x3e980]
mov byte [r12 - 2], al
lea eax, [r15 + rdi]
cdq
inc edi
idiv r13d
movsxd rax, edx
movzx ecx, byte [rsp + rax*4 + 0x38]
xor r8b, byte [rcx + r10 + 0x3e980]
mov byte [r12 - 1], r8b
mov r8, qword [rsp + 0xc0]
cmp r9, r13
jl 0x180017ab0
add rsp, 0x88
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret