Function at 0x18000320c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r13
push r14
push r15
xor edi, edi
mov rbp, rdx
cmp dword [0x180054ab0], edi
mov rbx, rcx
jne 0x18000323f
mov dword [0x180054ab0], 1
mov ecx, r8d
sub ecx, 0x80
je 0x180003270
sub ecx, 0x40
je 0x180003264
cmp ecx, 0x40
jne 0x18000373d
mov dword [rbx + 0x200], 0xe
jmp 0x18000327a
mov dword [rbx + 0x200], 0xc
jmp 0x18000327a
mov dword [rbx + 0x200], 0xa
shr r8d, 5
lea r10, [rdx + 2]
mov rsi, rbx
mov r11, rbx
sub rsi, rbp
mov r9d, edi
mov r15d, 4
lea eax, [r9*4]
inc r9d
movsxd rcx, eax
movzx eax, byte [r10 - 1]
movzx edx, byte [rcx + rbp]
shl edx, 8
or edx, eax
movzx eax, byte [r10]
shl edx, 8
or edx, eax
movzx eax, byte [r10 + 1]
shl edx, 8
or edx, eax
mov dword [rsi + r10 - 2], edx
add r10, r15
cmp r9d, r8d
jl 0x180003294
mov eax, dword [rbx + 0x200]
lea r14, [0x180000000]
cmp eax, 0xa
je 0x1800034b6
cmp eax, 0xc
je 0x180003407
cmp eax, 0xe
jne 0x180003551
mov ebp, dword [rbx]
lea rsi, [0x18003fa60]
lea r13, [0x18003fa7c]
mov r10d, dword [r11 + 0x1c]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x3d860]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x3d860]
xor edx, eax
movzx eax, byte [r11 + 0x1c]
shl edx, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor edx, eax
mov eax, r10d
shr rax, 0x18
shl edx, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor edx, eax
xor edx, dword [rsi]
add rsi, r15
xor edx, ebp
mov eax, edx
mov dword [r11 + 0x20], edx
xor eax, dword [r11 + 4]
mov ebp, edx
mov dword [r11 + 0x24], eax
xor eax, dword [r11 + 8]
mov dword [r11 + 0x28], eax
xor eax, dword [r11 + 0xc]
mov edx, eax
shr rax, 0x18
mov dword [r11 + 0x2c], edx
movzx r8d, byte [rax + r14 + 0x3d860]
mov eax, edx
shl r8d, 8
shr eax, 0x10
movzx ecx, al
shr edx, 8
movzx eax, byte [rcx + r14 + 0x3d860]
xor r8d, eax
movzx eax, dl
shl r8d, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor r8d, eax
movzx eax, byte [r11 + 0x2c]
shl r8d, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor r8d, eax
xor r8d, dword [r11 + 0x10]
mov dword [r11 + 0x30], r8d
xor r8d, dword [r11 + 0x14]
mov dword [r11 + 0x34], r8d
xor r8d, dword [r11 + 0x18]
xor r10d, r8d
mov dword [r11 + 0x38], r8d
mov dword [r11 + 0x3c], r10d
add r11, 0x20
cmp rsi, r13
jl 0x180003308
jmp 0x180003551
mov r9d, dword [rbx]
lea rsi, [0x18003fa60]
lea r10, [0x18003fa80]
mov r8d, dword [r11 + 0x14]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x3d860]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x3d860]
xor edx, eax
movzx eax, byte [r11 + 0x14]
shl edx, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor edx, eax
mov eax, r8d
shr rax, 0x18
shl edx, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor edx, eax
xor r9d, edx
xor r9d, dword [rsi]
add rsi, r15
mov eax, r9d
mov dword [r11 + 0x18], r9d
xor eax, dword [r11 + 4]
mov dword [r11 + 0x1c], eax
xor eax, dword [r11 + 8]
mov dword [r11 + 0x20], eax
xor eax, dword [r11 + 0xc]
mov dword [r11 + 0x24], eax
xor eax, dword [r11 + 0x10]
xor r8d, eax
mov dword [r11 + 0x28], eax
mov dword [r11 + 0x2c], r8d
add r11, 0x18
cmp rsi, r10
jl 0x180003418
jmp 0x180003551
mov r9d, dword [rbx]
lea rsi, [0x18003fa60]
lea r10, [0x18003fa88]
mov r8d, dword [r11 + 0xc]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x3d860]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x3d860]
xor edx, eax
movzx eax, byte [r11 + 0xc]
shl edx, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor edx, eax
mov eax, r8d
shr rax, 0x18
shl edx, 8
movzx eax, byte [rax + r14 + 0x3d860]
xor edx, eax
xor edx, dword [rsi]
add rsi, r15
xor edx, r9d
mov eax, edx
mov dword [r11 + 0x10], edx
xor eax, dword [r11 + 4]
mov r9d, edx
mov dword [r11 + 0x14], eax
xor eax, dword [r11 + 8]
mov dword [r11 + 0x18], eax
xor eax, r8d
mov dword [r11 + 0x1c], eax
add r11, 0x10
cmp rsi, r10
jl 0x1800034c7
cmp dword [0x180054ab4], edi
jne 0x1800035b8
movzx ecx, byte [rdi + r14 + 0x3d860]
mov eax, dword [r14 + rcx*4 + 0x3ea60]
mov dword [r14 + rdi*4 + 0x53ab0], eax
mov eax, dword [r14 + rcx*4 + 0x3ee60]
mov dword [r14 + rdi*4 + 0x53eb0], eax
mov eax, dword [r14 + rcx*4 + 0x3f260]
mov dword [r14 + rdi*4 + 0x542b0], eax
mov eax, dword [r14 + rcx*4 + 0x3f660]
mov dword [r14 + rdi*4 + 0x546b0], eax
inc rdi
cmp rdi, 0x100
jl 0x180003559
mov dword [0x180054ab4], 1
lea r10, [rbx + 0x100]
mov rcx, r15
mov eax, dword [r11]
add r11, r15
mov dword [r10], eax
add r10, r15
sub rcx, 1
jne 0x1800035c2
lea edi, [rcx + 1]
cmp dword [rbx + 0x200], edi
jle 0x180003715
sub r11, 0x20
inc edi
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x53ab0]
xor r8d, dword [r14 + rcx*4 + 0x53eb0]
xor r8d, dword [r14 + rax*4 + 0x542b0]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x546b0]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x53ab0]
xor r8d, dword [r14 + rcx*4 + 0x53eb0]
xor r8d, dword [r14 + rax*4 + 0x542b0]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x546b0]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x53ab0]
xor r8d, dword [r14 + rcx*4 + 0x53eb0]
xor r8d, dword [r14 + rax*4 + 0x542b0]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x546b0]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
mov edx, r9d
shr eax, 0x10
movzx ecx, al
shr rdx, 0x18
shr r9d, 8
movzx eax, r9b
mov r8d, dword [r14 + rdx*4 + 0x53ab0]
xor r8d, dword [r14 + rcx*4 + 0x53eb0]
xor r8d, dword [r14 + rax*4 + 0x542b0]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x546b0]
mov dword [r10], r8d
add r10, r15
cmp edi, dword [rbx + 0x200]
jl 0x1800035e3
sub r11, 0x20
mov eax, dword [r11]
mov dword [r10], eax
add r10, r15
add r11, r15
mov eax, dword [r11]
mov dword [r10], eax
mov eax, dword [r11 + r15]
mov dword [r10 + r15], eax
mov eax, dword [r11 + r15 + 4]
mov dword [r10 + r15 + 4], eax
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r13
ret