Function at 0x203ffce0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
test ecx, ecx
je 0x203ffd53
test edx, edx
je 0x203ffd89
movzx eax, byte [0x205a3e73]
cmp al, 0xff
je 0x203ffe20
mov cl, 0x7e
mov edx, 0x27f7a550
lea rax, [fcn.203ffce0]
lea r8d, [rax + rax]
add r8d, 0x5e0
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x205a3e73], cl
je 0x203ffdf0
mov r9d, dword [0x205a5130]
add r9d, edx
test r8d, r9d
mov r9d, dword [0x205b86ac]
cmp r9d, 0x26
jg 0x203ffd3d
cmp al, 0xff
jne 0x203ffd20
jmp 0x203ffe20
test edx, edx
je 0x203ffdd6
movzx eax, byte [0x205a4151]
cmp al, 0x22
je 0x203fff09
mov cl, 0xc
nop dword [rax + rax]
mov al, 0x7f
lock cmpxchg byte [0x205a4151], cl
je 0x203ffe34
cmp al, 0x22
jne 0x203ffd70
jmp 0x203fff09
movzx eax, byte [0x205a4658]
cmp al, 0xc4
je 0x2040003b
mov cl, 0xb5
nop word [rax + rax]
mov al, 8
lock cmpxchg byte [0x205a4658], cl
je 0x203fff15
mov edx, dword [0x205b86a8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
mov edx, dword [0x205b86ac]
cmp edx, 0x3f
jg 0x203ffdc2
cmp al, 0xc4
jne 0x203ffda0
jmp 0x2040003b
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20400081
jmp 0x20400047
xor eax, eax
lea rcx, [0x205a3e60]
lea rdx, [0x2049a920]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x12
jg 0x203ffe18
inc rax
jmp 0x203ffe00
mov al, 0xff
xchg byte [0x205a3e73], al
mov eax, dword [0x205b86ac]
cmp eax, 0x60
jle 0x2040013e
jmp 0x20400149
xor r8d, r8d
lea r9, [0x205a4140]
lea r10, [0x2049ac00]
mov r11d, 0x27f7a550
xor esi, esi
xor edi, edi
test r8b, r8b
jne 0x203ffe86
nop word cs:[rax + rax]
movzx eax, byte [rdi + r10]
add byte [rdi + r9], al
mov eax, dword [0x205b86a8]
mov ecx, dword [0x205a5130]
add ecx, r11d
not ecx
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
je 0x203ffec0
movzx eax, byte [rdi + r9]
movzx ecx, byte [rdi + r10]
sub al, cl
mul cl
mov edx, eax
sub cl, al
mov eax, ecx
sub al, dl
mul dl
mov edx, eax
mov eax, ecx
sub al, dl
mul dl
mov edx, eax
sub cl, al
mov eax, ecx
mul dl
sub al, dl
mul dl
add al, dl
mov byte [rdi + r9], al
jmp 0x203ffe60
lea eax, [rdi + 1]
cmp eax, 0x10
jg 0x203ffee0
inc rdi
dec esi
test r8b, r8b
jne 0x203ffe86
jmp 0x203ffe60
mov eax, dword [0x205b86ac]
cmp eax, 0x2d
jle 0x203ffef6
mov eax, dword [0x205b86ac]
cmp eax, 0x62
jge 0x203ffee0
mov eax, dword [0x205b86ac]
cmp eax, 0x14
jg 0x203ffeeb
mov al, 0x22
xchg byte [0x205a4151], al
lea rax, [0x205a4140]
jmp 0x2040013b
mov ecx, 0x27f7a551
lea rax, [fcn.203ffce0]
add eax, eax
add eax, 0x1660
mov r8d, eax
not r8d
and r8d, eax
mov r9d, 0x27f7a54f
nop word [rax + rax]
mov edx, dword [0x205b86a8]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x205a5130]
add r10d, ecx
xor edx, edx
div r10d
test edx, edx
jne 0x203fff6d
mov eax, dword [0x205a5130]
add eax, r9d
cmp r8d, eax
je 0x203fff8b
mov eax, dword [0x205b86a8]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
mov eax, dword [0x205a5130]
add eax, r9d
cmp edx, eax
jne 0x203fff40
jmp 0x203fff5f
xor edx, edx
lea rax, [0x205a4650]
lea rcx, [0x2049b110]
nop dword [rax + 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, 8
jl 0x203fffa0
mov eax, dword [0x205b86a8]
nop word [rax + rax]
mov eax, dword [0x205b86a8]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x203fffd0
mov al, 1
nop word cs:[rax + rax]
mov ecx, dword [0x205b86a8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x20400020
movzx ecx, byte [0x205a5134]
mov edx, ecx
xor dl, 0x10
and dl, cl
xor cl, 0xef
add dl, dl
add dl, cl
xchg byte [0x205a4658], dl
test al, al
je 0x203ffff0
movzx ecx, byte [0x205a5134]
add cl, 0xef
xchg byte [0x205a4658], cl
mov ecx, dword [0x205b86ac]
cmp ecx, 0x1a
jg 0x20400001
lea rax, [0x205a4650]
jmp 0x2040013b
movzx eax, byte [0x205a44d9]
lea rcx, [fcn.203ffce0]
add ecx, ecx
add ecx, 0x4a60
mov edx, ecx
not edx
and edx, ecx
mov ecx, dword [0x205a5130]
mov r8d, ecx
xor r8d, 0x27f7a54f
and ecx, 0x27f7a54f
lea ecx, [r8 + rcx*2]
cmp edx, ecx
je 0x2040008a
movzx eax, byte [0x205a44d9]
jmp 0x20400047
cmp al, 0x42
je 0x20400134
mov cl, 0xcb
nop word cs:[rax + rax]
mov al, 0xa3
lock cmpxchg byte [0x205a44d9], cl
je 0x204000b5
cmp al, 0x42
jne 0x204000a0
jmp 0x20400134
xor eax, eax
lea rcx, [0x205a44d0]
lea rdx, [0x2049af90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x204000e8
inc rax
jmp 0x204000d0
mov ecx, 0x27f7a551
mov r8b, 1
mov eax, dword [0x205b86ac]
cmp eax, 0x33
jle 0x2040010d
nop dword [rax + rax]
mov al, 0x42
xchg byte [0x205a44d9], al
test r8b, r8b
je 0x204000f0
mov al, 0x42
xchg byte [0x205a44d9], al
mov edx, dword [0x205b86a8]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x205a5130]
add r9d, ecx
xor edx, edx
div r9d
test edx, edx
jne 0x20400100
lea rax, [0x205a44d0]
pop rdi
pop rsi
ret
mov eax, dword [0x205b86ac]
cmp eax, 0x22
jl 0x20400166
lea rax, [fcn.203ffce0]
add eax, eax
add eax, 0x4c40
mov ecx, eax
not ecx
nop dword [rax + rax]
test ecx, eax
jne 0x20400160
jmp 0x2040013e
lea rax, [0x205a3e60]
jmp 0x2040013b