Function at 0x203fc3e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
test ecx, ecx
je 0x203fc44c
test edx, edx
je 0x203fc4c6
movzx eax, byte [0x205a42bd]
nop word [rax + rax]
cmp al, 0x90
je 0x203fc7cb
movzx ecx, byte [0x205a5134]
lea eax, [rcx - 0x40]
add cl, 0x8f
lock cmpxchg byte [0x205a42bd], cl
jne 0x203fc400
xor eax, eax
lea rcx, [0x205a42b0]
lea rdx, [0x2049ad70]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x203fc579
inc rax
jmp 0x203fc430
test edx, edx
je 0x203fc539
mov eax, 0x27f7a550
lea rcx, [fcn.203fc3e0]
lea edx, [rcx + rcx]
add edx, 0x60
nop word cs:[rax + rax]
mov r8d, dword [0x205b86a8]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x203fc4a2
movzx r8d, byte [0x205a438d]
mov r9d, dword [0x205a5130]
add r9d, eax
xor r9d, edx
not r9d
test r9d, edx
je 0x203fc4f9
movzx r8d, byte [0x205a438d]
mov r8d, dword [0x205a5130]
add r8d, eax
lea r9d, [rcx + rcx]
add r9d, 0x4820
test r9d, r8d
jne 0x203fc470
jmp 0x203fc485
movzx eax, byte [0x205a3fdf]
cmp al, 0x58
je 0x203fc66f
mov cl, 0xaf
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x205a3fdf], cl
je 0x203fc593
cmp al, 0x58
jne 0x203fc4e0
jmp 0x203fc66f
movzx eax, byte [0x205a5134]
mov ecx, eax
xor cl, 0xd
and al, 0xd
add al, al
add al, cl
cmp r8b, al
je 0x203fc65b
mov cl, 0xff
nop word cs:[rax + rax]
mov al, 0x56
lock cmpxchg byte [0x205a438d], cl
je 0x203fc5cc
cmp al, 0xe2
jne 0x203fc520
jmp 0x203fc65b
movzx eax, byte [0x205a41ed]
movzx ecx, byte [0x205a5134]
mov edx, ecx
xor dl, 0x8d
and cl, 0xd
add cl, cl
add cl, dl
cmp al, cl
je 0x203fc770
mov cl, 0x4c
nop dword [rax]
mov al, 0xb1
lock cmpxchg byte [0x205a41ed], cl
je 0x203fc67b
cmp al, 0x62
jne 0x203fc560
jmp 0x203fc770
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203fc7b1
jmp 0x203fc7a3
xor eax, eax
lea rcx, [0x205a3fd0]
lea rdx, [0x2049aa90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x203fc667
inc rax
jmp 0x203fc5b0
xor r8d, r8d
lea rax, [0x205a4380]
lea rcx, [0x2049ae40]
mov edx, 0x27f7a55c
nop word cs:[rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
xor byte [r8 + rax], r9b
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
mov r9d, dword [0x205a5130]
add r9d, edx
cmp r8d, r9d
jl 0x203fc5f0
mov eax, dword [0x205b86a8]
mov ecx, dword [0x205a5130]
add ecx, eax
add ecx, 0xd8085ab0
jmp 0x203fc639
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203fc630
mov eax, dword [0x205b86ac]
cmp eax, 0x4b
jge 0x203fc630
movzx eax, byte [0x205a5134]
add al, 0xd
xchg byte [0x205a438d], al
lea rax, [0x205a4380]
jmp 0x203fc79e
mov al, 0x58
xchg byte [0x205a3fdf], al
lea rax, [0x205a3fd0]
jmp 0x203fc79e
mov edx, 1
mov r8d, 0xd8085ab0
mov r9d, 0x27f7a550
xor r10d, r10d
lea r11, [0x205a41e0]
lea rsi, [0x2049aca0]
xor edi, edi
nop
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203fc6cd
nop word cs:[rax + rax]
movzx eax, byte [rdi + rsi]
xor byte [rdi + r11], al
test r10b, r10b
je 0x203fc700
movzx ebx, byte [rdi + r11]
movzx ecx, byte [rdi + rsi]
mov eax, ebx
sub al, cl
mul cl
mov ebp, ebx
mov ecx, eax
shl bpl, cl
mov eax, ebp
xor al, bpl
not al
and al, bl
xor al, bpl
mov byte [rdi + r11], al
jmp 0x203fc6c0
cmp edx, 0xc
jg 0x203fc713
inc edx
add r8d, 2
dec r9d
inc rdi
jmp 0x203fc6a0
mov eax, 0x27f7a550
add eax, dword [0x205a5130]
lea rcx, [fcn.203fc3e0]
add ecx, ecx
add ecx, 0xe60
test ecx, eax
jne 0x203fc757
mov al, 0x62
xchg byte [0x205a41ed], al
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x27f7a54f
add eax, dword [0x205a5130]
cmp ecx, eax
je 0x203fc770
movzx eax, byte [0x205a5134]
add al, 0x8d
xchg byte [0x205a41ed], al
jmp 0x203fc731
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203fc770
mov eax, dword [0x205b86a8]
mov ecx, eax
sub ecx, dword [0x205a5130]
imul ecx, eax
test cl, 1
jne 0x203fc770
lea rax, [0x205a41e0]
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov al, 0x90
xchg byte [0x205a42bd], al
xor eax, eax
test al, al
je 0x203fc7cb
movzx eax, byte [0x205a5134]
mov ecx, eax
xor cl, 0xbb
and al, 0x3b
add al, al
add al, cl
xchg byte [0x205a42bd], al
jmp 0x203fc7a3
lea rax, [0x205a42b0]
jmp 0x203fc79e