Function at 0x14016cb20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rbx, r8
mov r14, rdx
mov rsi, rcx
nop word [rax + rax]
mov eax, dword [0x14159ef08]
and eax, dword [0x14159ef0c]
imul eax, eax, 0xe7b50c6b
not eax
or eax, 0x41010905
and eax, 0x59a90995
cmp eax, 0x42ced712
ja 0x14016cb40
mov rax, qword [rsi]
mov r12, qword [rax]
nop dword [rax + rax]
mov eax, dword [0x14159ef10]
imul eax, dword [0x14159ef14]
add eax, 0xf5901b05
or eax, 0xffaf6f7c
cmp eax, 0x1da6ff69
je 0x14016cb70
cmp qword [r12 + 0x10], 0
jne 0x14016d089
mov eax, dword [0x14159ef20]
add eax, dword [0x14159ef24]
mov ecx, 0xa0492f67
imul rcx, rax
shr rcx, 0x3e
mov eax, ecx
not eax
and eax, 0x41161403
or eax, 0x2800830
xor eax, 0x712e0380
or eax, ecx
or eax, 0x8000600c
cmp eax, 0x54d89be4
jae 0x14016cbed
mov qword [r12 + 0x10], 0xffffffffffffffff
lea rcx, [r12 + 0x18]
mov rdx, r14
mov r8, rbx
call fcn.14013b2e0
lea r15, [r12 + 0x18]
nop word cs:[rax + rax]
mov ebp, dword [0x14159ef28]
or ebp, dword [0x14159ef2c]
not ebp
or ebp, 0xc40e4202
mov qword [r12 + 0x10], 0xffffffffffffffff
mov rcx, r15
mov rdx, r14
mov r8, rbx
call fcn.14013b2e0
cmp ebp, 0x3c5727dd
je 0x14016cc00
mov rdi, rax
nop word cs:[rax + rax]
mov eax, dword [0x14159ef30]
mov ecx, dword [0x14159ef34]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
add ecx, 0x6ea103ca
or ecx, 0xbcf6876f
imul rax, rcx, 0x7f36b143
shr rax, 0x3d
cmp eax, 0x31c817fe
ja 0x14016cc40
test rdi, rdi
je 0x14016cd10
mov rax, rdi
xor rax, 0xfffffffffffffffc
and rax, rdi
nop dword [rax]
mov ecx, dword [0x14159ef38]
mov edx, ecx
not edx
or edx, dword [0x14159ef3c]
add ecx, edx
inc ecx
or ecx, 0x4fd411ee
add ecx, 0x195a6c5d
not ecx
or ecx, 0xa8c40ebf
add ecx, 0x44342f20
jb 0x14016cc90
mov ecx, dword [0x14159ef40]
add ecx, dword [0x14159ef44]
and ecx, 0x29b123ca
add ecx, 0xde5d0d2f
xor ecx, 0x28d694c7
cmp ecx, 0xcede3511
jb 0x14016ccc0
cmp rax, 2
jg 0x14016cd90
jne 0x14016cdb8
mov rax, rdi
shr rax, 0x20
cmp eax, 6
jne 0x14016cdb8
nop word cs:[rax + rax]
mov eax, dword [0x14159ef50]
mov ecx, dword [0x14159ef54]
not eax
not ecx
or ecx, eax
mov eax, ecx
not eax
or eax, 0x60180141
and eax, 0xec999955
and ecx, 0x134222aa
or ecx, eax
cmp ecx, 0xfd9d43ae
je 0x14016cd10
mov rcx, qword [r12 + 0x10]
mov eax, dword [0x14159ef58]
mov edx, dword [0x14159ef5c]
mov r8d, eax
and r8d, edx
add r8d, r8d
add eax, edx
sub eax, r8d
mov edx, 0xd8fc67e3
imul rdx, rax
shr rdx, 0x3f
lea eax, [rdx + rdx]
sub edx, eax
cmp edx, 0x2dcc8ef8
jne 0x14016d0b4
jmp 0x14016d0c7
mov eax, dword [0x14159ef48]
sub eax, dword [0x14159ef4c]
xor eax, 0x1009900
and eax, 0x7d82fd00
imul rax, rax, 0x38f195
shr rax, 0x32
cmp eax, 0x37495adc
je 0x14016cd90
mov eax, dword [0x14159ef60]
xor edx, edx
div dword [0x14159ef64]
nop word cs:[rax + rax]
mov eax, dword [0x14159ef68]
xor eax, dword [0x14159ef6c]
mov ecx, eax
xor ecx, 0x74bd2d11
and eax, 0xb42d2ee
add eax, eax
sub eax, ecx
xor eax, 0x445574a0
imul eax, eax, 0xf27bb834
cmp eax, 0xbe747249
ja 0x14016cdd0
mov rax, qword [r12 + 0x10]
inc rax
mov qword [r12 + 0x10], rax
mov rax, qword [rsi + 8]
mov ecx, dword [0x14159ef70]
add ecx, dword [0x14159ef74]
mov edx, ecx
not edx
or edx, 0x61abfe93
add ecx, edx
inc ecx
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xc84d8db2
and edx, 0x37b2724d
imul edx, r8d
mov r8d, ecx
and r8d, 0x37b2724d
or ecx, 0x37b2724d
imul ecx, r8d
add ecx, edx
and ecx, 0x9c98c744
cmp ecx, 0x41ac279b
ja 0x14016ce10
test rax, rax
je 0x14016d199
mov ecx, eax
and ecx, 3
cmp rcx, 2
jg 0x14016d040
cmp ecx, 1
jne 0x14016d199
lea rbx, [rax - 1]
mov r14, qword [rax - 1]
mov r15, qword [rax + 7]
nop word cs:[rax + rax]
mov eax, dword [0x14159ef80]
mov ecx, dword [0x14159ef84]
mov edx, eax
and edx, ecx
add edx, edx
add eax, ecx
sub eax, edx
mov ecx, eax
not ecx
and ecx, 0x379c6046
and eax, 0xc8639fb9
sub eax, ecx
add eax, 0x6c3a8b25
xor eax, 0x9f5600ae
cmp eax, 0xb2324035
ja 0x14016cea0
mov rax, qword [r15]
test rax, rax
je 0x14016cf30
mov rcx, r14
call rax
nop word cs:[rax + rax]
mov eax, dword [0x14159ef8c]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [0x14159ef88]
xor ecx, eax
add ecx, 0x7a415647
mov eax, ecx
xor eax, 0x9cf254b8
and ecx, 0x630dab47
add ecx, ecx
sub ecx, eax
xor ecx, 0x6ff19bee
cmp ecx, 0x16643495
jb 0x14016cef0
nop dword [rax]
mov eax, dword [0x14159ef90]
imul eax, dword [0x14159ef94]
add eax, 0x24eefb79
and eax, 0x198f6bd2
cmp eax, 0xd10a5363
ja 0x14016cf30
cmp qword [r15 + 8], 0
je 0x14016cffa
mov rax, qword [r15 + 0x10]
nop dword [rax]
mov ecx, dword [0x14159ef98]
imul ecx, dword [0x14159ef9c]
mov edx, ecx
not edx
or edx, 0x3642972
add ecx, edx
inc ecx
and ecx, 0xc385500
add ecx, 0x63df92c2
cmp ecx, 0xfa5bd82e
ja 0x14016cf60
cmp rax, 0x11
jb 0x14016cfe8
nop word cs:[rax + rax]
mov eax, dword [0x14159efa0]
sub eax, dword [0x14159efa4]
mov ecx, eax
not ecx
or ecx, 0x980a1030
and ecx, 0xfa1a1c7a
and eax, 0x418000
or eax, ecx
xor eax, 0xc0d8ea0c
imul rax, rax, 0x24c89949
shr rax, 0x3c
cmp eax, 0xbe35255b
je 0x14016cfa0
xor eax, eax
nop dword [rax]
test al, al
jne 0x14016cfe0
mov r14, qword [r14 - 8]
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [0x14159efa8]
add eax, dword [0x14159efac]
mov ecx, eax
xor ecx, 0x1b800001
xor eax, 0xa0664d08
and eax, 0xa46ecd6a
and ecx, 0x5b913295
add eax, ecx
add eax, 0xf6010dc1
cmp eax, 0x1148010d
jae 0x14016d0d2
jmp 0x14016d10e
mov eax, dword [0x14159ef78]
xor edx, edx
div dword [0x14159ef7c]
mov ecx, eax
xor ecx, 0x40b68960
and eax, 0x3f49769f
add eax, eax
sub eax, ecx
imul rax, rax, 0x6fd90d3f
shr rax, 0x3c
add eax, 0x58d3552b
cmp eax, 0xa6fab4f2
ja 0x14016d040
mov al, 1
nop dword [rax + rax]
test al, al
je 0x14016d080
jmp 0x14016d199
ud2
lea rax, [rcx + 1]
mov qword [r12 + 0x10], rax
xor eax, eax
test al, al
je 0x14016d233
lea rax, [rcx + 1]
mov qword [r12 + 0x10], rax
jmp 0x14016d0b4
mov eax, dword [0x14159efb0]
sub eax, dword [0x14159efb4]
xor eax, 0x5ab09813
lea ecx, [rax - 0x51035d84]
mov edx, ecx
and edx, 0x674f5dc2
xor ecx, 0x98b0a23d
add eax, ecx
add eax, 0xaefca27c
sub eax, edx
mov r14, qword [0x1415acb98]
cmp eax, 0x9ea759d1
jne 0x14016d117
mov rax, qword [0x1415acb98]
jmp 0x14016d0d2
mov eax, dword [0x14159efb8]
mov ecx, dword [0x14159efbc]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
xor eax, 0x5dd893f5
mov ecx, eax
and ecx, 0x355a5678
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x355a5678
mov ecx, eax
xor ecx, 0x2a155fbf
and eax, 0x55eaa040
add eax, eax
sub eax, ecx
cmp eax, 0x44e2a510
je 0x14016d189
mov ebp, dword [0x14159efc0]
xor ebp, dword [0x14159efc4]
and ebp, 0x165218c9
add ebp, 0x35583380
mov rcx, r14
xor edx, edx
mov r8, rbx
call fcn.14020ae70
cmp ebp, 0x5bbffbe0
jbe 0x14016d199
mov rcx, r14
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14016d15c
mov eax, dword [0x14159efc8]
or eax, dword [0x14159efcc]
imul rax, rax, 0x17eab543
shr rax, 0x3c
or eax, 0x70d70cd2
cmp eax, 0xa935d686
jbe 0x14016d1c0
mov qword [rsi + 8], rdi
mov eax, dword [0x14159efd0]
sub eax, dword [0x14159efd4]
add eax, 0xf6c43f24
imul rax, rax, 0x73c92a4d
shr rax, 0x3e
imul eax, eax, 0xb2d31831
mov qword [rsi + 8], rdi
cmp eax, 0xadeeeebf
ja 0x14016d1c0
nop dword [rax]
mov eax, dword [0x14159efd8]
mov ecx, dword [0x14159efdc]
mov edx, ecx
and edx, eax
add eax, ecx
sub eax, edx
mov ecx, eax
xor ecx, 0x16c78fbb
and eax, 0x69387044
add eax, eax
sub eax, ecx
mov ecx, eax
and ecx, 0x273d08ee
xor eax, 0xa73d08ee
lea eax, [rax + rcx*2]
and eax, 0x972eba6f
cmp eax, 0x74c5fa1b
jb 0x14016d1f0
mov al, 1
mov ecx, 0xe03db215
nop dword [rax + rax]
mov edx, dword [0x14159efe0]
and edx, dword [0x14159efe4]
imul rdx, rcx
shr rdx, 0x3e
or edx, 0x526e4580
imul rdx, rdx, 0x1a3a1cf3
shr rdx, 0x39
cmp edx, 0x50ff442f
ja 0x14016d240
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret