Function at 0x20200210
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]
movaps xmmword [rbp + 0x20], xmm6
mov qword [rbp + 0x18], 0xfffffffffffffffe
mov dword [rbp - 0x2c], r9d
mov edi, r8d
mov ebx, edx
mov qword [rbp - 0x40], rcx
lea rax, [fcn.20200210]
lea ecx, [rax + rax]
add ecx, 0x81
add eax, eax
add eax, 0x80
xor eax, ecx
cmp eax, 1
jne 0x202002fa
mov r8d, dword [0x2055e5a0]
lea ecx, [r8 + 0x275f677f]
lea edx, [r8 - 0x6903028b]
add r8d, 0x2f5fda7f
call fcn.2020b5c0
mov rsi, rax
mov eax, dword [0x2055e5a0]
mov ecx, eax
xor ecx, 0x33ca3408
and eax, 0x33ca3408
lea eax, [rcx + rax*2]
mov dword [rbp - 0x28], eax
mov qword [rbp - 0x24], 0
mov byte [rbp - 0x18], 0
mov ecx, 0x20
mov edx, 0x77cdb36f
mov r8d, 0xa0fabb40
call fcn.2008daf0
mov qword [rbp - 0x10], rax
lea rcx, [rax + 0x20]
mov qword [rbp], rcx
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
mov qword [rbp - 8], rcx
mov dword [rbp + 8], 0
mov eax, dword [0x205b4598]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2020039f
lea r14, [0x2020a7e0]
xorps xmm6, xmm6
nop word cs:[rax + rax]
mov ecx, 0xf3953377
mov edx, 0x6332c96d
mov r8d, 0xfb95a677
call fcn.2020b5c0
mov qword [rbp - 0x28], 0
mov dword [rbp - 0x20], 0
mov byte [rbp - 0x18], 0
mov ecx, 0x20
mov edx, 0x77cdb36f
mov r8d, 0xa0fabb40
call fcn.2008daf0
mov r12, rax
mov qword [rbp - 0x10], rax
lea rsi, [rax + 0x20]
mov ecx, 0x62
call fcn.20407ac4
mov qword [0x205b4588], rax
mov rcx, r14
call fcn.20427ec0
mov qword [rbp], rsi
movups xmmword [r12], xmm6
movups xmmword [r12 + 0x10], xmm6
mov qword [rbp - 8], rsi
mov dword [rbp + 8], 0
mov eax, dword [0x205b459c]
cmp eax, 0x4c
jge 0x20200310
jmp 0x20200266
movsxd rax, dword [0x20476948]
lea r14, [0x20476948]
add r14, rax
add r14, qword [0x2055e5a8]
mov eax, dword [0x20476940]
mov dword [rbp + 0x14], eax
call fcn.20313e70
mov qword [rbp - 0x58], rax
mov dword [rbp - 0x30], ebx
mov qword [rbp - 0x48], rsi
mov dword [rbp - 0x34], edi
movabs rax, 0xb6d9680428e2d165
add r14, rax
mov r11d, dword [0x2055c864]
lea eax, [r11 + 1]
mov dword [0x2055c864], eax
mov r8d, dword [0x2055e5a0]
mov ecx, r8d
xor ecx, 0x33ca3407
mov edx, r8d
and edx, 0x33ca3407
lea edx, [rcx + rdx*2]
xor edx, r11d
mov ecx, eax
not ecx
xor r11d, eax
mov r9d, dword [0x205b459c]
mov r10d, r8d
xor r10d, 0x33ca341b
and r8d, 0x33ca341b
lea r8d, [r10 + r8*2]
cmp r9d, r8d
nop word cs:[rax + rax]
mov r8d, dword [0x205b459c]
cmp r8d, 0x1a
jg 0x20200440
mov r8d, edx
not r8d
xor ecx, edx
and r8d, eax
or r8d, ecx
not r8d
or r11d, r8d
xor esi, esi
xor r11d, 0xffffffff
mov qword [rbp - 0x50], r11
jne 0x20200557
xor eax, eax
lea rcx, [fcn.20200210]
lea edx, [rcx + rcx]
add edx, 0x2100
mov r8d, edx
not r8d
nop dword [rax]
test al, al
jne 0x20200516
mov r9d, dword [0x2055e5a0]
mov r10d, r9d
xor r10d, 0x33ca3409
and r9d, 0x33ca3409
lea r9d, [r10 + r9*2]
mov r10d, edx
xor r10d, r9d
not r9d
and r9d, r8d
or r9d, r10d
cmp r9d, 0xffffffff
jne 0x202004f0
nop dword [rax]
mov r9d, dword [0x205b4598]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x20200500
nop word cs:[rax + rax]
mov r9d, dword [0x205b459c]
cmp r9d, 0x62
jge 0x202004f0
jmp 0x202004d0
lea r9d, [rcx + rcx]
add r9d, 0x2ee0
mov r10d, r9d
not r10d
test r10d, r9d
je 0x2020052c
mov r9d, dword [0x205b459c]
cmp r9d, 0x46
jge 0x20200490
jmp 0x20200498
mov eax, dword [0x205b4598]
nop word cs:[rax + rax]
mov eax, dword [0x205b459c]
cmp eax, 0x22
jg 0x20200540
xor esi, esi
cmp dword [rbp + 0x14], 0
jg 0x202006e1
mov eax, dword [0x205b459c]
mov ecx, dword [0x2055e5a0]
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xcc35cbd1
mov r9d, edx
and r9d, 0x33ca342e
or r9d, r8d
xor ecx, 0x33ca342e
and edx, 0x4c35cbd1
or edx, ecx
not edx
lea ecx, [r9 + rdx*2]
cmp eax, ecx
nop word cs:[rax + rax]
mov eax, dword [0x205b459c]
cmp eax, 0x5b
jge 0x202005a0
mov rcx, qword [rbp - 0x58]
mov edx, 0xffffffff
call fcn.20313e50
mov rdi, qword [rbp + 0xa0]
mov ecx, dword [rbp - 0x34]
mov r9, qword [rbp - 0x48]
mov edx, dword [rbp - 0x30]
mov dword [rbp + 8], eax
mov dword [rbp - 0x28], edx
mov dword [rbp - 0x24], ecx
lea r8, [rbp - 0x18]
cmp r8, rdi
mov r14, qword [rbp - 0x40]
je 0x20200672
mov rbx, qword [rdi + 8]
mov rax, qword [0x2055e5a8]
movabs rdx, 0xb6d9680428e2d165
xor rdx, rax
movabs rcx, 0x36d9680428e2d165
and rcx, rax
lea r15, [rdx + rcx*2]
sub r15, qword [rdi + 0x10]
add r15, rbx
mov rax, qword [rbp]
sub rax, qword [rbp - 0x10]
neg r15
cmp r15, rax
setbe dl
seta al
movzx ecx, byte [0x205b38e8]
xor al, cl
not cl
and cl, dl
or cl, al
xor cl, 1
mov edx, ecx
and dl, al
test dl, 1
jne 0x2020064a
xor cl, al
test cl, 1
je 0x20200655
mov rcx, r8
mov rdx, r15
call fcn.20128ce0
mov r12, qword [rbp - 0x10]
mov rcx, r12
mov rdx, rbx
mov r8, r15
call fcn.2044f800
add r12, r15
mov qword [rbp - 8], r12
mov r9, qword [rbp - 0x48]
mov eax, dword [rdi + 0x20]
mov dword [rbp + 8], eax
lea rdx, [rbp - 0x28]
mov rcx, r14
mov r8d, dword [rbp - 0x2c]
call fcn.20200bb0
mov r15, qword [rbp - 0x50]
mov rbx, qword [rbp - 0x10]
test rbx, rbx
je 0x20200ab2
mov rdi, qword [rbp]
sub rdi, rbx
mov rcx, rbx
xor edx, edx
mov r8, rdi
call fcn.2044feb0
cmp rdi, 0x1000
jb 0x20200a9b
mov eax, dword [0x205b4598]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x33ca3408
add eax, dword [0x2055e5a0]
cmp ecx, eax
je 0x2020089b
jmp 0x202008b6
xor r8d, r8d
lea r9, [fcn.20200210]
lea r10d, [r9 + r9]
add r10d, 0x1b80
mov r11d, r10d
not r11d
mov r15d, 0x33ca340a
mov cl, 1
mov r12d, 0x33ca345b
xor esi, esi
mov qword [rbp - 0x60], r14
jmp 0x20200720
cmp r8d, dword [rbp + 0x14]
mov r14, qword [rbp - 0x60]
jge 0x20200557
mov eax, dword [0x205b4598]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x20200736
test r11d, r10d
je 0x20200749
mov eax, dword [0x205b4598]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x20200720
jmp 0x20200731
movsxd rdi, r8d
add rdi, r14
mov eax, dword [0x205b459c]
mov edx, dword [0x2055e5a0]
mov ebx, edx
xor ebx, 0x33ca3469
and edx, 0x33ca3469
lea edx, [rbx + rdx*2]
jmp 0x20200781
mov eax, dword [rdi]
mov eax, dword [0x205b459c]
mov edx, dword [0x2055e5a0]
add edx, r12d
cmp eax, edx
jge 0x20200770
mov ebx, dword [rdi]
mov edx, dword [0x205b4598]
lea eax, [rdx - 1]
imul eax, edx
mov r13d, dword [0x2055e5a0]
add r13d, r15d
xor edx, edx
div r13d
test edx, edx
jne 0x20200770
jmp 0x202007b4
test cl, cl
jne 0x202007c5
mov eax, dword [0x205b4598]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x202007b0
mov eax, dword [0x205b4598]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x202007b0
jmp 0x202007f1
mov eax, dword [0x205b4598]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x202007e0
mov eax, dword [0x2055e5a0]
lea edx, [rax + 0x33ca3409]
lea edi, [r9 + r9]
add edi, 0x28a0
mov r13d, edi
not r13d
mov r14d, r13d
and r14d, edx
not edx
and edi, edx
or edi, r14d
and edx, r13d
or edx, edi
not edx
lea edi, [rax + 0x33ca3408]
cmp edx, edi
jne 0x202007e0
xor esi, ebx
add r8d, eax
add r8d, 0x33ca340c
nop word [rax + rax]
mov eax, dword [0x205b459c]
cmp eax, 0x16
jg 0x2020087c
mov eax, dword [0x2055e5a0]
lea edx, [rax + 0x33ca3409]
lea edi, [r9 + r9]
add edi, 0x1ea0
mov ebx, edi
xor ebx, edx
not edx
not edi
and edi, edx
or edi, ebx
not edi
add eax, 0x33ca3408
cmp edi, eax
je 0x20200712
mov edx, dword [0x205b4598]
lea eax, [rdx - 1]
imul eax, edx
mov edi, dword [0x2055e5a0]
add edi, r15d
xor edx, edx
div edi
test edx, edx
jne 0x20200840
jmp 0x2020084b
xor r8d, r8d
test r15d, r15d
sete al
mov r9d, dword [0x20476958]
mov ecx, dword [0x205b459c]
cmp ecx, 0x50
jle 0x202008be
mov eax, dword [0x20476958]
jmp 0x2020089b
mov r8b, al
neg r8d
mov eax, 0x33ca3409
add eax, dword [0x2055e5a0]
lea rcx, [fcn.20200210]
add ecx, ecx
add ecx, 0x1520
mov edx, ecx
xor edx, eax
not eax
not ecx
and ecx, eax
or ecx, edx
cmp ecx, 0xffffffff
jne 0x20200943
mov eax, r9d
sub eax, esi
mov ecx, eax
not ecx
mov edx, r8d
not edx
and edx, ecx
xor eax, r8d
or eax, edx
not eax
mov ecx, dword [0x2055e5a0]
lea edx, [rcx + 0x33ca3408]
cmp eax, edx
setne al
or al, byte [0x205b3f44]
and al, 1
mov byte [0x205b3f44], al
mov edx, dword [0x205b4598]
lea eax, [rdx - 1]
imul eax, edx
add ecx, 0x33ca340a
xor edx, edx
div ecx
test edx, edx
je 0x20200a53
mov edx, r9d
sub edx, esi
imul edx, esi
mov r10d, esi
sub r10d, edx
neg edx
imul edx, esi
nop word cs:[rax + rax]
mov r14d, r10d
mov ecx, edx
shl r14d, cl
mov r11d, dword [0x2055e5a0]
mov eax, r11d
sub eax, r14d
sub r14d, edx
imul r14d, edx
add eax, 0x33ca3408
imul eax, r14d
sub r14d, eax
mov ecx, eax
sub ecx, r14d
imul ecx, r14d
mov r14d, eax
sub r14d, ecx
imul r14d, ecx
mov r15d, eax
sub r15d, r14d
imul r15d, r14d
sub eax, r15d
imul eax, r15d
mov ecx, r15d
sub ecx, eax
add ecx, r8d
neg ecx
imul ecx, r8d
neg eax
add eax, r15d
add eax, 0xb4eed4af
mov r14d, eax
xor r14d, ecx
and eax, ecx
lea eax, [r14 + rax*2]
sub eax, ecx
add eax, 0x4b112b51
imul eax, ecx
lea r14d, [r11 + 0x33ca3408]
mov r15d, r14d
sub r15d, eax
add r15d, ecx
mov r12d, eax
sub r12d, r15d
imul r12d, r15d
mov ecx, eax
sub ecx, r12d
imul ecx, r12d
mov r15d, r11d
sub r15d, eax
shl eax, cl
lea ecx, [rax + r15]
add ecx, 0x33ca3408
xor eax, ecx
not eax
and eax, ecx
cmp eax, r14d
setne cl
movzx eax, byte [0x205b3f44]
sub al, cl
mul cl
mov dword [0x205b4598], 1
and al, 1
mov byte [0x205b3f44], al
mov eax, dword [0x205b459c]
add r11d, 0x33ca3440
cmp eax, r11d
jge 0x20200960
jmp 0x202008ef
mov rax, qword [rbx - 8]
mov rcx, rbx
xor rcx, 0xfffffffffffffff8
movabs rdx, 0x7ffffffffffffff8
and rdx, rbx
lea rcx, [rcx + rdx*2]
sub rcx, rax
cmp rcx, 0x20
jae 0x20200af1
mov ecx, edi
not ecx
and ecx, 0x27
mov rdx, rdi
and rdx, 0xffffffffffffffd8
or rdx, rcx
and edi, 0x27
lea rdi, [rdx + rdi*2]
mov rbx, rax
mov r14, qword [rbp - 0x40]
mov rcx, rbx
mov rdx, rdi
mov r8d, 0x5bbff339
mov r9d, 0x9e984057
call fcn.2008bfb0
mov ecx, dword [0x205b4598]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x33ca340a
add ecx, dword [0x2055e5a0]
xor edx, edx
div ecx
test edx, edx
nop
xor eax, eax
test al, al
jne 0x20200ad0
mov rax, r14
movaps xmm6, xmmword [rbp + 0x20]
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.20407a4c
int3