Function at 0x201f3230
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test ecx, ecx
je 0x201f32cb
test edx, edx
je 0x201f3372
movzx eax, byte [0x2055acbd]
cmp al, 0x50
je 0x201f3447
mov cl, 0x53
mov edx, 0xb8153165
lea rax, [fcn.201f3230]
lea r8d, [rax + rax]
add r8d, 0x2400
mov r9d, r8d
not r9d
mov r10d, 0xb81531a4
nop word cs:[rax + rax]
mov al, 0xe0
lock cmpxchg byte [0x2055acbd], cl
je 0x201f33b9
mov r11d, dword [0x2055b320]
add r11d, edx
mov esi, r8d
xor esi, r11d
not r11d
and r11d, r9d
or r11d, esi
cmp r11d, 0xffffffff
mov r11d, dword [0x205b41ac]
mov esi, dword [0x2055b320]
add esi, r10d
cmp r11d, esi
jge 0x201f32ad
cmp al, 0x50
jne 0x201f3280
jmp 0x201f3447
xor eax, eax
test al, al
nop
cmp dword [0x2055b320], 0x47eace9c
jne 0x201f32d0
test edx, edx
je 0x201f3381
movzx eax, byte [0x2055afad]
cmp al, 0xb1
je 0x201f34bf
mov cl, 0xff
mov edx, 0xb8153165
lea rax, [fcn.201f3230]
lea r8d, [rax + rax]
add r8d, 0x46a0
nop dword [rax]
mov eax, dword [0x205b41a8]
lea r9d, [rax - 1]
imul r9d, eax
test r9b, 1
jne 0x201f334d
nop word cs:[rax + rax]
mov al, 0x68
lock cmpxchg byte [0x2055afad], cl
sete r9b
mov r10d, dword [0x2055b320]
add r10d, edx
test r8d, r10d
je 0x201f3360
mov al, 0x68
lock cmpxchg byte [0x2055afad], cl
jmp 0x201f3330
test r9b, r9b
jne 0x201f3453
cmp al, 0xb1
jne 0x201f3310
jmp 0x201f34bf
xor eax, eax
test al, al
jne 0x201f357b
jmp 0x201f356e
movzx eax, byte [0x2055acdd]
movzx ecx, byte [0x2055b324]
add cl, 0x45
cmp al, cl
je 0x201f3564
mov cl, 0xa5
nop dword [rax]
mov al, 0x8f
lock cmpxchg byte [0x2055acdd], cl
je 0x201f34cb
cmp al, 0x27
jne 0x201f33a0
jmp 0x201f3564
mov eax, dword [0x205b41ac]
nop
cmp byte [0x205b4206], 0
jne 0x201f33c0
xor eax, eax
lea rcx, [0x2055acb0]
lea rdx, [0x204754f0]
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, 0xc
jg 0x201f3410
inc rax
jmp 0x201f33e0
mov eax, dword [0x205b41ac]
cmp eax, 0x13
jle 0x201f3426
mov eax, dword [0x205b41ac]
cmp eax, 0x30
jge 0x201f3410
mov eax, dword [0x2055b320]
mov ecx, eax
xor ecx, 0xb8153164
and eax, 0x38153164
add eax, eax
add eax, ecx
jne 0x201f341b
mov al, 0x50
xchg byte [0x2055acbd], al
lea rax, [0x2055acb0]
jmp 0x201f356b
xor eax, eax
lea rcx, [0x2055afa0]
lea rdx, [0x204757e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r9d
not r10b
mov r11d, r8d
and r11b, r10b
xor r10b, r8b
not r8b
mov ebx, r8d
xor bl, r9b
or r11b, bl
not r11b
and r8b, r9b
or r8b, r10b
not r8b
or r8b, r11b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x201f34b7
inc rax
jmp 0x201f3470
mov al, 0xb1
xchg byte [0x2055afad], al
lea rax, [0x2055afa0]
jmp 0x201f356b
xor edx, edx
lea rax, [0x2055acd0]
lea rcx, [0x20475510]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x201f34e0
xor eax, eax
lea rcx, [fcn.201f3230]
add ecx, ecx
add ecx, 0x34e0
mov edx, ecx
not edx
nop word cs:[rax + rax]
test al, al
je 0x201f3558
nop word cs:[rax + rax]
mov r8d, dword [0x205b41ac]
mov r9d, dword [0x2055b320]
mov r10d, r9d
xor r10d, 0xb8153191
and r9d, 0x38153191
lea r9d, [r10 + r9*2]
cmp r8d, r9d
jge 0x201f3520
test edx, ecx
jne 0x201f3530
mov al, 0x27
xchg byte [0x2055acdd], al
lea rax, [0x2055acd0]
pop rbx
pop rsi
ret
movzx eax, byte [0x2055abec]
xor ecx, ecx
test cl, cl
je 0x201f3584
movzx eax, byte [0x2055abec]
jmp 0x201f356e
cmp al, 0x6a
je 0x201f36fc
mov r8b, 0xab
mov r9b, 1
nop word cs:[rax + rax]
mov eax, dword [0x205b41a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201f3640
mov al, 0x36
lock cmpxchg byte [0x2055abec], r8b
mov ecx, eax
sete al
mov edx, dword [0x205b41ac]
mov r10d, dword [0x2055b320]
mov r11d, r10d
xor r11d, 0xb815317d
and r10d, 0x3815317d
add r10d, r10d
mov esi, r11d
xor esi, r10d
and r10d, r11d
lea r10d, [rsi + r10*2]
cmp edx, r10d
jge 0x201f3640
test al, al
jne 0x201f3659
mov eax, dword [0x205b41ac]
cmp eax, 0xb
mov edx, dword [0x205b41a8]
mov r10d, dword [0x2055b320]
mov eax, edx
sub eax, r10d
add eax, 0x47eace9b
imul eax, edx
add r10d, 0xb8153166
xor edx, edx
div r10d
test edx, edx
jne 0x201f3605
cmp cl, 0x6a
jne 0x201f35a0
jmp 0x201f36fc
mov al, 0x36
lock cmpxchg byte [0x2055abec], r8b
test r9b, r9b
je 0x201f35a0
jmp 0x201f35b5
xor eax, eax
lea rcx, [0x2055abe0]
lea rdx, [0x20475430]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x201f3688
inc rax
jmp 0x201f3670
lea rax, [fcn.201f3230]
add eax, eax
add eax, 0x32c0
mov ecx, eax
not ecx
nop word [rax + rax]
test ecx, eax
jne 0x201f36d5
mov edx, dword [0x205b41a8]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x2055b320]
mov r9d, edx
xor r9d, 0xb8153164
and edx, 0x38153164
lea edx, [r9 + rdx*2]
cmp r8d, edx
je 0x201f36f4
mov edx, dword [0x205b41a8]
mov r8d, dword [0x2055b320]
not r8d
add r8d, edx
imul r8d, edx
test r8b, 1
jne 0x201f36a0
jmp 0x201f36a4
mov al, 0x6a
xchg byte [0x2055abec], al
lea rax, [0x2055abe0]
jmp 0x201f356b