Function at 0x14016f980
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r12d, dword [rsp + 0xc0]
mov eax, r12d
xor eax, 0x7aa9c0da
add eax, dword [0x1405019e8]
cmp ecx, eax
jne 0x14016fa7c
test edx, edx
je 0x14016fade
movzx eax, byte [0x1405016ed]
cmp al, 0xc0
je 0x14016fbd7
mov r14d, r12d
not r14d
mov esi, r12d
xor esi, 0x7c2f2964
mov r13d, r12d
xor r13d, 0x77efd5c9
mov eax, r14d
and eax, 0x81a7401f
mov r15d, r12d
xor r15d, 0x7e58bfe0
or r15d, eax
not r15d
or r15d, eax
nop dword [rax]
mov r8d, esi
sub r8d, dword [0x1405019e8]
mov eax, r14d
xor eax, r8d
or r8d, r14d
and r8d, eax
lea rcx, [rsp + 0x30]
mov edx, 0xde32d274
call fcn.14016fe70
movzx ebx, byte [rsp + 0x30]
movzx ebp, byte [rsp + 0x31]
mov dword [rsp + 0x20], r13d
mov ecx, ebx
mov edx, ebp
lea r8, [rsp + 0x2e]
mov r9d, 0x69d5a28e
call fcn.14016e570
movzx edi, byte [rsp + 0x2e]
mov r9d, dword [0x1405019e8]
add r9d, r15d
xor r9d, r12d
mov ecx, ebx
mov edx, ebp
mov r8d, 0x75985703
call fcn.140170280
test al, 1
jne 0x14016fb99
cmp dil, 0xc0
jne 0x14016fa00
jmp 0x14016fbd7
test edx, edx
je 0x14016fb28
movzx eax, byte [0x1405014b3]
cmp al, 0x8f
je 0x14016fc68
mov esi, r12d
xor esi, 0x8a5564a6
lea rdi, [rsp + 0x2f]
nop word cs:[rax + rax]
mov rcx, rdi
mov edx, 0x19ec4df
mov r8d, esi
call fcn.14016fd90
test al, 1
jne 0x14016fbe3
mov eax, r12d
xor al, 0x7c
add al, byte [0x1405019ec]
cmp byte [rsp + 0x2f], al
jne 0x14016fab0
jmp 0x14016fc68
movzx eax, byte [0x1405016cb]
cmp al, 0x3c
je 0x14016fd5a
mov bl, 5
mov esi, r12d
xor esi, 0x17ac7d2c
nop dword [rax + rax]
mov al, 0x2c
lock cmpxchg byte [0x1405016cb], bl
je 0x14016fc74
mov ecx, eax
mov edx, 0x4eda881b
mov r8d, esi
call fcn.14016f970
test al, 1
je 0x14016fb00
jmp 0x14016fd5a
movzx eax, byte [0x140501683]
cmp al, 0xc1
je 0x14016fd75
mov esi, r12d
xor esi, 0xa668722d
lea rdi, [rsp + 0x40]
mov ebx, r12d
xor ebx, 0xbed13c82
mov ebp, r12d
xor ebp, 0x752d90fe
nop word [rax + rax]
mov rcx, rdi
mov edx, 0xb926263b
mov r8d, esi
call fcn.1401702a0
cmp byte [rsp + 0x41], 0
jne 0x14016fd11
movzx ecx, byte [rsp + 0x40]
mov edx, dword [0x1405019e8]
add edx, ebp
mov r8d, ebx
call fcn.14016f710
test al, 1
je 0x14016fb60
jmp 0x14016fd75
xor edx, edx
lea rax, [0x1405016e0]
lea rcx, [0x140425e30]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x14016fbb0
mov al, 0xc0
xchg byte [0x1405016ed], al
lea rax, [0x1405016e0]
jmp 0x14016fd7c
xor edx, edx
lea rax, [0x140501490]
lea rcx, [0x140425be0]
xor r12d, 0x7aa9c0db
add r12d, 0x24a9e51
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
not r9b
mov r10d, r9d
or r10b, r8b
not r10b
and r9b, r8b
or r9b, r10b
mov byte [rdx + rax], r9b
mov r8d, dword [0x1405019e8]
mov r9d, r12d
xor r9d, r8d
and r8d, r12d
lea r8d, [r9 + r8*2]
add r8d, 0xfdb561af
mov r9d, edx
xor r9d, r8d
and edx, r8d
lea edx, [r9 + rdx*2]
cmp edx, 0x23
jl 0x14016fc10
mov al, 0x8f
xchg byte [0x1405014b3], al
lea rax, [0x140501490]
jmp 0x14016fd7c
xor esi, esi
mov edi, r12d
xor edi, 0x7b10347b
lea r15, [0x1405016c0]
mov ebp, r12d
xor ebp, 0x30717800
mov r13d, r12d
xor r13d, 0x26894669
mov ebx, r12d
xor ebx, 0x7aa9c0d5
nop word cs:[rax + rax]
mov ecx, esi
lea rdx, [rsp + 0x50]
mov r8d, 0x5d5f75a0
mov r9d, edi
call fcn.1400aeef0
mov rax, qword [rsp + 0x50]
movzx r14d, byte [rax + r15]
mov r8d, dword [0x1405019e8]
add r8d, r13d
mov rcx, rsi
lea rdx, [rsp + 0x2d]
mov r9d, ebp
call fcn.14016f250
movzx eax, byte [rsp + 0x2d]
mov ecx, eax
xor cl, al
not cl
and cl, r14b
xor cl, al
mov byte [rsi + r15], cl
lea eax, [rsi + 1]
mov ecx, dword [0x1405019e8]
add ecx, ebx
cmp eax, ecx
jge 0x14016fd48
inc rsi
jmp 0x14016fcb0
xor eax, eax
lea rcx, [0x140501670]
lea rdx, [0x140425dc0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x12
jg 0x14016fd63
inc rax
jmp 0x14016fd30
xor r12b, 0xc9
add r12b, byte [0x1405019ec]
xchg byte [0x1405016cb], r12b
lea rax, [0x1405016c0]
jmp 0x14016fd7c
xor r12b, 0x4e
add r12b, byte [0x1405019ec]
xchg byte [0x140501683], r12b
lea rax, [0x140501670]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret