Function at 0x7e3d80
Capabilities:
Get disk information

Disassembly:
push rbp
push rbx
sub rsp, 0x2e8
mov rbp, rsp
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x2c8], 0
mov qword [rbp + 0xb0], 0
mov qword [rbp + 0x2d8], 0
mov qword [rbp + 0x78], rbp
mov qword [rbp + 0x300], rcx
mov qword [rbp + 0x308], rdx
mov rcx, qword [rbp + 0x308]
call fcn.0040f7e0
nop
mov rcx, qword [rbp + 0x300]
call fcn.0040f650
nop
mov ecx, 0x104
lea rdx, [rbp + 0xc0]
call sub.kernel32.dll_GetLogicalDriveStringsW
mov dword [rbp + 0x2d4], eax
mov ecx, 0x16b498
mov edx, 0x16b498
call fcn.0078b350
mov ecx, dword [rbp + 0x2d4]
cmp rcx, rax
je 0x7e41c8
mov ecx, 0x1d2fac
mov edx, 0x1d2faa
call fcn.0078b350
mov rbx, rax
mov ecx, 0x1d7777
mov edx, 0x1d7774
call fcn.0078b350
mov rcx, rax
lea r8, [rbp + 0xb0]
mov r9, qword [0x007e3d38]
mov r10d, 1
mov eax, dword [rbp + 0x2d4]
add rbx, rbx
neg rbx
lea rax, [rax + rbx]
cqo
idiv rcx
mov rcx, r8
mov rdx, r9
mov r8, r10
mov r9, rax
call fcn.00413d50
mov rax, qword [rbp + 0xb0]
mov qword [rbp + 0xa0], rax
cmp qword [rbp + 0xa0], 0
je 0x7e3ed6
mov rax, qword [rbp + 0xa0]
mov rax, qword [rax - 8]
mov qword [rbp + 0xa0], rax
xor eax, eax
mov rcx, qword [rbp + 0xa0]
lea rbx, [rcx - 1]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xbc], ebx
jg 0x7e3f3b
sub ebx, eax
add ebx, 1
mov rcx, 0xffffffffffee62eb
mov edx, 0x119d19
call fcn.0078b350
mov rcx, qword [rbp + 0xb0]
movsxd rdx, dword [rbp + 0xbc]
movsxd r8, dword [rbp + 0xbc]
imul r8, rax
movzx rax, word [rbp + r8*2 + 0xc0]
mov word [rcx + rdx*2], ax
add dword [rbp + 0xbc], 1
sub ebx, 1
test ebx, ebx
jne 0x7e3ef6
nop
mov rax, qword [rbp + 0xb0]
mov qword [rbp + 0x98], rax
cmp qword [rbp + 0x98], 0
je 0x7e3f66
mov rax, qword [rbp + 0x98]
mov rax, qword [rax - 8]
mov qword [rbp + 0x98], rax
xor eax, eax
mov rcx, qword [rbp + 0x98]
lea rbx, [rcx - 1]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xbc], ebx
jg 0x7e41bc
sub ebx, eax
add ebx, 1
movsxd rax, dword [rbp + 0xbc]
mov qword [rbp + 0x30], rax
lea rcx, [rbp + 0x70]
mov rax, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0x30]
movzx rdx, word [rax + rdx*2]
call fcn.00410b50
lea rcx, [rbp + 0x68]
lea rdx, [0x007e42a8]
mov r8d, 0x1657dd
call fcn.0078b4d0
lea rcx, [rbp + 0x70]
mov rdx, qword [rbp + 0x68]
call fcn.00410ea0
mov rcx, qword [rbp + 0x70]
call fcn.00410b10
mov rcx, rax
lea rdx, [rbp + 0xc0]
mov r8d, 0x104
call sub.kernel32.dll_QueryDosDeviceW
mov dword [rbp + 0x2d4], eax
mov rcx, 0xffffffffffe60fbb
mov edx, 0x19f045
call fcn.0078b350
mov ecx, dword [rbp + 0x2d4]
cmp rcx, rax
jle 0x7e41aa
lea rcx, [rbp + 0x60]
lea rdx, [rbp + 0xc0]
call fcn.00410ba0
lea rcx, [rbp + 0x2c8]
mov rdx, qword [rbp + 0x60]
call fcn.00432820
mov rcx, 0xffffffffffea7ab0
mov edx, 0x158551
call fcn.0078b350
mov dword [rbp + 0x90], eax
mov dword [rbp + 0x94], 0
mov rax, qword [rbp + 0x2c8]
mov qword [rbp + 0x28], rax
test rax, rax
je 0x7e4073
mov rax, qword [rbp + 0x28]
mov eax, dword [rax - 4]
mov dword [rbp + 0x94], eax
lea rcx, [rbp + 0x50]
mov rdx, qword [rbp + 0x308]
mov r8d, dword [rbp + 0x90]
mov r9d, dword [rbp + 0x94]
call fcn.00411190
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0x50]
call fcn.00432820
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0x2c8]
call fcn.00411180
test eax, eax
jne 0x7e41aa
nop
mov qword [rbp + 0x2d8], 0
lea rcx, [rbp + 0x48]
mov rax, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0x30]
movzx rdx, word [rax + rdx*2]
call fcn.00410b50
lea rcx, [rbp + 0x40]
lea rdx, [0x007e42f4]
mov r8d, 0x1758d5
call fcn.0078b4d0
lea rcx, [rbp + 0x2d8]
mov rdx, qword [rbp + 0x48]
mov r8, qword [rbp + 0x40]
call fcn.00410f70
mov dword [rbp + 0x8c], 0
mov rax, qword [rbp + 0x28]
test rax, rax
je 0x7e4125
mov rax, qword [rbp + 0x28]
mov eax, dword [rax - 4]
mov dword [rbp + 0x8c], eax
mov rcx, 0xffffffffffe7e958
mov edx, 0x1816a9
call fcn.0078b350
movsxd rcx, dword [rbp + 0x8c]
lea rax, [rcx + rax]
mov dword [rbp + 0x84], eax
mov dword [rbp + 0x88], 0
mov rax, qword [rbp + 0x308]
test rax, rax
je 0x7e4166
mov eax, dword [rax - 4]
mov dword [rbp + 0x88], eax
lea rcx, [rbp + 0x38]
mov rdx, qword [rbp + 0x308]
mov r8d, dword [rbp + 0x84]
mov r9d, dword [rbp + 0x88]
call fcn.00411190
mov rcx, qword [rbp + 0x300]
mov rdx, qword [rbp + 0x2d8]
mov r8, qword [rbp + 0x38]
call fcn.00410f70
nop
lea rcx, [rbp + 0x2d8]
call fcn.0040f650
jmp 0x7e41c8
add dword [rbp + 0xbc], 1
sub ebx, 1
test ebx, ebx
jne 0x7e3f8a
nop
jmp 0x7e41c7
nop
lea rcx, [rbp + 0x38]
mov edx, 8
call fcn.0040f730
lea rcx, [rbp + 0xb0]
mov rdx, qword [0x007e3d38]
call fcn.00413f20
lea rcx, [rbp + 0x2c8]
call fcn.0040f650
lea rcx, [rbp + 0x308]
call fcn.0040f650
mov rax, qword [rbp + 0x300]
lea rsp, [rbp + 0x2e8]
pop rbx
pop rbp
ret