Function at 0x18000ce54
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x168
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xe0], 0xfffffffffffffffe
mov byte [rbp + 0xdf], r8b
cmp qword [rdx + 0x10], 0
je 0x18000d489
mov rsi, rdx
mov rdi, rcx
lea rax, [rcx + 0x5a]
mov qword [rbp + 0xd0], rax
xor eax, eax
mov qword [rbp + 0xc8], rax
lea rbx, [0x180089088]
xor r13d, r13d
xor ecx, ecx
xor r8d, r8d
xor eax, eax
cmp qword [rsi + 0x18], 0x10
mov r9, rsi
jb 0x18000cec4
mov r9, qword [rsi]
mov rdx, qword [rsi + 0x10]
mov r12, rdi
mov r10d, dword [rdi + 0x280]
movzx r14d, byte [r9 + r13]
mov r11b, byte [r14 + rbx]
test al, al
je 0x18000ceee
mov edi, r14d
and edi, 0x3f
shl r15d, 6
or r15d, edi
jmp 0x18000cefb
mov edi, 0xff
shrx r15d, edi, r11d
and r15d, r14d
movzx eax, al
shl rax, 4
movzx r11d, r11b
add r11, rax
movzx eax, byte [r11 + rbx + 0x100]
cmp eax, 1
jne 0x18000cf38
lea eax, [r10 - 1]
cmp eax, 2
jb 0x18000cf73
test r10d, r10d
je 0x18000d54e
inc r13
mov al, 1
cmp r13, rdx
jb 0x18000ced2
jmp 0x18000d46a
test eax, eax
jne 0x18000cfb1
lea eax, [r15 - 8]
cmp eax, 5
ja case.default.0x18000cf57
lea rcx, [0x180089b94]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x625c
jmp 0x18000d0cd
cmp rcx, 1
adc r13, 0xffffffffffffffff
cmp r10d, 1
mov rdi, r12
jne 0x18000d103
cmp byte [rbp + 0xdf], 0
je 0x18000cfe1
mov rax, qword [rbp + 0xd0]
mov dword [rax + r8], 0x6666755c
mov word [rax + r8 + 4], 0x6466
add r8, 6
jmp 0x18000d0d4
cmp byte [rbp + 0xdf], 0
jne 0x18000cfd6
mov rdx, qword [rbp + 0xd0]
mov r9, qword [rbp + 0xc8]
mov byte [rdx + r9], r14b
inc r9
mov qword [rbp + 0xc8], r9
mov rdi, r12
inc rcx
jmp 0x18000d10e
mov rax, qword [rbp + 0xd0]
mov word [rax + r8], 0xbfef
mov byte [rax + r8 + 2], 0xbd
add r8, 3
jmp 0x18000d0d4
cmp r15d, 0x22
je 0x18000d0b8
cmp r15d, 0x5c
jne case.0x18000cf57.11
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x5c5c
jmp 0x18000d0cd
cmp r15d, 0x7f
setae al
cmp r15d, 0x20
jb 0x18000d123
and al, byte [rbp + 0xdf]
jne 0x18000d123
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov byte [rax + r8], r14b
inc r8
jmp 0x18000d0d1
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x745c
jmp 0x18000d0cd
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x6e5c
jmp 0x18000d0cd
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x665c
jmp 0x18000d0cd
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x725c
jmp 0x18000d0cd
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xc8]
mov word [rax + r8], 0x225c
add r8, 2
mov rdi, r12
lea rax, [r8 - 0x1f4]
cmp rax, 0xc
ja 0x18000d103
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xd0]
call qword [rax + 8]
xor eax, eax
xor r8d, r8d
xor ecx, ecx
xor edx, edx
mov qword [rbp + 0xc8], rdx
jmp 0x18000d10e
xor eax, eax
xor ecx, ecx
mov qword [rbp + 0xc8], r8
inc r13
mov rdx, qword [rsi + 0x10]
cmp r13, rdx
jb 0x18000ceb7
jmp 0x18000d50f
cmp r15d, 0xffff
ja 0x18000d25d
cmp byte [0x1800ad179], 0
mov rdi, r12
jne 0x18000d22e
mov rax, qword [0x1800a8510]
movabs rcx, 0xc014baa6bd2dc4c3
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4de
xor cl, byte [rax + rdx]
mov byte [0x1800ad172], cl
movabs rcx, 0xc014baa6bd2dc4c4
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4df
xor cl, byte [rax + rdx]
mov byte [0x1800ad173], cl
movabs rcx, 0xc014baa6bd2dc4c5
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4e0
xor cl, byte [rax + rdx]
mov byte [0x1800ad174], cl
movabs rcx, 0xc014baa6bd2dc4c6
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4e1
xor cl, byte [rax + rdx]
mov byte [0x1800ad175], cl
movabs rcx, 0xc014baa6bd2dc4c7
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4e2
xor cl, byte [rax + rdx]
mov byte [0x1800ad176], cl
movabs rcx, 0xc014baa6bd2dc4c8
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4e3
xor cl, byte [rax + rdx]
mov byte [0x1800ad177], cl
movabs rcx, 0xc014baa6bd2dc4c9
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc4e4
xor cl, byte [rax + rdx]
mov byte [0x1800ad178], cl
mov byte [0x1800ad179], 1
mov rax, qword [rbp + 0xd0]
mov r14, qword [rbp + 0xc8]
lea rcx, [rax + r14]
mov edx, 7
lea r8, [0x1800ad172]
mov r9d, r15d
call fcn.18000df5a
add r14, 6
jmp 0x18000d462
cmp byte [0x1800ad187], 0
mov rdi, r12
jne 0x18000d41b
mov rax, qword [0x1800a8510]
movabs rcx, 0xc014baa6bd2dc4f8
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc508
xor cl, byte [rax + rdx]
mov byte [0x1800ad17a], cl
movabs rcx, 0xc014baa6bd2dc4f9
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc509
xor cl, byte [rax + rdx]
mov byte [0x1800ad17b], cl
movabs rcx, 0xc014baa6bd2dc4fa
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc50a
xor cl, byte [rax + rdx]
mov byte [0x1800ad17c], cl
movabs rcx, 0xc014baa6bd2dc4fb
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc50b
xor cl, byte [rax + rdx]
mov byte [0x1800ad17d], cl
movabs rcx, 0xc014baa6bd2dc4fc
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc50c
xor cl, byte [rax + rdx]
mov byte [0x1800ad17e], cl
movabs rcx, 0xc014baa6bd2dc4fd
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc50d
xor cl, byte [rax + rdx]
mov byte [0x1800ad17f], cl
movabs rcx, 0xc014baa6bd2dc4fe
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc50e
xor cl, byte [rax + rdx]
mov byte [0x1800ad180], cl
movabs rcx, 0xc014baa6bd2dc4ff
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc50f
xor cl, byte [rax + rdx]
mov byte [0x1800ad181], cl
movabs rcx, 0xc014baa6bd2dc500
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc510
xor cl, byte [rax + rdx]
mov byte [0x1800ad182], cl
movabs rcx, 0xc014baa6bd2dc501
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc511
xor cl, byte [rax + rdx]
mov byte [0x1800ad183], cl
movabs rcx, 0xc014baa6bd2dc502
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc512
xor cl, byte [rax + rdx]
mov byte [0x1800ad184], cl
movabs rcx, 0xc014baa6bd2dc503
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc513
xor cl, byte [rax + rdx]
mov byte [0x1800ad185], cl
movabs rcx, 0xc014baa6bd2dc504
mov cl, byte [rax + rcx]
movabs rdx, 0xc014baa6bd2dc514
xor cl, byte [rax + rdx]
mov byte [0x1800ad186], cl
mov byte [0x1800ad187], 1
mov eax, r15d
and eax, 0x3ff
or eax, 0xdc00
mov ecx, r15d
shr ecx, 0xa
add ecx, 0xd7c0
movzx r9d, cx
mov rcx, qword [rbp + 0xd0]
mov r14, qword [rbp + 0xc8]
add rcx, r14
mov dword [rsp + 0x20], eax
mov edx, 0xd
lea r8, [0x1800ad17a]
call fcn.18000df5a
add r14, 0xc
mov r8, r14
jmp 0x18000d0d4
mov rdi, r12
mov eax, dword [rdi + 0x280]
cmp eax, 1
je 0x18000d49d
cmp eax, 2
je 0x18000d527
test eax, eax
je 0x18000d6a7
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xd0]
call qword [rax + 8]
mov rsi, qword [rdi]
mov rax, qword [rsi]
mov rdi, qword [rax + 8]
mov rcx, qword [0x1800a8510]
cmp byte [rbp + 0xdf], 0
je 0x18000d4e8
movabs rax, 0xc014baa6bd2dc64b
add rcx, rax
call fcn.18001f9a0
lea rdx, [0x1800ad1dc]
mov r8d, 6
jmp 0x18000d507
movabs rax, 0xc014baa6bd2dc67b
add rcx, rax
call fcn.18001f9f0
lea rdx, [0x1800ad1e4]
mov r8d, 3
mov rcx, rsi
mov rax, rdi
jmp 0x18000d538
test al, al
jne 0x18000d46d
mov r8, qword [rbp + 0xc8]
test r8, r8
je 0x18000d489
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov rdx, qword [rbp + 0xd0]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp rax
vxorps xmm0, xmm0, xmm0
lea rsi, [rbp + 0xa0]
vmovaps xmmword [rsi], xmm0
mov qword [rsi + 0x10], 3
mov qword [rsi + 0x18], 0xf
mov dword [rsi], 0
movabs rcx, 0xc014baa6bd2dc534
add rcx, qword [0x1800a8510]
call fcn.18001f940
lea r8, [0x1800ad188]
mov edx, 3
mov rcx, rsi
mov r9d, r14d
call fcn.18000df5a
lea rcx, [rbp + 0x20]
mov rdx, r13
call fcn.180006aa4
cmp byte [0x1800ad1b3], 0
jne 0x18000d615
mov rdx, qword [0x1800a8510]
movabs rax, 0xc014baa6bd2dc5be
add rax, rdx
movabs rcx, 0xc014baa6bd2dc5a3
add rcx, rdx
xor edx, edx
movabs r8, 0x97b425ed097b425f
lea r9, [0x1800ad196]
mulx r10, r10, r8
shr r10, 4
imul r10, r10, 0xffffffffffffffe5
add r10, rcx
mov r10b, byte [rdx + r10]
xor r10b, byte [rax + rdx]
mov byte [rdx + r9], r10b
inc rdx
cmp rdx, 0x1d
jne 0x18000d5e9
mov byte [0x1800ad1b3], 1
movabs rsi, 0xc014baa6bd2db5cf
mov rdx, qword [0x1800a8530]
add rdx, rsi
lea rcx, [rbp + 0x60]
lea r8, [rbp + 0x20]
call fcn.1800095a4
movabs rcx, 0xc014baa6bd2dc56f
add rcx, qword [0x1800a8510]
call fcn.18001f970
mov r8, qword [0x1800a8538]
add r8, rsi
lea rcx, [rbp + 0x40]
lea rdx, [rbp + 0x60]
call fcn.18000244c
lea rcx, [rbp + 0x80]
lea rdx, [rbp + 0x40]
lea r8, [rbp + 0xa0]
call fcn.18000a3ca
lea rcx, [rbp - 0x50]
lea r8, [rbp + 0x80]
mov edx, 0x13c
call fcn.180009232
add rsi, qword [0x1800a8540]
lea rcx, [rbp - 0x50]
mov rdx, rsi
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x18000d7d2
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb0], 3
mov qword [rbp + 0xb8], 0xf
mov dword [rbp + 0xa0], 0
cmp qword [rsi + 0x18], 0x10
jb 0x18000d6dd
mov rsi, qword [rsi]
movzx esi, byte [rdx + rsi - 1]
movabs rcx, 0xc014baa6bd2dc534
add rcx, qword [0x1800a8510]
call fcn.18001f940
lea r8, [0x1800ad188]
lea rcx, [rbp + 0xa0]
mov edx, 3
mov r9d, esi
call fcn.18000df5a
cmp byte [0x1800ad1db], 0
jne 0x18000d783
mov rdx, qword [0x1800a8510]
movabs rax, 0xc014baa6bd2dc608
add rax, rdx
movabs rcx, 0xc014baa6bd2dc5ec
add rcx, rdx
xor r8d, r8d
movabs r9, 0x4924924924924925
lea r10, [0x1800ad1b4]
mov rdx, r8
shr rdx, 2
mulx rdx, rdx, r9
shr rdx, 1
imul rdx, rdx, 0xffffffffffffffe4
add rdx, rcx
mov dl, byte [r8 + rdx]
xor dl, byte [rax + r8]
mov byte [r8 + r10], dl
inc r8
cmp r8, 0x27
jne 0x18000d751
mov byte [0x1800ad1db], 1
movabs rsi, 0xc014baa6bd2db5cf
mov rdx, qword [0x1800a8548]
add rdx, rsi
lea rcx, [rbp + 0x80]
lea r8, [rbp + 0xa0]
call fcn.18000a98a
lea rcx, [rbp - 0x18]
lea r8, [rbp + 0x80]
mov edx, 0x13c
call fcn.180009232
add rsi, qword [0x1800a8540]
lea rcx, [rbp - 0x18]
mov rdx, rsi
call sub.VCRUNTIME140.dll__CxxThrowException
int3