Function at 0x20107be0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rsi, rcx
cmp qword [0x205b6560], 0
jne 0x20107c3c
mov ecx, 0x900
mov edx, 0x189433c0
mov r8d, 0x154ab331
call fcn.2008daf0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.20067cf0
mov rax, qword [rbp - 8]
mov qword [0x205b6560], rax
mov r12, qword [0x205b6560]
mov rcx, qword [rsi + 8]
mov edx, 0xd955da21
mov r8d, 0x8ff4ec7d
mov r9d, 0xf4291664
call fcn.2010b670
mov ebx, eax
mov rdi, qword [0x205441a8]
movsxd r14, dword [rdi]
mov r15d, dword [0x2046f17c]
cmp qword [r12 + 0x760], 0
je 0x20107d4c
test bl, bl
jne 0x201082e6
mov rcx, qword [rsi + 8]
mov edx, 0x8ff4ec7d
mov r8d, 0xd794c296
mov r9d, 0x7f8ca465
call fcn.2010b600
mov rax, qword [rsi + 8]
mov rcx, qword [rax + 8]
mov edx, dword [rax + 0x10]
movzx eax, byte [rax + 0x14]
lea rdi, [0x2046f100]
mov qword [rbp], rdi
lea r14, [0x2046db60]
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], rcx
mov dword [rbp + 0x18], edx
mov byte [rbp + 0x1c], al
mov byte [rbp + 0x20], 0
movabs rax, 0x492492492492492
cmp qword [rsi + 0x28], rax
je 0x20108317
mov rbx, qword [rsi + 0x20]
mov ecx, 0x38
call fcn.2042789c
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], r14
mov rcx, qword [rbp + 0x10]
mov qword [rax + 0x20], rcx
mov ecx, dword [rbp + 0x18]
mov dword [rax + 0x28], ecx
movzx ecx, byte [rbp + 0x1c]
mov byte [rax + 0x2c], cl
movzx ecx, byte [rbp + 0x20]
mov byte [rax + 0x30], cl
inc qword [rsi + 0x28]
mov rcx, qword [rbx + 8]
mov qword [rax], rbx
mov qword [rax + 8], rcx
mov qword [rbx + 8], rax
mov qword [rcx], rax
mov qword [rbp], rdi
cmp byte [rbp + 0x20], 0
je 0x201082e6
lea rcx, [rbp + 8]
call fcn.201016d0
jmp 0x201082e6
mov r12d, 0x112bb674
mov eax, dword [0x205445ac]
add eax, r12d
mov dword [rbp + 0x2c], eax
lea rcx, [rbp + 0x2c]
mov edx, 0x8b0122fa
mov r8d, 0x32493a72
mov r9d, 0x8afbef34
call fcn.2010b610
mov r9d, dword [rbp + 0x2c]
mov rcx, qword [0x205b3928]
mov eax, dword [0x205441a0]
lea r8d, [rax + 1]
mov dword [0x205441a0], r8d
mov edx, eax
not edx
xor eax, r8d
xor r8d, edx
and r8d, edx
or r8d, eax
not r8d
add r12d, dword [0x205445ac]
mov dword [rbp - 8], r12d
mov dword [rbp - 0xc], r8d
cmp r8d, r12d
jne 0x20107de3
add r14, rdi
nop
mov eax, dword [0x205b3920]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x20107ddc
mov eax, dword [0x205b3924]
cmp eax, 0x36
jmp 0x20107dc0
xor eax, eax
test r15d, r15d
jg 0x20107e62
xor edi, edi
mov eax, dword [0x205b3920]
lea edx, [rax - 1]
nop
imul edx, eax
test dl, 1
je 0x20107e0a
mov eax, dword [0x205b3920]
mov edx, dword [0x205445ac]
add edx, eax
dec edx
jmp 0x20107df0
lea rax, [rsi + 0x30]
add r9, rcx
mov r8, qword [rsi + 0x30]
mov rcx, qword [rsi + 0x38]
mov rdx, rcx
sub rdx, r8
sar rdx, 3
cmp rdx, r9
jbe 0x20107e35
lea rax, [r8 + r9*8]
mov qword [rsi + 0x38], rax
jmp 0x20107f53
jae 0x20107f53
mov r10, qword [rsi + 0x40]
sub r10, r8
sar r10, 3
cmp r10, r9
jae 0x20107f3a
mov r8, rbp
mov rcx, rax
mov rdx, r9
call fcn.20108880
jmp 0x20107f53
lea rdx, [fcn.20107be0]
add edx, edx
add edx, 0x2620
xor edi, edi
jmp 0x20107e9b
mov r10, r8
xor r10, r8
not r10
and rdi, r10
xor rdi, r8
add eax, 8
cmp eax, r15d
jge 0x20107de5
mov r8d, dword [0x205b3920]
nop word cs:[rax + rax]
mov r8d, dword [0x205b3924]
cmp r8d, 0x1e
jg 0x20107eb0
movsxd r8, eax
add r8, r14
mov r8, qword [r8]
mov r10d, dword [0x205445ac]
mov r11d, r10d
xor r11d, 0x112bb675
and r10d, 0x112bb675
lea r10d, [r11 + r10*2]
xor r10d, edx
not r10d
test r10d, edx
jne 0x20107f10
nop dword [rax]
mov r10d, dword [0x205b3920]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x20107e80
nop dword [rax]
mov r10d, dword [0x205b3924]
mov r11d, dword [0x205445ac]
mov r12d, r11d
xor r12d, 0x112bb6ad
and r11d, 0x112bb6ad
lea r11d, [r12 + r11*2]
cmp r10d, r11d
jge 0x20107f10
jmp 0x20107ef0
sub r9, rdx
lea r14, [rcx + r9*8]
shl r9, 3
xor edx, edx
mov r8, r9
call fcn.2044feb0
mov qword [rsi + 0x38], r14
mov qword [rbp - 0x30], 0
mov rdx, qword [rsi + 0x30]
mov r8, qword [rsi + 0x38]
sub r8, rdx
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x40], 0x1f174a22
mov dword [rsp + 0x38], 0x5aadb77e
mov dword [rsp + 0x30], 0xf500c8d3
mov dword [rsp + 0x20], 0
lea rcx, [rbp + 0x2c]
xor r9d, r9d
call fcn.2010b620
mov ecx, dword [0x205445ac]
mov edx, ecx
xor edx, 0x112bb671
not ecx
and ecx, 0x6ed4498e
or ecx, edx
not ecx
lea ecx, [rdx + rcx*2]
mov edx, eax
not edx
mov r8d, edx
xor r8d, eax
and r8d, ecx
xor r8d, eax
xor eax, 0xfffffffd
xor ecx, edx
and ecx, edx
or ecx, r8d
not ecx
add ecx, ecx
mov edx, eax
xor edx, ecx
and ecx, eax
lea eax, [rdx + rcx*2]
cmp eax, 0xfffffffe
jb 0x201082e6
cmp dword [rbp + 0x2c], 0
je 0x201082e6
mov r14, qword [rsi + 0x30]
xor r12d, r12d
lea r13, [fcn.20107be0]
jmp 0x20108047
add qword [0x205b3928], rax
mov eax, dword [0x205445ac]
mov ecx, eax
xor ecx, 0x112bb675
mov edx, eax
and edx, 0x112bb675
add edx, edx
mov r8d, ecx
xor r8d, edx
and edx, ecx
lea ecx, [r8 + rdx*2]
sub ecx, eax
add r12d, ecx
add r12d, 0xeed4498c
cmp r12d, dword [rbp + 0x2c]
jae 0x201082e6
mov eax, r12d
mov r15d, dword [r14 + rax*8]
test bl, bl
je 0x20108089
mov rcx, qword [rsi + 8]
mov eax, dword [0x205445ac]
lea r8d, [rax + 0x177a68ea]
lea r9d, [rax - 0x5b3cbbbb]
add eax, 0x62c7f47
mov dword [rsp + 0x20], eax
mov edx, r15d
call fcn.2010b5f0
test al, al
jne 0x20108017
mov rax, qword [rsi + 0x10]
mov rdx, qword [rax + 8]
cmp byte [rdx + 0x19], 0
mov rcx, rax
jne 0x201080c3
mov rcx, rax
nop dword [rax]
mov r8d, dword [0x205b3930]
add r8d, dword [rdx + 0x1c]
lea r9, [rdx + 0x10]
cmp r8d, r15d
cmovae rcx, rdx
cmovae r9, rdx
mov rdx, qword [r9]
cmp byte [rdx + 0x19], 0
je 0x201080a0
cmp byte [rcx + 0x19], 0
je 0x20108220
call fcn.20101990
cmp eax, r15d
je 0x20108017
lea rax, [0x2046db60]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp - 0x18], 0
mov byte [rbp - 0x14], 0
mov dword [rsp + 0x20], 0x794c1d93
lea rcx, [rbp - 0x28]
mov edx, r15d
mov r8d, 0x9d56d263
mov r9d, 0x4c82e0ed
call fcn.2010b660
test al, al
je 0x201081e7
lea rcx, [rbp - 0x28]
mov edx, 0x8ff4ec7d
mov r8d, 0xd794c296
mov r9d, 0x7f8ca465
call fcn.2010b600
mov rax, qword [rbp - 0x20]
mov ecx, dword [rbp - 0x18]
movzx edx, byte [rbp - 0x14]
lea r8, [0x2046f100]
mov qword [rbp], r8
lea r8, [0x2046db60]
mov qword [rbp + 8], r8
mov qword [rbp + 0x10], rax
mov dword [rbp + 0x18], ecx
mov byte [rbp + 0x1c], dl
mov byte [rbp + 0x20], 1
movabs rax, 0x492492492492492
cmp qword [rsi + 0x28], rax
je 0x201082fa
mov r15, qword [rsi + 0x20]
mov ecx, 0x38
call fcn.2042789c
lea rdx, [0x2046f100]
mov qword [rax + 0x10], rdx
lea rcx, [0x2046db60]
mov qword [rax + 0x18], rcx
mov rcx, qword [rbp + 0x10]
mov qword [rax + 0x20], rcx
mov ecx, dword [rbp + 0x18]
mov dword [rax + 0x28], ecx
movzx ecx, byte [rbp + 0x1c]
mov byte [rax + 0x2c], cl
movzx ecx, byte [rbp + 0x20]
mov byte [rax + 0x30], cl
inc qword [rsi + 0x28]
mov rcx, qword [r15 + 8]
mov qword [rax], r15
mov qword [rax + 8], rcx
mov qword [r15 + 8], rax
mov qword [rcx], rax
mov qword [rbp], rdx
cmp byte [rbp + 0x20], 0
je 0x201081e7
lea rcx, [rbp + 8]
call fcn.201016d0
mov rax, qword [0x2046f170]
xor ecx, ecx
mov edx, dword [rbp - 0xc]
cmp edx, dword [rbp - 8]
setne cl
movabs rdx, 0xd076108f011bb226
or rcx, rdx
mov edx, dword [0x205b3924]
cmp edx, 0x49
jge 0x20108260
jmp 0x20108240
cmp dword [rcx + 0x1c], r15d
ja 0x201080cd
cmp rcx, rax
jne 0x20108017
jmp 0x201080cd
mov edx, dword [0x205b3920]
mov r8d, 0xb7377fcb
sub r8d, edx
imul r8d, edx
test r8b, 1
je 0x20108280
nop dword [rax]
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x20108260
jmp 0x20108240
movabs rdx, 0x2f89ef70fee44dd9
add rcx, rdx
sub rax, rdi
and rax, rcx
nop word cs:[rax + rax]
lea ecx, [r13 + r13 + 0x2480]
mov edx, ecx
not edx
test edx, ecx
jne 0x201082cc
mov ecx, dword [0x205b3920]
mov edx, dword [0x205445ac]
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
je 0x20108010
mov ecx, dword [0x205b3920]
mov edx, dword [0x205445ac]
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
jne 0x201082a0
jmp 0x201082b0
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor ecx, ecx
xor edx, edx
mov r8d, 0x424375e9
mov r9d, 0x79dc3d8c
call fcn.2010b3b0
mov rcx, rax
call fcn.20429544
xor ecx, ecx
xor edx, edx
mov r8d, 0x424375e9
mov r9d, 0x79dc3d8c
call fcn.2010b3b0
mov rcx, rax
call fcn.20429544
int3