Function at 0x20209e70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x308
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x280], 0xfffffffffffffffe
mov rsi, rcx
call fcn.20210ed0
cmp byte [rsi + 1], 0
jne 0x20209f1b
mov edi, eax
mov rax, qword [0x205729b0]
mov rbx, rax
shr rbx, 0x20
or ebx, eax
cmp byte [rsi], 0
je 0x20209f2b
nop
mov rax, qword [rsi + 8]
mov qword [rbp + 0x260], rax
movsxd rcx, dword [rsi + 4]
test rcx, rcx
je 0x20209edd
imul rcx, rcx, 0x23c34600
add rcx, rax
mov qword [rbp + 0x260], rcx
lea rdx, [rsi + 0x10]
mov rcx, qword [0x2052e9f0]
mov eax, dword [0x2052e9c0]
xor eax, ebx
mov r15d, 0x57c9
sub r15d, edi
sub eax, r15d
cdqe
add rax, rcx
lea rcx, [rbp + 0x260]
call qword [case.0x200c7fcc.0]
test eax, eax
je 0x20209fdf
nop
mov byte [rsi + 1], 1
add rsp, 0x308
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
nop
mov rcx, qword [0x2052ea00]
mov r14d, 0x57c9
sub r14d, edi
mov qword [rbp + 0x270], rdi
add edi, ebx
add edi, 0xffffa837
mov eax, dword [0x2052e9cc]
add eax, edi
cdqe
add rax, rcx
call qword [case.0x200c7fcc.0]
mov rsi, rax
mov rcx, qword [0x2052ea00]
add edi, dword [0x2052e9cc]
movsxd rax, edi
add rax, rcx
call qword [case.0x200c7fcc.0]
mov rdi, rax
mov rcx, qword [0x2052ea00]
mov eax, dword [0x2052e9cc]
mov qword [rbp + 0x278], rbx
xor eax, ebx
mov dword [rbp + 0x26c], r14d
sub eax, r14d
cdqe
add rax, rcx
call qword [case.0x200c7fcc.0]
mov rbx, rax
movzx eax, byte [0x2052de88]
cmp al, 0xd8
je 0x2020a098
mov cl, 0xa5
mov al, 0x12
lock cmpxchg byte [0x2052de88], cl
mov dword [0x2052e9a4], 0xdc64f98f
je 0x2020a07f
cmp al, 0xd8
jne 0x20209fbc
jmp 0x2020a098
add edi, 0xffffa837
mov rcx, qword [0x2052ea00]
mov qword [rbp + 0x270], rdi
mov r14d, edi
sub r14d, ebx
mov eax, dword [0x2052e9cc]
add eax, r14d
cdqe
add rax, rcx
call qword [case.0x200c7fcc.0]
mov rsi, rax
mov rcx, qword [0x2052ea00]
mov eax, dword [0x2052e9cc]
add eax, r14d
cdqe
add rax, rcx
call qword [case.0x200c7fcc.0]
mov rdi, rax
mov rcx, qword [0x2052ea00]
mov eax, dword [0x2052e9cc]
mov qword [rbp + 0x278], rbx
or eax, ebx
sub eax, r15d
cdqe
add rax, rcx
call qword [case.0x200c7fcc.0]
mov rbx, rax
movzx eax, byte [0x2052dea0]
cmp al, 0x43
je 0x2020a1af
mov cl, 0xea
mov al, 0x2e
lock cmpxchg byte [0x2052dea0], cl
je 0x2020a14e
cmp al, 0x43
jne 0x2020a066
jmp 0x2020a1af
movabs rax, 0x2dd8ca91862dd8ca
xor qword [0x2052de80], rax
mov al, 0xd8
xchg byte [0x2052de88], al
nop
mov rax, qword [rbp + 0x270]
add eax, 0xffffa837
mov qword [rbp + 0x270], rax
mov rcx, qword [0x2052e9e0]
mov eax, dword [0x2052e9c8]
xor eax, dword [rbp + 0x278]
sub eax, dword [rbp + 0x26c]
cdqe
add rax, rcx
lea rdx, [0x2052de80]
lea r14, [rbp + 0x238]
mov rcx, r14
call qword [case.0x200c7fcc.0]
nop
mov qword [rsp + 0x20], rsi
lea rcx, [rbp + 0x160]
mov rdx, r14
mov r8, rbx
mov r9, rdi
call fcn.20210c70
nop
mov rcx, qword [0x2052e9f8]
mov rax, qword [rbp + 0x270]
sub eax, dword [rbp + 0x278]
add eax, dword [0x2052e9c4]
cdqe
add rax, rcx
lea rcx, [rbp + 0x238]
call qword [case.0x200c7fcc.0]
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x160]
call fcn.201fb950
lea rdx, [0x204a9f70]
lea rcx, [rbp - 0x50]
call fcn.20077ce0
jmp 0x2020a245
mov eax, 0xf
lea rcx, [0x2052de90]
lea rdx, [0x2041e900]
mov r8d, eax
not r8d
lea r9d, [rax - 1]
and r9d, 0xe
xor r9, 0xf
movzx r10d, byte [rax + rcx - 0xf]
movzx r11d, byte [rax + rcx - 0xe]
xor r10b, byte [r9 + rdx]
xor r10b, 0xbf
mov byte [rax + rcx - 0xf], r10b
and r8d, 0xe
xor r11b, byte [r8 + rdx]
xor r11b, 0xbf
mov byte [rax + rcx - 0xe], r11b
add rax, 2
cmp rax, 0x1f
jne 0x2020a161
mov al, 0x43
xchg byte [0x2052dea0], al
nop
mov rcx, qword [0x2052e9e0]
add r14d, dword [0x2052e9c8]
movsxd rax, r14d
add rax, rcx
lea rdx, [0x2052de90]
lea r14, [rbp + 0x238]
mov rcx, r14
call qword [case.0x200c7fcc.0]
nop
mov qword [rsp + 0x20], rsi
lea rcx, [rbp + 0x160]
mov rdx, r14
mov r8, rbx
mov r9, rdi
call fcn.20210c70
nop
mov rcx, qword [0x2052e9f8]
mov eax, dword [0x2052e9c4]
xor eax, dword [rbp + 0x278]
sub eax, r15d
cdqe
add rax, rcx
lea rcx, [rbp + 0x238]
call qword [case.0x200c7fcc.0]
lea rcx, [rbp + 0x88]
lea rdx, [rbp + 0x160]
call fcn.201fb950
lea rdx, [0x204a9f70]
lea rcx, [rbp + 0x88]
call fcn.20077ce0
int3