Function at 0x201f4740
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
test ecx, ecx
je 0x201f47bf
test edx, edx
je 0x201f4826
movzx eax, byte [0x2055ad2d]
cmp al, 0xc9
je 0x201f4931
mov edi, esi
xor edi, 0x92690b58
nop word cs:[rax + rax]
movzx ecx, byte [0x2055b324]
lea eax, [rcx - 0x41]
mov edx, ecx
xor dl, 0x21
and cl, 0x21
add cl, cl
add cl, dl
add cl, 0xaa
lock cmpxchg byte [0x2055ad2d], cl
je 0x201f48d9
mov ecx, eax
mov edx, edi
mov r8d, 0x3a31a7d
call fcn.201f83c0
test al, 1
je 0x201f4780
jmp 0x201f4931
test edx, edx
je 0x201f48a4
movzx eax, byte [0x2055b0f0]
cmp al, 0xc6
je 0x201f49c0
mov bl, 0x5e
xor esi, 0x66153981
lea rdi, [rsp + 0x2e]
nop word cs:[rax + rax]
mov al, 0xbf
lock cmpxchg byte [0x2055b0f0], bl
sete dl
mov dword [rsp + 0x20], 0xa81fada8
mov ecx, eax
mov r8, rdi
mov r9d, esi
call fcn.20190850
test al, 1
jne 0x201f493d
cmp byte [rsp + 0x2e], 0xc6
jne 0x201f47f0
jmp 0x201f49c0
movzx eax, byte [0x2055abad]
movzx ecx, byte [0x2055b324]
add cl, 0xe0
cmp al, cl
je 0x201f49d1
mov edi, esi
xor edi, 0x357ca0bd
lea rbx, [rsp + 0x30]
lea r14, [rsp + 0x2f]
xor esi, 0x1094a6af
nop word [rax + rax]
mov rcx, rbx
mov rdx, r14
mov r8d, edi
mov r9d, 0x74efa7ef
call fcn.201f6aa0
movzx ebp, byte [rsp + 0x2f]
movzx ecx, byte [rsp + 0x30]
movzx edx, byte [rsp + 0x31]
mov r8d, esi
mov r9d, 0xcd3b3d3a
call fcn.201f7e30
test al, 1
jne 0x201f4981
cmp bpl, 0xc2
jne 0x201f4860
jmp 0x201f49d1
movzx eax, byte [0x2055a801]
cmp al, 0x2a
je 0x201f4a3a
xor ecx, ecx
nop word cs:[rax + rax]
mov al, 0x27
lock cmpxchg byte [0x2055a801], cl
je 0x201f49da
cmp al, 0x2a
jne 0x201f48c0
jmp 0x201f4a3a
xor edx, edx
lea rax, [0x2055ad20]
lea rcx, [0x20475560]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x201f48f0
xor esi, 0x1c9a8d6e
mov ecx, esi
mov edx, 0xe51c8bf5
call fcn.201f6e00
lea rax, [0x2055ad20]
jmp 0x201f4a41
xor eax, eax
lea rcx, [0x2055b0e0]
lea rdx, [0x20475900]
nop dword [rax]
movzx r8d, byte [rax + rcx]
mov r9d, r8d
xor r9b, 0xaf
and r8b, 0x2f
add r8b, r8b
add r8b, r9b
add r8b, byte [rax + rdx]
add r8b, 0x51
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x201f49b8
inc rax
jmp 0x201f4950
xor eax, eax
lea rcx, [0x2055aba0]
lea rdx, [0x204753f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x201f49c9
inc rax
jmp 0x201f49a0
mov al, 0xc6
xchg byte [0x2055b0f0], al
lea rax, [0x2055b0e0]
jmp 0x201f4a41
mov al, 0xc2
xchg byte [0x2055abad], al
lea rax, [0x2055aba0]
jmp 0x201f4a41
xor ebx, ebx
lea r14, [0x2055a7c0]
lea r15, [0x20475020]
xor esi, 0x44102925
lea rdi, [rsp + 0x2d]
nop word cs:[rax + rax]
movzx edx, byte [rbx + r14]
lea rcx, [r15 + rbx]
mov dword [rsp + 0x20], 0xbd348015
mov r8, rdi
mov r9d, esi
call fcn.201f86b0
movzx eax, byte [rsp + 0x2d]
mov byte [rbx + r14], al
lea eax, [rbx + 1]
cmp eax, 0x40
jg 0x201f4a32
inc rbx
jmp 0x201f4a00
mov al, 0x2a
xchg byte [0x2055a801], al
lea rax, [0x2055a7c0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret