Function at 0x14017af10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
mov rbp, rsp
mov rsi, rdx
mov eax, dword [0x1415c5f80]
xor edx, edx
div dword [0x1415c5f84]
mov rdi, rcx
and eax, 0x14041
cmp eax, 0x39dc456c
ja 0x14017afa9
mov eax, dword [0x1415c5f88]
sub eax, dword [0x1415c5f8c]
add eax, 0x1705fd2e
or eax, 0x9a2738c2
imul r12d, eax, 0xb1eaa9ca
mov eax, 0x30
call fcn.14021cf50
sub rsp, rax
mov rbx, rsp
mov eax, 0x40
call fcn.14021cf50
sub rsp, rax
mov r15, rsp
mov eax, 0x40
call fcn.14021cf50
sub rsp, rax
mov r14, rsp
sub rsp, 0x20
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.14014be50
add rsp, 0x20
cmp r12d, 0x5b915e2c
jne 0x14017afeb
mov eax, 0x30
call fcn.14021cf50
sub rsp, rax
mov rcx, rsp
mov eax, 0x40
call fcn.14021cf50
sub rsp, rax
mov eax, 0x40
call fcn.14021cf50
sub rsp, rax
sub rsp, 0x20
mov rdx, rdi
mov r8, rsi
call fcn.14021bd10
add rsp, 0x20
jmp 0x14017af3d
movzx eax, byte [rbx]
mov r8, qword [rbx + 0x10]
nop word cs:[rax + rax]
mov ecx, dword [0x1415c5f90]
mov edx, dword [0x1415c5f94]
not ecx
not edx
or edx, ecx
not edx
or edx, 0x254b8c3
add edx, 0xdd683fc5
or edx, 0xc5048366
cmp edx, 0xd9feb1bc
jb 0x14017b000
mov r9, qword [rbx + 0x20]
cmp al, 3
jge 0x14017b0ac
test al, al
jle 0x14017b0e2
mov ecx, 6
cmp al, 2
jge 0x14017b2a0
add r8, 8
nop
mov eax, dword [0x1415c5fb8]
add eax, dword [0x1415c5fbc]
imul eax, eax, 0x17e6957a
add eax, 0x8f60ae30
xor eax, 0x7dbea944
cmp eax, 0x9716705f
ja 0x14017b050
lea rax, [r9 + 1]
nop word [rax + rax]
mov ecx, dword [0x1415c5fc0]
mov edx, dword [0x1415c5fc4]
not ecx
not edx
or edx, ecx
cmp edx, 0xefada1bd
je 0x14017b080
test r9, r9
cmove rax, r9
add r8, rax
mov rcx, r8
jmp 0x14017b2a0
cmp al, 5
jge 0x14017b0c4
cmp al, 4
jge 0x14017b1de
add r8, 4
mov rcx, r8
jmp 0x14017b2a0
mov ecx, 2
cmp al, 6
jl 0x14017b2a0
mov rax, rsi
mov rcx, rdi
je 0x14017b3a0
jmp 0x14017b180
jne 0x14017b180
mov eax, dword [0x1415c5fa0]
xor edx, edx
div dword [0x1415c5fa4]
mov eax, 0x8fad9fdf
add r8, 4
nop
mov ecx, dword [0x1415c5fa8]
mov edx, dword [0x1415c5fac]
mov r9d, edx
not r9d
mov r10d, ecx
and r10d, r9d
or r9d, ecx
not r9d
imul r9d, r10d
mov r10d, ecx
and r10d, edx
or ecx, edx
imul ecx, r10d
add ecx, r9d
imul rcx, rax
shr rcx, 0x3f
lea edx, [rcx + 0x11321440]
not ecx
and ecx, 0x4a406901
imul ecx, ecx, 0x800c829a
imul edx, edx, 0xdb7effdb
add edx, ecx
cmp edx, 0x552aaa01
ja 0x14017b100
nop dword [rax]
mov eax, dword [0x1415c5fb0]
sub eax, dword [0x1415c5fb4]
cmp eax, 0x13bc618a
je 0x14017b160
mov rcx, r8
jmp 0x14017b2a0
mov eax, dword [str.hN]
mov ecx, dword [0x1415c5f9c]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
mov ecx, eax
not ecx
and ecx, 0xd9de301a
and eax, 0x2621cfe5
sub eax, ecx
add eax, 0xb402fd9b
mov ecx, eax
and ecx, 0x6422bdb1
add ecx, ecx
sub eax, ecx
add eax, 0xe422bdb1
cmp eax, 0x896b6fa3
ja 0x14017b180
jmp 0x14017b59d
mov eax, r8d
and eax, 2
xor r8, 2
lea rcx, [r8 + rax*2]
mov eax, 0x8a2bb979
lea r8, [r9 + 1]
nop word cs:[rax + rax]
mov edx, dword [0x1415c5fc8]
mov r10d, dword [0x1415c5fcc]
mov r11d, r10d
not r11d
and r11d, edx
xor r10d, edx
add r10d, edx
sub r10d, r11d
imul r10, rax
shr r10, 0x3e
and r10d, 1
imul edx, r10d, 0x6448718c
cmp edx, 0xe35255
je 0x14017b200
mov eax, dword [0x1415c5fd0]
xor edx, edx
div dword [str.d_n_]
nop dword [rax + rax]
mov eax, dword [0x1415c5fd8]
and eax, dword [0x1415c5fdc]
add eax, 0xc13f0dd4
shr eax, 1
imul rdx, rax, 0x87a2761
shr rdx, 0x39
mov eax, edx
xor eax, 0xa51a5539
and edx, 0xfffffffe
add edx, edx
sub edx, eax
test r9, r9
mov rax, r8
cmove rax, r9
cmp edx, 0x818e9cbc
ja 0x14017b250
add rcx, rax
nop word cs:[rax + rax]
mov eax, dword [0x1415c5fe0]
or eax, dword [0x1415c5fe4]
mov edx, eax
xor edx, 0xb6ed7edf
or eax, 0x49128120
and eax, edx
mov edx, eax
or edx, 0xb6ed36cd
xor edx, 0x91a0335f
or eax, 0x6e5fcca0
and eax, edx
cmp eax, 0x528f3d29
ja 0x14017b2a0
cmp rsi, rcx
jb 0x14017b51d
mov rdx, rsi
not rdx
and rdx, rcx
mov rax, rcx
not rax
and rax, rsi
sub rax, rdx
mov edx, 0x823c0bcd
add rcx, rdi
nop dword [rax]
mov r8d, dword [0x1415c5ff8]
mov r9d, dword [0x1415c5ffc]
mov r10d, r8d
and r10d, r9d
or r8d, r9d
add r8d, r10d
imul r8, rdx
shr r8, 0x3f
xor r8d, 0x290d841d
add r8d, 0x5ed8b9a0
cmp r8d, 0x1d06526a
jb 0x14017b300
nop dword [rax]
mov edx, dword [0x1415c6000]
mov r8d, dword [0x1415c6004]
not edx
not r8d
or r8d, edx
not r8d
mov edx, r8d
and edx, 0x1f08e4d0
or r8d, 0x1f08e4d0
add r8d, edx
imul rdx, r8, 0x6644a6cd
shr rdx, 0x20
sub r8d, edx
shr r8d, 1
add r8d, edx
shr r8d, 0x1d
imul edx, r8d, 0xc5505147
cmp edx, 0x8e73e101
je 0x14017b340
nop word cs:[rax + rax]
mov edx, dword [0x1415c6008]
mov r8d, dword [0x1415c600c]
mov r9d, edx
not r9d
and r9d, r8d
not r8d
and r8d, edx
sub r8d, r9d
imul edx, r8d, 0x7da702ea
add edx, 0x682980ee
mov r8d, edx
not r8d
mov r9d, edx
and r9d, 0x4b8478c2
and r8d, 0xb47b873d
imul r8d, r9d
mov r9d, edx
and r9d, 0xb47b873c
or edx, 0xb47b873d
imul edx, r9d
add edx, r8d
cmp edx, 0x371f11ff
jb 0x14017b3a0
test rax, rax
je 0x14017b4bd
nop
mov eax, dword [0x1415c6010]
or eax, dword [0x1415c6014]
mov edx, eax
not edx
or eax, 0x6ee4748b
or edx, 0x911b8b74
and edx, eax
mov eax, edx
xor eax, 0x851e06b2
xor edx, 0x5ae1e94c
and edx, 0xdef3edee
mov r8d, eax
and r8d, 0x210c1211
imul r8d, edx
mov edx, eax
and edx, 0xdef3edee
or eax, 0xdef3edee
imul eax, edx
add eax, r8d
cmp eax, 0xf783543c
je 0x14017b410
movzx eax, byte [rcx]
cmp al, 0x2f
sete dl
cmp al, 0x5c
sete cl
setne al
and al, dl
xor cl, dl
add cl, dl
sub cl, al
and cl, 1
nop word cs:[rax + rax]
mov eax, dword [0x1415c6018]
xor edx, edx
div dword [0x1415c601c]
add eax, 0x1641689c
mov edx, eax
and edx, 0x2d41980d
add edx, edx
sub eax, edx
add eax, 0x1d707f25
cmp eax, 0x7003e4e8
ja 0x14017b490
jmp 0x14017b4bf
xor ecx, ecx
mov qword [r15], rdi
mov qword [r15 + 8], rsi
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r15 + 0x10], xmm0
movups xmmword [r15 + 0x20], xmm1
mov rax, qword [rbx + 0x20]
mov qword [r15 + 0x30], rax
mov byte [r15 + 0x3a], cl
mov word [r15 + 0x38], 0x200
sub rsp, 0x20
mov rcx, r14
mov rdx, r15
call fcn.140169bc0
add rsp, 0x20
cmp byte [r14], 9
mov rdx, qword [r14 + 0x10]
jne 0x14017b50d
mov rax, qword [r14 + 8]
jmp 0x14017b50f
xor eax, eax
mov rsp, rbp
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
xor eax, eax
test al, al
je 0x14017b530
ud2
mov eax, dword [0x1415c5fe8]
xor eax, dword [0x1415c5fec]
add eax, 0xf309cc7f
mov ecx, eax
and ecx, 0x21a4850
or eax, 0x21a4850
add eax, ecx
or eax, 0xd320f299
ud2
ud2