Function at 0x200f1fa0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x228
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x190], xmm6
mov qword [rbp + 0x188], 0xfffffffffffffffe
test rdx, rdx
je 0x200f2af8
mov rdi, rdx
mov eax, dword [rdx + 0xc4]
lea rbx, [rdx + rax]
add rbx, 0xd4
mov qword [rbp + 0x150], rcx
lea rax, [rcx + 0x50]
mov qword [rbp + 0x138], rax
xorps xmm6, xmm6
mov r14d, 0x4b9bc07e
movabs r13, 0xdb84eb5adb16bc22
movabs r15, 0x5b84eb5adb16bc22
xor ecx, ecx
mov qword [rbp + 0x140], rdx
nop word cs:[rax + rax]
mov eax, dword [rdi + 0xc8]
cmp rcx, rax
jae 0x200f2aad
mov qword [rbp + 0x130], rcx
mov eax, dword [0x205b386c]
cmp eax, 0x1e
movabs rdi, 0xdb84eb5adb16bb5e
lea rsi, [rbp - 0x58]
jg 0x200f2100
nop word cs:[rax + rax]
movzx r12d, word [rbx]
lea rax, [r12 - 0xc4]
neg rax
cmp r12, 0xc4
mov r8d, 0
cmovb r8, rax
lea rcx, [r12 + rbp]
add rcx, 0xffffffffffffffa8
xor edx, edx
call fcn.2044feb0
mov rcx, rsi
mov rdx, rbx
mov r8, r12
call fcn.2044f800
mov qword [rbp + 0x170], 0
mov qword [rbp + 0x178], 0xf
mov byte [rbp + 0x160], 0
lea rcx, [rbp - 0x14]
mov edx, 0x50438aef
mov r8d, 0x8a55004a
mov r9d, 0xa79c823e
call fcn.2008dcc0
mov rdx, rax
mov eax, dword [0x205b3868]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
je 0x200f21c0
nop dword [rax]
movzx r12d, word [rbx]
mov eax, 0xc4
mov ecx, r12d
shl rax, cl
mov rcx, qword [0x20541cc0]
mov rdx, rcx
xor rdx, r13
mov r8, rcx
and r8, r15
lea rdx, [rdx + r8*2]
sub rcx, rdx
add rcx, rax
add rcx, rdi
mov rdx, rax
neg rdx
xor rdx, rcx
not rcx
lea r8, [rax - 1]
and r8, rcx
or r8, rdx
not r8
lea rcx, [rdx + r8*2]
imul rcx, rax
sub rcx, rax
cmp r12, 0xc4
mov r8d, 0
cmovb r8, rcx
lea rcx, [r12 + rbp]
add rcx, 0xffffffffffffffa8
xor edx, edx
call fcn.2044feb0
mov rcx, rsi
mov rdx, rbx
mov r8, r12
call fcn.2044f800
mov qword [rbp + 0x170], 0
mov qword [rbp + 0x178], 0xf
mov byte [rbp + 0x160], 0
mov eax, dword [0x205b3868]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x200f2100
jmp 0x200f2070
mov qword [rbp + 0x128], r12
cmp rdx, 0xf
jbe 0x200f21e0
lea rcx, [rbp + 0x160]
lea r9, [rbp - 0x14]
call fcn.2006bec0
jmp 0x200f2205
mov qword [rbp + 0x170], rdx
lea rcx, [rbp + 0x160]
mov rsi, rdx
lea rdx, [rbp - 0x14]
mov r8, rsi
call fcn.2044f800
mov byte [rbp + rsi + 0x160], 0
mov r13d, 0x4b9bc08d
nop dword [rax + rax]
mov eax, dword [0x205b386c]
cmp eax, 0x2f
jg 0x200f2226
mov eax, dword [0x205b386c]
cmp eax, 0x2d
jle 0x200f2250
mov dword [0x205b386c], 0x58
mov eax, dword [0x205b3868]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x200f2210
jmp 0x200f221b
mov eax, dword [0x205b3868]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x20541cb0]
mov edx, 0x4b9bc048
add eax, edx
cmp ecx, eax
je 0x200f29c0
jmp 0x200f29d8
cmp qword [rbp + 0xf0], 0
sete al
movzx ecx, byte [0x205b3870]
test cl, al
jne 0x200f22bc
xor cl, al
jne 0x200f22bc
mov rcx, qword [rbp + 0xf0]
test rcx, rcx
je 0x200f22bc
mov edx, 0x8b761485
mov r8d, 0x12eba663
mov r9d, 0x5717ad72
call fcn.2008bfb0
lea rax, [rbp + 0xf0]
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov byte [rbp + 0x108], 1
mov ecx, 0x40
call fcn.20427894
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0x100], 0x40
mov rcx, qword [0x20541cc0]
movabs rdx, 0xdb84eb5adb16bb9e
add rcx, rdx
mov qword [rbp + 0xf8], rcx
lea rcx, [rbp - 0x14]
movups xmm0, xmmword [rcx - 0x40]
movups xmm1, xmmword [rcx - 0x30]
movups xmm2, xmmword [rcx - 0x20]
movups xmm3, xmmword [rcx - 0x10]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov r12, qword [rbp + 0x110]
jmp 0x200f2344
add r12, 8
cmp r12, qword [rbp + 0x118]
je 0x200f2370
mov rcx, qword [r12]
test rcx, rcx
je 0x200f2340
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov edx, 1
call qword [case.0x2010e313.0]
jmp 0x200f2340
lea rcx, [rbp + 0x70]
lea rdx, [rbp + 0x158]
lea r8, [rbp + 0xe8]
call fcn.200f3d80
add rsi, rdi
mov eax, dword [0x205b386c]
mov ecx, dword [0x20541cb0]
mov edx, 0x4b9bc083
add ecx, edx
cmp eax, ecx
jge 0x200f23d0
nop word cs:[rax + rax]
mov eax, dword [0x205b386c]
cmp eax, 0x26
jge 0x200f23d0
mov r11b, 1
nop
mov eax, dword [0x205b386c]
cmp eax, 0x5e
jg 0x200f23c0
jmp 0x200f2419
mov eax, dword [0x205b3868]
mov ecx, dword [0x20541cb0]
mov edx, ecx
not edx
add edx, eax
imul edx, eax
and edx, 1
mov eax, ecx
xor eax, 0x4b9bc048
and ecx, 0x4b9bc048
add ecx, ecx
mov r8d, eax
xor r8d, ecx
and ecx, eax
lea eax, [r8 + rcx*2]
cmp edx, eax
jne 0x200f23d0
jmp 0x200f23b0
mov eax, dword [0x205b386c]
cmp eax, 0x5a
mov eax, dword [0x20541b64]
mov ecx, dword [0x205b3868]
mov edx, ecx
not edx
add edx, dword [0x20541cb0]
imul edx, ecx
test dl, 1
jne 0x200f2410
mov edi, dword [0x20541cb0]
lea ecx, [rax + rdi]
add ecx, 0x4b9bc049
mov dword [0x20541b64], ecx
mov edx, eax
not edx
add edi, 0x4b9bc047
xor edi, ecx
mov r8d, ecx
not r8d
mov r9d, edx
xor r9d, ecx
mov r10d, eax
and r10d, r8d
or r10d, r9d
not r10d
xor r8d, eax
and ecx, edx
or ecx, r8d
not ecx
or ecx, r10d
and edi, edx
or edi, ecx
mov eax, dword [0x205b3868]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x200f24a5
nop word cs:[rax + rax]
test r11b, r11b
je 0x200f24a0
xor edi, 0xffffffff
mov qword [rbp + 0x148], rdi
je 0x200f24c0
xor r12d, r12d
jmp 0x200f24f0
mov eax, dword [0x20541cb0]
mov ecx, 0x4b9bc048
add eax, ecx
xor edi, edi
mov r12d, 0
cmp eax, dword [rbp + 0x184]
jl 0x200f2659
nop word cs:[rax + rax]
mov rcx, qword [rbp + 0x138]
lea rdx, [rbp + 0xd8]
lea r8, [rbp + 0x70]
call fcn.200f4010
lea rcx, [rbp + 0x98]
call fcn.20056cf0
mov rax, qword [rbp + 0x90]
cmp rax, 0x10
mov rdi, qword [rbp + 0x140]
mov r15, qword [rbp + 0x128]
jb 0x200f25de
mov rcx, qword [rbp + 0x78]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x200f25d9
mov r13, rdi
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
mov rdx, qword [0x20541cc0]
mov r9, rdx
not r9
mov r10, rdx
movabs rsi, 0x247b14a524e94481
and r10, rsi
mov r11, r9
movabs rdi, 0xdb84eb5adb16bb7e
and r11, rdi
or r11, r10
movabs r10, 0x5b84eb5adb16bb7e
xor rdx, r10
and r9, rsi
or r9, rdx
not r9
lea rdx, [r11 + r9*2]
cmp rcx, rdx
jae 0x200f2b15
sub rax, qword [0x20541cc0]
movabs rcx, 0x247b14a524e944ca
add rax, rcx
mov rdx, rax
mov rcx, r8
mov rdi, r13
call fcn.2008bfb0
lea rcx, [rbp + 0xe8]
call fcn.20056cf0
mov rcx, qword [rbp + 0x178]
cmp rcx, 0x10
jb 0x200f2936
mov edx, dword [0x205b3868]
mov r8d, dword [0x20541cb0]
mov eax, edx
sub eax, r8d
add eax, 0xb4643fb7
imul eax, edx
mov edx, r8d
not edx
mov r9d, r8d
and r9d, 0xb4643fb5
mov r10d, edx
and r10d, 0x4b9bc04a
or r10d, r9d
xor r8d, 0x4b9bc04a
and edx, 0x34643fb5
or edx, r8d
not edx
lea r8d, [r10 + rdx*2]
xor edx, edx
div r8d
test edx, edx
jne 0x200f29b0
jmp 0x200f2810
xor r12d, r12d
jmp 0x200f266c
cmp edi, dword [rbp + 0x184]
jge 0x200f24f0
lea rax, [fcn.200f1fa0]
add eax, eax
add eax, 0x4480
mov ecx, eax
not ecx
test ecx, eax
mov eax, dword [0x205b386c]
cmp eax, 0x3a
jg 0x200f2680
mov eax, dword [0x205b386c]
movsxd r15, edi
cmp eax, 0x31
jg 0x200f26b6
nop dword [rax]
movzx eax, byte [rsi + r15]
mov ecx, dword [0x205b3868]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x200f26f9
mov ecx, 0x5b
mov edx, 0x4d344f8f
mov r8d, 0x7fbc8523
mov r9d, 0xb85cd79b
call fcn.200f6070
mov qword [0x205b3848], rax
lea rcx, [0x200f5f90]
call fcn.20427ec0
movzx eax, byte [rsi + r15]
jmp 0x200f26a0
mov ecx, dword [0x205b386c]
cmp ecx, 0x2e
mov ecx, dword [0x205b3868]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x200f26f0
mov ecx, r12d
not cl
mov edx, eax
not dl
mov r8d, r12d
and r8b, al
mov r9d, ecx
and r9b, dl
or r9b, r8b
xor dl, r12b
and cl, al
or cl, dl
mov edx, ecx
not dl
xor cl, dl
and cl, r9b
and r9b, dl
xor cl, dl
or cl, r9b
not cl
xor al, r12b
and r12b, al
or r12b, cl
mov eax, dword [0x20541cb0]
sub edi, eax
add edi, 0xb4643fb9
mov ecx, eax
xor ecx, 0x4b9bc049
and eax, 0x4b9bc049
lea eax, [rcx + rax*2]
lea rcx, [fcn.200f1fa0]
add ecx, ecx
add ecx, 0x1dc0
xor ecx, eax
not ecx
test ecx, eax
jne 0x200f27e0
nop word [rax + rax]
mov eax, dword [0x20541cb0]
lea ecx, [rax + 0x4b9bc049]
lea rdx, [fcn.200f1fa0]
add edx, edx
add edx, 0x220
and edx, ecx
add eax, 0x4b9bc048
cmp edx, eax
je 0x200f27c3
nop word cs:[rax + rax]
mov eax, dword [0x205b386c]
mov ecx, dword [0x20541cb0]
add ecx, r13d
cmp eax, ecx
jge 0x200f27b0
mov eax, dword [0x205b386c]
cmp eax, 0x4a
jl 0x200f2660
nop word cs:[rax + rax]
mov eax, dword [0x205b386c]
cmp eax, 0x14
jg 0x200f27fe
mov eax, dword [0x205b386c]
mov ecx, dword [0x20541cb0]
add ecx, r14d
cmp eax, ecx
jl 0x200f2780
cmp dword [0x20541cb0], 0xb4643fb8
jne 0x200f27e0
jmp 0x200f27eb
mov eax, dword [0x20541cb0]
lea edx, [rax + 0x4b9bc049]
lea r8, [fcn.200f1fa0]
add r8d, r8d
add r8d, 0x1e40
mov r9d, r8d
xor r9d, edx
not edx
xor r8d, edx
and r8d, edx
or r8d, r9d
not r8d
add eax, 0x4b9bc048
cmp r8d, eax
jne 0x200f29b0
mov r12, qword [rbp + 0x160]
mov rax, rcx
xor rax, 1
mov rdx, qword [0x20541cc0]
movabs r8, 0xdb84eb5adb16bb5f
add rdx, r8
and rdx, rcx
lea rsi, [rax + rdx*2]
cmp rsi, 0x1000
jb 0x200f291a
mov r8, qword [r12 - 8]
cmp byte [0x205b3871], 0
jne 0x200f28b0
sub r12, r8
add r12, 0xfffffffffffffff8
cmp r12, 0x20
jae 0x200f2b78
nop word cs:[rax + rax]
test rdi, rdi
jne 0x200f28d5
nop word cs:[rax + rax]
mov dword [0x205b386c], 0x2e
mov eax, dword [0x205b386c]
cmp eax, 0x4f
jge 0x200f28b0
mov rsi, qword [0x20541cc0]
add rsi, rcx
mov edx, dword [0x205b3868]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x20541cb0]
lea r10d, [r9 + 0x4b9bc04a]
xor edx, edx
div r10d
add r9d, 0x4b9bc048
cmp edx, r9d
jne 0x200f28c0
movabs rax, 0xdb84eb5adb16bb86
add rsi, rax
mov r12, r8
xor eax, eax
test al, al
je 0x200f292b
mov rcx, r12
mov rdx, rsi
call fcn.2008bfb0
mov rcx, r12
mov rdx, rsi
call fcn.2008bfb0
add rbx, r15
mov edx, 0x4b9bc0ab
nop
mov eax, dword [0x205b386c]
mov ecx, dword [0x20541cb0]
add ecx, edx
cmp eax, ecx
jge 0x200f2940
movabs rax, 0x233cac6cdf0bdf85
mov rdx, qword [rbp + 0x130]
add rdx, rax
mov eax, edx
and eax, 1
add rax, rax
mov rcx, rdx
xor rcx, rax
xor rcx, 1
and eax, edx
lea rcx, [rcx + rax*2]
movabs rax, 0xdcc3539320f4207b
add rcx, rax
movabs r13, 0xdb84eb5adb16bc22
movabs r15, 0x5b84eb5adb16bc22
jmp 0x200f2030
mov eax, dword [0x205b386c]
cmp eax, 0x10
jge 0x200f29b0
jmp 0x200f2810
mov rsi, qword [0x20541b70]
mov eax, dword [0x205b3868]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x200f29f0
mov rax, qword [0x20541b70]
jmp 0x200f29c0
cmp dword [0x20541cb0], 0xb4643fb8
jne 0x200f2aa0
movsxd rdi, dword [rsi]
mov ecx, dword [0x2046eb10]
mov eax, dword [0x205b386c]
cmp eax, 0x41
jg 0x200f2aa0
mov dword [rbp + 0x184], ecx
lea rax, [0x2046c448]
mov qword [rbp + 0x158], rax
lea rax, [0x2046dc28]
mov qword [rbp + 0xe8], rax
lea rcx, [rbp + 0xf0]
movups xmmword [rcx], xmm6
mov qword [rcx + 0x10], 0
movzx eax, byte [0x20541cb4]
add al, 0x32
mov byte [rbp + 0x108], al
movups xmmword [rcx + 0x28], xmm6
movups xmmword [rcx + 0x1c], xmm6
movzx eax, word [rbp - 0x56]
mov ecx, dword [0x20541cb8]
lea edx, [rcx + 0x30cd]
xor edx, eax
or eax, 1
not edx
mov r8d, edx
xor r8d, eax
or edx, eax
not edx
or edx, r8d
not edx
add ecx, 0x30cc
cmp dx, cx
jne 0x200f2280
jmp 0x200f2370
mov eax, dword [rsi]
mov eax, dword [0x2046eb10]
jmp 0x200f2a00
mov ecx, dword [0x205b3868]
mov edx, dword [0x20541cb0]
neg edx
add edx, ecx
inc edx
imul edx, ecx
test dl, 1
mov rdx, qword [rbp + 0x150]
movabs r8, 0xdb84eb5adb16bb5e
je 0x200f2aef
nop dword [rax + rax]
mov rcx, qword [0x20541cc0]
add rcx, r8
cmp rdx, rcx
je 0x200f2ae0
cmp qword [rdx + 0x58], rax
sete al
jmp 0x200f2afa
xor eax, eax
movaps xmm6, xmmword [rbp + 0x190]
add rsp, 0x228
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp dword [rbp + 0x148], 0
setne cl
movzx edx, byte [0x2046eb14]
sub dl, r12b
lea eax, [rcx - 1]
xor al, dl
not dl
neg cl
and cl, dl
or al, cl
lea rcx, [fcn.200f1fa0]
add ecx, ecx
add ecx, 0x4a80
mov edx, ecx
not edx
nop dword [rax]
mov r8d, dword [0x205b3868]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x200f2b69
test edx, ecx
je 0x200f2b9d
mov r8d, dword [0x205b386c]
cmp r8d, 0x35
jge 0x200f2b50
jmp 0x200f2b65
mov al, 1
nop word [rax + rax]
cmp dword [0x20541cb0], 0xb4643fb8
jne 0x200f2b97
mov ecx, dword [0x205b386c]
cmp ecx, 0x36
jle 0x200f2bc7
test al, al
je 0x200f2b80
jmp 0x200f2b8c
movzx ecx, byte [0x20541cb4]
add cl, 0x30
mov edx, eax
xor dl, al
xor dl, cl
and dl, cl
xor dl, al
setne al
or al, byte [0x205b3870]
and al, 1
mov byte [0x205b3870], al
call fcn.20407a4c
call fcn.20407a4c
int3