Function at 0x14004d140
Capabilities:
Encode data using xor
Interact with driver via ioctl

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3a0]
sub rsp, 0x4a0
mov rax, qword [0x1400f60c0]
xor rax, rsp
mov qword [rbp + 0x390], rax
mov rsi, rcx
mov qword [rsp + 0x40], rcx
mov ecx, edx
mov edi, edx
mov rdx, qword [0x1400f8338]
xor ebx, ebx
sar ecx, 0x10
add rdx, 0xf33b490
shl ecx, 3
add rdx, rcx
call fcn.140058800
mov rcx, rax
movzx eax, di
lea rax, [rcx + rax*2]
mov rdx, rax
mov qword [rsp + 0x40], rax
call fcn.140058a60
movzx r13d, ax
lea rcx, [rbp - 0x70]
xor edx, edx
shr r13d, 6
mov r8d, 0x400
call sub.VCRUNTIME140.dll_memset
mov rax, qword [0x1400f8338]
lea r14, [rbp - 0x70]
mov rcx, qword [0x1400f81f8]
lea r9d, [rbx + 0x20]
add rax, 0xf2655bc
mov qword [rsp + 0x38], rbx
cmp byte [0x1400f758b], bl
lea r8, [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov edx, 0x222404
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x60], rax
mov eax, dword [0x1400f8200]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x4c], ebx
mov dword [rsp + 0x54], ebx
mov qword [rsp + 0x68], 4
mov qword [rsp + 0x20], rbx
jne 0x14004d23a
mov edx, 0x220c58
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r12d, dword [rsp + 0x4c]
mov eax, 0x3e0f83e1
mul r12d
mov r15d, r12d
mov edi, ebx
shr edx, 3
xor r15d, 0x9c677cc5
imul eax, edx, 0x21
sub r12d, eax
test r13d, r13d
je 0x14004d3f8
mov rax, qword [rsp + 0x40]
lea ecx, [r13*2]
add rax, 2
mov qword [rsp + 0x38], rbx
cmp byte [0x1400f758b], bl
lea r8, [rsp + 0x70]
mov qword [rsp + 0x78], rax
mov r9d, reloc.WLDAP32.dll_Ordinal_32
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rbx
mov qword [rbp - 0x80], rax
mov edx, 0x222404
mov eax, dword [0x1400f8200]
mov qword [rbp - 0x78], rcx
mov rcx, qword [0x1400f81f8]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x74], ebx
mov qword [rsp + 0x20], rbx
jne 0x14004d2d2
mov edx, 0x220c58
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
nop dword [rax + rax]
lea eax, [rdi + r12]
inc edi
add r15d, eax
xor byte [r14], r15b
lea r14, [r14 + 1]
cmp edi, r13d
jl 0x14004d2e0
cmp r13d, 0x400
jae 0x14004d439
xorps xmm0, xmm0
mov byte [rbp + r13 - 0x70], bl
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], rbx
lea rax, [rbp - 0x70]
mov qword [rsi + 0x18], rbx
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rax + rdi], bl
jne 0x14004d320
movabs r14, 0x7fffffffffffffff
cmp rdi, r14
ja 0x14004d445
cmp rdi, 0xf
ja 0x14004d364
mov r8, rdi
mov qword [rsi + 0x10], rdi
lea rdx, [rbp - 0x70]
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + rsi], bl
jmp 0x14004d40c
mov rax, rdi
or rax, 0xf
cmp rax, r14
jbe 0x14004d399
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.1400ca4c8
test rax, rax
je 0x14004d3c4
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14004d3d8
mov ecx, reloc.WLDAP32.dll_Ordinal_22
mov r14, rax
cmp rax, rcx
cmovb r14, rcx
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x14004d3cb
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14004d43f
jmp 0x14004d37e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x14004d3d8
call fcn.1400ca4c8
mov rbx, rax
mov r8, rdi
mov qword [rsi], rbx
lea rdx, [rbp - 0x70]
mov qword [rsi + 0x10], rdi
mov rcx, rbx
mov qword [rsi + 0x18], r14
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rdi], 0
jmp 0x14004d40c
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rsi], bl
mov rax, rsi
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.1400c9ee0
mov rbx, qword [rsp + 0x4f0]
add rsp, 0x4a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400ca008
int3
call fcn.140031820
int3
call fcn.1400318c0
int3