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

Disassembly:
push rbx
mov r8d, dword [rsp + 0x30]
test ecx, ecx
je 0x201f6bac
test edx, edx
je 0x201f6bf5
movzx eax, byte [0x2055af7f]
nop dword [rax]
cmp al, 0x61
je 0x201f6ba3
movzx ecx, byte [0x2055b324]
mov eax, r8d
xor al, 0x4c
add al, cl
mov edx, r8d
xor dl, 0x40
add dl, cl
lock cmpxchg byte [0x2055af7f], dl
jne 0x201f6af0
xor edx, edx
lea rax, [0x2055af70]
lea rcx, [0x204757b0]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
mov r11d, r10d
xor r11b, r9b
mov ebx, r8d
xor r8b, r9b
not r9b
and bl, r9b
or r11b, bl
not r11b
or r11b, bl
and r9b, r10b
or r9b, r8b
not r9b
add r9b, r9b
mov r8d, r11d
xor r8b, r9b
and r9b, r11b
add r9b, r9b
add r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, edx
xor r8d, 1
add edx, edx
and edx, 2
mov r9d, r8d
xor r9d, edx
and edx, r8d
lea edx, [r9 + rdx*2]
cmp edx, 0xf
jl 0x201f6b30
mov al, 0x61
xchg byte [0x2055af7f], al
lea rax, [0x2055af70]
pop rbx
ret
test edx, edx
je 0x201f6c29
movzx eax, byte [0x2055a95a]
cmp al, 0xe6
je 0x201f6cfc
mov cl, 0x1a
nop word cs:[rax + rax]
mov al, 0x60
lock cmpxchg byte [0x2055a95a], cl
je 0x201f6c69
mov edx, r8d
xor dl, 0x1e
add dl, byte [0x2055b324]
cmp al, dl
jne 0x201f6bd0
jmp 0x201f6cfc
movzx eax, byte [0x2055ac5d]
cmp al, 0x7d
je 0x201f6d5d
mov cl, 0xef
nop word cs:[rax + rax]
mov al, 0xeb
lock cmpxchg byte [0x2055ac5d], cl
je 0x201f6d05
cmp al, 0x7d
jne 0x201f6c10
jmp 0x201f6d5d
movzx eax, byte [0x2055aecf]
mov ecx, r8d
xor cl, 0xf0
add cl, byte [0x2055b324]
cmp al, cl
je 0x201f6dd5
mov cl, 0xe7
nop word cs:[rax + rax]
mov al, 0x97
lock cmpxchg byte [0x2055aecf], cl
je 0x201f6d66
cmp al, 0xcc
jne 0x201f6c50
jmp 0x201f6dd5
xor edx, edx
lea rax, [0x2055a930]
lea rcx, [0x20475190]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
not r11b
and r10b, r9b
and r11b, r8b
mov r8d, r11d
xor r8b, r11b
not r8b
and r8b, r10b
and r10b, r11b
xor r8b, r11b
or r8b, r10b
mov byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 0x41892680
and edx, 0x41892680
lea edx, [r8 + rdx*2]
add edx, 0xe3070fc7
mov r8d, edx
xor r8d, 0x7ffffffe
and r8d, edx
xor edx, 1
lea edx, [rdx + r8*2]
add edx, 0xdb6fc9b9
cmp edx, 0x2a
jl 0x201f6c80
mov al, 0xe6
xchg byte [0x2055a95a], al
lea rax, [0x2055a930]
pop rbx
ret
xor eax, eax
lea rcx, [0x2055ac50]
lea rdx, [0x204754a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
not r9b
mov r11d, r10d
xor r11b, r9b
and r11b, r10b
and r9b, r8b
or r9b, r11b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x201f6d55
inc rax
jmp 0x201f6d20
mov al, 0x7d
xchg byte [0x2055ac5d], al
lea rax, [0x2055ac50]
pop rbx
ret
xor eax, eax
lea rcx, [0x2055aec0]
lea rdx, [0x20475700]
mov r10d, r8d
not r10d
mov r9d, r10d
and r9d, 0x33521f7f
and r8d, 0xccade080
or r9d, r8d
and r9d, r10d
or r9d, r8d
nop word cs:[rax + rax]
cdqe
movzx r8d, byte [rax + rdx]
mov r10d, r8d
xor r10b, r8b
not r10b
and r10b, byte [rax + rcx]
xor r10b, r8b
mov byte [rax + rcx], r10b
mov r8d, dword [0x2055b320]
add r8d, r9d
add eax, r8d
cmp eax, 0xf
jl 0x201f6da0
mov al, 0xcc
xchg byte [0x2055aecf], al
lea rax, [0x2055aec0]
pop rbx
ret