Function at 0x1401cebe0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
test ecx, ecx
je 0x1401cec10
test edx, edx
je 0x1401ced08
mov eax, dword [0x14058f6bc]
cmp eax, 0x2a
jg 0x1401cf1b0
jmp 0x1401cf191
mov eax, 0x4edefa7b
add eax, dword [0x1405332ec]
cmp edx, eax
jne 0x1401cedc0
movzx eax, byte [0x140533162]
cmp al, 0x9b
je 0x1401cf0b3
mov ebp, 0x4edefa7d
mov r14b, 6
lea rsi, [rsp + 0x40]
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
mov ecx, dword [0x14058f6b8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1405332ec]
add ecx, ebp
xor edx, edx
div ecx
test edx, edx
jne 0x1401cecbe
mov al, 0x8f
lock cmpxchg byte [0x140533162], r14b
mov ebx, eax
sete r15b
mov rcx, rsi
mov rdx, rdi
mov r8d, 0xcff27941
mov r9d, 0xa99fa2c7
call fcn.1401cf4f0
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x30]
mov ecx, dword [0x1405332ec]
mov edx, ecx
xor edx, 0x31210582
and edx, ecx
xor ecx, 0x4edefa7d
lea ecx, [rcx + rdx*2]
xor edx, edx
div ecx
test edx, edx
je 0x1401cece0
mov edx, dword [0x1405332ec]
lea ecx, [rdx + 0xe228d15]
add edx, 0x466ff0a9
call fcn.1401cfa10
test al, 1
je 0x1401cec50
jmp 0x1401cec6c
test r15b, r15b
jne 0x1401ceeda
mov ecx, ebx
mov edx, 0xee00fed2
mov r8d, 0xa05c573c
call fcn.1401cf5a0
test al, 1
je 0x1401cec50
jmp 0x1401cf0b3
movzx eax, byte [0x140533210]
cmp al, 0xf6
je 0x1401ceec6
lea rsi, [rsp + 0x30]
xor ebx, ebx
jmp 0x1401ced32
movzx eax, byte [0x1405332e8]
add al, 0xfc
cmp bpl, al
je 0x1401ceec6
mov rcx, rsi
mov edx, 0xefd0c5f8
mov r8d, 0xe13d9a8d
call fcn.1401cfad0
cmp byte [rsp + 0x31], 0
jne 0x1401cedf9
movzx ebp, byte [rsp + 0x30]
nop word cs:[rax + rax]
mov r8d, dword [0x1405332ec]
lea edx, [r8 - 0x2a4dd554]
add r8d, 0xa674c364
mov rcx, rsi
call fcn.1401cf490
mov edi, dword [rsp + 0x30]
mov r9d, dword [0x1405332ec]
lea r8d, [r9 - 0x4f356881]
add r9d, 0xf1c5ae5a
mov ecx, edi
mov rdx, rsi
call fcn.1401cfab0
imul edi, dword [rsp + 0x30]
test dil, 1
jne 0x1401cedb3
test bl, bl
je 0x1401ced20
mov eax, dword [0x14058f6bc]
cmp eax, 0x5c
jge 0x1401ced60
jmp 0x1401cedab
movzx eax, byte [0x140533156]
movzx ecx, byte [0x1405332e8]
add cl, 0xf4
cmp al, cl
je 0x1401cf141
mov cl, 0xf6
nop dword [rax + rax]
mov al, 0xc
lock cmpxchg byte [0x140533156], cl
je 0x1401cf043
cmp al, 0xee
jne 0x1401cede0
jmp 0x1401cf141
xor eax, eax
lea rcx, [0x140533200]
lea rdx, [0x1404510a0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x1401cee28
inc rax
jmp 0x1401cee10
lea rax, [fcn.1401cebe0]
lea esi, [rax + rax]
add esi, 0xf20
mov edi, esi
not edi
mov ebx, 0x7a578b23
nop word cs:[rax + rax]
mov eax, dword [0x14058f6b8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401cee99
mov edx, dword [0x1405332ec]
lea ecx, [rdx - 0x364ec3fa]
add edx, 0xe77cb2c1
call fcn.14008abc0
mov eax, dword [0x1405332ec]
lea ecx, [rax + 0x4edefa7c]
mov edx, esi
xor edx, ecx
not ecx
and ecx, edi
or ecx, edx
not ecx
add eax, 0x4edefa7b
cmp ecx, eax
je 0x1401ceebe
mov eax, dword [0x14058f6bc]
mov ecx, dword [0x1405332ec]
add ecx, ebx
mov edx, ecx
xor edx, 0xd4876f91
and ecx, 0x54876f91
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x1401cee50
jmp 0x1401cee61
mov al, 0xf6
xchg byte [0x140533210], al
mov eax, dword [0x14058f6bc]
cmp eax, 0x43
jle 0x1401cf14d
jmp 0x1401cf174
xor ebp, ebp
lea rax, [fcn.1401cebe0]
lea r12d, [rax + rax]
add r12d, 0x460
mov dword [rsp + 0x44], r12d
not r12d
lea r13, [0x140533160]
lea rsi, [rsp + 0x30]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
jmp 0x1401cef1a
test r15b, 1
jne 0x1401cf08f
movsxd r14, ebp
test dword [rsp + 0x44], r12d
jne 0x1401cefd5
nop dword [rax + rax]
movzx ebp, byte [r14 + r13]
mov eax, dword [0x1405332ec]
lea r8d, [rax + 0x5a644612]
mov ecx, eax
xor ecx, 0x28ad79c9
and eax, 0x28ad79c9
lea r9d, [rcx + rax*2]
mov ecx, r14d
mov rdx, rsi
call fcn.1401cf7d0
add bpl, byte [rsp + 0x30]
mov byte [r14 + r13], bpl
lea eax, [r14 + 0x6a2e06f4]
mov ecx, eax
xor ecx, 0x95d1f90d
and eax, 0x15d1f90d
lea ebp, [rcx + rax*2]
mov dword [rsp + 0x28], 0x2bd5cd9d
mov dword [rsp + 0x20], 0x5bf4ac0a
mov ecx, ebp
mov rdx, rdi
mov r8, rbx
mov r9, rsi
call fcn.1401cfaf0
mov ecx, dword [rsp + 0x40]
imul ecx, dword [rsp + 0x30]
movzx r15d, byte [rsp + 0x3f]
mov r9d, dword [0x1405332ec]
lea r8d, [r9 + 0x54b5b2e8]
add r9d, 0xd09ac9b3
mov rdx, rsi
call fcn.140133000
cmp dword [rsp + 0x30], 0
je 0x1401cef10
mov ecx, r14d
mov rdx, rsi
mov r8d, 0x3615f546
mov r9d, 0xc0c98bc5
call fcn.1401cfa30
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax]
lea rax, [0x140451010]
movzx eax, byte [r14 + rax]
mov ebp, ecx
neg bpl
lea edx, [rcx - 1]
xor dl, bpl
and dl, al
xor dl, bpl
and bpl, al
add bpl, bpl
add bpl, dl
mov dword [rsp + 0x20], 0x42196e76
mov edx, ebp
mov r8, rsi
mov r9d, 0xdadc3c69
call fcn.1401cf530
mov eax, ebp
sub al, byte [rsp + 0x30]
add al, bpl
mov byte [r14 + r13], al
jmp 0x1401cef30
xor eax, eax
lea rcx, [0x140533150]
lea rdx, [0x140451000]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r8b
mov r10d, r8d
and r10b, r9b
or r8b, r9b
not r8b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 5
jg 0x1401cf0bc
inc rax
jmp 0x1401cf060
mov eax, dword [0x14058f6bc]
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x1401cf0a0
mov ecx, 0x84ba9b88
mov edx, 0x786e299e
call fcn.1401cfa50
lea rax, [0x140533160]
jmp 0x1401cf0c9
mov eax, dword [0x14058f6bc]
cmp eax, 0x26
jge 0x1401cf110
jmp 0x1401cf0da
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 0xee
xchg byte [0x140533156], al
mov r8d, dword [0x1405332ec]
lea edx, [r8 + 0x2cdb7c9c]
add r8d, 0xce23dc05
lea rcx, [rsp + 0x30]
call fcn.1401cfaa0
cmp dword [rsp + 0x30], 0x46
jl 0x1401cf141
nop dword [rax + rax]
mov al, 0xee
xchg byte [0x140533156], al
mov eax, dword [0x14058f6bc]
mov ecx, dword [0x1405332ec]
mov edx, ecx
xor edx, 0xab19eb67
and ecx, 0x2b19eb67
lea ecx, [rdx + rcx*2]
add ecx, 0xa3c50f61
cmp eax, ecx
jge 0x1401cf110
jmp 0x1401cf0da
lea rax, [0x140533150]
jmp 0x1401cf0c9
mov eax, dword [0x14058f6bc]
mov ecx, dword [0x1405332ec]
mov edx, ecx
xor edx, 0x1820904d
and ecx, 0x1820904d
lea ecx, [rdx + rcx*2]
add ecx, 0x36be6a3a
cmp eax, ecx
jl 0x1401cf185
mov ecx, 0xf06a41b8
mov edx, 0xe1ec889a
call fcn.1401cf4e0
jmp 0x1401cf14d
lea rax, [0x140533200]
jmp 0x1401cf0c9
lea rcx, [rsp + 0x30]
mov edx, 0xf3f73b13
mov r8d, 0xb3192f99
call fcn.1401cfa00
mov al, 1
test al, al
jne 0x1401cf1c4
nop dword [rax]
movzx eax, byte [0x140533190]
mov eax, dword [0x14058f6bc]
cmp eax, 0x38
jge 0x1401cf1b0
jmp 0x1401cf191
cmp byte [rsp + 0x30], 0x39
je 0x1401cf229
mov cl, 0xc6
nop dword [rax]
mov al, 0xb8
lock cmpxchg byte [0x140533190], cl
je 0x1401cf1e2
cmp al, 0x39
jne 0x1401cf1d0
jmp 0x1401cf229
xor edx, edx
lea rax, [0x140533180]
lea rcx, [0x140451030]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x1405332ec]
add edx, r8d
add edx, 0x4edefa7c
cmp edx, 0x10
jl 0x1401cf200
mov al, 0x39
xchg byte [0x140533190], al
lea rax, [0x140533180]
jmp 0x1401cf0c9