Function at 0x140021eab
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
mov esi, ecx
movzx eax, byte [rcx + 0xa0]
test eax, eax
je 0x140021ef0
cmp eax, 3
je case.0x14000fc9d.120
lea rcx, str._async_fn__resumed_after_completion
lea r8, str.windows_encrypt_src_main.rs
mov edx, 0x23
call fcn.140096040
mov rax, qword [rsi]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x48], eax
mov rax, qword [rsi + 8]
mov qword [rsp + 0x40], rax
mov rax, qword [rsi + 0x10]
mov eax, dword [rsi + 0x10]
mov qword [rsp + 0x38], rax
lea rbx, [rsi + 0x20]
mov rax, qword [rsi + 0x18]
mov qword [rsi + 0x20], rax
lea rax, [0x1400927a1]
lea r14, [rsp + 0x50]
mov qword [r14], rax
mov rcx, qword [r14]
movabs rax, 0x134f3cafa0de5e67
mov qword [r14], rax
mov rdx, qword [r14]
call fcn.140016e8c
xorps xmm0, xmm0
movaps xmmword [r14], xmm0
sub dword [rsi], eax
mov cl, 1
xor ebp, ebp
lea r8, [0x14009ccac]
movzx r10d, byte [rbp + r8]
mov r9, rbp
or r9, 1
movzx r9d, byte [r9 + r8]
mov r11, rbp
mov ebx, ebp
or r11, 2
movzx r11d, byte [r11 + r8]
mov r14, rbp
or r14, 3
movzx r14d, byte [r14 + r8]
mov r15, rbp
or r15, 4
movzx r15d, byte [r15 + r8]
mov dh, 0x3c
invalid
mov r12, rbp
or r12, 5
movzx r12d, byte [r12 + r8]
mov r13, rbp
mov ebp, ebp
or r13, 6
mov rdx, rbp
or rdx, 7
movzx r13d, byte [r13 + r8]
insb byte [rdi], dx
add eax, 0xb60f4200
add byte [rdx + 0xf], al
mov dh, 0x14
invalid
shl rdx, 0x38
shl r13, 0x30
or r13, rdx
shl r12, 0x28
shl r15, 0x20
shl r14, 0x18
shl r11, 0x10
shl ebx, 0x10
shl r9, 8
or r9, r10
or r9, r11
or r9, r14
or r9, r15
or r9, r12
or r9, r13
xor r9, qword [rax + rbp]
mov qword [rsp + rbp + 0x50], r9
sub al, 0x50
mov ebp, 8
test cl, 1
mov ecx, 0
jne 0x140021f4f
mov ecx, 0x102474d0
xor ecx, dword [rax + 0x10]
lea r14, [rsp + 0x50]
and al, 0x50
mov dword [r14 + 0x10], ecx
mov al, byte [rax + 0x14]
xor al, 0x6f
mov byte [r14 + 0x14], al
movaps xmm0, xmmword [r14]
movaps xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [r14 + 0xd]
mov qword [rsp + 0x2d], rax
sub eax, 0x15b9
add al, ch
rcl eax, cl
add dword [rax], eax
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rdx], xmm0
mov rcx, qword [rsp + 0x2d]
mov qword [rdx + 0xd], rcx
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rdx
mov qword [r14 + 0x18], 0x15
movabs rax, 0x8000000000000009
add byte [rax], al
add byte [rax], al
invalid
or byte [rcx - 0x77], 6
lea r15, [rsp + 0x80]
mov rcx, r15
mov rdx, rbx
mov r8, r14
call fcn.1400071ba
mov rcx, r15
mov ecx, edi
call fcn.140001922
mov rax, qword [rbx]
lock inc qword [rax + 0x1d0]
lock inc qword [rax]
jle case.0x1400117ef.55
mov rcx, qword [rsp + 0x48]
mov qword [rsi + 0x28], rcx
mov dword [rsi + 0x28], ecx
mov rcx, qword [rsp + 0x40]
mov qword [rsi + 0x30], rcx
mov rcx, qword [rsp + 0x38]
and al, 0x38
mov qword [rsi + 0x38], rcx
mov qword [rsi + 0x40], rax
mov byte [rsi + 0x80], 0
add byte [rax], al
lea r14, [rsi + 0x28]
mov rcx, r14
mov rdx, rdi
call fcn.140022267
invalid
mov ebx, eax
ret
mov al, 3
test bl, bl
jne 0x140022249
mov rcx, r14
call fcn.14000448c
lea rax, [0x14008deef]
lea rdi, [rsp + 0x50]
mov qword [rdi], rax
mov rcx, qword [rdi]
movabs rax, 0x53e45c6863e83c75
mov qword [rdi], rax
mov rdx, qword [rdi]
call fcn.140017a83
xorps xmm0, xmm0
movaps xmmword [rdi], xmm0
sub dword [rdi], eax
mov cl, 1
xor edx, edx
lea r8, str.a8e
movzx r10d, byte [rdx + r8]
mov r9, rdx
or r9, 1
movzx r9d, byte [r9 + r8]
mov r11, rdx
ror dword [rcx - 0x7d], cl
retf
add al, byte [rdi + 0xf]
mov dh, 0x1c
add ecx, dword [rax - 0x77]
xlatb
or rdi, 3
add eax, dword [rdx + 0xf]
mov dh, 0x3c
invalid
mov r14, rdx
or r14, 4
movzx r14d, byte [r14 + r8]
xor al, 6
mov r15, rdx
or r15, 5
movzx r15d, byte [r15 + r8]
mov r12, rdx
or r12, 6
or esp, 6
mov r13, rdx
or r13, 7
movzx r12d, byte [r12 + r8]
movzx r13d, byte [r13 + r8]
movzx ebp, byte [rbp + rax]
mov dh, 0x6c
invalid
invalid
shl r13, 0x38
shl r12, 0x30
or r12, r13
shl r15, 0x28
shl r14, 0x20
shl rdi, 0x18
shl r11, 0x10
jrcxz case.0x14001077f.64
shl r9, 8
or r9, r10
or r9, r11
or r9, rdi
or r9, r14
or r9, r15
or r9, r12
xor r9, qword [rax + rdx]
mov qword [rsp + rdx + 0x50], r9
push rax
mov edx, 8
test cl, 1
mov ecx, 0
jne 0x14002210f
lea rdi, [rsi + 0x20]
mov ecx, 0x3daecd3f
xor ecx, dword [rax + 0x10]
lea r14, [rsp + 0x50]
mov dword [r14 + 0x10], ecx
mov al, byte [rax + 0x14]
xor al, 0x5b
mov byte [r14 + 0x14], al
invalid
invalid
movaps xmm0, xmmword [r14]
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [r14 + 0xd]
mov qword [rsp + 0x2d], rax
mov dword [rsp + 0x2d], eax
mov ecx, 0x15
call fcn.14003f100
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rdx], xmm0
mov rcx, qword [rsp + 0x2d]
mov qword [rdx + 0xd], rcx
mov qword [r14 + 8], rax
mov dword [rsi + 8], eax
mov qword [r14 + 0x10], rdx
mov qword [r14 + 0x18], 0x15
movabs rax, 0x8000000000000009
mov eax, 9
add byte [rax], al
add byte [rax + 0x49c0ff48], al
mov dword [rsi], eax
lea r15, [rsp + 0x80]
mov rcx, r15
mov rdx, rdi
mov r8, r14
call fcn.1400071ba
mov rcx, r15
call fcn.140001922
mov rcx, rdi
call fcn.140004b35
mov al, 1
mov byte [rsi + 0xa0], al
mov eax, ebx
add rsp, 0xa8
add byte [rax], al
invalid
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2