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

Disassembly:
push rsi
push rdi
push rbx
mov r8d, dword [rsp + 0x40]
test ecx, ecx
je 0x20292417
test edx, edx
je 0x20292469
movzx eax, byte [0x2057017d]
cmp al, 0x94
je 0x20292500
mov cl, 0xec
nop word cs:[rax + rax]
mov al, 0x9c
lock cmpxchg byte [0x2057017d], cl
je 0x202924c9
movzx edx, byte [0x205719d4]
mov r9d, r8d
not r9b
mov r10d, r8d
and r10b, 0x3f
mov r11d, r9d
and r11b, 0xc0
or r11b, r10b
mov ebx, r11d
not bl
xor r11b, r9b
and bl, r8b
or bl, r11b
not bl
or bl, r10b
mov r9d, ebx
xor r9b, dl
and bl, dl
add bl, bl
add bl, r9b
cmp al, bl
jne 0x202923c0
jmp 0x20292500
test edx, edx
je 0x20292499
movzx eax, byte [0x2057018f]
movzx ecx, byte [0x205719d4]
mov edx, r8d
xor dl, 0x16
mov r9d, edx
xor r9b, cl
and dl, cl
add dl, dl
add dl, r9b
cmp al, dl
je 0x202925c2
mov cl, 0x29
nop word cs:[rax + rax]
mov al, 0xcd
lock cmpxchg byte [0x2057018f], cl
je 0x2029250c
cmp al, 0xe2
jne 0x20292450
jmp 0x202925c2
movzx eax, byte [0x20570109]
cmp al, 0xcc
je 0x20292617
mov cl, 0xa3
nop word [rax + rax]
mov al, 0xd4
lock cmpxchg byte [0x20570109], cl
je 0x202925ce
cmp al, 0xcc
jne 0x20292480
jmp 0x20292617
movzx eax, byte [0x2057021d]
cmp al, 0x79
je 0x2029267a
mov cl, 0x7b
nop word [rax + rax]
mov al, 9
lock cmpxchg byte [0x2057021d], cl
je 0x20292620
cmp al, 0x79
jne 0x202924b0
jmp 0x2029267a
xor eax, eax
lea rcx, [0x20570170]
lea rdx, [0x2047b4f0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x202924f8
inc rax
jmp 0x202924e0
mov al, 0x94
xchg byte [0x2057017d], al
lea rax, [0x20570170]
jmp 0x20292681
xor r9d, r9d
lea rax, [0x20570180]
lea rcx, [0x2047b500]
mov edx, r8d
xor edx, 0xb18e7d1c
xor r8d, 0x4e7182e3
nop dword [rax]
movsxd r9, r9d
movzx r10d, byte [r9 + rcx]
add byte [r9 + rax], r10b
mov r10d, dword [0x205719d0]
mov r11d, r10d
not r11d
mov esi, r8d
xor esi, r10d
mov edi, edx
and edi, r11d
or esi, edi
not esi
or esi, edi
mov ebx, r8d
and ebx, r10d
or ebx, edi
xor r11d, r8d
and r10d, edx
or r10d, r11d
not r10d
or r10d, ebx
not r10d
lea r10d, [rsi + r10*2]
mov r11d, r9d
not r11d
mov esi, r11d
and esi, r10d
not r10d
mov edi, r11d
xor edi, r10d
and edi, r11d
or edi, r10d
xor r10d, r9d
not r10d
and r10d, r9d
or r10d, esi
not edi
add edi, edi
mov r9d, r10d
xor r9d, edi
and edi, r10d
lea r9d, [r9 + rdi*2]
cmp r9d, 0xf
jl 0x20292530
mov al, 0xe2
xchg byte [0x2057018f], al
lea rax, [0x20570180]
jmp 0x20292681
xor eax, eax
lea rcx, [0x20570100]
lea rdx, [0x2047b480]
nop
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r9b
mov r10d, r9d
or r10b, r8b
not r10b
and r9b, r8b
or r9b, r10b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x2029260f
inc rax
jmp 0x202925e0
mov al, 0xcc
xchg byte [0x20570109], al
lea rax, [0x20570100]
jmp 0x20292681
xor edx, edx
lea rax, [0x20570210]
lea rcx, [0x2047b590]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
not r8d
mov r9d, edx
xor r9d, 1
and r9d, r8d
and edx, 0xfffffffe
or r9d, edx
mov r10d, r8d
and r10d, 1
or r10d, edx
and r8d, 0x7ffffffe
or r8d, r10d
not r8d
lea edx, [r9 + r8*2]
cmp edx, 0xd
jl 0x20292630
mov al, 0x79
xchg byte [0x2057021d], al
lea rax, [0x20570210]
pop rbx
pop rdi
pop rsi
ret