Function at 0x201cf4d0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
mov esi, edx
test ecx, ecx
je 0x201cf5c2
mov ecx, dword [0x204a2c18]
mov r8d, dword [0x20463a84]
lea edx, [r8 + 0x14664609]
add r8d, 0x2bbed4ca
call fcn.201d3a20
jmp 0x201cf526
mov ecx, dword [0x204a2c1c]
mov edx, 0x3eeedabd
mov r8d, 0x4e20ac46
call fcn.201d3d40
test al, 1
je 0x201cf510
lea rdx, [rsp + 0x3e]
mov ecx, esi
mov r8d, 0x3646b0e4
mov r9d, 0x5fa09993
call fcn.201bbd30
mov al, 1
test al, al
je 0x201cf510
test byte [rsp + 0x3e], 1
je 0x201cf619
movzx ecx, byte [0x20461bb8]
mov r8d, dword [0x20463a84]
lea edx, [r8 + 0x50d1d2c3]
add r8d, 0xd4b22fb0
call fcn.201d4190
test al, 1
jne 0x201cf72c
lea rsi, [rsp + 0x40]
nop word cs:[rax + rax]
mov rcx, rsi
mov edx, 0x707776a1
mov r8d, 0x699fbac5
call fcn.201d4100
cmp byte [rsp + 0x41], 0
jne 0x201cf6d5
movzx eax, byte [0x20463a80]
add al, 0x6e
cmp byte [rsp + 0x40], al
jne 0x201cf590
jmp 0x201cf72c
mov ecx, esi
mov edx, 0x90c512ac
mov r8d, 0x3c5f3f82
call fcn.201d3540
test al, 1
je 0x201cf657
mov ecx, 0x6e909fbb
mov edx, 0x7e239af4
call fcn.201d39c0
test al, 1
jne 0x201cf8a2
mov cl, 0x7e
nop word cs:[rax + rax]
mov al, 0xd4
lock cmpxchg byte [0x20461782], cl
je 0x201cf813
cmp al, 0x6e
jne 0x201cf600
jmp 0x201cf8a2
movzx eax, byte [0x20461add]
cmp al, 0xd
je 0x201cf92f
lea rsi, [rsp + 0x3f]
nop dword [rax]
mov rcx, rsi
mov edx, 0x78180203
mov r8d, 0x8d998694
call fcn.201d4120
test al, 1
jne 0x201cf74b
cmp byte [rsp + 0x3f], 0xd
jne 0x201cf630
jmp 0x201cf92f
movzx eax, byte [0x20461d5d]
cmp al, 0x93
je 0x201cf8f7
mov bl, 0xaa
lea rsi, [rsp + 0x50]
nop dword [rax]
mov edx, dword [0x20463a84]
lea ecx, [rdx - 0x7da48080]
add edx, 0xa21df6cc
call fcn.20188110
test al, 1
je 0x201cf6c0
nop dword [rax + rax]
mov al, 0xaf
lock cmpxchg byte [0x20461d5d], bl
sete cl
mov edx, dword [0x204a2c1c]
cmp edx, 0x15
jg 0x201cf6c0
test cl, cl
jne 0x201cf85f
cmp al, 0x93
jne 0x201cf670
jmp 0x201cf8f7
mov rcx, rsi
mov edx, 0x1a808a54
mov r8d, 0xe71f57b
call fcn.201d3f00
jmp 0x201cf690
xor ecx, ecx
lea rdi, [0x20461bb0]
lea rbx, [0x2037b180]
lea rsi, [rsp + 0x60]
nop word [rax + rax]
movsxd r8, ecx
movzx ecx, byte [r8 + rdi]
movzx edx, byte [r8 + rbx]
mov dword [rsp + 0x28], 0xdef1b2ca
mov dword [rsp + 0x20], 0xf8ba417e
mov r9, rsi
call fcn.201d36d0
mov ecx, dword [rsp + 0x60]
test al, 1
je 0x201cf6f0
mov ecx, 0x7e740a32
mov edx, 0xe1a6e36c
call fcn.201d41a0
lea rax, [fcn.201cf4d0]
add eax, eax
add eax, 0x4140
mov ecx, eax
not ecx
test ecx, eax
jne 0x201cf90e
jmp 0x201cf908
xor esi, esi
lea rdi, [0x20461ad0]
lea rbx, [0x2037b0b0]
nop dword [rax + rax]
movzx edx, byte [rsi + rbx]
add dl, byte [rsi + rdi]
mov eax, dword [0x20463a84]
mov ecx, eax
xor ecx, 0xdea1078a
mov r8d, eax
and r8d, 0x5ea1078a
lea r8d, [rcx + r8*2]
mov ecx, eax
xor ecx, 0xd904106e
and eax, 0x5904106e
lea r9d, [rcx + rax*2]
add r9d, 0x4e036f7
mov rcx, rsi
call fcn.201d39f0
lea eax, [rsi + 1]
cmp eax, 0xc
jg 0x201cf7b0
inc rsi
jmp 0x201cf760
mov eax, dword [0x204a2c18]
lea ecx, [rax - 1]
imul ecx, eax
lea rdx, [rsp + 0x64]
mov r8d, 0xba09251e
mov r9d, 0xb2e3689e
call fcn.201d3940
mov eax, dword [0x20463a84]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xec926721
mov r8d, ecx
and r8d, 0x136d98de
or r8d, edx
xor eax, 0x136d98de
and ecx, 0x6c926721
or ecx, eax
not ecx
lea eax, [r8 + rcx*2]
cmp dword [rsp + 0x64], eax
je 0x201cf938
jmp 0x201cf943
xor esi, esi
lea rdi, [rsp + 0x3d]
lea rbx, [0x2037ad70]
lea r14, [0x20461760]
nop dword [rax + rax]
mov ecx, esi
mov rdx, rdi
mov r8d, 0xb330912c
mov r9d, 0x14783779
call fcn.201d3df0
movzx eax, byte [rsp + 0x3d]
add al, byte [rsi + rbx]
mov byte [rsi + r14], al
lea eax, [rsi + 1]
cmp eax, 0x21
jg 0x201cf89a
inc rsi
jmp 0x201cf830
mov eax, 0x136d98f0
nop word cs:[rax + rax]
mov ecx, dword [0x204a2c1c]
mov edx, dword [0x20463a84]
add edx, eax
cmp ecx, edx
jge 0x201cf88d
mov ecx, dword [0x204a2c1c]
cmp ecx, 0x2b
jle 0x201cf8ab
mov ecx, dword [0x204a2c1c]
cmp ecx, 0x2f
jge 0x201cf870
jmp 0x201cf882
mov al, 0x6e
xchg byte [0x20461782], al
lea rax, [0x20461760]
jmp 0x201cf8fe
xor eax, eax
lea rcx, [0x20461d50]
lea rdx, [0x2037b310]
nop dword [rax + rax]
cdqe
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
mov r8d, dword [0x20463a84]
mov r9d, r8d
xor r9d, 0x136d98df
and r8d, 0x136d98df
lea r8d, [r9 + r8*2]
add eax, r8d
cmp eax, 0xd
jl 0x201cf8c0
mov al, 0x93
xchg byte [0x20461d5d], al
lea rax, [0x20461d50]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
ret
mov al, 1
test al, al
jne 0x201cf926
lea rax, [fcn.201cf4d0]
add eax, eax
add eax, 0x4100
mov ecx, eax
not ecx
test ecx, eax
jne 0x201cf920
jmp 0x201cf908
lea rax, [0x20461bb0]
jmp 0x201cf8fe
lea rax, [0x20461ad0]
jmp 0x201cf8fe
mov eax, dword [0x204a2c1c]
cmp eax, 0x3d
jl 0x201cf956
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x201cf950
jmp 0x201cf938
mov al, 0xd
xchg byte [0x20461add], al
jmp 0x201cf92f