Function at 0x14018ea70
Capabilities:
Check for software breakpoints
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
test ecx, ecx
je 0x14018eab9
test edx, edx
je 0x14018eb32
movzx eax, byte [0x14050d63d]
cmp al, 0xcc
je 0x14018ec30
mov cl, 0xc
nop word cs:[rax + rax]
mov al, 0xb8
lock cmpxchg byte [0x14050d63d], cl
je 0x14018eb89
cmp al, 0xcc
jne 0x14018eaa0
jmp 0x14018ec30
mov eax, 0x56f5ddb0
add eax, dword [0x14050fe38]
cmp edx, eax
jne 0x14018eb46
movzx eax, byte [0x14050d7b1]
cmp al, 0x6a
je 0x14018ed43
mov cl, 0xcd
mov edx, 0x56f5ddf7
jmp 0x14018eae8
cmp al, 0x6a
je 0x14018ed43
mov al, 0x90
lock cmpxchg byte [0x14050d7b1], cl
je 0x14018ec4d
nop dword [rax + rax]
mov r8d, dword [0x1405644fc]
mov r9d, dword [0x14050fe38]
add r9d, edx
cmp r8d, r9d
jge 0x14018eb23
mov r8d, dword [0x1405644fc]
cmp r8d, 0xe
jle 0x14018eae0
mov r8d, dword [0x1405644fc]
cmp r8d, 0x30
jge 0x14018eb00
jmp 0x14018eb16
mov eax, dword [0x1405644fc]
cmp eax, 0x32
jg 0x14018ed70
jmp 0x14018ed60
movzx eax, byte [0x14050d724]
movzx ecx, byte [0x14050fe48]
add cl, 0x72
cmp al, cl
je 0x14018ed54
mov cl, 0x5e
nop word cs:[rax + rax]
mov al, 0x3a
lock cmpxchg byte [0x14050d724], cl
je 0x14018ec8c
cmp al, 0xf1
jne 0x14018eb70
jmp 0x14018ed54
mov r8d, 0x56f5ddb1
mov r9d, 1
xor r10d, r10d
lea r11, [0x14050d630]
lea rsi, [0x14042ca00]
mov edi, 0x56f5ddfc
xor ebx, ebx
test r10b, r10b
jne 0x14018ebf1
nop word cs:[rax + rax]
movzx eax, byte [rbx + rsi]
add byte [rbx + r11], al
mov eax, dword [0x1405644fc]
mov ecx, dword [0x14050fe38]
add ecx, edi
cmp eax, ecx
jge 0x14018ebf1
lea eax, [rbx + 1]
cmp eax, 0xc
jg 0x14018ec25
add r8d, 0xfffffffe
dec r9d
inc rbx
test r10b, r10b
je 0x14018ebc0
movzx edx, byte [rbx + r11]
movzx ecx, byte [rbx + rsi]
mov ebp, edx
shl bpl, cl
mov eax, edx
sub al, bpl
mul bpl
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
sub al, cl
mul cl
mov edx, eax
sub cl, al
sub cl, al
mov eax, ecx
mul dl
add al, dl
mov byte [rbx + r11], al
jmp 0x14018ebc0
mov al, 0xcc
xchg byte [0x14050d63d], al
nop dword [rax]
mov eax, dword [0x1405644f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14018ec30
lea rax, [0x14050d630]
jmp 0x14018ed5b
xor eax, eax
lea rcx, [0x14050d7a0]
lea rdx, [0x14042cb70]
nop dword [rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0x10
jg 0x14018ed3b
inc rax
jmp 0x14018ec60
xor r8d, r8d
lea r9, [0x14050d710]
lea r10, [0x14042cae0]
jmp 0x14018ecb1
inc r8d
add eax, 0x56f5ddc4
cmp r8d, eax
jge 0x14018ed4c
mov eax, dword [0x1405644f8]
mov ecx, dword [0x14050fe38]
add ecx, eax
dec ecx
imul ecx, eax
movsxd r11, r8d
test cl, 1
jne 0x14018ecf0
nop dword [rax]
movzx eax, byte [r11 + r10]
xor byte [r11 + r9], al
mov eax, dword [0x14050fe38]
cmp eax, 0xa90a2250
je 0x14018eca0
nop word cs:[rax + rax]
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
sub al, cl
mul cl
shl al, cl
mul cl
mov edx, eax
xor al, cl
and dl, cl
add dl, dl
add dl, al
mov ebx, edx
shl bl, cl
mov eax, edx
sub al, bl
mul bl
mov ebx, edx
mov ecx, eax
shl bl, cl
sub dl, bl
mov eax, edx
mul bl
mov ecx, ebx
xor cl, bl
not cl
and cl, al
xor cl, bl
mov byte [r11 + r9], cl
cmp dword [0x140564510], 0
jne 0x14018ecf0
jmp 0x14018ecd0
mov al, 0x6a
xchg byte [0x14050d7b1], al
lea rax, [0x14050d7a0]
jmp 0x14018ed5b
mov al, 0xf1
xchg byte [0x14050d724], al
lea rax, [0x14050d710]
pop rbx
pop rbp
pop rdi
pop rsi
ret
movzx eax, byte [0x14050d542]
mov cl, 1
test cl, cl
jne 0x14018edc7
nop dword [rax]
movzx eax, byte [0x14050d542]
mov eax, dword [0x1405644f8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14050fe38]
mov edx, eax
xor edx, 0x56f5ddb0
and eax, 0x56f5ddb0
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x14018ed70
jmp 0x14018ed60
movzx ecx, byte [0x14050fe48]
lea eax, [rcx - 0x79]
add cl, 0xe4
lock cmpxchg byte [0x14050d542], cl
je 0x14018edd0
cmp al, 0xf6
jne 0x14018edb0
jmp 0x14018eea1
xor r9d, r9d
lea r10, [0x14050d530]
lea r11, [0x14042c910]
jmp 0x14018ee08
add r9d, eax
add r9d, 0x56f5ddb1
add eax, 0x56f5ddc2
cmp r9d, eax
jge 0x14018ee99
mov eax, dword [0x1405644fc]
movsxd rsi, r9d
cmp eax, 0x44
jg 0x14018ee3a
nop word cs:[rax + rax]
movzx eax, byte [rsi + r11]
add byte [rsi + r10], al
mov eax, dword [0x14050fe38]
mov ecx, dword [0x1405644fc]
cmp ecx, 0x46
jle 0x14018edf0
movzx edx, byte [rsi + r10]
movzx ecx, byte [rsi + r11]
mov r8d, edx
shl r8b, cl
mov ecx, r8d
shl dl, cl
mov eax, edx
sub al, r8b
mul r8b
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
mov edx, eax
shl dl, cl
mov r8d, edx
sub r8b, al
mov eax, r8d
mov ecx, edx
shl al, cl
mov edx, r8d
mov ecx, eax
shl dl, cl
mov ecx, edx
shl r8b, cl
movzx eax, byte [0x14050fe48]
sub al, r8b
mov ecx, edx
shl r8b, cl
add al, 0x81
mul r8b
add al, r8b
mov byte [rsi + r10], al
jmp 0x14018ee20
mov al, 0xf6
xchg byte [0x14050d542], al
lea rax, [0x14050d530]
jmp 0x14018ed5b