Function at 0x14016daa0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov rsi, rdx
mov eax, dword [0x1415c5040]
and eax, dword [0x1415c5044]
mov rdi, rcx
xor eax, 0xb99b48a7
add eax, 0x14699962
mov ecx, eax
xor ecx, 0x6db08b0f
or eax, 0x924f74f0
and eax, ecx
cmp eax, 0xbe6972ba
jbe 0x14016daf0
mov eax, 0x60
call fcn.14021cf50
sub rsp, rax
nop dword [rax + rax]
mov eax, dword [0x1415c5048]
mov ecx, dword [0x1415c504c]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
mov eax, ecx
not eax
and eax, 0x2897c688
mov edx, ecx
and edx, 0x17683977
imul edx, eax
mov eax, ecx
and eax, 0x2897c688
or ecx, 0x2897c688
imul ecx, eax
add ecx, edx
add ecx, 0xebd05f7a
and ecx, 0x32484110
mov eax, 0x60
call fcn.14021cf50
sub rsp, rax
mov rbx, rsp
cmp ecx, 0x8c899bc5
je 0x14016daf0
xor eax, eax
test al, al
je 0x14016db70
sub rsp, 0x20
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.14016eea0
add rsp, 0x20
nop
mov eax, dword [0x1415c5050]
imul eax, dword [0x1415c5054]
imul rax, rax, 0x6a919a9b
shr rax, 0x3e
imul eax, eax, 0xeef93ebe
imul r14, rax, 0x62b3b8f5
shr r14, 0x39
sub rsp, 0x20
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.14016eea0
add rsp, 0x20
cmp r14d, 0xe8eacc45
je 0x14016db70
mov rax, qword [rbx]
cmp eax, 2
jne 0x14016dc8f
mov rax, qword [rbx + 8]
mov ecx, eax
not ecx
or rcx, 0xfffffffffffffffc
cmp rcx, 0xfffffffffffffffd
jl 0x14016dcf6
not rcx
cmp ecx, 1
jne 0x14016dd08
mov ecx, 0xabf5cfdd
lea rsi, [rax - 1]
nop
mov edx, dword [0x1415c5070]
add edx, dword [0x1415c5074]
imul rdx, rcx
shr rdx, 0x3f
lea r8d, [rdx + rdx]
sub edx, r8d
cmp edx, 0xfe7b38bd
je 0x14016dbf0
mov rdi, qword [rax - 1]
nop word [rax + rax]
mov ecx, dword [0x1415c5078]
sub ecx, dword [0x1415c507c]
add ecx, 0xf7f47fc5
mov edx, ecx
xor edx, 0xcd00c8ed
or ecx, 0x32ff3712
and ecx, edx
cmp ecx, 0xd7172c8c
ja 0x14016dc20
mov rbx, qword [rax + 7]
mov r14, qword [rbx]
test r14, r14
je 0x14016dd95
mov eax, dword [0x1415c5080]
or eax, dword [0x1415c5084]
mov ecx, eax
xor ecx, 0x482102c0
or eax, 0x100c9132
and eax, ecx
or eax, 0xa7d26c0d
add eax, 0x5ea16ab8
cmp eax, 0xbd535953
jbe 0x14016dd46
jmp 0x14016dd85
mov eax, dword [0x1415c5058]
xor edx, edx
div dword [0x1415c505c]
nop dword [rax]
mov eax, dword [0x1415c5060]
xor eax, dword [0x1415c5064]
xor eax, 0x3ba1c8db
mov ecx, eax
and ecx, 0x11c97c87
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x60290762
cmp eax, 0xfbcccfa8
jb 0x14016dca0
mov eax, dword [rbx + 0x4c]
mov ecx, eax
and ecx, 0x400
sete cl
test dword [rbx + 0x50], 0x20000000
sete dl
or dl, cl
not eax
or eax, 0xffffffef
cmp eax, 0xffffffff
setne dil
and dil, dl
jmp 0x14016dd10
mov al, 1
nop dword [rax + rax]
test al, al
je 0x14016dd00
xor edi, edi
jmp 0x14016dd10
xor edi, edi
nop word [rax + rax]
mov eax, dword [0x1415c5068]
xor edx, edx
div dword [0x1415c506c]
mov ecx, eax
xor ecx, 0x48aeebb3
add ecx, eax
and eax, 0xb751144c
sub ecx, eax
cmp ecx, 0xfa5472b9
je 0x14016dd10
mov eax, edi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x1415c5088]
imul eax, dword [0x1415c508c]
mov ecx, 0x9c912ead
imul rcx, rax
shr rcx, 0x3e
imul r15d, ecx, 0x14ca6898
add r15d, 0x25d547c8
sub rsp, 0x20
mov rcx, rdi
call r14
add rsp, 0x20
cmp r15d, 0xdd76321e
jbe 0x14016dd95
sub rsp, 0x20
mov rcx, rdi
call r14
add rsp, 0x20
jmp 0x14016dd46
mov ecx, 0x9df6c33b
nop word [rax + rax]
mov eax, dword [0x1415c5090]
xor edx, edx
div dword [0x1415c5094]
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x75d13007
and edx, 0x8a2ecff8
imul edx, r8d
mov r8d, eax
and r8d, 0x8a2ecff8
or eax, 0x8a2ecff8
imul eax, r8d
add eax, edx
or eax, 0x55ead76d
imul rax, rcx
shr rax, 0x3d
cmp eax, 0x8ecf38b9
ja 0x14016dda0
cmp qword [rbx + 8], 0
je 0x14016df97
mov rax, qword [rbx + 0x10]
nop
mov ecx, dword [0x1415c5098]
mov edx, dword [0x1415c509c]
not ecx
mov r8d, ecx
and r8d, edx
not r8d
or ecx, edx
and ecx, r8d
not ecx
and ecx, 0xcc076eba
mov edx, ecx
not edx
or edx, 0x5ae46d9f
add ecx, edx
inc ecx
mov edx, ecx
or edx, 0x2f8868b4
not ecx
or ecx, 0xd077974b
and ecx, edx
cmp ecx, 0x31d834e
je 0x14016de00
nop dword [rax]
mov edx, dword [0x1415c50a0]
mov r8d, dword [0x1415c50a4]
mov ecx, edx
not ecx
mov r9d, r8d
not r9d
mov r10d, ecx
and r10d, 0xb82c304d
and edx, 0x47d3cfb2
or edx, r10d
or ecx, r9d
and r9d, 0xb82c304d
and r8d, 0x47d3cfb2
or r8d, r9d
xor r8d, edx
not ecx
or ecx, r8d
mov edx, ecx
not edx
and edx, 0x519dc440
mov r8d, ecx
and r8d, 0xae623bbf
imul r8d, edx
mov edx, ecx
and edx, 0x519dc440
or ecx, 0x519dc440
imul ecx, edx
add ecx, r8d
imul rdx, rcx, 0x1ca583a9
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
or ecx, 0x804454c0
cmp ecx, 0xcddd06ee
je 0x14016de50
cmp rax, 0x11
jb 0x14016df7d
nop word cs:[rax + rax]
mov eax, dword [0x1415c50a8]
add eax, dword [0x1415c50ac]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x3130950e
and ecx, 0xcecf6af1
imul ecx, edx
mov edx, eax
and edx, 0xcecf6af1
or eax, 0xcecf6af1
imul eax, edx
add eax, ecx
imul eax, eax, 0xf73f32a0
mov ecx, eax
xor ecx, 0xd9051c6b
and eax, 0xd9051c60
or eax, ecx
cmp eax, 0x3f484fcf
je 0x14016df00
mov rdi, qword [rdi - 8]
nop word cs:[rax + rax]
mov eax, dword [0x1415c50b0]
or eax, dword [0x1415c50b4]
xor eax, 0x107dd0ed
add eax, 0x6f936b57
cmp eax, 0x6aa85238
ja 0x14016df60
mov rcx, qword [0x1415d3918]
sub rsp, 0x20
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
mov rbx, qword [0x1415d3918]
mov eax, dword [0x1415c50b8]
xor eax, dword [0x1415c50bc]
mov ecx, eax
xor ecx, 0x18d659cc
xor eax, 0x6fe3a139
add eax, ecx
and ecx, 0x88ca070a
sub eax, ecx
cmp eax, 0xe3df3787
jne 0x14016dfde
sub rsp, 0x20
mov rcx, rbx
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
mov r14, qword [sym.imp.KERNEL32.dll_HeapFree]
xor edi, edi
nop word [rax + rax]
mov r15d, dword [0x1415c50c0]
or r15d, dword [0x1415c50c4]
add r15d, 0x79c53690
sub rsp, 0x20
mov rcx, rbx
xor edx, edx
mov r8, rsi
call r14
add rsp, 0x20
cmp r15d, 0x9de614f1
ja 0x14016dff0
jmp 0x14016dd10