Function at 0x140020640
Capabilities:
Encode data using xor

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x60
call fcn.14000656e
movdqa xmm0, xmmword [0x140024050]
mov byte [rsp + 0x50], 0x27
lea rcx, [0x1400227c0]
movaps xmmword [rsp + 0x30], xmm0
movdqa xmm0, xmmword [0x140024060]
movaps xmmword [rsp + 0x40], xmm0
call fcn.14000772f
lea rcx, [0x140022fa0]
mov rbp, rax
call fcn.14000772f
cmp byte [rbp], 0
mov rbx, rax
jne 0x1400206bb
mov byte [rax + 0x21], 1
lea rsi, [rsp + 0x30]
mov rdi, rax
xor r8d, r8d
mov ecx, 0x21
mov rdx, rax
rep movsb byte [rdi], byte [rsi]
mov byte [rbp], 1
lea rcx, [0x140015e80]
call fcn.140020500
cmp byte [rbx + 0x21], 0
je 0x1400206f1
movabs r8, 0x2b6d351965cda327
xor eax, eax
nop dword [rax]
mov rcx, rax
mov rdx, r8
and ecx, 7
shl rcx, 3
shr rdx, cl
xor byte [rbx + rax], dl
add rax, 1
cmp rax, 0x21
jne 0x1400206d0
mov byte [rbx + 0x21], 0
mov r8, rbx
xor ecx, ecx
mov edx, 1
call qword [0x1400305d0]
mov rbx, rax
call qword [0x140030658]
cmp eax, 0xb7
je 0x140020c6c
call fcn.140012b80
lea rdi, [0x140022ec0]
call fcn.14000e300
lea rcx, [0x1400226e0]
call fcn.14000772f
cmp byte [rax], 0
mov rsi, rax
jne 0x140020776
mov rcx, rdi
call fcn.14000772f
xor r8d, r8d
lea rcx, [0x140015e60]
movabs r10, 0x669bfd0262d433f6
movabs r11, 0x79af51213cf26e3
mov byte [rax + 0x10], 1
mov rdx, rax
mov qword [rax], r10
mov qword [rax + 8], r11
mov byte [rsi], 1
call fcn.140020500
mov rcx, rdi
call fcn.14000772f
cmp byte [rax + 0x10], 0
mov rdi, rax
je 0x1400207b9
movabs r8, 0x7ff8d773dbd4397
xor eax, eax
nop dword [rax + rax]
mov rcx, rax
mov rdx, r8
and ecx, 7
shl rcx, 3
shr rdx, cl
xor byte [rdi + rax], dl
add rax, 1
cmp rax, 0x10
jne 0x140020798
mov byte [rdi + 0x10], 0
lea rcx, [0x1400226c0]
mov dword [rsp + 0x30], 0x53d833f8
mov byte [rsp + 0x34], 0x77
call fcn.14000772f
lea rcx, [0x140022ea0]
mov rbp, rax
call fcn.14000772f
cmp byte [rbp], 0
mov rsi, rax
jne 0x14002080e
mov byte [rax + 5], 1
mov eax, dword [rsp + 0x30]
xor r8d, r8d
mov rdx, rsi
mov byte [rsi + 4], 0x77
lea rcx, [0x140015eb0]
mov dword [rsi], eax
mov byte [rbp], 1
call fcn.140020500
cmp byte [rsi + 5], 0
je 0x14002083e
movabs r8, 0x7ff8d773dbd4397
xor eax, eax
lea ecx, [rax*8]
mov rdx, r8
shr rdx, cl
xor byte [rsi + rax], dl
add rax, 1
cmp rax, 5
jne 0x140020820
mov byte [rsi + 5], 0
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
xor ecx, ecx
mov dword [rsp + 0x28], 0
mov rsi, qword [0x140030a00]
lea rbp, [0x140022f00]
mov qword [rsp + 0x20], 0
call rsi
mov rax, qword [0x140024070]
lea rcx, [0x140022720]
mov byte [rsp + 0x38], 0x7f
mov qword [rsp + 0x30], rax
call fcn.14000772f
cmp byte [rax], 0
mov rdi, rax
jne 0x1400208bc
mov rcx, rbp
call fcn.14000772f
xor r8d, r8d
lea rcx, [0x140015ed0]
mov byte [rax + 9], 1
mov rdx, rax
mov rax, qword [rsp + 0x30]
mov byte [rdx + 8], 0x7f
mov qword [rdx], rax
mov byte [rdi], 1
call fcn.140020500
mov rcx, rbp
call fcn.14000772f
cmp byte [rax + 9], 0
mov rbp, rax
je 0x140020902
movabs r8, 0x69bd2b5b5949d57f
xor eax, eax
nop dword [rax]
mov rcx, rax
mov rdx, r8
and ecx, 7
shl rcx, 3
shr rdx, cl
xor byte [rbp + rax], dl
add rax, 1
cmp rax, 9
jne 0x1400208e0
mov byte [rbp + 9], 0
lea rcx, [0x140022700]
mov dword [rsp + 0x30], 0x372ca510
mov byte [rsp + 0x34], 0x5b
call fcn.14000772f
lea rcx, [0x140022ee0]
mov r12, rax
call fcn.14000772f
cmp byte [r12], 0
mov rdi, rax
jne 0x140020959
mov byte [rax + 5], 1
mov eax, dword [rsp + 0x30]
xor r8d, r8d
mov rdx, rdi
mov byte [rdi + 4], 0x5b
lea rcx, [0x140015ec0]
mov dword [rdi], eax
mov byte [r12], 1
call fcn.140020500
cmp byte [rdi + 5], 0
je 0x14002098e
movabs r8, 0x69bd2b5b5949d57f
xor eax, eax
nop dword [rax + rax]
lea ecx, [rax*8]
mov rdx, r8
shr rdx, cl
xor byte [rdi + rax], dl
add rax, 1
cmp rax, 5
jne 0x140020970
mov byte [rdi + 5], 0
xor r9d, r9d
mov r8, rbp
mov rdx, rdi
xor ecx, ecx
mov dword [rsp + 0x28], 0
lea rbp, [0x140022f40]
mov qword [rsp + 0x20], 0
call rsi
mov ecx, 0xdd4
call qword [0x140030750]
mov rax, qword [0x140024078]
mov edx, 0x55bc
lea rcx, [0x140022760]
mov dword [rsp + 0x38], 0x97dadbf9
mov qword [rsp + 0x30], rax
mov word [rsp + 0x3c], dx
call fcn.14000772f
cmp byte [rax], 0
mov rdi, rax
jne 0x140020a22
mov rcx, rbp
call fcn.14000772f
xor r8d, r8d
lea rcx, [0x140015e50]
mov byte [rax + 0xe], 1
mov rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rdx], rax
mov rax, qword [rsp + 0x36]
mov qword [rdx + 6], rax
mov byte [rdi], 1
call fcn.140020500
mov rcx, rbp
call fcn.14000772f
cmp byte [rax + 0xe], 0
mov rbp, rax
je 0x140020a62
movabs r8, 0xdd3955d9efbff58d
xor eax, eax
nop
mov rcx, rax
mov rdx, r8
and ecx, 7
shl rcx, 3
shr rdx, cl
xor byte [rbp + rax], dl
add rax, 1
cmp rax, 0xe
jne 0x140020a40
mov byte [rbp + 0xe], 0
lea rcx, [0x140022740]
mov dword [rsp + 0x30], 0x81da85e2
mov byte [rsp + 0x34], 0xd9
call fcn.14000772f
lea rcx, [0x140022f20]
mov r12, rax
call fcn.14000772f
cmp byte [r12], 0
mov rdi, rax
jne 0x140020ab9
mov byte [rax + 5], 1
mov eax, dword [rsp + 0x30]
xor r8d, r8d
mov rdx, rdi
mov byte [rdi + 4], 0xd9
lea rcx, [0x140015ea0]
mov dword [rdi], eax
mov byte [r12], 1
call fcn.140020500
cmp byte [rdi + 5], 0
je 0x140020aee
movabs r8, 0xdd3955d9efbff58d
xor eax, eax
nop dword [rax + rax]
lea ecx, [rax*8]
mov rdx, r8
shr rdx, cl
xor byte [rdi + rax], dl
add rax, 1
cmp rax, 5
jne 0x140020ad0
mov byte [rdi + 5], 0
xor r9d, r9d
mov r8, rbp
mov rdx, rdi
xor ecx, ecx
mov dword [rsp + 0x28], 5
lea rbp, [0x140022f80]
mov qword [rsp + 0x20], 0
call rsi
movdqa xmm0, xmmword [0x140024080]
mov eax, 0x35f2
lea rcx, [0x1400227a0]
mov dword [rsp + 0x40], 0x6b3eb1c1
mov word [rsp + 0x44], ax
movaps xmmword [rsp + 0x30], xmm0
call fcn.14000772f
cmp byte [rax], 0
mov rdi, rax
jne 0x140020b79
mov rcx, rbp
call fcn.14000772f
movdqa xmm1, xmmword [rsp + 0x30]
xor r8d, r8d
lea rcx, [0x140015e70]
mov byte [rax + 0x16], 1
mov rdx, rax
movups xmmword [rax], xmm1
mov rax, qword [rsp + 0x3e]
mov qword [rdx + 0xe], rax
mov byte [rdi], 1
call fcn.140020500
mov rcx, rbp
call fcn.14000772f
cmp byte [rax + 0x16], 0
mov rbp, rax
je 0x140020bc2
movabs r8, 0xd9a53597135b9fb3
xor eax, eax
nop word cs:[rax + rax]
mov rcx, rax
mov rdx, r8
and ecx, 7
shl rcx, 3
shr rdx, cl
xor byte [rbp + rax], dl
add rax, 1
cmp rax, 0x16
jne 0x140020ba0
mov byte [rbp + 0x16], 0
lea rcx, [0x140022780]
mov dword [rsp + 0x30], 0x7d3eefdc
mov byte [rsp + 0x34], 0x97
call fcn.14000772f
lea rcx, [0x140022f60]
mov r12, rax
call fcn.14000772f
cmp byte [r12], 0
mov rdi, rax
jne 0x140020c19
mov byte [rax + 5], 1
mov eax, dword [rsp + 0x30]
xor r8d, r8d
mov rdx, rdi
mov byte [rdi + 4], 0x97
lea rcx, [0x140015e90]
mov dword [rdi], eax
mov byte [r12], 1
call fcn.140020500
cmp byte [rdi + 5], 0
je 0x140020c4e
movabs r8, 0xd9a53597135b9fb3
xor eax, eax
nop dword [rax + rax]
lea ecx, [rax*8]
mov rdx, r8
shr rdx, cl
xor byte [rdi + rax], dl
add rax, 1
cmp rax, 5
jne 0x140020c30
mov byte [rdi + 5], 0
mov dword [rsp + 0x28], 0
xor r9d, r9d
mov r8, rbp
xor ecx, ecx
mov qword [rsp + 0x20], 0
mov rdx, rdi
call rsi
mov rcx, rbx
call qword [0x1400305c0]
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret