Function at 0x18000fcb0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
movzx edx, word [0x18002505c]
mov eax, dword [0x180025000]
movzx edi, word [0x180025018]
mov r15, qword [0x180025078]
movsxd rsi, dword [rsp + 0xa8]
xor r15, 0x1292
lea ecx, [rax + rax*2]
movsxd rbx, r9d
mov rax, qword [0x180024fd8]
mov r10, rsi
movsxd r8, ecx
inc esi
movsxd rcx, dword [0x180025034]
and rdi, rcx
dec ecx
movzx ebp, cx
inc ecx
mov r12, qword [rax + r8*8]
neg bp
inc dword [0x180024fc8]
movzx eax, byte [0x180025030]
or al, 0x36
mov dword [0x180025034], ecx
xor byte [0x180024fcf], al
mov rax, qword [0x180024fd0]
lea r8, [rax + rdi*4]
mov rax, qword [0x180025048]
mov ecx, dword [rax + rbx*8]
mov eax, 0xffff
imul ecx, edx
inc ebx
xor edx, edx
movsxd r14, ebx
or dword [r8], ecx
add word [0x18002505c], ax
mov rax, qword [rsp + 0xc8]
mov ecx, dword [rax + r14*8]
mov eax, dword [r15]
add eax, 0x15
cdqe
movzx r8d, word [rax + rax + 0x1726]
mov eax, 0x573
div r8d
mov rdx, r10
movsxd r8, eax
mov rax, qword [rsp + 0xb8]
mov r9d, dword [rax + 0x308]
call fcn.180001960
lea ecx, [rbx + 8]
mov r13d, edi
movsxd rdx, ecx
mov rcx, qword [0x180025028]
movsxd rbx, edi
mov dword [rcx + rdx*4], eax
cmp rbx, rdi
jbe 0x18000ffe0
mov rcx, qword [rsp + 0x78]
lea rax, [rbx*4]
movsxd rsi, esi
mov edx, 0x82
xor rsi, 0xd51
mov qword [rsp + 0xc8], rax
lea r8, [rcx + rbx*2]
mov qword [rsp + 0xb8], r8
nop
movzx eax, word [rdx]
movzx ecx, bp
or eax, ecx
mov qword [rsp + 0x38], rsi
cdq
mov qword [rsp + 0x30], rdi
idiv r13d
mov qword [rsp + 0x28], 0x1002
sub ax, word [r8]
mov word [r8], ax
mov eax, dword [0x180025034]
add eax, 7
movsxd rcx, eax
mov eax, 0x67fbf029
movzx r9d, word [rcx*4 + 0x1483]
movzx ecx, word [0x180025030]
mul ecx
shr edx, 0xa
imul eax, edx, 0x9d9
mov rdx, qword [0x180025020]
sub ecx, eax
movzx eax, bp
movsxd r10, ecx
mov ecx, r13d
sub ecx, eax
mov qword [rsp + 0x20], r10
movsxd r8, ecx
mov ecx, 0x2b4f
call fcn.180011db0
movsxd rcx, eax
mov rax, qword [0x180025008]
mov qword [rax + r14*8], rcx
mov eax, dword [0x180024fec]
mov r8d, dword [0x180025004]
inc eax
mov dword [0x180024fec], eax
or r8d, 0x41
movsxd rcx, eax
mov rax, qword [0x180024fe0]
mov dword [0x180025004], r8d
lea rdx, [rax + rcx*8]
movsxd rax, r8d
mov eax, dword [rax*4 + 0x1483]
add eax, r13d
cdqe
xor qword [rdx], rax
mov rax, qword [0x180025080]
lea r9, [rax + r14*2]
mov eax, dword [0x180024fec]
add eax, eax
movsxd rcx, eax
mov eax, 0xb68d3135
mov r8d, dword [r15 + rcx*4]
movzx ecx, word [r9]
sub r8d, 0x991
imul r8d
add edx, r8d
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv ecx
mov rcx, qword [rsp + 0xc8]
mov word [r9], dx
movsxd rax, dword [0x180025004]
mov rdx, qword [rsp + 0x98]
movzx ecx, byte [rcx + r12]
movzx r8d, byte [r12 + r14*2]
xor bp, word [0x180025058]
and r8d, 0x4ae
sub ecx, dword [rdx + rax*4]
mov eax, dword [0x180024fec]
add eax, 0x11
movsxd r11, ecx
movsxd rcx, eax
mov eax, 0x168b
movzx r9d, word [rcx + rcx]
movsxd r10, dword [rax]
xor r9, 0xe81
xor r10, 0xb0f
mov rax, qword [0x180025050]
mov rcx, r11
mov rdx, rax
inc rax
mov qword [rsp + 0x38], rdx
xor edx, edx
mov qword [rsp + 0x30], 0x1b1d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r10
mov qword [0x180025050], rax
call fcn.1800020e0
mov rdx, qword [rsp + 0xc8]
inc r13d
mov r8, qword [rsp + 0xb8]
mov rcx, qword [0x180025010]
add r8, 2
movsxd rbx, r13d
mov qword [rsp + 0xb8], r8
mov dword [rdx + rcx], eax
add rdx, 4
mov qword [rsp + 0xc8], rdx
mov edx, 0x82
cmp rbx, rdi
ja 0x18000fe00
mov rax, qword [rsp + 0xb0]
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movzx eax, byte [r14 + rax]
add eax, 0x1d86
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret