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

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
test ecx, ecx
je 0x201f5dc9
mov eax, 0xb8153164
add eax, dword [0x2055b320]
cmp edx, eax
jne 0x201f5e09
movzx eax, byte [0x2055b0dd]
cmp al, 0xa3
je 0x201f5f8a
mov cl, 7
nop
mov al, 0xbe
lock cmpxchg byte [0x2055b0dd], cl
je 0x201f5eeb
cmp al, 0xa3
jne 0x201f5db0
jmp 0x201f5f8a
test edx, edx
je 0x201f5e88
movzx eax, byte [0x2055abdd]
cmp al, 0xd9
je 0x201f6077
mov cl, 0xc9
nop word cs:[rax + rax]
mov al, 0xbf
lock cmpxchg byte [0x2055abdd], cl
je 0x201f6006
cmp al, 0xd9
jne 0x201f5df0
jmp 0x201f6077
movzx ecx, byte [0x2055b0ad]
mov r8d, dword [0x2055b320]
lea edx, [r8 + 0x14ceaa18]
add r8d, 0x639b7b18
call fcn.201f6ac0
test al, 1
jne 0x201f5ffa
nop word cs:[rax + rax]
movzx ecx, byte [0x2055b324]
lea eax, [rcx - 0x20]
mov edx, ecx
xor dl, 0x1d
and cl, 0x1d
add cl, cl
add cl, dl
lock cmpxchg byte [0x2055b0ad], cl
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, 0x3edb97d
mov r9d, 0xe6530aa2
call fcn.201f7e30
test al, 1
jne 0x201f5f96
cmp bl, 0x5c
jne 0x201f5e40
jmp 0x201f5ffa
movzx eax, byte [0x2055aa48]
cmp al, 0xcc
je 0x201f60e3
mov bl, 0x2f
lea rsi, [rsp + 0x38]
nop
mov al, 0x9a
lock cmpxchg byte [0x2055aa48], bl
sete dl
mov dword [rsp + 0x20], 0xf94c190f
mov ecx, eax
mov r8, rsi
mov r9d, 0x6a0bd355
call fcn.201f7d40
test al, 1
jne 0x201f6080
movzx ecx, byte [rsp + 0x38]
mov edx, 0x62acdd75
mov r8d, 0x6b048c1b
call fcn.201f7e10
test al, 1
je 0x201f5ea0
jmp 0x201f60e3
xor edi, edi
lea rsi, [rsp + 0x38]
lea rbx, [0x2055b0d0]
nop dword [rax]
mov r9d, dword [0x2055b320]
mov eax, r9d
xor eax, 0x9cf3bc95
mov ecx, r9d
and ecx, 0x1cf3bc95
lea r8d, [rax + rcx*2]
add r9d, 0x5db7bca8
mov ecx, edi
mov rdx, rsi
call fcn.20135500
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x20], 0xa2fb6a7d
mov edx, edi
mov r8, rsi
mov r9d, 0xaf488eb8
call fcn.201f7e80
movzx eax, byte [rsp + 0x38]
movsxd rcx, edi
mov byte [rcx + rbx], al
mov eax, dword [0x2055b320]
lea edi, [rax + rcx]
add edi, 0xb8153165
cmp edi, 0xd
jl 0x201f5f00
mov eax, dword [0x2055b320]
lea ecx, [rax + 0x7f5a10dd]
mov edx, eax
xor edx, 0x8e99b240
and eax, 0xe99b240
lea edx, [rdx + rax*2]
call fcn.201f7e40
lea rax, [0x2055b0d0]
jmp 0x201f60ea
xor esi, esi
lea rdi, [rsp + 0x38]
lea rbx, [0x2055b0a0]
lea r14, [0x204758d0]
nop dword [rax + rax]
mov ecx, esi
mov rdx, rdi
mov r8d, 0x1b1cfccc
mov r9d, 0x3699baae
call fcn.20135500
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rsi + r14]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [rax + rbx]
xor dl, cl
mov byte [rsi + rbx], dl
lea eax, [rsi + 1]
cmp eax, 0xc
jg 0x201f5feb
inc rsi
jmp 0x201f5fb0
mov ecx, 0xa185b18a
mov edx, 0x75b77169
call fcn.201f7e20
lea rax, [0x2055b0a0]
jmp 0x201f60ea
xor ecx, ecx
lea r14, [0x2055abd0]
lea rsi, [rsp + 0x38]
nop word cs:[rax + rax]
movsxd rdi, ecx
lea rbx, [r14 + rdi]
movzx edx, byte [rdi + r14]
mov dword [rsp + 0x20], 0xdcaa07a7
mov ecx, edi
mov r8, rsi
mov r9d, 0x27cd0181
call fcn.201f86c0
movzx ecx, byte [rsp + 0x38]
mov dword [rsp + 0x28], 0x20ac595a
mov dword [rsp + 0x20], 0x5762b191
mov rdx, rbx
mov r8d, edi
mov r9, rsi
call fcn.201f8a80
mov ecx, dword [rsp + 0x38]
test al, 1
je 0x201f6020
mov al, 0xd9
xchg byte [0x2055abdd], al
lea rax, [0x2055abd0]
jmp 0x201f60ea
xor esi, esi
lea rbx, [0x2055aa30]
lea rdi, [rsp + 0x38]
nop
movzx ebp, byte [rsi + rbx]
mov ecx, esi
mov rdx, rdi
mov r8d, 0x8585aa9b
mov r9d, 0xc8aa99ea
call fcn.201f7ec0
add bpl, byte [rsp + 0x38]
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x3a3c22c0
mov r9d, 0x967c05f8
call fcn.201f6de0
mov rax, qword [rsp + 0x38]
mov byte [rax], bpl
lea eax, [rsi + 1]
cmp eax, 0x17
jg 0x201f60db
inc rsi
jmp 0x201f6090
mov al, 0xcc
xchg byte [0x2055aa48], al
lea rax, [0x2055aa30]
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret