Function at 0x140001eb0
Capabilities:
Encode data using xor
Get disk information via ioctl
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x5e0]
sub rsp, 0x6e0
mov rax, qword [0x140030020]
xor rax, rsp
mov qword [rbp + 0x5d0], rax
mov rdi, rdx
cmp ecx, 4
jne 0x14000217f
mov rdx, qword [rdx + 0x18]
xor r12d, r12d
xorps xmm0, xmm0
mov qword [rsp + 0x50], r12
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x58], r12
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rdx + r8], r12b
jne 0x140001f10
lea rcx, [rsp + 0x40]
call fcn.1400026a0
mov r10, qword [rsp + 0x58]
lea rdx, [rsp + 0x40]
mov r8, qword [rsp + 0x40]
cmp r10, 0x10
mov r9, qword [rsp + 0x50]
movabs rbx, 0xcbf29ce484222325
cmovae rdx, r8
mov rcx, r12
test r9, r9
je 0x140001f73
movabs r11, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
inc rcx
xor rbx, rax
imul rbx, r11
cmp rcx, r9
jb 0x140001f60
cmp r10, 0x10
jb 0x140001faa
lea rdx, [r10 + 1]
mov rax, r8
cmp rdx, 0x1000
jb 0x140001fa2
mov r8, qword [r8 - 8]
add rdx, 0x27
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002292
mov rcx, r8
call fcn.140005800
movabs rax, 0x5d7ee26eb32a57f7
cmp rbx, rax
jne 0x14000217f
mov rcx, qword [rdi + 0x10]
call fcn.14000c8f0
mov rcx, qword [rdi + 8]
mov ebx, eax
call fcn.14000c8f0
mov r15d, eax
sub ebx, 2
je 0x140001ff0
sub ebx, 1
je 0x140001ff0
cmp ebx, 2
jne 0x14000217f
lea rsi, [0x140021430]
jmp 0x140001ff7
lea rsi, [0x140021420]
mov r9d, 0x12
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14000217f
lea rax, [rbp - 0x80]
mov dword [rbp - 0x80], 0x20
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8, rsi
xor edx, edx
mov rcx, rdi
mov r14d, r12d
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
je 0x140002176
nop dword [rax]
nop dword [rax + rax]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], r12
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov dword [rsp + 0x60], r12d
lea rdx, [rbp - 0x80]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
mov r9d, dword [rsp + 0x60]
lea eax, [r9 - 1]
cmp eax, 0x3ff
ja 0x140002151
xorps xmm0, xmm0
mov dword [rbp + 0x1d0], 8
lea rax, [rbp - 0x60]
mov rcx, rdi
mov qword [rsp + 0x28], rax
lea r8, [rbp + 0x1d0]
lea rax, [rsp + 0x60]
movups xmmword [rbp - 0x60], xmm0
lea rdx, [rbp - 0x80]
mov qword [rsp + 0x20], rax
movups xmmword [rbp - 0x50], xmm0
mov dword [rbp - 0x60], 0x20
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
test eax, eax
je 0x140002151
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
lea rcx, [rbp + 0x1d4]
xor edx, edx
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140002151
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x6c]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x70]
mov dword [rsp + 0x28], 0xc
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x2d1080
mov dword [rsp + 0x6c], r12d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140002148
cmp r15d, dword [rsp + 0x74]
je 0x1400021ac
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, [rbp - 0x80]
inc r14d
mov r9d, r14d
mov qword [rsp + 0x20], rax
mov r8, rsi
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x140002050
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
xor eax, eax
mov rcx, qword [rbp + 0x5d0]
xor rcx, rsp
call fcn.1400057e0
lea r11, [rsp + 0x6e0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov edx, dword [rbp - 0x4c]
test edx, edx
je 0x14000217f
xor r8d, r8d
mov dword [rsp + 0x68], r12d
lea rcx, [rsp + 0x64]
mov dword [rsp + 0x64], r12d
call qword [sym.imp.SETUPAPI.dll_CM_Get_Parent]
mov ebx, 1
mov ecx, dword [rsp + 0x64]
lea r8, [rbp - 0x40]
mov r9d, 0x104
mov word [rbp - 0x40], r12w
lea rdx, [rsp + 0x68]
mov dword [rsp + 0x20], r12d
call qword [sym.imp.SETUPAPI.dll_CM_Request_Device_EjectW]
test eax, eax
jne 0x140002210
cmp dword [rsp + 0x68], r12d
je 0x14000225a
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 3
jle 0x1400021e2
lea rdx, str.Failed
call fcn.1400023c0
mov dl, 0xa
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call fcn.140002d20
movzx edx, al
mov rcx, rbx
call fcn.140002b70
mov rcx, rbx
call fcn.140002a10
jmp 0x14000217f
lea rdx, str.Success
call fcn.1400023c0
mov dl, 0xa
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call fcn.140002d20
movzx edx, al
mov rcx, rbx
call fcn.140002b70
mov rcx, rbx
call fcn.140002a10
jmp 0x14000217f
call fcn.14000cd44
int3