Function at 0x14002d420
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r15
sub rsp, 0x490
mov rax, qword [0x14005f040]
xor rax, rsp
mov qword [rsp + 0x480], rax
mov rax, qword [0x14005f980]
mov rdi, rcx
mov qword [rsp + 0x48], rcx
add rax, 0xee7c250
mov ecx, edx
mov ebx, edx
sar ecx, 0x10
xor esi, esi
shl ecx, 3
add rcx, rax
call fcn.1400334f0
mov rcx, rax
mov qword [rsp + 0x38], rsi
movzx eax, bx
lea r9d, [rsi + 0x28]
mov qword [rsp + 0x30], rsi
lea r8, [rsp + 0x50]
mov dword [rsp + 0x28], esi
mov edx, 0x2201c4
mov word [rsp + 0x40], si
lea r15, [rcx + rax*4]
mov dword [rsp + 0x71], esi
mov rcx, qword [0x14005f8d8]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov eax, dword [0x14005f8e0]
mov dword [rsp + 0x54], eax
mov word [rsp + 0x75], si
mov byte [rsp + 0x77], sil
mov dword [rsp + 0x50], 0x85b3e12
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x68], 2
mov byte [rsp + 0x70], sil
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movzx r12d, word [rsp + 0x40]
shr r12d, 6
test r12d, r12d
je 0x14002d6ca
mov qword [rsp + 0x4d0], rbp
mov ebx, esi
mov qword [rsp + 0x4d8], r14
mov ebp, esi
mov r14d, r12d
nop
mov ecx, ebp
add rcx, 4
add rcx, r15
call fcn.140033730
mov byte [rsp + rbx + 0x80], al
inc ebp
inc rbx
cmp rbx, r14
jl 0x14002d510
mov rcx, qword [0x14005f980]
lea rbx, [rsp + 0x80]
add rcx, 0xed83f44
call fcn.1400337d0
movsxd r9, eax
mov r10d, esi
sar r9, 5
nop dword [rax]
nop dword [rax + rax]
movsx edx, byte [rbx]
movzx ecx, r9b
mov eax, edx
lea r9d, [r9 + r10*2]
shr eax, 4
mov r8, rbx
xor al, cl
shl dl, 4
and al, 0xf
inc rbx
xor al, dl
inc r10d
xor al, cl
mov byte [r8], al
cmp r10d, r12d
jl 0x14002d560
mov r14, qword [rsp + 0x4d8]
lea rax, [rsp + 0x80]
xorps xmm0, xmm0
mov byte [rsp + r12 + 0x80], sil
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rsi
mov rbx, 0xffffffffffffffff
mov qword [rdi + 0x18], rsi
nop dword [rax]
inc rbx
cmp byte [rax + rbx], sil
jne 0x14002d5c0
movabs rbp, 0x7fffffffffffffff
cmp rbx, rbp
ja 0x14002d6e4
mov qword [rdi + 0x18], 0xf
cmp rbx, 0xf
ja 0x14002d60a
mov r8, rbx
mov qword [rdi + 0x10], rbx
lea rdx, [rsp + 0x80]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rdi], sil
jmp 0x14002d6a0
mov rax, rbx
or rax, 0xf
cmp rax, rbp
jbe 0x14002d63f
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.1400340d8
test rax, rax
je 0x14002d66a
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14002d67e
mov ecx, 0x16
mov rbp, rax
cmp rax, rcx
cmovb rbp, rcx
lea rcx, [rbp + 1]
cmp rcx, 0x1000
jb 0x14002d671
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14002d6ea
jmp 0x14002d624
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x14002d67e
call fcn.1400340d8
mov rsi, rax
mov r8, rbx
mov qword [rdi], rsi
lea rdx, [rsp + 0x80]
mov qword [rdi + 0x10], rbx
mov rcx, rsi
mov qword [rdi + 0x18], rbp
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rbx], 0
mov rbp, qword [rsp + 0x4d0]
mov rax, rdi
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.140033c10
add rsp, 0x490
pop r15
pop r12
pop rdi
pop rsi
pop rbx
ret
xorps xmm0, xmm0
mov rax, rdi
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], 0xf
mov byte [rdi], sil
jmp 0x14002d6ab
call fcn.14002c2f0
int3
call fcn.1400232d0
int3