Function at 0x201f8cd0
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 r15d, r9d
mov r12, rdx
mov r14, qword [rcx + 0x18]
test r14, r14
je 0x201f8da2
mov rdi, rcx
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x48], r12
mov rax, qword [0x20468778]
mov qword [rbp - 8], rax
movsxd rax, dword [rax]
mov qword [rbp + 0x28], rax
mov eax, dword [0x2037d8d8]
mov dword [rbp + 0x38], eax
lea r12, [r14 + 3]
mov qword [rbp - 0x18], 0
mov rcx, r12
call fcn.2032be04
mov rsi, rax
lea rbx, [rdi + 8]
mov rcx, rax
xor edx, edx
mov qword [rbp - 0x50], r12
mov r8, r12
call fcn.20354420
cmp qword [rdi + 0x20], 0x10
mov r13, qword [rdi + 8]
mov r8, qword [rdi + 0x18]
mov r12, rbx
cmovae r12, r13
mov rcx, rsi
mov rdx, r12
call fcn.20353d70
mov eax, r15d
and eax, 2
add eax, dword [0x204a2f4c]
mov qword [rbp + 0x40], rsi
je 0x201f8dd6
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
mov dword [rbp + 0x3c], 0
mov qword [rbp + 0x48], rsi
jmp 0x201f8eeb
test r15b, 1
jne 0x201f8e24
mov ecx, 0x543f127b
call fcn.201fcbc0
mov rdi, rax
xorps xmm0, xmm0
movups xmmword [r12 + 0x18], xmm0
mov rsi, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x201f8e6f
mov rdi, qword [rdi + 8]
jmp 0x201f8e73
mov rcx, r12
mov edx, 0x20
mov r8, r14
mov r9d, 0x4cb77a9b
call fcn.20186cc0
test rax, rax
je 0x201f8ed3
sub rax, r12
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
cmp rax, 0xffffffffffffffff
je 0x201f8edc
mov rax, qword [rbp + 0x40]
lea rcx, [rax + 1]
mov qword [rbp + 0x48], rcx
mov byte [rax], 0x22
mov al, 1
mov dword [rbp + 0x3c], eax
jmp 0x201f8eeb
mov qword [r12 + 0x20], 0xf
mov qword [r12 + 0x18], 6
mov dword [rsp + 0x20], 0xbec63f90
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.201fcfb0
mov ecx, dword [rax]
mov dword [r12 + 8], ecx
movzx eax, word [rax + 4]
mov word [r12 + 0xc], ax
mov byte [r12 + 0xe], 0
jmp 0x201f948d
add rdi, 8
lea r14, [r12 + 8]
cmp rsi, 0xf
ja 0x201f8e8f
movups xmm0, xmmword [rdi]
movups xmmword [r14], xmm0
mov ebx, 0xf
jmp 0x201f9483
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x201f9463
lea rcx, [rbx + 0x28]
mov edx, 0x37fee2be
call fcn.200810a0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x201f9474
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
mov dword [rbp + 0x3c], 0
mov rax, qword [rbp + 0x40]
mov qword [rbp + 0x48], rax
movsx ecx, byte [rbx]
cmp ecx, 0x2f
sete al
movzx edx, byte [rbx + 1]
mov r8d, ecx
xor r8b, 0x5c
mov r9d, edx
xor r9b, 0x5c
or r9b, r8b
sete dil
or dil, al
cmp dl, 0x3a
jne 0x201f8f24
mov edx, 0xe89ab799
call fcn.201fcba0
mov r13d, eax
jmp 0x201f8f27
xor r13d, r13d
lea r12, [rbp + 8]
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
lea rax, [0x20370288]
mov qword [rbp], rax
test r15b, 1
sete al
or dil, al
jne 0x201f8fa4
mov rcx, rbp
call fcn.201f9620
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x20]
lea rdx, [rax + 1]
cmp rcx, 0x10
lea r8, [rbp + 9]
cmovae r8, rdx
movzx edx, byte [0x204a2f50]
add dl, byte [r8]
cmp dl, 0x3a
jne 0x201f8fa4
cmp rcx, 0x10
cmovb rax, r12
movsx ecx, byte [rax]
mov edx, 0xe89ab799
call fcn.201fcba0
mov r14d, eax
test r13b, r13b
jne 0x201f8fac
jmp 0x201f8fe5
xor r14d, r14d
test r13b, r13b
je 0x201f8fe5
test r15b, 1
je 0x201f8fb7
cmp r13b, r14b
je 0x201f8fe5
movzx eax, byte [0x204a2f48]
add al, byte [rbx]
add al, byte [0x204a19f0]
movsx ecx, al
mov edx, 0xe89ab799
call fcn.201fcba0
mov rcx, qword [rbp + 0x48]
mov byte [rcx], al
mov byte [rcx + 1], 0x3a
add rcx, 2
mov qword [rbp + 0x48], rcx
xor eax, eax
cmp byte [0x204a2250], 0
jne 0x201f9019
and r15d, 1
je 0x201f9019
cmp r13b, r14b
je 0x201f9019
mov byte [rbp - 0x40], r13b
mov word [rbp - 0x3f], 0x3a
lea rcx, [rbp - 0x40]
call fcn.201f97a0
mov rcx, rbp
call fcn.201f9620
mov eax, r14d
mov dword [rbp + 0x34], eax
xor eax, eax
test r13b, r13b
setne al
lea r13, [rbx + rax*2]
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x201f9125
mov rcx, qword [rbp + 8]
lea rdx, [rcx + 1]
cmp qword [rbp + 0x20], 0x10
lea r8, [rbp + 9]
cmovae r8, rdx
cmp byte [r8], 0x3a
mov rsi, qword [rbp + 0x28]
mov ebx, dword [rbp + 0x38]
jne 0x201f908d
cmp rax, 2
mov r9d, 2
cmovb r9, rax
cmp qword [rbp + 0x20], 0x10
cmovae r12, rcx
lea rdx, [r12 + r9]
sub r9, rax
mov r8d, 1
sub r8, r9
neg r9
mov qword [rbp + 0x18], r9
mov rcx, r12
call fcn.20353d70
mov r8, qword [rbp + 0x18]
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
lea rax, [0x2036e458]
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x40]
mov rdx, r13
call fcn.201ff560
lea rcx, [rbp - 0x40]
mov rdx, rbp
call fcn.2016c4a0
test eax, eax
je 0x201f940f
mov r15, qword [rbp + 0x40]
mov rax, qword [rbp - 0x20]
cmp rax, 0x10
jb 0x201f9130
mov rdx, qword [rbp - 0x38]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x201f910e
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x201f94b4
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0xb0de58bf
mov ecx, 1
xor r8d, r8d
call fcn.2016a280
jmp 0x201f9130
mov r15, qword [rbp + 0x40]
mov rsi, qword [rbp + 0x28]
mov ebx, dword [rbp + 0x38]
add rsi, qword [rbp - 8]
mov eax, dword [0x20468760]
lea ecx, [rax - 0x139fbca7]
add ecx, 0x139fbca8
mov dword [0x20468760], ecx
xor edi, edi
mov r12d, 0
mov qword [rbp + 0x28], rax
mov dword [rbp + 0x38], ecx
test eax, ecx
jne 0x201f9194
xor eax, eax
mov edi, 0
mov r12d, 0
test ebx, ebx
jle 0x201f9194
xor edi, edi
xor r12d, r12d
nop word cs:[rax + rax]
movsxd rcx, eax
add rcx, rsi
xor rdi, qword [rcx]
xor r12, qword [rcx + 8]
add eax, 0x10
cmp eax, ebx
jl 0x201f9180
mov rax, qword [rbp - 0x10]
test rax, rax
mov esi, 0x7fffffff
cmovne rsi, rax
mov rcx, r13
mov edx, 0xb967a0d8
call fcn.20080a60
cmp rax, rsi
jle 0x201f9265
mov r14, rax
mov rax, qword [rbp - 0x50]
lea r8, [rax + r15]
xor eax, eax
movabs rbx, 0x100000000
cmp r14, rsi
jle 0x201f9265
xor r15d, r15d
mov rdx, r13
movzx ecx, byte [r13 + 1]
test ecx, ecx
je 0x201f925e
inc r13
add r15, rbx
cmp ecx, 0x5c
jne 0x201f91e0
mov ecx, eax
not cl
mov edx, eax
xor dl, 1
and cl, 0xfe
or cl, dl
cmp cl, 0xff
jne 0x201f9248
mov qword [rbp - 8], r8
sub r8, qword [rbp + 0x48]
mov qword [rbp - 0x10], r8
mov dword [rsp + 0x20], 0xfa925f64
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.201fd730
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp - 0x10]
mov r8, rax
call fcn.20313bc4
add qword [rbp + 0x48], 4
mov al, 1
mov r8, qword [rbp - 8]
sar r15, 0x20
sub r14, r15
mov r15, qword [rbp + 0x40]
cmp r14, rsi
jg 0x201f91da
jmp 0x201f9265
mov r15, qword [rbp + 0x40]
mov r13, rdx
mov rdx, qword [rbp - 0x50]
add rdx, r15
mov rcx, qword [rbp + 0x48]
sub rdx, rcx
mov r8, r13
call fcn.20313bc4
mov r14, qword [rbp + 0x48]
mov rcx, r14
mov edx, 0xb967a0d8
call fcn.20080a60
mov rbx, rax
mov eax, dword [rbp + 0x34]
test al, al
je 0x201f92ac
mov byte [rbp - 0x40], al
mov word [rbp - 0x3f], 0x3a
lea rcx, [rbp - 0x40]
call fcn.201f97a0
mov r14, qword [rbp + 0x48]
add r14, rbx
xor eax, eax
mov ecx, dword [rbp + 0x38]
test dword [rbp + 0x28], ecx
setne al
mov rdx, qword [0x2037d900]
xor ecx, ecx
mov r8, rax
add r8, 0xffffffffffffffff
mov r9d, 0
adc r9, 0xffffffffffffffff
mov r10, qword [0x2037d8f8]
sub r10, rdi
sbb rdx, r12
mov r11, rdx
not r11
mov rsi, r10
not rsi
neg rax
sbb rcx, rcx
xor r10, r8
xor rdx, r9
and rax, rsi
or rax, r10
and rcx, r11
or rcx, rdx
not rax
not rcx
or rcx, rax
mov rax, rcx
shr rax, 0x20
or eax, ecx
add dword [0x204a2f4c], eax
cmp byte [rbp + 0x3c], 0
je 0x201f932a
mov byte [r14], 0x22
inc r14
mov r12, qword [rbp - 0x48]
mov rsi, qword [rbp + 0x40]
mov byte [r14], 0
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x201f939b
mov rdx, qword [rbp + 8]
mov rcx, rax
xor rcx, 1
mov r8d, eax
and r8d, 1
lea r9, [rcx + r8*2]
cmp r9, 0x1000
jb 0x201f9386
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x201f94af
mov rdx, qword [0x204a1cd0]
lea r9, [rax + rdx]
add r9, 0x28
mov rdx, rcx
mov dword [rsp + 0x20], 0xb0de58bf
mov ecx, 1
xor r8d, r8d
call fcn.2016a280
lea rdi, [r12 + 8]
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0xf
mov byte [r12 + 8], 0
mov rcx, rsi
mov edx, 0xb967a0d8
call fcn.20080a60
mov rbx, rax
cmp rax, 0xf
jbe 0x201f93de
mov rcx, rdi
mov rdx, rbx
mov r9, rsi
call fcn.200712e0
jmp 0x201f93f7
mov qword [r12 + 0x18], rbx
mov rcx, rdi
mov rdx, rsi
mov r8, rbx
call fcn.20353d70
mov byte [r12 + rbx + 8], 0
lea rax, [0x2036e458]
mov qword [r12], rax
mov rcx, rsi
call fcn.200807c0
jmp 0x201f9498
mov rax, qword [rbp + 0x18]
movsx ecx, byte [r13 + rax]
test ecx, ecx
mov r15, qword [rbp + 0x40]
je 0x201f9431
cmp ecx, 0x5c
jne 0x201f9448
add r13, rax
inc r13
jmp 0x201f90d4
mov rax, qword [rbp + 0x48]
mov byte [rax], 0x2e
inc rax
mov qword [rbp + 0x48], rax
add r13, qword [rbp + 0x18]
jmp 0x201f90d4
cmp rax, 1
sete al
cmp byte [rbp + 0x34], 0
sete cl
and cl, al
movzx eax, cl
add r13, rax
jmp 0x201f90d4
lea rcx, [rbx + 1]
mov edx, 0x37fee2be
call fcn.200810a0
mov rcx, rax
mov qword [r14], rcx
lea r8, [rsi + 1]
mov rdx, rdi
call fcn.20353d70
mov qword [r12 + 0x18], rsi
mov qword [r12 + 0x20], rbx
lea rax, [0x2036e458]
mov qword [r12], rax
mov rax, r12
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.2030c4cc
call fcn.2030c4cc
int3