Function at 0x14016eea0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd0
mov rbx, r8
mov r14, rdx
mov rsi, rcx
lea rcx, [rsp + 0x78]
xor r9d, r9d
call fcn.14016f8d0
cmp dword [rsp + 0x78], 2
jne 0x14016f218
nop word cs:[rax + rax]
mov eax, dword [0x1415c5190]
mov ecx, dword [0x1415c5194]
mov edx, eax
not edx
or edx, ecx
not ecx
or ecx, eax
not ecx
not edx
or edx, ecx
mov eax, edx
not eax
mov ecx, edx
and ecx, 0x22eca3c4
and eax, 0xdd135c3b
imul eax, ecx
mov ecx, edx
and ecx, 0xdd135c3b
or edx, 0xdd135c3b
imul edx, ecx
add eax, edx
add eax, 0xc9168a94
or eax, 0x293bddbb
cmp eax, 0x988254a4
jb 0x14016eee0
mov rdi, qword [rsp + 0x80]
nop dword [rax]
mov eax, dword [0x1415c5198]
sub eax, dword [0x1415c519c]
imul eax, eax, 0x34489921
add eax, 0xd134036e
or eax, 0x963a41aa
cmp eax, 0x2003633c
jb 0x14016ef40
mov eax, edi
not eax
or rax, 0xfffffffffffffffc
cmp rax, 0xfffffffffffffffd
jl 0x14016f170
not rax
cmp eax, 2
jne 0x14016f218
movabs rcx, 0xffffffff00000000
mov rax, rdi
not rax
mov rdx, rdi
and rdx, rcx
not rcx
or rcx, rax
not rcx
or rcx, rdx
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14016efb0
nop word cs:[rax + rax]
mov eax, dword [0x1415c51b8]
xor edx, edx
div dword [0x1415c51bc]
mov edx, eax
not edx
or edx, 0x1482222b
add eax, edx
inc eax
mov edx, eax
xor edx, 0x3fe37f88
or eax, 0xc01c8077
and eax, edx
cmp eax, 0xdea9f481
je 0x14016efc0
movabs rax, 0x78000000000
cmp rcx, rax
jne 0x14016f218
nop word cs:[rax + rax]
mov eax, dword [0x1415c51c0]
or eax, dword [0x1415c51c4]
and eax, 0xa687a41a
cmp eax, 0x1350c7e9
je 0x14016f010
lea rcx, [rsp + 0x20]
mov rdx, r14
mov r8, rbx
mov r9d, 0x200000
call fcn.14021be30
cmp dword [rsp + 0x20], 2
jne 0x14016f270
nop dword [rax]
mov eax, dword [0x1415c51e0]
or eax, dword [0x1415c51e4]
imul eax, eax, 0xf64c43b0
add eax, 0x8a053cf3
cmp eax, 0x117f297
jb 0x14016f050
nop
mov eax, dword [0x1415c51e8]
sub eax, dword [0x1415c51ec]
xor eax, 0xc010220
and eax, 0x8c259aa0
add eax, 0x46894d30
cmp eax, 0x5815f1d3
jb 0x14016f070
mov rax, qword [rsp + 0x28]
mov ecx, eax
and ecx, 3
nop dword [rax]
mov edx, dword [0x1415c51f0]
xor edx, dword [0x1415c51f4]
imul rdx, rdx, 0x1c4fd885
shr rdx, 0x3c
add edx, 0xf3baa113
cmp edx, 0x96a0967a
jb 0x14016f0a0
cmp rcx, 2
jg 0x14016f480
cmp ecx, 1
jne 0x14016f810
lea rbx, [rax - 1]
nop dword [rax]
mov ecx, dword [0x1415c5200]
xor ecx, dword [0x1415c5204]
mov edx, ecx
or edx, 0x94050c81
not ecx
and ecx, 0x220230
and edx, 0xd69d2d8f
add ecx, edx
add ecx, 0x248c56d
cmp ecx, 0xb2f72bee
jb 0x14016f0e0
mov r14, qword [rax - 1]
mov r15, qword [rax + 7]
mov r12, qword [r15]
nop dword [rax]
mov eax, dword [0x1415c5208]
and eax, dword [0x1415c520c]
or eax, 0x8dac8721
mov ecx, eax
xor ecx, 0x5cbd2e0f
add ecx, eax
and eax, 0xa342d1f0
sub ecx, eax
cmp ecx, 0x519fdae4
je 0x14016f120
test r12, r12
je 0x14016f558
xor eax, eax
test al, al
je 0x14016f4b5
jmp 0x14016f4e5
mov eax, dword [0x1415c51a0]
mov ecx, dword [0x1415c51a4]
not eax
not ecx
and ecx, eax
mov eax, ecx
xor eax, 0x24108211
xor ecx, 0x102278c8
and ecx, 0x18e679ce
and eax, 0xe7198631
sub eax, ecx
add eax, 0xc1a18ea9
cmp eax, 0xeae8a5f2
ja 0x14016f170
nop dword [rax + rax]
mov eax, dword [0x1415c51a8]
xor eax, dword [0x1415c51ac]
add eax, 0x3d00bdf9
xor eax, 0x91c1466d
imul rax, rax, 0x32321587
shr rax, 0x3d
cmp eax, 0x4da1be85
ja 0x14016f1b0
nop dword [rax + rax]
mov eax, dword [0x1415c51b0]
mov ecx, dword [0x1415c51b4]
mov edx, eax
not edx
and eax, ecx
not ecx
or ecx, edx
not ecx
or ecx, eax
mov eax, ecx
not eax
or eax, 0x4500000
and eax, 0x4d40000
and ecx, 0x80000334
or ecx, eax
cmp ecx, 0x75727b70
ja 0x14016f1e0
mov rax, qword [rsp + 0xc8]
mov qword [rsi + 0x50], rax
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x78]
movups xmm1, xmmword [rsp + 0x88]
movups xmm2, xmmword [rsp + 0x98]
movups xmm3, xmmword [rsp + 0xa8]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x1415c51c8]
imul eax, dword [0x1415c51cc]
imul rax, rax, 0x67aa9ecd
shr rax, 0x3e
imul eax, eax, 0xe703f473
mov ecx, eax
xor ecx, 0xe5a2e716
or eax, 0x1a5d18e9
and eax, ecx
cmp eax, 0xc1604e6e
ja 0x14016f270
mov ecx, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x70]
mov eax, dword [0x1415c51d0]
xor edx, edx
div dword [0x1415c51d4]
mov eax, ecx
and eax, 0x400
mov r10d, eax
shr r10d, 0xa
mov r9d, r8d
and r9d, 0x20000000
mov edx, r9d
shr edx, 0x1d
xor edx, r10d
nop dword [rax]
mov r10d, dword [0x1415c51d8]
mov r11d, dword [0x1415c51dc]
add r11d, r10d
add r11d, 0xcbfa0cf6
mov r10d, r11d
xor r10d, 0xeb8eb00a
and r11d, 0x14714ff5
add r11d, r11d
sub r11d, r10d
add r11d, 0xd87fe619
mov r10d, eax
or r10d, r9d
setne r10b
cmp r11d, 0xb0186447
ja 0x14016f2e0
xor dl, 1
and r10b, dl
jne 0x14016f810
mov eax, dword [rsp + 0x74]
movups xmm0, xmmword [rsp + 0x5c]
movups xmmword [rsi + 0x3c], xmm0
movups xmm0, xmmword [rsp + 0x20]
movups xmm1, xmmword [rsp + 0x30]
movups xmm2, xmmword [rsp + 0x40]
movups xmm3, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov r9d, dword [0x1415c5280]
mov edx, dword [0x1415c5284]
xor edx, r9d
not edx
and edx, r9d
mov r9d, edx
not r9d
and r9d, 0x294223e6
and edx, 0xd6bddc19
sub edx, r9d
mov r9d, edx
or r9d, 0x28c16d7e
mov r10d, edx
not r10d
and r10d, 0x46380280
mov r11d, r9d
and r11d, 0xb1079875
imul r11d, r10d
and r9d, 0x4ef8678a
or edx, 0x6ef96ffe
imul edx, r9d
add edx, r11d
cmp edx, 0x8cca8113
jbe 0x14016f3db
mov dword [rsi + 0x4c], ecx
mov dword [rsi + 0x50], r8d
mov dword [rsi + 0x54], eax
xor edx, edx
nop dword [rax]
mov dword [rsi + 0x4c], ecx
mov dword [rsi + 0x50], r8d
mov dword [rsi + 0x54], eax
test dl, dl
jne 0x14016f3e0
mov eax, dword [0x1415c5288]
or eax, dword [0x1415c528c]
add eax, 0x2d7f3911
and eax, 0xf1597396
cmp eax, 0x60e032de
jae 0x14016f420
mov rcx, rdi
call fcn.14016e030
nop word cs:[rax + rax]
mov eax, dword [0x1415c5290]
mov ecx, dword [0x1415c5294]
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
or eax, 0x6c168790
add eax, 0x93c79f57
mov ecx, eax
and ecx, 0x5fde5758
xor eax, 0xdfde5758
lea esi, [rax + rcx*2]
mov rcx, rdi
call fcn.14016e030
cmp esi, 0xaeee2de7
ja 0x14016f420
jmp 0x14016f25c
mov eax, dword [0x1415c51f8]
and eax, dword [0x1415c51fc]
mov ecx, eax
and ecx, 0x4cffffc
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x24cffffc
or eax, 0xc0576552
xor eax, 0x39f1160
cmp eax, 0x4beb0e1
jbe 0x14016f480
jmp 0x14016f810
mov eax, dword [0x1415c5210]
sub eax, dword [0x1415c5214]
add eax, 0x17c3bd3e
and eax, 0x55893bb7
imul r13, rax, 0x6b270cb7
shr r13, 0x3b
mov rcx, r14
call r12
cmp r13d, 0x76e094c2
jbe 0x14016f4ed
mov rcx, r14
call r12
jmp 0x14016f4b5
mov eax, dword [0x1415c5218]
mov ecx, dword [str._a6_bYS]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
mov ecx, eax
and ecx, 0xa2ac640
add ecx, ecx
sub eax, ecx
add eax, 0xa2ac640
mov ecx, eax
not ecx
and ecx, 0xc1e6a90b
mov edx, eax
and edx, 0x3e1956f4
imul edx, ecx
mov ecx, eax
and ecx, 0xc1e6a90b
or eax, 0xc1e6a90b
imul eax, ecx
add eax, edx
cmp eax, 0x35c3e031
je 0x14016f4ed
mov eax, 0xb72df767
nop dword [rax]
mov ecx, dword [0x1415c5220]
add ecx, dword [0x1415c5224]
imul rcx, rax
shr rcx, 0x3e
add ecx, 0x8914dfc5
and ecx, 0x804c28f
xor ecx, 0x477d363c
cmp ecx, 0x560473e
jb 0x14016f560
mov rax, qword [r15 + 8]
nop word cs:[rax + rax]
mov ecx, dword [0x1415c5228]
sub ecx, dword [0x1415c522c]
or ecx, 0x59f8ed8b
add ecx, 0x4ff6ca00
imul rcx, rcx, 0x7114dca7
shr rcx, 0x3c
cmp ecx, 0xee2a30c8
je 0x14016f5a0
test rax, rax
je 0x14016f6b8
mov rax, qword [r15 + 0x10]
mov edx, dword [0x1415c5230]
mov r8d, dword [0x1415c5234]
mov ecx, edx
not ecx
mov r9d, r8d
not r9d
mov r10d, ecx
and r10d, 0x3aa03104
and edx, 0xc55fcefb
or edx, r10d
or ecx, r9d
and r9d, 0x3aa03104
and r8d, 0xc55fcefb
or r8d, r9d
xor r8d, edx
not ecx
or ecx, r8d
add ecx, 0xa6e8d780
mov edx, ecx
xor edx, 0x33623400
xor ecx, 0xc1dcb77
mov r8d, ecx
and r8d, 0xc89148fa
and edx, 0x376eb705
imul edx, r8d
mov r8d, ecx
and r8d, 0x376eb705
or ecx, 0x376eb705
imul ecx, r8d
add ecx, edx
cmp ecx, 0xba1f4dcb
ja 0x14016f5d8
cmp rax, 0x11
jb 0x14016f6a7
mov eax, dword [0x1415c5238]
and eax, dword [0x1415c523c]
mov ecx, eax
not ecx
or ecx, 0x30026025
and ecx, 0x3caaf5bd
and eax, 0x41500a00
sub eax, ecx
or eax, 0x8317b4c5
cmp eax, 0x4a88775c
je 0x14016f66e
mov r14, qword [r14 - 8]
xor eax, eax
test al, al
jne 0x14016f6a3
mov rcx, qword [0x1415d3918]
xor edx, edx
mov r8, r14
call fcn.140219910
mov eax, dword [0x1415c5240]
sub eax, dword [str.wy]
imul rax, rax, 0xfc7b3cb
shr rax, 0x3b
imul eax, eax, 0x15ea0e09
not eax
or eax, 0xb0e80871
cmp eax, 0xf20458ac
jne 0x14016f6f0
mov rax, qword [0x1415d3918]
nop word [rax + rax]
mov eax, dword [0x1415c5248]
mov ecx, dword [0x1415c524c]
not ecx
not eax
mov edx, eax
or edx, ecx
not edx
and eax, ecx
or eax, edx
not eax
or eax, 0x60c6e0d
add eax, 0x8f86eb7b
or eax, 0xbfe74a6a
mov r14, qword [0x1415d3918]
cmp eax, 0xf75f674c
je 0x14016f6f0
mov eax, dword [0x1415c5250]
xor edx, edx
div dword [str.5gM]
or eax, 0x38c1f30
add eax, 0xde07a06
mov ecx, eax
not ecx
and ecx, 0xde29c57b
mov edx, eax
and edx, 0x20d63284
imul edx, ecx
mov ecx, eax
and ecx, 0xdd29c97b
or eax, 0xdf29cd7b
imul eax, ecx
add eax, edx
cmp eax, 0x9b6e34f8
jb 0x14016f7a8
mov eax, dword [0x1415c5258]
sub eax, dword [0x1415c525c]
and eax, 0xfcb13afb
imul r15, rax, 0x10a41cf9
shr r15, 0x3c
add r15d, 0x416fed57
mov rcx, r14
xor edx, edx
mov r8, rbx
call fcn.140219910
cmp r15d, 0xffe80f63
jbe 0x14016f7c0
mov rcx, r14
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14016f76f
mov eax, dword [0x1415c5260]
mov ecx, dword [0x1415c5264]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
add eax, 0x2691a210
imul rax, rax, 0x7b7d7275
shr rax, 0x3e
or eax, 0xaf8d8d24
cmp eax, 0xf5624e0a
ja 0x14016f7c0
nop dword [rax + rax]
mov eax, dword [0x1415c5268]
or eax, dword [0x1415c526c]
imul eax, eax, 0xb3044de5
add eax, 0x1a47b6d2
or eax, 0x608c7a56
cmp eax, 0xb56e3edc
je 0x14016f810
mov eax, dword [0x1415c5270]
xor eax, dword [0x1415c5274]
mov ecx, eax
xor ecx, 0x10008802
xor eax, 0x4000171
and eax, 0x8d9213f9
and ecx, 0x726dec06
sub ecx, eax
mov eax, ecx
and eax, 0x696dae3e
xor ecx, 0xe96dae3e
lea eax, [rcx + rax*2]
cmp eax, 0xc90b94c8
jb 0x14016f881
mov qword [rsi + 8], rdi
mov qword [rsi], 2
xor eax, eax
test al, al
je 0x14016f890
mov qword [rsi + 8], rdi
mov qword [rsi], 2
jmp 0x14016f870
mov eax, dword [0x1415c5278]
mov ecx, dword [0x1415c527c]
not eax
mov edx, eax
and edx, ecx
or eax, ecx
not eax
or eax, edx
shr eax, 1
imul rax, rax, 0x4348f7d5
shr rax, 0x3b
not eax
or eax, 0xb1cb35cc
and eax, 0xb1cb35ce
cmp eax, 0xba62e9c7
je 0x14016f890
jmp 0x14016f25c