Function at 0x203fbbf0
Capabilities:
Encode data using xor

Disassembly:
push rsi
test ecx, ecx
je 0x203fbc8f
xor eax, eax
mov ecx, 0x27f7a54f
test al, al
jne 0x203fbc23
mov r8d, dword [0x205a5130]
add r8d, ecx
mov r9d, dword [0x205b86a8]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x203fbc47
mov r8d, dword [0x205b86a8]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x205a5130]
add r8d, ecx
cmp r9d, r8d
jne 0x203fbc00
jmp 0x203fbc04
cmp edx, r8d
jne 0x203fbcb1
cmp byte [0x205a437d], 0
je 0x203fbf84
mov cl, 0xc5
nop dword [rax + rax]
mov al, 0x3c
lock cmpxchg byte [0x205a437d], cl
je 0x203fbd79
movzx edx, byte [0x205a5134]
mov r8d, edx
xor r8b, 0x2b
and dl, 0x2b
add dl, dl
add dl, r8b
cmp al, dl
jne 0x203fbc60
jmp 0x203fbf84
test edx, edx
je 0x203fbce9
mov eax, dword [0x205b86ac]
mov ecx, 0x27f7a5a7
add ecx, dword [0x205a5130]
cmp eax, ecx
jl 0x203fbea9
jmp 0x203fbec1
movzx eax, byte [0x205a461f]
cmp al, 0x28
je 0x203fbe60
mov cl, 0x87
nop word cs:[rax + rax]
mov al, 0x86
lock cmpxchg byte [0x205a461f], cl
je 0x203fbe2a
cmp al, 0x28
jne 0x203fbcd0
jmp 0x203fbe60
movzx eax, byte [0x205a43af]
cmp al, 0xb6
je 0x203fbea0
mov cl, 0xa5
lea rdx, [fcn.203fbbf0]
lea r8d, [rdx + rdx]
add r8d, 0xf60
mov r9d, r8d
not r9d
mov r10d, 0x27f7a550
jmp 0x203fbd28
cmp al, 0xb6
je 0x203fbea0
mov al, 0xf0
lock cmpxchg byte [0x205a43af], cl
je 0x203fbe69
nop dword [rax + rax]
test r9d, r8d
jne 0x203fbd62
mov r11d, dword [0x205a5130]
add r11d, r10d
lea esi, [rdx + rdx]
add esi, 0x360
xor esi, r11d
not esi
test esi, r11d
je 0x203fbd20
mov r11d, dword [0x205b86a8]
lea esi, [r11 - 1]
imul esi, r11d
test sil, 1
jne 0x203fbd40
jmp 0x203fbd45
xor edx, edx
lea rax, [0x205a4370]
lea rcx, [0x2049ae30]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x205a5130]
add edx, r8d
add edx, 0x27f7a550
cmp edx, 0xd
jl 0x203fbd90
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x203fbde2
mov ecx, dword [0x205b86a8]
mov edx, dword [0x205a5130]
neg edx
add edx, ecx
add edx, 0xd8085ab0
imul edx, ecx
test dl, 1
je 0x203fbe00
mov ecx, dword [0x205b86a8]
mov edx, dword [0x205a5130]
add edx, ecx
add edx, 0xd8085ab0
imul edx, ecx
test dl, 1
jne 0x203fbdc0
jmp 0x203fbdc4
mov eax, dword [0x205b86ac]
mov ecx, dword [0x205a5130]
mov edx, ecx
xor edx, 0x27f7a563
and ecx, 0x27f7a563
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x203fbf4d
jmp 0x203fbf73
xor eax, eax
lea rcx, [0x205a4610]
lea rdx, [0x2049b0d0]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x203fbe58
inc rax
jmp 0x203fbe40
mov al, 0x28
xchg byte [0x205a461f], al
lea rax, [0x205a4610]
pop rsi
ret
xor eax, eax
lea rcx, [0x205a43a0]
lea rdx, [0x2049ae60]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x203fbe98
inc rax
jmp 0x203fbe80
mov al, 0xb6
xchg byte [0x205a43af], al
lea rax, [0x205a43a0]
pop rsi
ret
movzx eax, byte [0x205a43fa]
mov ecx, dword [0x205b86a8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x203fbeca
movzx eax, byte [0x205a43fa]
jmp 0x203fbea9
cmp al, 0x1e
je 0x203fbf20
mov cl, 0xe7
mov al, 0x70
lock cmpxchg byte [0x205a43fa], cl
je 0x203fbee2
cmp al, 0x1e
jne 0x203fbed0
jmp 0x203fbf20
xor eax, eax
lea rcx, [0x205a43f0]
lea rdx, [0x2049aeb0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 9
jg 0x203fbf18
inc rax
jmp 0x203fbf00
mov al, 0x1e
xchg byte [0x205a43fa], al
lea rax, [fcn.203fbbf0]
add eax, eax
add eax, 0x3980
mov ecx, eax
not ecx
nop word cs:[rax + rax]
test ecx, eax
jne 0x203fbf40
lea rax, [0x205a43f0]
pop rsi
ret
xor eax, eax
xchg byte [0x205a437d], 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 0x203fbf84
movzx eax, byte [0x205a5134]
add al, 0x2b
xchg byte [0x205a437d], al
jmp 0x203fbf4d
lea rax, [0x205a4370]
pop rsi
ret