Function at 0x203ff630
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test ecx, ecx
je 0x203ff75d
test edx, edx
je 0x203ff86e
mov eax, 0x2899cc02
nop word cs:[rax + rax]
mov ecx, dword [0x205b86a8]
mov edx, dword [0x205a5130]
add edx, eax
not edx
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
jne 0x203ff699
movzx ecx, byte [0x205a427d]
mov edx, dword [0x205b86a8]
mov r8d, edx
not r8d
imul r8d, edx
test r8b, 1
je 0x203ff6ad
movzx ecx, byte [0x205a427d]
mov ecx, dword [0x205b86ac]
cmp ecx, 0x2a
jge 0x203ff660
jmp 0x203ff67c
cmp cl, 0xdf
je 0x203ffcc5
xor r8d, r8d
mov r9b, 0xcd
mov r10d, 0x27f7a585
mov r11d, 0x27f7a551
jmp 0x203ff6d9
cmp cl, 0xdf
je 0x203ffcc5
test r8b, r8b
jne 0x203ff720
nop
mov al, 0x30
lock cmpxchg byte [0x205a427d], r9b
mov ecx, eax
sete al
mov edx, dword [0x205b86ac]
mov esi, dword [0x205a5130]
add esi, r10d
cmp edx, esi
jge 0x203ff720
test al, al
jne 0x203ff8c9
test r8b, r8b
jne 0x203ff750
jmp 0x203ff730
mov al, 0x30
lock cmpxchg byte [0x205a427d], r9b
jmp 0x203ff6e0
mov edx, dword [0x205b86a8]
lea eax, [rdx - 1]
imul eax, edx
mov esi, dword [0x205a5130]
add esi, r11d
xor edx, edx
div esi
test edx, edx
je 0x203ff6d0
nop dword [rax]
mov eax, dword [0x205b86ac]
cmp eax, 0xd
jge 0x203ff750
jmp 0x203ff730
test edx, edx
je 0x203ff895
movzx eax, byte [0x205b8658]
cmp al, 0x6b
je 0x203ff862
mov cl, 0xd3
nop word cs:[rax + rax]
mov eax, dword [0x205b86ac]
cmp eax, 0x25
jg 0x203ff7c0
nop dword [rax + rax]
xor eax, eax
lock cmpxchg byte [0x205b8658], cl
sete dl
mov r8d, dword [0x205b86a8]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x203ff7e0
nop word cs:[rax + rax]
xor eax, eax
lock cmpxchg byte [0x205b8658], cl
mov eax, dword [0x205b86a8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x203ff7c0
jmp 0x203ff790
test dl, dl
jne 0x203ff7f0
cmp al, 0x6b
jne 0x203ff780
jmp 0x203ff862
mov eax, dword [0x205b86ac]
cmp eax, 0x31
jle 0x203ff806
mov eax, dword [0x205b86ac]
cmp eax, 0x21
jge 0x203ff7f0
mov eax, dword [0x205b86ac]
cmp eax, 0x34
jg 0x203ff7fb
xor edx, edx
lea rax, [0x205a41f0]
lea rcx, [0x2049acb0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
add edx, edx
and edx, 2
mov r9d, r8d
xor r9d, edx
and edx, r8d
lea edx, [r9 + rdx*2]
cmp edx, 0xd
jl 0x203ff830
mov al, 0x6b
xchg byte [0x205b8658], al
lea rax, [0x205a41f0]
jmp 0x203ff9a8
mov eax, 0x27f7a550
add eax, dword [0x205a5130]
lea rcx, [fcn.203ff630]
add ecx, ecx
add ecx, 0x640
test ecx, eax
jne 0x203ffafd
jmp 0x203ffaf0
movzx eax, byte [0x205a3dc8]
cmp al, 4
je 0x203ff9a1
mov cl, 0xd6
nop word cs:[rax + rax]
mov al, 0x30
lock cmpxchg byte [0x205a3dc8], cl
je 0x203ff98a
cmp al, 4
jne 0x203ff8b0
jmp 0x203ff9a1
xor edi, edi
lea rbx, [0x205a4270]
lea r14, [0x2049ad30]
lea rsi, [0x20401920]
jmp 0x203ff900
mov eax, edi
xor eax, 1
and edi, 1
lea edi, [rax + rdi*2]
cmp edi, 0xd
jge 0x203ff970
mov eax, dword [0x205b86ac]
movsxd r15, edi
cmp eax, 0x44
jg 0x203ff936
nop
movzx eax, byte [r15 + rbx]
movzx ecx, byte [r15 + r14]
not cl
mov edx, ecx
or dl, al
not dl
and cl, al
or cl, dl
mov byte [r15 + rbx], cl
cmp dword [0x205a5130], 0xd8085ab1
je 0x203ff8f0
mov ecx, 0x28
call fcn.20407ac4
mov qword [0x205b8670], rax
mov rcx, rsi
call fcn.20427ec0
movzx ecx, byte [r15 + r14]
mov eax, ecx
sub al, byte [r15 + rbx]
mul cl
mul cl
not cl
mov edx, ecx
or dl, al
not dl
and cl, al
or cl, dl
mov byte [r15 + rbx], cl
jmp 0x203ff910
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203ffcb0
jmp 0x203ffca2
mov eax, dword [0x205b86ac]
mov ecx, 0x27f7a584
add ecx, dword [0x205a5130]
cmp eax, ecx
jl 0x203ff9b5
jmp 0x203ff9bb
lea rax, [0x205a3dc0]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov al, 1
test al, al
jne 0x203ff9dd
mov eax, 0x27f7a54f
mov ecx, dword [0x205b86a8]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x205a5130]
add ecx, eax
cmp edx, ecx
jne 0x203ff9c0
jmp 0x203ff9b5
xor edi, edi
lea r14, [0x205a3dc0]
lea r15, [0x2049a890]
lea rax, [fcn.203ff630]
lea ebp, [rax + rax]
add ebp, 0x660
not ebp
lea rsi, [0x20401900]
nop word cs:[rax + rax]
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203ffa80
nop word cs:[rax + rax]
movzx eax, byte [rdi + r15]
add byte [rdi + r14], al
mov eax, dword [0x205a5130]
lea ecx, [rax + 0x27f7a550]
not ecx
mov edx, ebp
xor edx, ecx
and edx, ebp
or edx, ecx
not edx
mov ecx, eax
xor ecx, 0x27f7a54f
and eax, 0x27f7a54f
lea eax, [rcx + rax*2]
cmp edx, eax
jne 0x203ffa80
lea eax, [rdi + 1]
cmp eax, 7
jg 0x203ffae3
inc rdi
jmp 0x203ffa10
movzx ebx, byte [rdi + r14]
mov ecx, 0x3f
call fcn.20407ac4
mov qword [0x205b8668], rax
mov rcx, rsi
call fcn.20427ec0
movzx ecx, byte [rdi + r15]
sub bl, cl
mov eax, ebx
mul cl
sub al, cl
mul cl
mov r8d, eax
sub al, cl
mul cl
mov edx, eax
mov eax, r8d
sub al, dl
mul dl
mov ecx, r8d
neg cl
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
sub r8b, cl
mov eax, r8d
mul cl
sub al, cl
shl al, cl
sub cl, al
mov byte [rdi + r14], cl
jmp 0x203ffa30
mov al, 4
xchg byte [0x205a3dc8], al
jmp 0x203ff9a1
movzx eax, byte [0x205a42ed]
xor ecx, ecx
test cl, cl
je 0x203ffb06
movzx eax, byte [0x205a42ed]
jmp 0x203ffaf0
cmp al, 0x8e
je 0x203ffc4a
mov cl, 0xa9
mov al, 0x32
lock cmpxchg byte [0x205a42ed], cl
je 0x203ffb25
cmp al, 0x8e
jne 0x203ffb10
jmp 0x203ffc4a
mov eax, dword [0x205b86a8]
nop dword [rax + rax]
mov eax, dword [0x205b86a8]
mov ecx, eax
sub ecx, dword [0x205a5130]
imul ecx, eax
test cl, 1
jne 0x203ffb30
xor r8d, r8d
lea r9, [0x205a42e0]
lea r10, [0x2049ada0]
jmp 0x203ffb86
add r8d, 0x51a11f8f
mov eax, r8d
xor eax, 1
and r8d, 1
lea r8d, [rax + r8*2]
add r8d, 0xae5ee071
cmp r8d, 0xd
jge 0x203ffc42
mov eax, dword [0x205b86ac]
movsxd r11, r8d
cmp eax, 0x41
jg 0x203ffbe0
nop word cs:[rax + rax]
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
mov edx, ecx
not dl
mov ebx, eax
and bl, dl
xor dl, al
not al
mov esi, eax
xor sil, cl
or bl, sil
not bl
and al, cl
or al, dl
not al
or al, bl
mov byte [r11 + r9], al
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x203ffb60
nop dword [rax]
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
shl al, cl
mul cl
mov edx, eax
xor dl, cl
mov ebx, edx
not bl
and bl, al
add bl, bl
add bl, dl
movzx edx, byte [0x205a5134]
sub dl, bl
add dl, cl
add dl, 0x2b
mov eax, edx
shl al, cl
mov ebx, edx
mov ecx, eax
shl bl, cl
mov eax, edx
sub al, bl
mul bl
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
xor al, cl
mov byte [r11 + r9], al
mov eax, dword [0x205b86a8]
mov ecx, 0xd2212249
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x203ffbe0
jmp 0x203ffba0
mov al, 0x8e
xchg byte [0x205a42ed], al
mov eax, 0x27f7a550
add eax, dword [0x205a5130]
lea rcx, [fcn.203ff630]
add ecx, ecx
add ecx, 0xac0
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x203ffc80
mov eax, dword [0x205b86ac]
cmp eax, 0x35
jl 0x203ffc96
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x203ffc90
jmp 0x203ffc75
lea rax, [0x205a42e0]
jmp 0x203ff9a8
mov eax, dword [0x205b86ac]
cmp eax, 0x29
jl 0x203ffcbd
nop dword [rax]
mov eax, dword [0x205b86ac]
cmp eax, 0x26
jge 0x203ffcb0
jmp 0x203ffca2
mov al, 0xdf
xchg byte [0x205a427d], al
lea rax, [0x205a4270]
jmp 0x203ff9a8