Function at 0x2019e760
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x188
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x100], 0xfffffffffffffffe
mov r14, r8
mov rdi, rdx
mov rbx, rcx
movsxd r15, dword [0x20378164]
mov r12d, dword [0x20378150]
mov eax, 0xffff6009
add eax, dword [0x2045df9c]
lea rsi, [rcx + 8]
cdqe
add rax, qword [0x2045dfd0]
mov rcx, rbp
mov rdx, rsi
mov r8d, 0xa46e532f
call qword [case.0x200fc05d.0]
mov rax, qword [rbx]
mov edx, dword [rax + 0x30]
lea rcx, [rbp - 0x50]
call fcn.201b6e90
mov rcx, rdi
call fcn.201b6850
mov qword [rbp], rax
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movaps xmmword [rbp + 0xa0], xmm3
movaps xmmword [rbp + 0x90], xmm2
movaps xmmword [rbp + 0x80], xmm1
movaps xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0xe8], 0
mov ecx, 0x48
call fcn.2032be0c
lea rdx, [rbp + 8]
lea rcx, [0x20378578]
mov qword [rax], rcx
movaps xmm0, xmmword [rbp + 0x70]
movaps xmm1, xmmword [rbp + 0x80]
movaps xmm2, xmmword [rbp + 0x90]
movaps xmm3, xmmword [rbp + 0xa0]
movups xmmword [rax + 8], xmm0
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 0x28], xmm2
movups xmmword [rax + 0x38], xmm3
mov ecx, 0xffff6009
add ecx, dword [0x2045dfa0]
mov qword [rbp + 0xe8], rax
movsxd rax, ecx
add rax, qword [0x2045dfc0]
lea rdi, [rbp + 0xb0]
mov rcx, rdi
call qword [case.0x200fc05d.0]
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x2019e8a1
cmp rcx, rdi
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x200fc05d.0]
lea rcx, [rbp - 0x50]
mov rdx, rbp
call fcn.2019f300
mov r8, qword [r14 + 8]
lea rcx, [rbp + 0x70]
lea rdx, [rbp - 0x50]
call fcn.2019ee80
mov rdi, qword [r14]
mov r14, qword [r14 + 8]
mov r13d, dword [0x204a2468]
mov eax, r13d
xor eax, 1
mov ecx, r13d
and ecx, 1
lea eax, [rax + rcx*2]
mov dword [0x204a2468], eax
xor eax, r13d
not eax
xor edx, edx
mov dword [rbp + 0xf0], eax
test eax, r13d
jne 0x2019e95e
lea rax, [0x20378164]
add r15, rax
nop dword [rax]
mov eax, dword [0x204a2478]
lea ecx, [rax - 1]
mov dword [0x204a2484], 0
imul ecx, eax
test cl, 1
jne 0x2019e926
mov eax, dword [0x204a247c]
cmp eax, 0x5e
jle 0x2019e939
mov eax, dword [0x204a2478]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x2019e900
jmp 0x2019e91b
test r12d, r12d
jle 0x2019e95e
xor eax, eax
xor edx, edx
nop word cs:[rax + rax]
cdqe
xor edx, dword [r15 + rax]
add eax, 4
cmp eax, r12d
jl 0x2019e950
mov dword [rbp + 0xf4], edx
mov rax, qword [rbx]
movups xmm0, xmmword [rax + 0x18]
movaps xmmword [rbp + 0x60], xmm0
movzx ebx, r14w
mov rcx, rbx
call fcn.2023c610
add rax, rbx
mov rcx, rax
call fcn.201b6ee0
mov rbx, rax
xorps xmm0, xmm0
movaps xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], 0
test rax, rax
je 0x2019e9fc
js 0x2019ec2f
cmp rbx, 0x1000
jb 0x2019e9cc
lea rcx, [rbx + 0x27]
call fcn.2032be0c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x2019e9d7
mov rcx, rbx
call fcn.2032be0c
mov rcx, rax
mov qword [rbp + 0xb0], rcx
mov r15, rbx
add r15, rcx
mov qword [rbp + 0xc0], r15
xor edx, edx
mov r8, rbx
call fcn.20354420
mov qword [rbp + 0xb8], r15
mov dword [rbp + 0xf8], r13d
mov r9, qword [rbp + 0xb0]
mov rax, qword [rbp + 0xb8]
sub rax, r9
mov rdx, qword [rbp + 0x70]
mov r8, qword [rbp + 0x78]
sub r8, rdx
movaps xmm0, xmmword [rbp + 0x60]
movaps xmmword [rbp + 0x50], xmm0
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x50]
call fcn.20269250
mov rbx, qword [rbp + 0xb0]
movzx eax, byte [0x204a19f0]
add al, byte [rbx]
je 0x2019ea51
movzx eax, al
or eax, 0x60000000
jmp 0x2019ea61
mov eax, dword [rbx + 2]
test eax, eax
je 0x2019ebba
add eax, 0x70000000
mov dword [rbp + 0xfc], eax
mov eax, dword [rbp + 0xf8]
mov edx, dword [rbp + 0xf0]
and edx, eax
xor ecx, ecx
cmp edx, 1
sbb ecx, ecx
mov eax, dword [0x20378160]
sub eax, dword [rbp + 0xf4]
mov edx, eax
not edx
xor eax, ecx
not ecx
and edx, ecx
or eax, edx
not eax
mov ecx, eax
shr ecx, 0x10
or ecx, eax
movzx eax, ch
or eax, ecx
movzx ecx, byte [0x204a19f0]
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
mov byte [0x204a19f0], cl
mov rcx, qword [rbp + 0xb0]
test rcx, rcx
je 0x2019eb0e
mov rdx, qword [rbp + 0xc0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x2019eaf4
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x2019ec34
add rdx, 0x27
mov rcx, rax
mov eax, 0xffff6009
add eax, dword [0x2045df98]
cdqe
add rax, qword [0x2045dfb8]
call qword [case.0x200fc05d.0]
mov rcx, qword [rbp + 0x70]
test rcx, rcx
je 0x2019eb60
mov rdx, qword [rbp + 0x80]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x2019eb46
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x2019ec39
add rdx, 0x27
mov rcx, rax
mov eax, 0xffff6009
add eax, dword [0x2045df98]
cdqe
add rax, qword [0x2045dfb8]
call qword [case.0x200fc05d.0]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x2019eb80
lea rax, [rbp - 0x48]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x200fc05d.0]
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x2019eba0
lea rax, [rbp + 8]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x200fc05d.0]
mov eax, dword [rbp + 0xfc]
add rsp, 0x188
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx edx, word [rbx + 0xe]
test rdx, rdx
je 0x2019ebf6
mov dword [rbp + 0xfc], 0x60000003
cmp dx, r14w
jbe 0x2019ea67
lea rcx, [rbx + 0x10]
mov r8, rsi
call fcn.201b7470
test eax, eax
jns 0x2019ebf8
mov dword [rbp + 0xfc], 0x60000004
jmp 0x2019ea67
xor eax, eax
movzx ecx, r14w
mov dword [rbp + 0xfc], 0x60000005
cmp eax, ecx
jne 0x2019ea67
add rbx, 0x10
mov r8d, eax
mov rcx, rdi
mov rdx, rbx
call fcn.20353d70
mov dword [rbp + 0xfc], 0
jmp 0x2019ea67
call fcn.2018b190
call fcn.2030c4cc
call fcn.2030c4cc
int3