Function at 0x1800976e0
Capabilities:
Get disk information
Link many functions at runtime

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x800]
sub rsp, 0x900
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x950], rbx
mov rax, qword [0x180208090]
xor rax, rsp
mov qword [rbp + 0x7f0], rax
mov rdi, rdx
mov qword [rsp + 0x30], rdx
mov r12, rcx
mov qword [rsp + 0x60], rcx
xor r15d, r15d
mov dword [rsp + 0x20], r15d
lea rcx, [rbp - 0x70]
call fcn.180003c60
nop
test rdi, rdi
jne 0x180097755
lea rdx, [rbp - 0x70]
mov rcx, r12
call fcn.180005630
jmp 0x180097bb1
lea rdx, str.Kernel32.dll
lea rcx, [rsp + 0x68]
call fcn.180003bb0
nop
call fcn.1800a6010
mov rcx, rax
lea rdx, [rsp + 0x68]
call fcn.1800a60e0
mov r13, rax
lea rcx, [rsp + 0x68]
call fcn.180003b80
lea rdx, str.Psapi.dll
lea rcx, [rsp + 0x38]
call fcn.180003bb0
nop
call fcn.1800a6010
mov rcx, rax
lea rdx, [rsp + 0x38]
call fcn.1800a60e0
mov rsi, rax
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x38]
call fcn.180003b80
test rsi, rsi
je 0x180097ba5
test r13, r13
je 0x180097ba5
lea rcx, [rbp - 0x10]
call fcn.18009aa30
cmp dword [rbp - 0xc], 6
jb 0x18009784c
lea rdx, str.QueryFullProcessImageNameW
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x18009784c
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp - 0x10]
call fcn.1800f7810
mov dword [rbp - 0x78], 0x208
lea r9, [rbp - 0x78]
lea r8, [rbp - 0x10]
xor edx, edx
mov rcx, rdi
call rbx
test eax, eax
je 0x18009784c
mov eax, dword [rbp - 0x78]
cmp eax, 0x208
jae 0x18009783f
add rax, rax
cmp rax, 0x412
jae 0x180097bfb
mov word [rbp + rax - 0x10], r15w
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x70]
call fcn.180004070
lea rcx, [rbp - 0x70]
call fcn.180005c00
test al, al
je 0x180097aed
lea rdx, [0x1801a1558]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x18009788d
lea rdx, [0x1801a1558]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x1800978dc
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp - 0x10]
call fcn.1800f7810
mov r8d, 0x208
lea rdx, [rbp - 0x10]
mov rcx, rdi
call rbx
lea ecx, [rax - 1]
cmp ecx, 0x206
ja 0x1800978dc
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x180097bef
mov word [rbp + rax - 0x10], r15w
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x70]
call fcn.180004070
lea rcx, [rbp - 0x70]
call fcn.180005c00
test al, al
jne 0x180097aed
mov ecx, 0x410
call fcn.1800d85d0
mov rdi, rax
xor edx, edx
mov r8d, 0x410
mov rcx, rax
call fcn.1800f7810
mov edx, 0x18
lea rcx, [rbp - 0x50]
call fcn.18001c7d0
lea rcx, [rbp - 0x50]
call fcn.18000a280
nop
lea rdx, [rbp - 0x10]
mov ecx, 0x3fe
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x180097945
mov r8d, eax
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
call fcn.1800a51d0
mov r14, r15
lea rcx, [rbp - 0x50]
call fcn.18000a060
test rax, rax
je 0x180097ad3
nop word [rax + rax]
mov rdx, r14
lea rcx, [rbp - 0x50]
call fcn.18000a040
mov rsi, rax
mov rcx, rax
call fcn.180006030
cmp rax, 3
jb 0x1800979a9
mov rcx, rsi
call fcn.1800038c0
mov rcx, rax
call fcn.180003ef0
cmp word [rax + 4], 0x5c
jne 0x1800979a9
mov rcx, rsi
call fcn.1800038c0
mov rcx, rax
call fcn.180003ef0
mov word [rax + 4], r15w
mov rcx, rsi
call fcn.180003a80
mov rcx, rax
mov r8d, 0x208
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x1800979cb
mov word [rdi], r15w
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1800979d2
test ebx, ebx
je 0x180097a0f
mov r15d, ebx
lea rcx, [rbp - 0x70]
call fcn.180006030
cmp r15, rax
jae 0x180097a0c
lea rcx, [rbp - 0x70]
call fcn.180003a80
mov rcx, rax
mov r8d, r15d
mov rdx, rdi
call fcn.1800febfc
test eax, eax
je 0x180097a29
xor r15d, r15d
inc r14
lea rcx, [rbp - 0x50]
call fcn.18000a060
cmp r14, rax
jae 0x180097ace
jmp 0x180097960
lea rcx, [rbp - 0x38]
call fcn.180003c60
nop
lea rcx, [rbp - 0x70]
call fcn.180003a80
mov ecx, ebx
lea rbx, [rax + rcx*2]
mov rcx, rsi
call fcn.180003a80
mov r8, rax
mov r9, rbx
lea rdx, str._s_s
lea rcx, [rbp - 0x38]
call fcn.18008ded0
lea rcx, [rbp - 0x38]
call fcn.1800038c0
lea rcx, [rbp - 0x70]
cmp rcx, rax
je 0x180097a84
lea rcx, [rbp - 0x38]
call fcn.1800038c0
lea rcx, [rbp - 0x70]
call fcn.1800038c0
lea rcx, [rbp - 0x70]
call fcn.1800038c0
mov rcx, rax
call fcn.1800038c0
mov rbx, rax
lea rcx, [rbp - 0x38]
call fcn.1800038c0
mov rcx, rax
call fcn.1800038c0
movups xmm2, xmmword [rbx]
movups xmm3, xmmword [rbx + 0x10]
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rax], xmm2
movups xmmword [rax + 0x10], xmm3
lea rcx, [rbp - 0x38]
call fcn.180003b80
mov rsi, qword [rsp + 0x28]
mov rcx, rdi
call fcn.1800d80b0
nop
lea rcx, [rbp - 0x50]
call fcn.180005bd0
mov rdi, qword [rsp + 0x30]
xor r15d, r15d
lea rcx, [rbp - 0x70]
call fcn.180005c00
test al, al
je 0x180097b7f
lea rdx, [0x1801a1598]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x180097b2e
lea rdx, [0x1801a1598]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x180097b7f
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp - 0x10]
call fcn.1800f7810
mov r9d, 0x208
lea r8, [rbp - 0x10]
xor edx, edx
mov rcx, rdi
call rbx
lea ecx, [rax - 1]
cmp ecx, 0x206
ja 0x180097b7f
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x180097bf5
mov word [rbp + rax - 0x10], r15w
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x70]
call fcn.180004070
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x38]
call fcn.18009b7d0
nop
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.180005c40
nop
lea rcx, [rsp + 0x38]
call fcn.180003b80
lea rdx, [rbp - 0x70]
mov rcx, r12
call fcn.180005630
mov dword [rsp + 0x20], 1
lea rcx, [rbp - 0x70]
call fcn.180003b80
mov rax, r12
mov rcx, qword [rbp + 0x7f0]
xor rcx, rsp
call fcn.1800d8050
mov rbx, qword [rsp + 0x950]
add rsp, 0x900
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800d86e0
int3
call fcn.1800d86e0
int3
call fcn.1800d86e0
int3