Function at 0x18001c100
Capabilities:
Encode data using xor

Disassembly:
test r8d, r8d
je 0x18001c4db
push rbx
push rsi
push rdi
sub rsp, 0x20
mov qword [rsp + 0x40], rbp
xor r11d, r11d
mov qword [rsp + 0x48], r14
lea rbp, [rcx + 8]
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
lea r14d, [r11 + 2]
nop
xor edx, edx
mov eax, r11d
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, ecx
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp - 8], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, ecx
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp - 4], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
or edx, ecx
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, eax
mov eax, r11d
xor dword [rbp], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, ecx
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp + 4], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, ecx
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp + 8], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
or edx, r10d
shl edx, 8
movzx ecx, byte [r8 + rdi]
or edx, ecx
movzx eax, byte [r9 + rdi]
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp + 0xc], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, ecx
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp + 0x10], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
shl r10d, 8
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
mov r8d, edx
xor edx, edx
div ebx
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
or edx, r10d
shl edx, 8
movzx eax, byte [r9 + rdi]
or edx, ecx
shl edx, 8
or edx, eax
mov eax, r11d
xor dword [rbp + 0x14], edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
add r11d, 2
movzx r10d, byte [rdx + rdi]
xor edx, edx
div ebx
mov eax, r11d
mov ecx, edx
xor edx, edx
div ebx
lea eax, [r11 + 1]
mov r8d, edx
xor edx, edx
div ebx
add r11d, 2
mov r9d, edx
movzx edx, byte [rcx + rdi]
movzx ecx, byte [r8 + rdi]
lea rbp, [rbp + 0x24]
movzx eax, byte [r9 + rdi]
shl r10d, 8
or edx, r10d
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
xor dword [rbp - 0xc], edx
sub r14, 1
jne 0x18001c130
mov r14, qword [rsp + 0x48]
mov rbx, rsi
mov dword [rsp + 0x58], 0
mov edi, 9
mov dword [rsp + 0x50], 0
nop dword [rax + rax]
lea r8, [rsp + 0x58]
mov rcx, rsi
lea rdx, [rsp + 0x50]
call fcn.180011880
mov eax, dword [rsp + 0x50]
mov dword [rbx], eax
lea rbx, [rbx + 8]
mov eax, dword [rsp + 0x58]
mov dword [rbx - 4], eax
sub rdi, 1
jne 0x18001c460
lea rbx, [rsi + 0x48]
lea ebp, [rdi + 4]
mov edi, 0x80
nop word [rax + rax]
lea r8, [rsp + 0x58]
mov rcx, rsi
lea rdx, [rsp + 0x50]
call fcn.180011880
mov eax, dword [rsp + 0x50]
mov dword [rbx], eax
mov eax, dword [rsp + 0x58]
mov dword [rbx + 4], eax
add rbx, 8
sub rdi, 1
jne 0x18001c4a0
sub rbp, 1
jne 0x18001c490
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret