Function at 0x1402a2d80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r14d, r9d
test ecx, ecx
je 0x1402a2de3
test edx, edx
je 0x1402a2e38
movzx eax, byte [0x14056e4c5]
movzx ecx, byte [0x14056ee90]
add cl, 0x3b
cmp al, cl
je 0x1402a2f72
mov cl, 0x8c
nop word [rax + rax]
mov al, 0x5d
lock cmpxchg byte [0x14056e4c5], cl
je 0x1402a2ef3
movzx edx, byte [0x14056ee90]
add dl, 0x3b
cmp al, dl
jne 0x1402a2dc0
jmp 0x1402a2f72
test edx, edx
je 0x1402a2e69
movzx eax, byte [0x14056e585]
cmp al, 0x27
je 0x1402a2fcb
mov bl, 0x78
mov edi, r14d
xor edi, 0x7856178a
nop word cs:[rax + rax]
mov al, 0x6b
lock cmpxchg byte [0x14056e585], bl
je 0x1402a2f7e
mov ecx, eax
mov edx, edi
mov r8d, 0x1dedf257
call fcn.1402a44b0
test al, 1
je 0x1402a2e10
jmp 0x1402a2fcb
movzx eax, byte [0x14056e520]
cmp al, 4
je 0x1402a3077
mov cl, 0xc8
nop dword [rax]
mov al, 0xce
lock cmpxchg byte [0x14056e520], cl
je 0x1402a2fd7
cmp al, 4
jne 0x1402a2e50
jmp 0x1402a3077
movzx eax, byte [0x14056e7bd]
cmp al, 0xf8
je 0x1402a2ee7
movzx ecx, byte [0x14056ee90]
lea eax, [rcx - 0xf]
add cl, 0x28
lock cmpxchg byte [0x14056e7bd], cl
jne 0x1402a2e70
xor eax, eax
lea rsi, [0x14056e7b0]
lea rbx, [0x14047a2f0]
xor r14d, 0x678e23b4
mov ebp, 0x59d68c2d
lea rdi, [rsp + 0x30]
nop dword [rax]
movsxd rcx, eax
movzx edx, byte [rcx + rsi]
add dl, byte [rcx + rbx]
mov eax, dword [0x14056eea0]
add eax, ebp
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
mov r8d, ecx
mov r9, rdi
call fcn.1402a4180
mov eax, dword [rsp + 0x30]
cmp eax, 0xd
jl 0x1402a2eb0
mov al, 0xf8
xchg byte [0x14056e7bd], al
lea rax, [0x14056e7b0]
jmp 0x1402a307e
xor eax, eax
lea rcx, [0x14056e4b0]
lea rdx, [0x14047a020]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
and r10b, r9b
not r11b
and r11b, r8b
or r11b, r10b
mov byte [rax + rcx], r11b
lea r8d, [rax + 1]
cmp r8d, 0x14
jg 0x1402a2f45
inc rax
jmp 0x1402a2f10
mov ecx, r14d
not ecx
mov eax, r14d
xor eax, 0x6a4cd64f
and eax, ecx
xor r14d, 0x95b329b0
and ecx, 0x6a4cd64f
or ecx, r14d
not ecx
or ecx, eax
mov edx, 0x6a14c5c
call fcn.1402a4490
lea rax, [0x14056e4b0]
jmp 0x1402a307e
xor eax, eax
lea rsi, [0x14056e570]
xor r14d, 0xf52dd9af
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
movsxd rcx, eax
movzx edx, byte [rcx + rsi]
mov dword [rsp + 0x20], 0xb4731e36
mov r8, rdi
mov r9d, r14d
call fcn.1402a4320
mov eax, dword [rsp + 0x30]
cmp eax, 0x15
jl 0x1402a2fa0
mov al, 0x27
xchg byte [0x14056e585], al
lea rax, [0x14056e570]
jmp 0x1402a307e
xor ebp, ebp
mov edi, r14d
xor edi, 0x558c41d4
lea rbx, [rsp + 0x30]
lea r15, [0x14047a070]
lea r12, [0x14056e510]
mov r13d, 0x6f609bd8
mov esi, r14d
not esi
mov r9d, dword [0x14056eea0]
mov eax, 0x371dba21
add r9d, eax
mov ecx, ebp
mov rdx, rbx
mov r8d, edi
call fcn.1402a41d0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
movsxd rcx, ebp
add al, byte [rcx + r15]
mov byte [rcx + r12], al
mov r8d, dword [0x14056eea0]
add r8d, r13d
not r8d
mov eax, esi
xor eax, r8d
and eax, esi
and r8d, r14d
or r8d, eax
mov rdx, rbx
mov r9d, 0xd5da24f5
call fcn.1402a44a0
mov ebp, dword [rsp + 0x30]
test al, 1
je 0x1402a3000
movzx eax, byte [0x14056ee90]
mov ecx, eax
xor cl, 0x14
and al, 0x14
add al, al
add al, cl
xchg byte [0x14056e520], al
lea rax, [0x14056e510]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret