Function at 0x201bbc10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov dword [rbp + 0x44], r8d
mov qword [rbp + 0x38], rcx
lea r14, [rdx + 0x10]
movzx esi, word [rdx + 0xe]
mov eax, dword [0x205b3e94]
cmp eax, 0x1c
jge 0x201bbc70
movabs rax, 0x7573bd09050d2033
add rax, qword [0x20555998]
cmp rdx, rax
jne 0x201bbc7d
nop word cs:[rax + rax]
mov eax, dword [0x205b3e94]
cmp eax, 0x4d
jge 0x201bbc70
jmp 0x201bbc4e
mov eax, 0x78359410
add eax, dword [0x205559a8]
lea rcx, [fcn.201bbc10]
add ecx, ecx
add ecx, 0x4c20
xor ecx, eax
not ecx
test ecx, eax
jne 0x201bbcb2
movsxd r15, dword [0x20472fd0]
cmp dword [0x205559a8], 0x87ca6bf1
je 0x201bbcba
mov eax, dword [0x20472fd0]
jmp 0x201bbc9f
mov r13d, dword [0x20472fb8]
mov ebx, dword [0x205b3ab4]
movzx edi, word [rdx + 0xc]
cmp qword [0x205b6560], 0
mov dword [rbp + 0x30], r13d
jne 0x201bbd05
mov ecx, 0x900
mov edx, 0x4b2e15ca
mov r8d, 0x4fce0f2f
call fcn.2008daf0
mov qword [rbp + 0x48], rax
mov rcx, rax
call fcn.20067cf0
mov rax, qword [rbp + 0x48]
mov qword [0x205b6560], rax
lea rax, [0x20472fd0]
neg r15
neg rax
mov rcx, r15
xor rcx, rax
and rax, r15
lea r15, [rcx + rax*2]
neg r15
mov eax, ebx
not eax
mov ecx, esi
not ecx
mov edx, ebx
and edx, ecx
and ecx, eax
and eax, esi
or edx, eax
xor ebx, esi
or ecx, ebx
not ecx
lea eax, [rdx + rcx*2]
add eax, edi
mov dword [rbp + 0x40], eax
mov rax, qword [0x205b6560]
mov rax, qword [rax + 0x8e8]
call qword [case.0x2010e313.0]
mov ecx, eax
xor ecx, 0xffffff00
and ecx, eax
mov dword [rbp + 0x34], ecx
xor r12d, r12d
mov ebx, 0x78359410
lea rax, [fcn.201bbc10]
lea esi, [rax + rax]
add esi, 0x23a0
mov edi, esi
not edi
mov qword [rbp + 0x28], r15
jmp 0x201bbda9
call fcn.2008bfb0
test r12b, r12b
jne 0x201bc35c
add r14, 8
mov r12, qword [rbp + 0x48]
inc r12d
mov ecx, dword [0x20555390]
lea edx, [rcx + 1]
mov eax, dword [0x205b3e94]
cmp eax, 0x54
jge 0x201bbdda
nop dword [rax]
mov dword [0x20555390], edx
mov eax, dword [0x205b3e90]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
je 0x201bbdf0
mov dword [0x20555390], edx
jmp 0x201bbdc0
mov r8d, ecx
not r8d
mov r9d, edx
not r9d
mov eax, dword [0x205b3e94]
nop word cs:[rax + rax]
mov eax, dword [0x205559a8]
add eax, ebx
mov r10d, esi
xor r10d, eax
not eax
and eax, edi
or eax, r10d
cmp eax, 0xffffffff
jne 0x201bbe10
mov eax, edx
xor eax, edx
not eax
and eax, ecx
xor eax, edx
xor r8d, r9d
and ecx, edx
or ecx, r8d
not ecx
nop
mov edx, dword [0x205b3e94]
cmp edx, 0x43
jg 0x201bbe56
mov edx, dword [0x205b3e94]
cmp edx, 0x24
jle 0x201bbe70
mov edx, dword [0x205b3e90]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x201bbe40
jmp 0x201bbe4b
or eax, ecx
not eax
mov ecx, 0
mov edx, 0
test eax, eax
jne 0x201bbef0
mov ecx, 0
mov edx, 0
test r13d, r13d
jle 0x201bbef0
xor r8d, r8d
xor ecx, ecx
xor edx, edx
nop dword [rax + rax]
movsxd r8, r8d
xor rdx, qword [r15 + r8 + 8]
xor rcx, qword [r15 + r8]
mov r9d, dword [0x205559a8]
lea r10d, [r9 + 0x7835940f]
mov r11d, r10d
xor r11d, 0xb6414914
and r10d, 0x36414914
lea r10d, [r11 + r10*2]
sub r8d, r10d
add r8d, r9d
add r8d, 0x2e76dd33
cmp r8d, r13d
jl 0x201bbea0
nop word cs:[rax + rax]
mov qword [rbp + 0x48], r12
cmp r12d, dword [rbp + 0x40]
jae 0x201bc35c
mov r12d, dword [r14 + 4]
mov r8d, dword [0x205559a8]
mov r9d, r8d
xor r9d, 0x7835940e
and r8d, 0x7835940e
lea r8d, [r9 + r8*2]
cmp r12d, r8d
jle 0x201bbfa0
cmp dword [r14], 0
js 0x201bbd9e
cmp dword [rbp + 0xc0], 6
jne 0x201bbd9e
mov rax, qword [rbp + 0x38]
add r12, qword [rax + 0x18]
movzx edx, word [r14]
cmp edx, dword [rbp + 0xc8]
sete al
test edx, edx
sete cl
cmp word [rbp + 0x34], dx
je 0x201bbf68
mov edx, ecx
and dl, al
jne 0x201bbf68
xor cl, al
je 0x201bbd9e
mov rax, qword [rbp + 0xe0]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0x38]
mov edx, dword [rbp + 0xc8]
mov r8d, dword [rbp + 0x44]
mov r9, r12
call fcn.201bb8a0
test al, al
je 0x201bbd9e
jmp 0x201bc352
mov qword [rbp + 0x20], r14
xor r8d, r8d
test eax, eax
setne r8b
mov r10, r8
neg r10
mov r11d, 0
sbb r11, r11
add r8, 0xffffffffffffffff
mov r12d, 0
adc r12, 0xffffffffffffffff
sub rcx, qword [0x20472fc0]
sbb rdx, qword [0x20472fc8]
mov rax, rcx
neg rax
mov r9d, 0
sbb r9, rdx
add rcx, 0xffffffffffffffff
adc rdx, 0xffffffffffffffff
mov r14, rdx
and r14, r12
mov r13, rcx
and r13, r8
mov r15, r9
and r15, r11
or r15, r14
mov r14, rax
and r14, r10
or r14, r13
xor rdx, r11
xor rcx, r10
and r9, r12
or r9, rdx
and rax, r8
or rax, rcx
not r9
or r9, r15
not rax
or rax, r14
not r9
not rax
or rax, r9
mov ecx, dword [0x205b3e94]
cmp ecx, 0xc
jl 0x201bc051
nop
mov ecx, dword [0x205b3e90]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x201bc040
mov rdx, rax
shr rdx, 0x20
mov r8d, edx
not r8d
mov ecx, eax
not ecx
mov r9d, eax
and r9d, edx
xor edx, ecx
and eax, r8d
or eax, edx
not eax
xor ecx, r8d
and ecx, r8d
or ecx, r9d
or ecx, eax
mov r8d, dword [0x205b3ab4]
mov eax, dword [0x205b3e90]
lea r10, [0x2046c448]
lea r12, [rbp - 8]
nop word cs:[rax + rax]
mov eax, dword [0x205b3e94]
cmp eax, 0x45
jg 0x201bc0a0
neg r8d
mov edx, dword [0x205b3e90]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x205559a8]
mov edx, 0x78359411
add r9d, edx
xor edx, edx
div r9d
test edx, edx
mov r14, qword [rbp + 0x20]
mov r13d, dword [rbp + 0x30]
mov r15, qword [rbp + 0x28]
jne 0x201bc101
nop
mov eax, ecx
sub eax, r8d
mov dword [0x205b3ab4], eax
mov eax, dword [0x205b3e90]
mov edx, dword [0x205559a8]
add edx, eax
imul edx, eax
test dl, 1
je 0x201bc110
mov dword [0x205b3ab4], 0
jmp 0x201bc0e0
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x30], r10
mov eax, dword [r14]
test eax, eax
js 0x201bc138
movzx r8d, word [r14]
jmp 0x201bc272
mov rcx, qword [rbp + 0x38]
mov rcx, qword [rcx + 0x18]
mov edx, eax
not edx
mov r8d, edx
and r8d, 0x7fffffff
and eax, 0x80000000
or eax, r8d
and edx, 0x80000000
or edx, eax
not edx
movzx r8d, word [rcx + rdx]
add rdx, rcx
add rdx, 2
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov qword [rbp - 8], r10
mov rcx, r12
call fcn.2025ebe0
lea rcx, [rbp - 0x30]
mov rdx, r12
call fcn.2025ca10
mov rax, qword [rbp + 0x18]
mov rcx, qword [0x20555998]
movabs rdx, 0x7573bd09050d2042
add rcx, rdx
cmp rax, rcx
jbe 0x201bc26f
mov rcx, qword [rbp]
mov rdx, rax
not rdx
mov r8d, edx
and r8d, 1
mov r9, rax
xor r9, 1
movabs r10, 0x7ffffffffffffffe
and rdx, r10
or rdx, r9
and r9, rax
or r9, r8
not rdx
lea rdx, [r9 + rdx*2]
mov r8, qword [0x20555998]
movabs r9, 0x7573bd09050d3032
add r8, r9
cmp rdx, r8
jbe 0x201bc26a
mov r8, qword [rcx - 8]
sub rcx, qword [0x20555998]
movabs rdx, 0x5f8e65d74a183f9f
add rcx, rdx
mov rdx, rcx
movabs r9, 0x67cf5471b766f420
xor rdx, r9
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
movabs rdx, 0xc32e88adf973ac06
add rcx, rdx
cmp rcx, 0x20
jae 0x201bc37f
add rax, qword [0x20555998]
movabs rcx, 0x7573bd09050d205b
add rax, rcx
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
xor r8d, r8d
mov eax, dword [r14 + 4]
mov edx, eax
not edx
mov ecx, edx
and ecx, 0x7fffffff
and eax, 0x80000000
or eax, ecx
and edx, 0x80000000
or edx, eax
not edx
mov rcx, qword [rbp + 0x38]
add rdx, qword [rcx + 0x18]
mov rax, qword [rbp + 0xe0]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0xd8]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0xd0]
mov qword [rsp + 0x30], rax
mov eax, dword [rbp + 0xc8]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x44]
mov dword [rsp + 0x20], eax
call fcn.201bbc10
mov r12d, eax
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x201bbd95
mov rcx, qword [rbp - 0x28]
lea rdx, [rax + 1]
mov r8, qword [0x20555998]
mov r9, r8
movabs r10, 0xa8c42f6faf2cfcd
xor r9, r10
and r9, r8
movabs r10, 0x7573bd09050d3032
xor r8, r10
lea r8, [r8 + r9*2]
cmp rdx, r8
jbe 0x201bbd90
mov r8, qword [rcx - 8]
add rcx, qword [0x20555998]
sub rcx, r8
movabs rdx, 0x7573bd09050d202b
add rcx, rdx
cmp rcx, 0x20
jae 0x201bc37a
add rax, 0x28
mov rdx, rax
mov rcx, r8
jmp 0x201bbd90
mov rax, qword [rbp + 0xd8]
mov qword [rax], r12
mov rax, qword [rbp + 0x48]
cmp eax, dword [rbp + 0x40]
setb al
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.20407a4c
call fcn.20407a4c
int3