Function at 0x200f3430
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rsi, r8
mov rdi, rcx
mov ecx, 0xffff8d74
mov eax, dword [0x20541c88]
add eax, ecx
cdqe
add rax, qword [0x20541ca0]
lea rbx, [rbp - 0x50]
mov rcx, rbx
mov r8d, 0xdf33dcd4
mov r9d, 0x4d344f8f
call qword [case.0x2010e313.0]
lea rdx, [rbp - 0x28]
mov rcx, rbx
xor r8d, r8d
call fcn.2024efb0
mov edx, dword [rbp - 0x10]
mov eax, 0x4b9bc048
add eax, dword [0x20541cb0]
cmp edx, eax
je 0x200f34bf
cmp qword [rbp - 8], 0x10
jb 0x200f34b6
mov rcx, qword [rbp - 0x20]
jmp 0x200f34ba
lea rcx, [rbp - 0x20]
call fcn.200eaa50
lea rbx, [rdi + 0x50]
mov eax, dword [0x205b386c]
mov ecx, 0x4b9bc07b
add ecx, dword [0x20541cb0]
cmp eax, ecx
jge 0x200f34f0
mov r13, qword [0x20541b68]
movsxd r12, dword [r13]
mov eax, dword [0x205b386c]
cmp eax, 0x32
jl 0x200f350c
nop
mov rax, qword [0x20541b68]
mov eax, dword [rax]
mov eax, dword [0x205b3868]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x200f34f0
jmp 0x200f34d8
mov eax, dword [0x205b386c]
mov ecx, 0x4b9bc09d
add ecx, dword [0x20541cb0]
cmp eax, ecx
jge 0x200f3530
mov eax, dword [0x205b386c]
cmp eax, 0x47
jl 0x200f3543
nop dword [rax]
mov eax, dword [0x205b3868]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x200f3530
jmp 0x200f3521
mov r15d, dword [0x2046eaf0]
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.200f5e10
mov r14, rax
mov rax, qword [rbp - 8]
movabs rcx, 0xdb84eb5adb16bb6d
add rcx, qword [0x20541cc0]
cmp rax, rcx
jbe 0x200f35bd
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x200f35a3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x200f3858
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov eax, 0xffff8d74
add eax, dword [0x20541c8c]
cdqe
add rax, qword [0x20541ca8]
call qword [case.0x2010e313.0]
cmp qword [rbx], r14
je 0x200f35ed
mov r8, qword [r14 + 0x58]
test r8, r8
je 0x200f35f1
mov rdi, qword [r14 + 0x50]
mov eax, dword [0x20541c84]
mov ecx, dword [0x20541cb0]
sub eax, ecx
add eax, 0xb463cd2c
cdqe
add rax, qword [0x20541c90]
jmp 0x200f3620
xor esi, esi
jmp 0x200f3645
mov eax, 0xffff8d74
add eax, dword [0x20541c84]
cdqe
add rax, qword [0x20541c90]
movabs r8, 0xdb84eb5adb16bb9e
add r8, qword [0x20541cc0]
add rdi, 9
mov ecx, dword [0x20541cb0]
lea r9d, [rcx - 0x3a0ecfac]
add ecx, 0x21376a5b
mov dword [rsp + 0x20], ecx
mov rcx, rsi
mov rdx, rdi
call qword [case.0x2010e313.0]
xor esi, esi
test eax, eax
cmove rsi, rdi
mov r10, qword [rbp - 0x30]
cmp byte [0x205b3871], 0
jne 0x200f365c
cmp r10, 0x10
jb 0x200f3841
mov qword [rbp], rsi
mov rcx, qword [rbp - 0x48]
mov r8d, dword [0x20541b60]
mov eax, 0x4b9bc049
add eax, dword [0x20541cb0]
xor eax, r8d
mov edx, r8d
and edx, 1
lea eax, [rax + rdx*2]
mov dword [0x20541b60], eax
xor r11d, r11d
mov edi, 0
mov dword [rbp + 8], r8d
mov dword [rbp + 0xc], eax
test r8d, eax
jne 0x200f37c0
xor ebx, ebx
mov r11d, 0
mov edi, 0
test r15d, r15d
jle 0x200f37c0
add r12, r13
movabs rax, 0x5adbc48aa1ce1e08
add rax, r12
movabs r14, 0xa5243b755e31e1f8
add r14, rax
mov r12d, 0x4b9bc04a
xor r11d, r11d
xor edi, edi
nop
movsxd r13, ebx
add r13, r14
nop word cs:[rax + rax]
mov eax, dword [0x205b3868]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x200f3726
mov r8, qword [r13]
mov r9, qword [r13 + 8]
mov edx, dword [0x205b3868]
lea eax, [rdx - 1]
imul eax, edx
mov esi, dword [0x20541cb0]
add esi, r12d
xor edx, edx
div esi
test edx, edx
je 0x200f3770
mov rax, qword [r13]
mov rax, qword [r13 + 8]
mov edx, dword [0x205b3868]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x20541cb0]
mov edx, r8d
xor edx, 0x4b9bc04a
mov r9d, r8d
and r9d, 0x4b9bc04a
lea r9d, [rdx + r9*2]
xor edx, edx
div r9d
add r8d, 0x4b9bc048
cmp edx, r8d
jne 0x200f36f0
jmp 0x200f3701
mov rax, r9
xor rax, r9
mov rdx, r8
xor rdx, r8
not rdx
and r11, rdx
xor r11, r8
not rax
and rdi, rax
xor rdi, r9
nop
mov eax, dword [0x205b386c]
mov edx, dword [0x20541cb0]
mov r8d, edx
xor r8d, 0x4b9bc06a
and edx, 0x4b9bc06a
lea edx, [r8 + rdx*2]
cmp eax, edx
jge 0x200f3790
add ebx, 0x10
cmp ebx, r15d
jl 0x200f36e0
mov rax, qword [0x20541cc0]
movabs rdx, 0xdb84eb5adb16bb5f
add rdx, rax
add rdx, r10
movabs r8, 0xdb84eb5adb16cb5d
add r8, rax
cmp rdx, r8
jbe 0x200f3823
mov rax, qword [rcx - 8]
mov rdx, qword [0x20541cc0]
add rcx, rdx
sub rcx, rax
movabs r8, 0xdb84eb5adb16bb56
add r8, rcx
movabs rcx, 0xdb84eb5adb16bb7e
add rcx, rdx
cmp r8, rcx
jae 0x200f385d
add r10, 0x28
mov rdx, r10
mov rcx, rax
mov rsi, qword [rbp]
mov eax, 0xffff8d74
add eax, dword [0x20541c8c]
cdqe
add rax, qword [0x20541ca8]
call qword [case.0x2010e313.0]
mov rax, rsi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.20407a4c
mov rcx, qword [0x2046eb08]
mov rbx, qword [0x2046eb00]
mov dword [0x205b386c], 8
mov r9d, 0x4b9bc048
mov r15d, dword [rbp + 8]
mov r12d, dword [rbp + 0xc]
nop word cs:[rax + rax]
xor eax, eax
test r15d, r12d
setne al
add rax, 0xffffffffffffffff
mov edx, 0
adc rdx, 0xffffffffffffffff
mov r10, rbx
sub r10, r11
mov rsi, rcx
sbb rsi, rdi
mov r8d, dword [0x205b3868]
lea r14d, [r8 + 1]
imul r14d, r8d
and r14d, 1
mov r8d, dword [0x20541cb0]
add r8d, r9d
cmp r14d, r8d
jne 0x200f3890
mov ecx, dword [0x205b386c]
xor rdx, rsi
xor rax, r10
not rax
not rdx
nop word cs:[rax + rax]
movzx ecx, byte [0x205b3871]
mov r8d, dword [0x205b386c]
cmp r8d, 0x51
jg 0x200f38f0
and rax, r10
and rdx, rsi
or rdx, rax
setne al
or cl, al
and cl, 1
mov eax, 0x4b9bc064
mov edx, dword [0x205b3868]
mov r8d, dword [0x20541cb0]
neg r8d
add r8d, edx
inc r8d
imul r8d, edx
test r8b, 1
jne 0x200f3955
mov byte [0x205b3871], cl
mov edx, dword [0x205b386c]
mov r8d, dword [0x20541cb0]
add r8d, eax
cmp edx, r8d
jl 0x200f3968
mov byte [0x205b3871], cl
mov edx, dword [0x205b386c]
cmp edx, 0x43
jge 0x200f391a
jmp 0x200f393a
call fcn.20407a4c
int3