Function at 0x14018cf40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
mov rax, rdx
mov rdx, qword [rdx + 0x10]
movzx r9d, byte [rdx + 0x19]
test r9b, r9b
je 0x14018cf6c
mov r8, qword [rax + 8]
cmp byte [r8 + 0x19], 0
je 0x14018cf7f
mov r8, qword [rax]
cmp byte [r8 + 0x19], 0
cmove rdx, r8
jmp 0x14018cfc4
mov r10, rdx
nop
mov r8, r10
mov r10, qword [r10]
cmp byte [r10 + 0x19], 0
je 0x14018cf70
jmp 0x14018cfac
mov r10, rax
nop word cs:[rax + rax]
mov r11, r10
mov r10, r8
cmp r11, qword [r8 + 0x10]
jne 0x14018cfa9
mov r8, qword [r10 + 8]
cmp byte [r8 + 0x19], 0
je 0x14018cf90
jmp 0x14018cfac
mov r8, r10
mov r10, qword [rax]
movzx r11d, byte [r10 + 0x19]
test r11b, r11b
cmove rdx, r10
or r9b, r11b
je 0x14018d075
mov r9, qword [rax + 8]
cmp byte [rdx + 0x19], 0
jne 0x14018cfd2
mov qword [rdx + 8], r9
mov r8, qword [rcx]
cmp qword [r8 + 8], rax
je 0x14018cfe8
lea r8, [r9 + 0x10]
cmp qword [r9], rax
cmove r8, r9
jmp 0x14018cfec
add r8, 8
mov qword [r8], rdx
mov r8, qword [rcx]
cmp qword [r8], rax
jne 0x14018d020
movzx r11d, byte [0x140543de4]
add r11b, 0xdc
mov r10, r9
cmp byte [rdx + 0x19], r11b
jne 0x14018d01d
mov r11, rdx
nop
mov r10, r11
mov r11, qword [r11]
cmp byte [r11 + 0x19], 0
je 0x14018d010
mov qword [r8], r10
mov r8, qword [rcx]
cmp byte [0x1405a7088], 0
jne 0x14018d032
cmp qword [r8 + 0x10], rax
jne 0x14018d066
cmp byte [rdx + 0x19], 0
mov r10, r9
jne 0x14018d062
mov r11, rdx
nop
mov r10, r11
mov r11, qword [r11 + 0x10]
movzx ebx, byte [0x140543de4]
mov esi, ebx
xor sil, 0xdc
and bl, 0x5c
add bl, bl
add bl, sil
cmp byte [r11 + 0x19], bl
je 0x14018d040
mov qword [r8 + 0x10], r10
cmp byte [rax + 0x18], 1
je 0x14018d109
jmp 0x14018d43a
mov rdx, qword [r8 + 0x10]
cmp r8, rax
je 0x14018cfc4
mov qword [r10 + 8], r8
mov r9, qword [rax]
mov qword [r8], r9
mov r9, r8
cmp r8, qword [rax + 0x10]
je 0x14018d0b6
mov r9, qword [r8 + 8]
cmp byte [rdx + 0x19], 0
jne 0x14018d0a3
mov qword [rdx + 8], r9
mov qword [r9], rdx
mov r10, qword [rax + 0x10]
mov qword [r8 + 0x10], r10
mov r10, qword [rax + 0x10]
mov qword [r10 + 8], r8
mov r10, qword [rcx]
cmp qword [r10 + 8], rax
je 0x14018d0d0
mov r11, qword [rax + 8]
lea r10, [r11 + 0x10]
cmp qword [r11], rax
cmove r10, r11
jmp 0x14018d0d4
add r10, 8
mov qword [r10], r8
mov r10, qword [rax + 8]
mov qword [r8 + 8], r10
movzx r10d, byte [r8 + 0x18]
movzx r11d, byte [rax + 0x18]
mov byte [r8 + 0x18], r11b
mov byte [rax + 0x18], r10b
cmp byte [rax + 0x18], 1
je 0x14018d109
jmp 0x14018d43a
mov byte [r9 + 0x18], 0
mov r9, qword [rdx + 8]
mov r8, qword [rcx]
cmp rdx, qword [r8 + 8]
je 0x14018d436
mov r8, rdx
cmp byte [rdx + 0x18], 1
jne 0x14018d433
mov rdx, r9
mov r9, qword [r9]
cmp r8, r9
je 0x14018d150
movzx r10d, byte [r9 + 0x18]
add r10b, byte [0x1405a6970]
je 0x14018d1c0
cmp byte [r9 + 0x19], 0
jne 0x14018d105
jmp 0x14018d222
mov r9, qword [rdx + 0x10]
cmp byte [r9 + 0x18], 0
jne 0x14018d256
mov byte [r9 + 0x18], 1
mov byte [rdx + 0x18], 0
mov r9, qword [rdx + 0x10]
mov r10, qword [r9]
mov qword [rdx + 0x10], r10
mov r10, qword [r9]
movzx r11d, byte [0x140543de4]
add r11b, 0xdc
cmp byte [r10 + 0x19], r11b
jne 0x14018d18c
mov qword [r10 + 8], rdx
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov r10, qword [rcx]
cmp qword [r10 + 8], rdx
je 0x14018d244
mov r11, qword [rdx + 8]
lea r10, [r11 + 0x10]
cmp qword [r11], rdx
cmove r10, r11
jmp 0x14018d248
mov byte [r9 + 0x18], 1
mov byte [rdx + 0x18], 0
mov r9, qword [rdx]
mov r10, qword [r9 + 0x10]
mov qword [rdx], r10
mov r10, qword [r9 + 0x10]
cmp byte [r10 + 0x19], 0
jne 0x14018d1e2
mov qword [r10 + 8], rdx
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov r10, qword [rcx]
cmp qword [r10 + 8], rdx
je 0x14018d205
mov r11, qword [rdx + 8]
lea r10, [r11 + 0x10]
cmp qword [r11 + 0x10], rdx
cmovne r10, r11
jmp 0x14018d209
add r10, 8
mov qword [r10], r9
mov qword [r9 + 0x10], rdx
mov qword [rdx + 8], r9
mov r9, qword [rdx]
cmp byte [r9 + 0x19], 0
jne 0x14018d105
mov r10, qword [r9 + 0x10]
cmp byte [r10 + 0x18], 1
jne 0x14018d303
mov r11, qword [r9]
cmp byte [r11 + 0x18], 1
je 0x14018d100
jmp 0x14018d303
add r10, 8
mov qword [r10], r9
mov qword [r9], rdx
mov qword [rdx + 8], r9
mov r9, qword [rdx + 0x10]
movzx r10d, byte [0x140543de4]
add r10b, 0xdc
cmp byte [r9 + 0x19], r10b
jne 0x14018d105
mov r10, qword [r9]
cmp byte [r10 + 0x18], 1
jne 0x14018d285
mov r11, qword [r9 + 0x10]
cmp byte [r11 + 0x18], 1
je 0x14018d100
mov r11, qword [r9 + 0x10]
cmp byte [r11 + 0x18], 1
jne 0x14018d3d4
movzx r11d, byte [0x140543de4]
mov ebx, r11d
xor bl, 0xdd
and r11b, 0x5d
add r11b, r11b
add r11b, bl
mov byte [r10 + 0x18], r11b
movzx r10d, byte [0x140543de4]
add r10b, 0xdc
mov byte [r9 + 0x18], r10b
mov r10, qword [r9]
mov r11, qword [r10 + 0x10]
mov qword [r9], r11
mov r11, qword [r10 + 0x10]
cmp byte [r11 + 0x19], 0
jne 0x14018d2d9
mov qword [r11 + 8], r9
mov r11, qword [r9 + 8]
mov qword [r10 + 8], r11
mov r11, qword [rcx]
cmp qword [r11 + 8], r9
je 0x14018d3c1
mov rsi, qword [r9 + 8]
lea r11, [rsi + 0x10]
cmp qword [rsi + 0x10], r9
cmovne r11, rsi
jmp 0x14018d3c5
mov r11, qword [r9]
cmp byte [r11 + 0x18], 1
jne 0x14018d363
mov byte [r10 + 0x18], 1
mov byte [r9 + 0x18], 0
mov r10, qword [r9 + 0x10]
mov r11, qword [r10]
mov qword [r9 + 0x10], r11
mov r11, qword [r10]
cmp byte [r11 + 0x19], 0
jne 0x14018d330
mov qword [r11 + 8], r9
mov r11, qword [r9 + 8]
mov qword [r10 + 8], r11
mov r11, qword [rcx]
cmp qword [r11 + 8], r9
je 0x14018d352
mov rsi, qword [r9 + 8]
lea r11, [rsi + 0x10]
cmp qword [rsi], r9
cmove r11, rsi
jmp 0x14018d356
add r11, 8
mov qword [r11], r10
mov qword [r10], r9
mov qword [r9 + 8], r10
mov r9, qword [rdx]
movzx r10d, byte [rdx + 0x18]
mov byte [r9 + 0x18], r10b
mov byte [rdx + 0x18], 1
mov r9, qword [r9]
mov byte [r9 + 0x18], 1
mov r9, qword [rdx]
mov r10, qword [r9 + 0x10]
mov qword [rdx], r10
mov r10, qword [r9 + 0x10]
cmp byte [r10 + 0x19], 0
jne 0x14018d391
mov qword [r10 + 8], rdx
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov r10, qword [rcx]
cmp qword [r10 + 8], rdx
je 0x14018d3b4
mov r11, qword [rdx + 8]
lea r10, [r11 + 0x10]
cmp qword [r11 + 0x10], rdx
cmovne r10, r11
jmp 0x14018d3b8
add r10, 8
mov qword [r10], r9
mov qword [r9 + 0x10], rdx
jmp 0x14018d42f
add r11, 8
mov qword [r11], r10
mov qword [r10 + 0x10], r9
mov qword [r9 + 8], r10
mov r9, qword [rdx + 0x10]
movzx r10d, byte [rdx + 0x18]
mov byte [r9 + 0x18], r10b
mov byte [rdx + 0x18], 1
mov r9, qword [r9 + 0x10]
mov byte [r9 + 0x18], 1
mov r9, qword [rdx + 0x10]
mov r10, qword [r9]
mov qword [rdx + 0x10], r10
mov r10, qword [r9]
cmp byte [r10 + 0x19], 0
jne 0x14018d403
mov qword [r10 + 8], rdx
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov r10, qword [rcx]
cmp qword [r10 + 8], rdx
je 0x14018d425
mov r11, qword [rdx + 8]
lea r10, [r11 + 0x10]
cmp qword [r11], rdx
cmove r10, r11
jmp 0x14018d429
add r10, 8
mov qword [r10], r9
mov qword [r9], rdx
mov qword [rdx + 8], r9
mov rdx, r8
mov byte [rdx + 0x18], 1
mov rdx, qword [0x1405a7070]
add rdx, qword [rcx + 8]
add rdx, qword [0x1405a7080]
add rdx, qword [0x1405a6c38]
je 0x14018d46f
movabs r8, 0x7af0356252f5e3a4
mov r9, r8
not r9
add r9, r8
add r9, rdx
mov qword [rcx + 8], r9
pop rbx
pop rsi
ret