Function at 0x201f3710
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
test ecx, ecx
je 0x201f37bc
test edx, edx
je 0x201f37e9
movzx eax, byte [0x2055b13d]
cmp al, 0x8d
je 0x201f3a72
mov cl, 0x56
nop word cs:[rax + rax]
mov eax, dword [0x205b41ac]
cmp eax, 0x52
jg 0x201f37b0
nop dword [rax + rax]
mov al, 0x2a
lock cmpxchg byte [0x2055b13d], cl
sete dl
mov r8d, dword [0x205b41ac]
cmp r8d, 0x1f
jg 0x201f37b0
test dl, dl
jne 0x201f3a08
movzx edx, byte [0x2055b324]
mov r8d, edx
not r8b
mov r9d, edx
and r9b, 0x54
mov r10d, r8d
and r10b, 0xab
or r10b, r9b
xor dl, 0x2b
and r8b, 0x54
or r8b, dl
not r8b
add r8b, r8b
add r8b, r10b
cmp al, r8b
jne 0x201f3740
jmp 0x201f3a72
mov al, 0x2a
lock cmpxchg byte [0x2055b13d], cl
jmp 0x201f3750
movzx eax, byte [0x2055af0c]
cmp al, 8
je 0x201f3b73
mov cl, 0xd2
nop dword [rax]
mov al, 0x9a
lock cmpxchg byte [0x2055af0c], cl
je 0x201f3b27
cmp al, 8
jne 0x201f37d0
jmp 0x201f3b73
movzx eax, byte [0x2055b16d]
cmp al, 0x22
je 0x201f3810
mov cl, 0x2b
nop word cs:[rax + rax]
mov al, 0xc4
lock cmpxchg byte [0x2055b16d], cl
je 0x201f3850
cmp al, 0x22
jne 0x201f3800
mov eax, 0xb8153165
add eax, dword [0x2055b320]
lea rcx, [fcn.201f3710]
add ecx, ecx
add ecx, 0x32c0
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x201f3b90
jmp 0x201f3b7f
mov eax, dword [0x205b41ac]
cmp eax, 0x1f
jle 0x201f386c
mov eax, dword [0x205b41a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201f3850
mov eax, dword [0x205b41ac]
cmp eax, 0x4d
jg 0x201f385b
xor edx, edx
lea r8, [0x2055b160]
lea r9, [0x20475970]
lea r10, [fcn.201f3710]
lea eax, [r10 + r10]
add eax, 0x4ac0
lea ecx, [r10 + r10]
add ecx, 0x4ac1
mov r11d, eax
xor r11d, 0xfffffffe
or r11d, ecx
not r11d
or r11d, eax
not r11d
or r11d, eax
or r11d, 1
mov esi, 0xb8153165
jmp 0x201f38f0
add edx, 0xd450d4b7
mov eax, edx
xor eax, 1
and edx, 1
lea edx, [rax + rdx*2]
add edx, 0x2baf2b49
cmp edx, 0xd
jge 0x201f39ab
mov eax, dword [0x205b41a8]
lea ecx, [rax + 1]
imul ecx, eax
movsxd rdi, edx
test cl, 1
jne 0x201f3920
nop word cs:[rax + rax]
movzx eax, byte [rdi + r9]
add byte [rdi + r8], al
cmp r11d, 0xffffffff
je 0x201f38d0
nop
movzx ecx, byte [rdi + r8]
mov eax, ecx
sub al, byte [rdi + r9]
mov ebx, eax
neg bl
mov ebp, ebx
sub bpl, cl
add bpl, 0x9b
mov ecx, ebp
xor cl, 0x65
and bpl, 0x65
add bpl, bpl
add bpl, cl
add al, bpl
mul bl
mov ecx, eax
sub cl, bpl
sub cl, bpl
mov eax, ebp
sub al, cl
mul cl
mov ecx, eax
sub cl, bpl
mov ebx, ecx
xor bl, al
and cl, al
add cl, cl
add cl, bl
mov byte [rdi + r8], cl
mov eax, dword [0x2055b320]
add eax, esi
lea ecx, [r10 + r10]
add ecx, 0x3aa0
mov ebx, ecx
not ebx
xor ecx, eax
not eax
and eax, ebx
or eax, ecx
cmp eax, 0xffffffff
jne 0x201f3920
jmp 0x201f3910
mov eax, dword [0x205b41ac]
cmp eax, 0x61
jl 0x201f39bc
mov eax, dword [0x205b41a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201f39a0
mov eax, dword [0x205b41ac]
cmp eax, 0x3e
jge 0x201f39a0
xor eax, eax
nop dword [rax]
test al, al
jne 0x201f39eb
mov cl, 0x22
xchg byte [0x2055b16d], cl
mov ecx, dword [0x205b41ac]
cmp ecx, 0x3d
jle 0x201f3810
movzx ecx, byte [0x2055b324]
add cl, 0x40
xchg byte [0x2055b16d], cl
mov ecx, dword [0x205b41ac]
cmp ecx, 0x47
jge 0x201f39d0
jmp 0x201f39d4
xor edx, edx
lea rax, [0x2055b130]
lea rcx, [0x20475940]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 0x647ce8ef
add edx, edx
and edx, 0xc8f9d1de
mov r9d, r8d
xor r9d, edx
and edx, r8d
lea edx, [r9 + rdx*2]
mov r8d, edx
xor r8d, 0x7ffffffe
and r8d, edx
xor edx, 1
lea edx, [rdx + r8*2]
add edx, 0x9b831711
cmp edx, 0xd
jl 0x201f3a20
mov al, 0x8d
xchg byte [0x2055b13d], al
xor eax, eax
lea rcx, [fcn.201f3710]
lea edx, [rcx + rcx]
add edx, 0x720
mov r8d, edx
not r8d
nop word [rax + rax]
test al, al
jne 0x201f3aca
mov r9d, dword [0x2055b320]
mov r10d, r9d
xor r10d, 0x47eace9a
and r10d, r9d
xor r9d, 0xb8153165
lea r9d, [r9 + r10*2]
mov r10d, edx
xor r10d, r8d
and r10d, r9d
mov r9d, r8d
xor r9d, r8d
xor r9d, r10d
test r9d, edx
je 0x201f3b1e
mov r9d, dword [0x2055b320]
mov r10d, r9d
xor r10d, 0xb8153165
and r9d, 0x38153165
or r9d, r10d
not r9d
or r9d, r10d
not r9d
lea r9d, [r10 + r9*2]
lea r10d, [rcx + rcx]
add r10d, 0x1520
not r10d
not r9d
mov r11d, r9d
xor r11d, r10d
and r11d, r9d
or r11d, r10d
cmp r11d, 0xffffffff
jne 0x201f3a90
jmp 0x201f3a94
lea rax, [0x2055b130]
jmp 0x201f3b7a
xor edx, edx
lea rax, [0x2055af00]
lea rcx, [0x20475740]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 0x8535486f
and edx, 0x535486f
lea edx, [r8 + rdx*2]
add edx, 0x7acab792
cmp edx, 0xc
jl 0x201f3b40
mov al, 8
xchg byte [0x2055af0c], al
lea rax, [0x2055af00]
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov al, 1
test al, al
jne 0x201f3b9d
nop word cs:[rax + rax]
mov eax, dword [0x205b41ac]
cmp eax, 0x57
jge 0x201f3b90
jmp 0x201f3b7f
lea rax, [0x2055b160]
jmp 0x201f3b7a