Function at 0x180001350
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
mov r9d, dword [0x180073ad0]
lea r13d, [rcx + 1]
movzx r10d, byte [0x180073a6c]
mov rdi, rdx
movsxd rax, dword [0x180073acc]
inc r9d
movsxd rcx, dword [0x180073a5c]
mov r8, qword [0x180073a50]
movzx ebp, word [0x180073ac8]
inc r8
mov qword [rsp], rax
add ebp, 0x13e7
mov dword [0x180073ad0], r9d
movsxd rax, r9d
inc r9d
movzx r14d, r13b
mov eax, dword [rdx + rax*4]
cdq
idiv dword [rdi + r10*4]
mov qword [0x180073a50], r8
add r8, r8
movsxd r12, eax
mov rax, qword [0x180073a70]
mov r11, qword [rax + 0x8220]
mov eax, dword [0x180073aac]
and r11, rcx
mov qword [rsp + 0x60], r11
lea ecx, [rax + rax*2]
mov rax, qword [0x180073ab8]
movsxd rdx, ecx
mov rbx, qword [rax + rdx*8]
mov dword [0x180073ad0], r9d
or rbx, 0x1279
movzx eax, r13b
mov eax, dword [rdi + rax*8]
cdq
idiv r9d
dec r9d
mov dword [0x180073ad0], r9d
movsxd rax, edx
xor edx, edx
mov qword [rsp + 8], rax
mov eax, r10d
shl eax, 2
inc r10b
movsxd rsi, dword [rdi + rax*4]
mov rax, qword [0x180073a60]
mov byte [0x180073a6c], r10b
movsxd r9, dword [rdi + 0x28cc]
mov qword [rsp + 0x58], r9
imul rax, qword [rax + r8*8], 0x1ec
dec qword [rbx]
movzx ecx, byte [0x180073a6c]
mov qword [rsp + 0x68], rax
mov rax, qword [rbx]
lea r8, [rdi + rax*4]
mov eax, 0x1031
div qword [rbp + rcx*8]
lea eax, [rsi + rsi]
sub edx, dword [r8]
mov dword [r8], edx
mov r8d, esi
movsxd rcx, eax
cmp rsi, qword [rbp + rcx*8]
jbe 0x180001532
movzx edx, r13b
mov r9, rsi
xor r9, r14
movabs r14, 0x3e6cfe0e75b30969
lea eax, [rdx + rdx*2]
lea r10, [rdi + rax*4]
lea eax, [rdx + 0x22]
lea r11, [rax*8]
mov rax, rsi
shl rax, 4
add rbp, rax
nop
mov eax, dword [0x180073ad0]
inc r8d
xor dword [rdi + rsi*4], eax
movzx eax, byte [0x180073a6c]
inc al
mov byte [0x180073a6c], al
movzx eax, al
lea rcx, [rax + rax*2]
mov rax, qword [0x180073b00]
lea rdx, [rax + rcx*8]
movsxd rax, dword [r10]
add qword [rdx], rax
mov rax, qword [0x180073ab8]
mov rcx, qword [r11 + rax]
mov rax, r14
and rcx, r9
mul rcx
movsxd rax, r8d
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xc
mov qword [0x180073a50], rcx
cmp rax, qword [rbp]
ja 0x1800014c0
mov r9, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
movzx r14d, r13b
mov rax, qword [0x180073ae0]
mov rdx, qword [0x180073ae8]
movsxd rcx, dword [0x180073aac]
dec rdx
mov qword [0x180073ae8], rdx
lea r8, [rdi + rax*8]
mov rax, qword [0x180073a60]
mov rax, qword [rax + rcx*8]
movzx ecx, byte [0x180073a6c]
sub rax, rdx
xor edx, edx
div rcx
xor dword [r8], edx
movzx eax, byte [0x180073a6c]
mov rdx, qword [rsp + 0x68]
add rax, rax
movzx r8d, r13b
mov rax, qword [rdx + rax*8]
xor edx, edx
add rax, r14
lea ecx, [r8*2 + 2]
div qword [r11 + rcx*8]
mov qword [r11 + rcx*8], rdx
dec qword [rbx]
mov rax, qword [rbx]
mov rdx, qword [rsp + 8]
mov rcx, qword [rsp]
mov ecx, dword [rcx + rax*8 + 8]
movzx eax, byte [rax + rdx]
xor ecx, r8d
and ecx, eax
imul eax, dword [0x180073a9c], 0x1ecd
xor ecx, 0x12d1
sub ecx, dword [0x180073a58]
mov dword [0x180073a58], ecx
mov ecx, dword [rdi + rsi*4]
cdq
idiv dword [0x180073b10]
lea eax, [rax + rcx*2]
mov dword [rdi + rsi*4], eax
dec esi
movsxd r10, dword [0x180073ad0]
movzx eax, byte [r12 + 0x184d]
cmp r10d, eax
jl 0x1800016b6
movsxd rax, esi
lea r11, [rdi + r10*4]
add r9, r10
movabs r15, 0x5f846b7239d7aa2f
lea rbp, [rax + rax]
nop dword [rax]
mov rcx, qword [0x180073b08]
lea r9, [r9 + 1]
mov rax, qword [0x180073a80]
lea r11, [r11 + 4]
inc r10d
movzx eax, word [rax + rbp]
sub eax, dword [rcx + 0x6004]
movzx ecx, byte [r14 + 0xc77]
sub eax, ecx
cdq
idiv esi
movzx ecx, al
movzx eax, byte [r9 - 1]
imul eax, ecx
mov byte [r9 - 1], al
mov rax, r15
inc qword [rbx]
mov rcx, qword [0x180073a50]
mov r8, qword [rbx]
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 0xb
imul eax, eax, 0xba7
sub ecx, eax
mov dword [rdi + r8*4], ecx
movzx eax, word [r11 - 4]
movzx ecx, word [0x180073ac8]
imul ecx, eax
mov word [0x180073ac8], cx
movzx eax, byte [r12 + 0x184d]
cmp r10d, eax
jge 0x180001620
mov rax, qword [0x180073a50]
mov rbx, qword [rsp + 0x50]
xor rax, 0x1a1b
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret