Function at 0x180006e68
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
movsxd rax, dword [0x18002f8d8]
xor edx, edx
div rcx
mov r11d, dword [0x18002f948]
mov edi, 1
mov rdx, qword [0x18002f8a8]
mov rbx, rax
mov eax, dword [0x18002f8f8]
mov esi, 0x75c
mov r15, qword [0x18002f928]
add eax, 0x18a7
mov qword [rsp + 0x38], rax
lea rbp, [rdi + rcx]
movzx r12d, r8w
lea r9d, [r11 + 0x19]
mov r8, qword [0x18002f8c8]
sub r11d, edi
movsxd r10, r9d
mov edi, 0xe16
imul r14, rbp, 0x3fc
mov r9d, 0x1281
mov qword [rsp + 0x60], r15
mov rax, qword [r8 + r10*8]
movzx r10d, r12w
or rax, rbp
mov dword [rsp + 0xf8], r9d
mov qword [rsp + 0x30], rax
mov r8d, 0xc6b
lea eax, [r12 + 0x13f8]
mov qword [rsp + 0x40], rax
mov eax, dword [rdx + 0x220]
sub eax, 0xacd
mov dword [0x18002f948], r11d
sub r8w, word [rdx + 0x356c]
sub r11d, dword [0x18002f914]
movsxd rcx, eax
mov rax, qword [0x18002f908]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x40]
movsxd r11, r11d
mov eax, dword [rax + rbp*4]
sub eax, 0x1e57
mov qword [rsp + 0x48], r11
cdqe
mov qword [rsp + 0x50], rax
mov eax, 0xffff
add r12w, ax
mov rax, qword [rsp + 0x30]
movzx r13d, r12w
or r13, 0x6e0
mov word [rsp + 0xf0], r12w
mov qword [rsp + 0x68], r13
movzx eax, byte [rax + 0x385c]
or ax, word [rcx + 0x8050]
or word [r14 + 0x1c2c], ax
movzx edx, word [0x18002f8dc]
mov rcx, qword [0x18002f8f0]
mov rax, qword [0x18002f920]
mov eax, dword [rcx + rax*4]
add eax, edx
movzx ecx, r8w
mov r8, qword [rsp + 0x30]
cdq
idiv ecx
mov dword [rsp + 0xe0], edx
mov edx, 1
add word [0x18002f8dc], dx
movzx eax, byte [r8 + 0x75f]
cmp eax, r9d
jne 0x1800073bd
mov r9d, dword [0x18002f8c4]
mov r8d, r9d
lea eax, [r9 + 8]
add r9d, edx
movsxd rcx, eax
mov eax, dword [rbx + rcx*4]
mov dword [0x18002f8c4], r9d
cmp r8d, eax
jl 0x1800073b8
movsxd rax, dword [rbx + 0x4ddc]
cmp rax, rbp
jne 0x1800073b8
cmp qword [0x18002f930], 0x94f
jne 0x1800073b8
mov r11, qword [rsp + 0xe8]
xor edx, edx
movsxd rcx, dword [0x18002f8d8]
mov rax, r11
and rax, rsi
add rax, rcx
movzx ecx, word [0x18002f940]
div rcx
mov r9, rax
mov word [0x18002f940], r9w
cmp qword [0x7632], r11
jb 0x180007096
mov rcx, qword [0x18002f8f8]
movzx r8d, word [r14 + rcx*8]
mov rcx, qword [0x18002f8b8]
mov rdx, rcx
inc rcx
mov qword [0x18002f8b8], rcx
cmp r8, rdx
ja 0x180007184
movzx eax, word [0x18002f93c]
cmp rax, qword [0x18002f920]
jne 0x180007184
mov ecx, dword [0x18002f914]
movzx eax, word [rsp + 0xe0]
imul eax, dword [0x9fba]
movzx r8d, r12w
movzx r9d, r10w
mov qword [rsp + 0x28], 0xfffffffffffffd6b
xor ecx, eax
mov dword [0x18002f914], ecx
mov eax, ecx
movzx ecx, byte [r15 + 0x1d1c]
shl eax, 2
movsxd rdx, eax
mov rax, qword [0x18002f908]
sub ecx, dword [rax + r8*4]
mov r8, qword [rsp + 0x50]
mov eax, dword [r8 + rdx*4]
imul eax, ecx
mov dword [r8 + rdx*4], eax
mov eax, 0x1eb2
movzx ecx, word [0x18002f8b8]
mov r8, 0xfffffffffffff02d
imul ecx, eax
mov dl, r12b
sub cx, word [r14 + 0x1c2c]
mov word [r14 + 0x1c2c], cx
mov eax, dword [0x18002f8c4]
lea eax, [rax*4 + 5]
movsxd rcx, eax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
mov rcx, r11
or rax, r9
and r9d, 0xbc6
mov qword [rsp + 0x20], rax
call fcn.1800166b8
movsxd rcx, eax
mov qword [0x18002f920], rcx
mov ecx, 0x1281
movzx eax, byte [r15 + 0xeaf]
or eax, ecx
mov ecx, eax
mov dword [rsp + 0xf8], eax
jmp 0x180007519
cmp qword [0x18002f8e0], 0xf83
jb 0x1800078a6
cmp dword [r13 + 0x4e04], 0x1cb3
je 0x1800072af
movzx eax, word [0x18002f8dc]
mov r9d, 0x9c
mov ecx, r9d
sub ecx, dword [r13 + rax*4 + 0x14]
movsxd rax, ecx
add rax, qword [0x27162]
mov qword [0x27162], rax
movsxd rcx, dword [0x18002f8c4]
mov eax, dword [rbx]
add eax, 6
movsxd r8, eax
mov dl, byte [r13 + rcx*4]
mov rax, qword [rsp + 0x48]
sub dl, cl
add dl, r12b
and dl, 0x81
or byte [r8 + rax], dl
mov rcx, qword [0x18002f900]
movsxd rax, dword [0x18002f8c4]
mov r8, qword [0x18002f8f8]
mov edx, dword [rcx + rax*4]
mov rax, qword [0x18002f920]
or edx, 0x1edb
add edx, dword [rcx + rax*4]
movsxd rax, edx
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rdx + r8*8]
imul rcx, rax
mov qword [rdx + r8*8], rcx
mov rax, qword [0x18002f8f8]
movsxd rcx, dword [0x18002f910]
cmp rcx, qword [rdx + rax*8]
jne 0x180007250
cmp qword [0x18002f928], 0x5b4
jb 0x1800072a3
cmp dword [0x18002f914], 0x1002
jne 0x1800072a3
mov r8, qword [rsp + 0x50]
mov eax, 0x5c
sub al, bpl
movzx eax, al
imul r9d, eax, 0xe1
mov eax, dword [0x18002f948]
dec eax
mov dword [0x18002f948], eax
movsxd rcx, eax
mov eax, 0x840
cdq
xor r9b, 0x49
idiv dword [r8 + rcx*4]
add byte [r15 + 0xe16], dl
xor dword [rbx + 0x1da8], 0x1ab2
dec r9b
movzx eax, r9b
jmp 0x1800078ab
add word [0x18002f938], r9w
xor edx, edx
movsxd rcx, dword [rsp + 0x38]
mov eax, 0xffff
add r9w, ax
mov rax, r11
or rax, 0xb81
mov word [0x18002f940], r9w
div rcx
mov eax, dword [0x18002f8a4]
mov r9d, 1
add eax, 0x16
mov qword [rsp + 0x38], rdx
movsxd r8, eax
add r10w, r9w
movzx eax, r11b
xor edx, edx
movzx ecx, byte [r8 + r15]
imul ecx, eax
movzx eax, r10w
sub eax, edi
mov edi, eax
mov rax, rbp
mov byte [r8 + r15], cl
mov r8, qword [rsp + 0x48]
movzx ecx, byte [r8 + 0x77c]
div rcx
mov byte [r8 + 0x77c], al
cmp qword [0x18002f920], 0x1b04
jbe 0x180007373
movzx ecx, word [0x18002f93c]
mov rax, qword [0x18002f908]
mov r8, qword [0x18002f8f8]
mov eax, dword [rax + 0x55f8]
add eax, 0xf3b
cdq
idiv ecx
mov ecx, 0x1281
sub eax, dword [rbx + r8*4]
mov dword [rbx + r8*4], eax
sub qword [0x18002f8f8], r9
jmp 0x180007521
lea eax, [rdi + 5]
movsxd rcx, eax
mov eax, dword [rbx + rcx*4]
and eax, ebp
imul ecx, eax, 0x405
mov rax, qword [0x18002f8e0]
xor ecx, eax
sub rax, r9
add dword [0x18002f914], ecx
mov qword [0x18002f8e0], rax
mov eax, dword [0x18002f8a4]
add eax, 3
movsxd rcx, eax
sub r10w, word [r14 + rcx*2]
mov word [r14 + rcx*2], r10w
jmp 0x1800078a6
mov r8, qword [rsp + 0x30]
mov ecx, dword [0x18002f8d8]
xor edi, edi
mov eax, dword [r13 + 0x1d78]
cdq
idiv ecx
or ecx, eax
mov eax, dword [0x18002f914]
mov dword [0x18002f8d8], ecx
add eax, 0x15
movzx r9d, byte [r11 + 0x136d]
movsxd rcx, eax
movzx esi, word [r14 + rcx*2]
mov ecx, 0x103
and si, cx
mov ecx, 0x658
or si, cx
mov qword [rsp + 0x58], rsi
cmp r9, rbp
jb 0x180007514
mov rsi, qword [rsp + 0x40]
lea rcx, [r15 + 7]
add rcx, r9
movsxd rax, r9d
lea r11, [r9*4]
mov rdx, r8
add r11, r13
mov r10d, edi
sub rdx, r13
mov r15, rcx
mov qword [rsp + 0x88], rdx
mov r13, rax
movzx eax, byte [r15]
inc r12w
mov rcx, qword [0x18002f918]
sub rax, qword [rcx + r10*8]
mov qword [rcx + r10*8], rax
movzx edx, byte [rdx + r11]
mov eax, dword [rbx]
add eax, 0x1f
movsxd r8, eax
movzx eax, r12w
add rdx, rax
movsxd rax, dword [0x18002f914]
movsxd rcx, dword [rbx + rax*4]
xor rdx, rcx
sub rdx, qword [rsi + r8*8]
mov qword [rsi + r8*8], rdx
xor edx, edx
movsxd rcx, dword [0x18002f8c0]
mov rax, qword [0x18002f930]
mov r8, qword [rsp + 0xe8]
xor qword [0x18002f8e8], 0x247
div rcx
mov rax, rdx
xor edx, edx
div r8
mov edx, 1
add rax, r13
or qword [0x18002f8f8], rax
movsxd rcx, dword [r11]
cmp rcx, r8
jbe 0x1800074de
mov eax, 0x138b
add ecx, edx
add word [r14 + r10*8], ax
sub edi, edx
sub r10, rdx
movsxd rax, ecx
cmp rax, r8
ja 0x1800074c5
add r9d, edx
add r15, rdx
mov rdx, qword [rsp + 0x88]
add r11, 4
movsxd r13, r9d
cmp r13, rbp
jae 0x18000743f
mov rsi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov word [rsp + 0xf0], r12w
mov ecx, 0x1281
mov r11, qword [rsp + 0xe8]
mov rax, qword [rsp + 0x30]
mov r9d, ecx
movzx ebp, r12w
mov qword [rsp + 0x58], rbp
movzx eax, byte [rax + rbp + 2]
cmp ecx, eax
je 0x1800075d7
mov r11, qword [rsp + 0x38]
mov r12d, 1
mov r13, qword [rsp + 0x30]
mov r15d, dword [rsp + 0xe0]
movsxd rax, ecx
mov rcx, qword [rsp + 0x40]
lea r8, [rcx + rax*8]
movzx ecx, r15w
xor edx, edx
mov eax, 0x4a9
add r15w, r12w
div ecx
movsxd rcx, eax
xor qword [r8], rcx
add r8, 8
imul ecx, dword [0x18002f8a0], 0x2b6
mov r10, qword [0x18002f8b8]
mov eax, r10d
xor eax, r9d
add r9d, r12d
add ecx, r11d
imul ecx, eax
movzx eax, byte [r13 + rbp + 2]
lea r11d, [rcx + rcx]
cmp r9d, eax
jne 0x180007563
mov r13, qword [rsp + 0x68]
movzx r12d, word [rsp + 0xf0]
mov dword [rsp + 0xe0], r15d
mov r15, qword [rsp + 0x60]
mov qword [rsp + 0x38], r11
mov r11, qword [rsp + 0xe8]
jmp 0x1800075de
mov r10, qword [0x18002f8b8]
mov eax, dword [0x18002f948]
mov r9d, 1
movzx r8d, word [0x18002f93c]
sub eax, r9d
mov dword [0x18002f948], eax
mov ebp, 0x1368
lea ecx, [rax + 0x1562]
mov eax, 0x9770d755
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd86
sub ecx, eax
movzx eax, word [0x18002f938]
imul eax, eax, 0x1793
add r8w, cx
movzx ecx, word [0x18002f8dc]
mov word [0x18002f93c], r8w
sub eax, 0x1c948e9
cdq
idiv ecx
movzx edx, word [0x18002f940]
mov word [0x18002f8dc], ax
mov rax, qword [0x18002f920]
movzx ecx, word [rbx + rax*4]
imul ecx, edx
movsxd rax, edi
or si, cx
cmp qword [rax*8 + 0x482], rax
je 0x180007694
movsxd rax, dword [rsp + 0xf8]
cmp rax, r10
jae 0x180007694
movzx eax, si
mov ebp, 0x1367
cmp qword [0x9fc2], rax
jne 0x18000769e
cmp r8w, r12w
je 0x1800078a6
movzx ecx, byte [r15 + 0x15e7]
sub edi, r9d
movsxd rdx, dword [rbx]
mov r8, qword [rsp + 0x70]
movzx eax, byte [rsp + 0xe0]
imul ecx, eax
mov rax, qword [rsp + 0x48]
add cl, 0x14
add byte [rdx + rax], cl
xor edx, edx
lea eax, [rdi + 2]
movsxd rcx, eax
imul rax, qword [r8 + 0xe080], 0x17f0
div qword [r8 + rcx*8]
mov qword [r8 + rcx*8], rax
movsxd rdx, dword [rbx + 4]
mov rax, qword [0x18002f8f0]
movsxd r8, edi
movsxd rcx, dword [rax + r8*4]
mov rax, qword [rdx*8 + 0x482]
imul rax, rcx
mov qword [rdx*8 + 0x482], rax
imul rcx, qword [0x18002f930], 0xfffffffffffffffe
mov rdx, qword [0x18002f8b0]
movsxd r12, dword [0x18002f910]
add rdx, r9
mov qword [0x18002f8b0], rdx
movsxd rax, dword [rbx + 0x200c]
add rax, rdx
add rcx, rax
mov qword [0x18002f930], rcx
cmp r12, 0x1587
jge 0x1800078a6
mov rcx, qword [rsp + 0x70]
lea r10, [r12*4]
add r10, r13
lea r9, [r12*8 + 0x4aa]
add rcx, 0x30
mov qword [rsp + 0xf8], r10
lea rbx, [r8 + r15]
mov qword [rsp + 0xe0], r9
lea r13, [rcx + r8*8]
mov r8d, 1
mov rcx, qword [rsp + 0x38]
lea r13, [r13 - 8]
sub rbx, r8
mov al, cl
sub ecx, r8d
sub edi, r8d
mov edx, 0x54
mov qword [rsp + 0x38], rcx
sub al, byte [rbx]
mov byte [rbx], al
cmp r12d, edx
jg 0x1800077ce
mov rcx, qword [0x18002f8b8]
mov rax, qword [r13]
add edx, r8d
add rax, rbp
imul rax, r11
xor rcx, rax
mov qword [0x18002f8b8], rcx
cmp edx, r12d
jge 0x1800077b1
add si, r8w
movzx eax, si
movzx ecx, byte [r15 + rax*4]
cmp cx, word [r14 + 0x26de]
jbe 0x18000788d
movzx ecx, word [rsp + 0xf0]
add si, r8w
movsxd r8, dword [r10]
mov eax, 0x1d1ee241
mov r9, qword [r9]
xor r8, 0x1524
mul ecx
shr edx, 9
imul eax, edx, 0x1195
mov dl, sil
sub ecx, eax
movsxd rax, ecx
mov ecx, 0xcb3
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
call fcn.1800166b8
mov r9, qword [rsp + 0xe0]
mov r8d, 1
mov r10, qword [rsp + 0xf8]
add r9, 8
mov rdx, qword [rsp + 0x50]
add r10, 4
mov r11, qword [rsp + 0xe8]
add r12d, r8d
movzx ecx, si
mov qword [rsp + 0xe0], r9
mov qword [rsp + 0xf8], r10
mov dword [rdx + rcx*4], eax
mov eax, 0xffff
add si, ax
cmp r9, 0xb0e2
jl 0x180007783
jmp 0x1800078a6
lea eax, [rdi - 1]
xor edx, edx
movsxd r8, eax
mov eax, 0x17e4
movzx ecx, word [r14 + r8*2]
div ecx
mov word [r14 + r8*2], ax
mov eax, 0x53
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret