Function at 0x1402c8950
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov esi, r9d
test ecx, ecx
je 0x1402c89b9
test edx, edx
je 0x1402c89f9
mov ecx, 0x5976853
add ecx, dword [0x1405c9858]
xor ecx, esi
mov eax, dword [0x1405c8ec8]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8f18]
call qword [case.0x14016c073.0]
test al, 1
jne 0x1402c8b40
mov cl, 0x96
nop dword [rax]
mov al, 0xa0
lock cmpxchg byte [0x1405c8e8c], cl
je 0x1402c8b05
cmp al, 0xf
jne 0x1402c89a0
jmp 0x1402c8b40
mov eax, 0x5875d356
add eax, dword [0x1405c9858]
cmp edx, eax
jne 0x1402c8a7d
movzx eax, byte [0x1405c8d15]
cmp al, 0xe8
je 0x1402c8c37
mov cl, 0xff
nop dword [rax]
mov al, 0x7a
lock cmpxchg byte [0x1405c8d15], cl
je 0x1402c8bf2
cmp al, 0xe8
jne 0x1402c89e0
jmp 0x1402c8c37
mov ecx, esi
xor ecx, 0x994a7426
mov eax, dword [0x1405c8ed8]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8f00]
call qword [case.0x14016c073.0]
test al, 1
jne 0x1402c8be6
mov edi, esi
xor edi, 0xf064b337
lea rbx, [rsp + 0x2b]
nop word cs:[rax + rax]
mov eax, dword [0x1405c8ecc]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8f10]
mov rcx, rbx
mov edx, edi
call qword [case.0x14016c073.0]
test al, 1
jne 0x1402c8b4c
movzx eax, byte [0x1405c985c]
add al, 0x56
cmp byte [rsp + 0x2b], al
jne 0x1402c8a40
jmp 0x1402c8be6
movzx eax, byte [0x1405c8bd2]
cmp al, 0x9a
je 0x1402c8cc1
mov edi, esi
xor edi, 0xbdb5fee
lea rbx, [rsp + 0x29]
mov ebp, esi
xor ebp, 0xc413c565
nop word cs:[rax + rax]
mov eax, dword [0x1405c8ec0]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8ee8]
mov rcx, rbx
mov edx, edi
call qword [case.0x14016c073.0]
test al, 1
jne 0x1402c8c43
movzx ecx, byte [rsp + 0x29]
mov eax, dword [0x1405c8ed0]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8ef0]
mov edx, ebp
call qword [case.0x14016c073.0]
test al, 1
je 0x1402c8ab0
jmp 0x1402c8cc1
xor eax, eax
lea rcx, [0x1405c8e80]
lea rdx, [0x1404d8200]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x1402c8b38
inc rax
jmp 0x1402c8b20
mov al, 0xf
xchg byte [0x1405c8e8c], al
lea rax, [0x1405c8e80]
jmp 0x1402c8cc8
xor eax, eax
lea rbx, [0x1405c8c40]
lea r14, [0x1404d7fd0]
mov ebp, esi
xor ebp, 0xc29f1ee0
lea rdi, [rsp + 0x2c]
nop dword [rax]
movsxd r8, eax
lea rdx, [rbx + r8]
movzx ecx, byte [r8 + rbx]
xor cl, byte [r8 + r14]
mov eax, dword [0x1405c8edc]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8ef8]
mov dword [rsp + 0x20], ebp
mov r9, rdi
call qword [case.0x14016c073.0]
mov eax, dword [rsp + 0x2c]
cmp eax, 0x10
jl 0x1402c8b70
mov eax, dword [0x1405c9858]
mov ecx, eax
xor ecx, 0xfa520c41
mov edx, eax
and edx, 0x7a520c41
lea ecx, [rcx + rdx*2]
xor ecx, esi
mov edx, dword [0x1405c8ed4]
sub esi, eax
lea eax, [rsi + rdx]
add eax, 0xa78b04fa
cdqe
add rax, qword [0x1405c8ee0]
call qword [case.0x14016c073.0]
lea rax, [0x1405c8c40]
jmp 0x1402c8cc8
xor edx, edx
lea rax, [0x1405c8d00]
lea rcx, [0x1404d8080]
nop word cs:[rax + 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, 0x15
jl 0x1402c8c10
mov al, 0xe8
xchg byte [0x1405c8d15], al
lea rax, [0x1405c8d00]
jmp 0x1402c8cc8
xor edi, edi
lea r14, [0x1405c8bd0]
mov ebp, 0xe75b7efe
lea rbx, [rsp + 0x2a]
nop word cs:[rax + rax]
movzx edx, byte [rdi + r14]
mov r9d, dword [0x1405c9858]
add r9d, ebp
xor r9d, esi
mov eax, dword [0x1405c8ec4]
add eax, esi
add eax, 0xd850
cdqe
add rax, qword [0x1405c8f08]
mov ecx, edi
mov r8, rbx
call qword [case.0x14016c073.0]
movzx eax, byte [rsp + 0x2a]
mov byte [rdi + r14], al
lea eax, [rdi + 1]
cmp eax, 1
jg 0x1402c8ca9
inc rdi
jmp 0x1402c8c60
movzx eax, byte [0x1405c985c]
mov ecx, eax
xor cl, 0xb3
and al, 0x33
add al, al
add al, cl
xchg byte [0x1405c8bd2], al
lea rax, [0x1405c8bd0]
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret