Function at 0x180008a98
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov rax, qword [0x18002f930]
mov r11d, 1
mov r10, qword [0x18002f8e0]
mov r13, rax
mov rsi, qword [rsp + 0xd0]
add rax, r11
mov rcx, qword [rsp + 0xe8]
xor edx, edx
mov qword [0x18002f930], rax
mov r12, r9
mov rbx, qword [0x18002f8b0]
mov eax, r10d
xor eax, 0x1832
mov qword [rsp + 0x48], rbx
mov dword [rsp + 0xc8], eax
mov rax, qword [0x18002f928]
mov dword [rsp + 0xb8], eax
sub rax, r11
mov qword [0x18002f928], rax
mov eax, dword [0x18002f8a0]
sub eax, r11d
mov dword [0x18002f8a0], eax
cdqe
movzx r15d, word [rcx + rax*2]
movzx ecx, word [rsi]
movzx eax, byte [r8 + rcx*2 + 0x25]
div r10
mov rax, qword [rsp + 0xd8]
mov r9, rdx
xor edx, edx
mov rax, qword [rax + rcx*8]
mov rcx, qword [0x18002f8b8]
div rcx
sub rcx, r11
xor edx, edx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xe0]
mov qword [0x18002f8b8], rcx
movzx ecx, word [0x18002f93c]
div rcx
mov eax, 0xffff
movzx ecx, r9w
add word [rsi + 2], ax
add r9w, r11w
mov rax, qword [0x18002f908]
mov r14, rdx
mov rbp, qword [0x18002f8e8]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0xd0], r9
movsxd r8, dword [rax + rcx*4]
mov r10, r8
cmp r8, rbp
jae 0x180008c0a
movzx edx, word [rsi + 2]
mov rax, qword [0x18002f918]
lea ecx, [rdx + 0x1d]
mov r11, qword [rax + rdx*8]
mov eax, 0x1cd4
sub eax, dword [rbx + rcx*4]
movsxd rdi, eax
mov eax, 0x3d8
movsxd rcx, r15d
or r14w, ax
xor edx, edx
mov rax, rdi
inc r8d
or rax, r10
movsxd r10, r8d
and rax, r11
div rcx
mov r15, rax
cmp r10, rbp
jb 0x180008bd7
mov qword [rsp + 0x40], r14
mov r11d, 1
movzx ecx, word [rsi + 2]
mov rax, qword [0x18002f8c8]
shl rcx, 5
mov edi, dword [rcx + rax]
cmp edi, dword [0x18002f8a0]
jne 0x180008d89
xor edx, edx
lea ebp, [rdi + rdi]
mov eax, 0x90
mov r14b, r15b
div qword [rsp + 0xe0]
or r14b, 0x5b
mov r8, rax
mov qword [rsp + 0xe0], rax
mov rax, qword [0x18002f900]
movzx ecx, word [rsi + 2]
mov dl, byte [rsp + 0xf0]
add dl, r11b
movsxd rbx, edi
mov byte [rsp + 0xf0], dl
add dword [rax + rcx*4], r8d
mov al, r14b
movzx ecx, word [rsi + 2]
sub al, dl
movzx edx, r15w
add byte [rcx + r12], al
mov ecx, 0x1289
movzx eax, byte [rbx + r12]
add eax, edi
movsxd r8, eax
call fcn.1800078c0
mov r9, qword [rsp + 0xd0]
mov ecx, eax
movzx eax, word [rsi + 2]
movsxd rdx, ebp
mov byte [rax + r12], cl
mov al, dil
mov rcx, qword [rsp + 0xc0]
add al, al
and al, 0xaf
or byte [rbx + rcx], al
mov rbx, qword [rsp + 0x48]
movzx eax, word [rdx + rdx + 0x10fa]
movzx ecx, r9w
add rcx, rcx
cmp eax, dword [rbx + rcx*8 + 0x58]
jne 0x180008d5c
mov rax, qword [0x18002f920]
mov rcx, qword [rsp + 0xe8]
movsxd r8, dword [rbx + 0x63ec]
movzx ecx, word [rcx + rax*2]
or cx, word [0x18002f8b8]
mov rax, qword [0x18002f8c8]
or r9w, cx
mov ecx, dword [0x18002f8c4]
add ecx, 0xffffe886
mov qword [rsp + 0xd0], r9
mov r9, qword [rax + rdx*8]
mov dl, r15b
movsxd rax, dword [0x18002f914]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], ecx
mov rcx, r13
mov qword [rsp + 0x28], 0x19c3
mov qword [rsp + 0x20], 0x1f06
call fcn.18000207c
mov r9, qword [rsp + 0xd0]
mov edx, eax
mov dword [0x18002f914], eax
jmp 0x180008d62
mov edx, dword [0x18002f914]
mov r8, qword [rsp + 0xe0]
mov r11d, 1
add edi, r11d
add ebp, 2
cmp edi, dword [0x18002f8a0]
je 0x180008c4c
mov r14, qword [rsp + 0x40]
jmp 0x180008d8f
mov edx, dword [0x18002f914]
movsxd rax, dword [0x18002f948]
sub rax, qword [0x18002f8f8]
mov rcx, qword [rsp + 0xe8]
mov qword [0x18002f8f8], rax
movsxd rax, edx
add edx, r11d
movzx ecx, word [rcx + rax*2]
sub rcx, qword [0x18002f8d0]
movzx eax, word [0x18002f8dc]
mov qword [0x18002f8d0], rcx
add rax, rax
mov rcx, qword [rsp + 0xd8]
mov dword [0x18002f914], edx
movsxd r8, dword [rcx + rax*8]
cmp r8d, dword [0x18002f944]
jne 0x180008e5f
mov rcx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xd8]
movzx r10d, r9w
lea r9, [rcx + r8*2]
movzx ecx, word [rsi + 2]
add r8d, r11d
movzx eax, byte [r12 + r10*4]
or rax, 0x155
sub rax, qword [rbx + rcx*8]
mov qword [rbx + rcx*8], rax
movzx edx, byte [r12 + 0x1a41]
movzx ecx, word [0x18002f8dc]
imul edx, ecx
xor word [r9], dx
xor edx, edx
mov rax, qword [0x18002f930]
lea r9, [r9 + 2]
add word [0x18002f8dc], r11w
div rax
cmp r8d, dword [0x18002f944]
mov qword [0x18002f930], rdx
je 0x180008e01
mov rbx, qword [rsp + 0x48]
movsxd rcx, dword [rbx + 0x80]
mov eax, 0xffff
add word [rsi + 2], ax
mov eax, 0x15fa298d
imul dword [rsp + 0xb8]
movsxd r9, r15d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
movsxd r8, edx
movzx edx, r14w
and rdx, r9
call fcn.18001958c
movzx ecx, word [rsi + 2]
and r13d, dword [rsp + 0xc8]
sub r13d, dword [rsp + 0x50]
mov byte [rcx + r12], al
mov eax, r13d
cdq
idiv dword [0x18002f8a4]
mov dword [0x18002f8a4], eax
mov eax, dword [rbx + 0x5d14]
add eax, 0x534
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret