Function at 0x1401c4c40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov edi, r9d
mov esi, dword [rsp + 0x90]
test ecx, ecx
je 0x1401c4d12
test edx, edx
je 0x1401c4dcc
movzx eax, byte [0x140532383]
cmp al, 0x2c
je 0x1401c4eab
mov eax, esi
not eax
mov ecx, esi
xor ecx, 0x6aea7bf1
and ecx, eax
and eax, 0xe2fdfcea
mov ebp, esi
and ebp, 0x1d020315
or ebp, eax
mov r14d, esi
and r14d, 0x9515840e
or r14d, ecx
lea rbx, [rsp + 0x28]
nop word cs:[rax + rax]
movzx ecx, byte [0x140535048]
mov eax, esi
xor al, 0x3f
add al, cl
mov edx, esi
xor dl, 0xbd
add dl, cl
lock cmpxchg byte [0x140532383], dl
sete dl
mov ecx, dword [0x140535038]
add ecx, ebp
mov r9d, ecx
xor r9d, ecx
not r9d
and r9d, edi
xor r9d, ecx
mov dword [rsp + 0x20], r14d
mov ecx, eax
mov r8, rbx
call fcn.1401c4fa0
test al, 1
jne 0x1401c4e49
mov eax, esi
xor al, 0xec
add al, byte [0x140535048]
cmp byte [rsp + 0x28], al
jne 0x1401c4cb0
jmp 0x1401c4eab
test edx, edx
je 0x1401c4e16
movzx eax, byte [0x14053248b]
nop word cs:[rax + rax]
cmp al, 0x51
je 0x1401c4dc0
movzx ecx, byte [0x140535048]
mov eax, esi
xor al, 0x52
add al, cl
mov edx, esi
xor dl, 0xa4
add dl, cl
lock cmpxchg byte [0x14053248b], dl
jne 0x1401c4d30
xor eax, eax
lea r15, [0x140532470]
mov ecx, edi
not ecx
xor edi, 0x56bfd9d
and ecx, 0xfa940262
or edi, ecx
not edi
or edi, ecx
xor esi, 0xd1d790fd
lea rbx, [rsp + 0x28]
movsxd r14, eax
movzx ebp, byte [r14 + r15]
mov ecx, r14d
mov rdx, rbx
mov r8d, edi
mov r9d, esi
call fcn.1401c6820
mov rax, qword [rsp + 0x28]
add bpl, byte [rax]
mov byte [r14 + r15], bpl
mov eax, r14d
xor eax, 1
and r14d, 1
lea eax, [rax + r14*2]
cmp eax, 0x1b
jl 0x1401c4d80
mov al, 0x51
xchg byte [0x14053248b], al
lea rax, [0x140532470]
jmp 0x1401c4f87
movzx eax, byte [0x140532402]
cmp al, 0xa1
je 0x1401c4f44
mov r14b, 0x6b
mov ebx, edi
xor ebx, 0x2d55963d
mov ebp, esi
xor ebp, 0x81542e6
nop
mov al, 0x32
lock cmpxchg byte [0x140532402], r14b
je 0x1401c4eb7
mov ecx, eax
mov edx, ebx
mov r8d, ebp
call fcn.1401c66e0
test al, 1
je 0x1401c4df0
jmp 0x1401c4f44
movzx eax, byte [0x140532504]
cmp al, 0x9c
je 0x1401c4f80
mov cl, 0xc2
nop word [rax + rax]
mov al, 0x8c
lock cmpxchg byte [0x140532504], cl
je 0x1401c4f4d
cmp al, 0x9c
jne 0x1401c4e30
jmp 0x1401c4f80
xor edx, edx
lea rax, [0x140532380]
lea rcx, [0x140452780]
xor esi, 0xee097058
nop
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, dword [0x140535038]
add r8d, esi
mov r9d, edx
xor r9d, r8d
not edx
not r8d
and r8d, edx
or r8d, r9d
not r8d
lea edx, [r9 + r8*2]
cmp edx, 3
jl 0x1401c4e60
mov al, 0x2c
xchg byte [0x140532383], al
lea rax, [0x140532380]
jmp 0x1401c4f87
xor ebx, ebx
xor edi, 0x9303477e
mov eax, esi
not eax
mov ecx, eax
and ecx, 0x12a4e6fb
mov ebp, esi
and ebp, 0xed5b1904
or ebp, ecx
lea r14, [rsp + 0x28]
lea r15, [0x1404527f0]
lea r12, [0x1405323f0]
and eax, 0xee09704b
and esi, 0x11f68fb4
or esi, eax
nop word cs:[rax + rax]
mov ecx, ebx
mov rdx, r14
mov r8d, edi
mov r9d, ebp
call fcn.1401c5040
mov rax, qword [rsp + 0x28]
movzx ecx, byte [rbx + r15]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [rax]
xor dl, cl
mov byte [rbx + r12], dl
lea eax, [rbx + 1]
mov ecx, dword [0x140535038]
add ecx, esi
cmp eax, ecx
jge 0x1401c4f3c
inc rbx
jmp 0x1401c4f00
mov al, 0xa1
xchg byte [0x140532402], al
lea rax, [0x1405323f0]
jmp 0x1401c4f87
xor eax, eax
lea rcx, [0x1405324f0]
lea rdx, [0x1404528f0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x13
jg 0x1401c4f78
inc rax
jmp 0x1401c4f60
mov al, 0x9c
xchg byte [0x140532504], al
lea rax, [0x1405324f0]
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret