Function at 0x18001ae44
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
movsxd r11, dword [0x18002f8a4]
mov r12, rdx
mov r9d, dword [0x18002f914]
mov rax, r11
mov rbx, qword [rsp + 0xf0]
mov r10, r11
mov rsi, qword [rsp + 0xe0]
mov r14, r8
mov r8, qword [0x18002f920]
mov edi, ecx
imul rax, rdx
movzx ebp, word [rbx + 0x3402]
mov edx, 1
mov qword [rsp + 0x70], rax
add r8, rdx
mov rax, qword [0x18002f8e0]
add ebp, 0x61e
mov qword [rsp + 0x68], rax
and edi, 0xcc5
movzx eax, word [0x18002f8dc]
mov r13d, ecx
mov qword [rsp + 0xc8], rax
add ax, dx
mov word [0x18002f8dc], ax
mov rax, qword [0x18002f8f0]
mov word [rsp + 0xf0], r9w
add r9d, edx
mov dword [0x18002f914], r9d
movsxd r15, dword [rax + r11*4]
sub r11d, edx
mov rax, qword [0x18002f918]
mov dword [0x18002f8a4], r11d
mov qword [0x18002f920], r8
mov r11d, dword [rax + r8*8]
mov eax, dword [0x18002f8a0]
xor r11d, dword [rsp + 0xe8]
sub eax, edx
mov rdx, qword [0x18002f8b8]
mov dword [0x18002f8a0], eax
cdqe
mov qword [rsp + 0x60], rax
movzx eax, dx
sub ax, word [rsi + 0x3220]
mov word [rsp + 0xc0], ax
cmp r9d, 0xfc3
jg 0x18001b0cc
mov r10, qword [0x18002f8f8]
cmp qword [r14 + r8*8], r10
ja 0x18001b0cc
movsxd rax, dword [r15]
movzx ecx, word [rbx + rax*2]
cmp qword [0x18002f930], rcx
jne 0x18001b0cc
movzx eax, word [rsi + r10*4]
cmp rax, qword [r14 + 0xd710]
ja 0x18001b0cc
mov eax, 0xe18
mov rax, qword [rax]
movzx ecx, word [rsi + rax*4]
cmp ecx, r13d
jne 0x18001b02a
mov r9d, dword [0x18002f8d8]
mov edx, 1
mov eax, dword [0x18002f944]
sub r9d, edx
sub eax, edx
mov dword [0x18002f8d8], r9d
mov dword [0x18002f944], eax
add r8, rdx
add eax, 0x132f
mov qword [0x18002f920], r8
movsxd rcx, eax
lea eax, [rdx + 0x1a]
cdq
idiv r9d
mov edx, 0x120
movsxd r9, eax
call fcn.180009ba0
mov dword [0x18002f8a4], eax
movzx ecx, word [rsi]
mov rax, qword [0x18002f918]
mov qword [rax + rcx*8], 0x18cb
mov eax, 0x17fd
mov ecx, 0x1998
mov rax, qword [rax]
mov byte [rax + 0x1825], 0xe8
movzx eax, word [rsi]
xor word [rbx + rax*2], cx
jmp 0x18001b4f1
movsxd rax, dword [0x18002f8c0]
cmp rax, qword [r14 + 0x6720]
jb 0x18001b060
cmp r11d, 0x49d
jl 0x18001b060
mov rax, qword [0x18002f8b0]
mov rcx, qword [rsp + 0x60]
movsxd rcx, dword [rcx + rax*4]
cmp qword [0x18002f928], rcx
jne 0x18001b0ff
cmp dword [0x18002f8c4], 0xc6a
jne 0x18001b0ff
movzx eax, word [rsp + 0xc0]
and edx, 0xb61
mov rcx, qword [rsp + 0xc8]
xor eax, r13d
mov dword [0x18002f8a0], eax
mov qword [0x18002f8b8], rdx
movzx eax, word [rsi]
mov qword [r14 + rax*8], 0x2404
movzx eax, word [0x18002f8dc]
movsxd rcx, dword [rcx + rax*4]
mov eax, 0x17fd
or rcx, 0x9e6
mov rax, qword [rax]
mov qword [rax*8 + 0xe18], rcx
mov r9d, dword [0x18002f914]
jmp 0x18001b0ff
mov rcx, qword [0x18002f8d0]
mov r8d, 0x1bf6
dec rcx
mov dword [0x18002f948], r8d
xor edx, edx
mov qword [0x18002f8d0], rcx
movzx eax, word [rdi + 0x1c0a]
div rcx
sub edx, r8d
mov dword [0x18002f948], edx
movzx r10d, word [rsp + 0xf0]
mov r8d, 1
movsxd rax, r9d
add r10w, r8w
add byte [rax + 0x1825], 0x2f
add word [rsi], r8w
movzx ecx, word [rsi]
movzx eax, r10w
and eax, 0x216
and qword [r14 + rcx*8 + 0x98], rax
movzx edx, byte [0x1984]
movsxd rax, dword [0x18002f914]
and rdx, rax
mov rax, qword [0x18002f8f8]
lea rcx, [rax + rax*2]
mov qword [rcx*8 + 0xe18], rdx
mov r9, qword [0x18002f8f8]
sub r9, r8
mov qword [0x18002f8f8], r9
movzx eax, word [rsi]
add rsi, 2
lea rcx, [rax + rax*2]
movsxd r8, dword [r14 + rcx*8]
cmp r8d, dword [0x18002f8a0]
je 0x18001b1d5
mov rax, qword [0x18002f928]
lea rcx, [rdi + r8*2]
mov r9, rbx
sub r9, rdi
add rax, 0x1db6
mov qword [0x18002f928], rax
movzx eax, word [r9 + rcx]
cdq
idiv r8d
xor word [rcx], ax
mov eax, 0x1be0
cdq
lea rcx, [rcx + 2]
idiv r8d
inc r8d
cmp r8d, dword [0x18002f8a0]
cdqe
mov qword [0x18002f928], rax
jne 0x18001b193
mov r9, qword [0x18002f8f8]
cmp qword [0x18002f920], 0x1ed6
jb 0x18001b2a0
movzx eax, word [rsi]
movzx edx, word [rbx + 0x2036]
lea rcx, [rax + rax*2]
mov qword [rcx*8 + 0x17fd], rdx
mov qword [0x18002f920], 0x81
mov eax, dword [r15]
add r15, 4
add eax, eax
cdqe
movzx ecx, word [rdi + rax*2]
mov eax, 0x801
and word [0x18002f940], r10w
sub eax, ecx
cdqe
mov ecx, 0x1d04
mov qword [0x18002f928], rax
mov eax, 0x17fd
mov rax, qword [rax]
and word [rbp + rax*2], cx
mov r9, qword [0x18002f8f8]
mov ebp, 1
movzx eax, word [0x18002f938]
mov rdx, qword [rsp + 0x70]
movsxd rcx, dword [rdx + rax*4]
cmp qword [0x18002f8e0], rcx
jae 0x18001b3a4
movzx eax, word [rsi]
movzx ecx, word [rdx + rax*8]
mov eax, 0x10ab
and cx, ax
mov word [rsi + r9*2], cx
add qword [0x18002f8f8], rbp
movsxd rcx, dword [0x18002f914]
movzx eax, word [rdi + 0x1acc]
cdq
idiv dword [r15 + rcx*4]
mov dword [r15 + rcx*4], eax
jmp 0x18001b4bf
movzx ecx, word [rbp]
movsxd rax, r11d
cmp rax, qword [r14 + rcx*8]
jne 0x18001b2f7
mov word [rbx + rcx*2], r12w
mov eax, 0x17fd
movzx ecx, word [rsi]
mov rax, qword [rax]
lea rdx, [rax + rax*2]
mov rax, qword [0x18002f900]
mov ecx, dword [rax + rcx*4 + 0x60]
mov rax, qword [0x18002f8f0]
mov dword [rax + rdx*4], ecx
mov edx, 0x132f
mov rcx, qword [0x18002f8f8]
movzx eax, word [rsp + 0xd8]
add ax, dx
add word [rbp + rcx*2], ax
jmp 0x18001b240
movzx eax, byte [0x2b54]
mov r10d, dword [0x18002f910]
cmp eax, r10d
jle 0x18001b247
movzx ecx, word [rsi]
mov ebp, 1
mov r11, qword [rsp + 0x68]
mov rax, qword [0x18002f8f0]
movzx r8d, word [r11 + r9*2 + 0x1484]
sub r9, rbp
mov edx, dword [rax + rcx*4]
mov qword [0x18002f8f8], r9
cmp edx, r8d
jg 0x18001b24c
mov eax, 0xffff
sub r10d, ebp
mov dword [0x18002f910], r10d
add word [rsi], ax
mov eax, r13d
movzx r8d, word [rsi]
cdq
idiv dword [0x18002f910]
movsxd rcx, eax
add rcx, qword [0x18002f930]
xor qword [r14 + r8*8], rcx
mov rax, qword [0x18002f8f8]
movsxd rdx, dword [0x18002f914]
add rax, rbp
mov qword [0x18002f8f8], rax
movzx ecx, word [r11 + rax*2 + 0x149c]
movzx eax, word [0x18002f93c]
add rcx, rax
xor qword [r14 + rdx*8], rcx
jmp 0x18001b4f1
mov r8, qword [0x18002f930]
xor edx, edx
movzx r10d, word [rdi + 0x3aa6]
sub r8, rbp
mov rcx, qword [rsp + 0xe8]
mov qword [0x18002f930], r8
or rcx, 0xe0c
movzx eax, word [rsi]
movzx eax, word [rsi + rax*2]
add rsi, 2
div r8
movzx eax, word [rsi]
mov r8, rdx
mov edx, r10d
mov r9, qword [r14 + rax*8]
imul r9, qword [0x18002f8b8]
call fcn.180009ba0
mov rcx, qword [0x18002f8f8]
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x58], 0x1800
mov dword [rdx + rcx*4], eax
xor edx, edx
mov eax, dword [0x18002f914]
add eax, ebp
mov dword [0x18002f914], eax
add eax, eax
movsxd rcx, eax
mov rax, qword [0x18002f8b0]
movzx edi, word [rsi + rcx*2]
movzx r9d, word [rbx + rax*4 + 0x16]
mov rax, qword [0x18002f8d0]
movzx ebx, word [rbx + 0xe58]
mov r11, rax
xor r11, qword [0x18002f8e0]
add rbx, rax
div qword [0x73e0]
movzx eax, word [rsi]
mov r10, rdx
imul ecx, r13d, 0x1342
xor edx, edx
mov rax, qword [rax*8 + 0xe18]
div r12
movsxd r8, ecx
sub r12, rbp
mov qword [rsp + 0x50], r8
mov edx, edi
mov r8d, dword [rsp + 0xd8]
mov ecx, 0x8e6
mov byte [rsp + 0x48], al
mov qword [rsp + 0x40], 0x1ec
mov byte [rsp + 0x38], r10b
mov qword [rsp + 0x30], 0xbd4
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], rbx
call fcn.18000810c
movzx ecx, word [rsi]
mov word [rsi + rcx*8], ax
movzx ecx, word [rsi]
mov rax, qword [0x18002f8f8]
add rax, 0x1376
xor qword [r14 + rcx*8], rax
mov eax, 0xe18
movsxd rdx, dword [0x18002f948]
mov rax, qword [rax]
movzx ecx, word [rsi + rax*4]
movzx eax, word [rsi + rdx*2]
imul eax, ecx
mov word [rsi + rdx*2], ax
mov eax, r12d
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret