Function at 0x180084da0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0x240
mov rax, qword [0x180161180]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov dword [rsp + 0xb0], 0
mov qword [rsp + 0x68], 0xffffffffffffffff
mov qword [rsp + 0xb8], 0xffffffffffffffff
mov dword [rsp + 0x60], 0
mov dword [rsp + 0xb4], 0
mov dword [rsp + 0xc0], 0
mov byte [rsp + 0x118], 0
mov dword [rsp + 0x114], 0
mov qword [rsp + 0xc8], 0
mov r9, qword [rsp + 0x260]
mov r8, qword [rsp + 0x258]
mov edx, dword [rsp + 0x250]
lea rcx, [0x18000d740]
call fcn.1800892c0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 3
mov edx, 0x80000000
lea rcx, [0x18000ad58]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0xffffffffffffffff
jne 0x180084f03
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rax, qword [rsp + 0x260]
mov dword [rax], edx
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], 0
mov r9d, 3
mov r8d, 0xc0000000
lea rdx, [0x18000ad58]
lea rcx, [0x18000d6a0]
call fcn.1800892c0
mov eax, 0xa
jmp 0x180085404
lea rdi, [rsp + 0x70]
xor eax, eax
mov ecx, 0x40
rep stosb byte [rdi], al
mov dword [rsp + 0x70], 0x72417453
mov dword [rsp + 0x74], 0x30001
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x40
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 8
lea r8, [rsp + 0x70]
mov edx, 0x223800
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x180084ffc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rax, qword [rsp + 0x260]
mov dword [rax], edx
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0x40
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 8
lea r9, [rsp + 0x70]
mov r8d, 0x223800
mov edx, dword [rsp + 0x68]
lea rcx, [0x18000d600]
call fcn.1800892c0
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xa
jmp 0x180085404
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [rsp + 0x7c]
mov dword [rsp + 0x114], edx
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xb0]
cmp rax, 0x40
jne 0x180085039
cmp dword [rsp + 0x70], 0x52615473
je 0x18008507a
mov rax, qword [rsp + 0x260]
mov dword [rax], 0xd
mov rax, qword [rsp + 0x260]
mov r9d, dword [rax]
mov rax, qword [rsp + 0x260]
mov r8d, dword [rax]
mov edx, dword [rsp + 0xb0]
lea rcx, [0x18000d570]
call fcn.1800892c0
mov eax, 0xa
jmp 0x180085404
cmp dword [rsp + 0x78], 0x30001
je 0x1800850db
mov rax, qword [rsp + 0x260]
mov dword [rax], 0x666
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x260]
mov eax, dword [rax]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0x30001
mov r9d, dword [rsp + 0x78]
mov r8d, 0x20071225
mov edx, dword [rsp + 0x74]
lea rcx, [0x18000d4b0]
call fcn.1800892c0
mov eax, 0xa
jmp 0x180085404
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [rsp + 0xb4], eax
cmp dword [rsp + 0xb4], 0
jne 0x18008512f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rax, qword [rsp + 0x260]
mov dword [rax], edx
mov rax, qword [rsp + 0x260]
mov r8d, dword [rax]
mov rax, qword [rsp + 0x260]
mov edx, dword [rax]
lea rcx, [0x18000d430]
call fcn.1800892c0
mov eax, 5
jmp 0x180085404
mov eax, dword [rsp + 0xb4]
shr eax, 2
mov dword [rsp + 0xb4], eax
mov byte [rsp + 0x110], 0x43
mov dword [rsp + 0xc0], 0
jmp 0x180085166
mov eax, dword [rsp + 0xc0]
add eax, 1
mov dword [rsp + 0xc0], eax
movsxd rax, dword [rsp + 0xc0]
cmp rax, 0x1e
jae 0x18008537f
mov eax, dword [rsp + 0xb4]
and eax, 1
cmp eax, 1
jne 0x180085359
movsx r9d, byte [rsp + 0x110]
lea r8, [0x18000d428]
mov edx, pe_nt_image_headers64
lea rcx, [rsp + 0x130]
call fcn.1800ec1d0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 3
mov edx, 0x80000000
lea rcx, [rsp + 0x130]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rsp + 0xb8], rax
cmp qword [rsp + 0xb8], 0xffffffffffffffff
jne 0x18008525c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rax, qword [rsp + 0x260]
mov dword [rax], edx
mov rax, qword [rsp + 0x260]
mov r9d, dword [rax]
mov rax, qword [rsp + 0x260]
mov r8d, dword [rax]
lea rdx, [rsp + 0x130]
lea rcx, [0x18000d3b0]
call fcn.1800892c0
movzx eax, byte [rsp + 0x110]
add al, 1
mov byte [rsp + 0x110], al
mov eax, dword [rsp + 0xb4]
shr eax, 1
mov dword [rsp + 0xb4], eax
jmp 0x180085155
mov dword [rsp + 0xd0], 0x72417453
mov eax, dword [rsp + 0x114]
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x40
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
lea r8, [rsp + 0xd0]
mov edx, 0x223840
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x18008534b
mov eax, dword [rsp + 0x60]
cmp rax, 0x40
jne 0x18008534b
cmp dword [rsp + 0xd0], 0x52615473
jne 0x18008534b
mov rax, qword [rsp + 0xc8]
cmp qword [rsp + 0x80], rax
jne 0x18008534b
mov eax, dword [rsp + 0x114]
cmp dword [rsp + 0x7c], eax
jne 0x18008534b
mov eax, dword [rsp + 0xd4]
cmp dword [rsp + 0x250], eax
jne 0x18008534b
movsx edx, byte [rsp + 0x110]
lea rcx, [0x18000d360]
call fcn.1800892c0
movzx edx, byte [rsp + 0x110]
mov byte [rsp + 0x118], dl
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18008537f
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, byte [rsp + 0x110]
add al, 1
mov byte [rsp + 0x110], al
mov eax, dword [rsp + 0xb4]
shr eax, 1
mov dword [rsp + 0xb4], eax
jmp 0x180085155
movsx eax, byte [rsp + 0x118]
test eax, eax
jne 0x1800853c1
mov rax, qword [rsp + 0x260]
mov dword [rax], 0xf
mov rax, qword [rsp + 0x260]
mov r8d, dword [rax]
mov rax, qword [rsp + 0x260]
mov edx, dword [rax]
lea rcx, [0x18000d2d0]
call fcn.1800892c0
mov eax, 0x11
jmp 0x180085404
mov rcx, qword [rsp + 0x258]
movzx eax, byte [rsp + 0x118]
mov byte [rcx], al
mov rax, qword [rsp + 0x260]
mov dword [rax], 0
mov rax, qword [rsp + 0x260]
mov r8d, dword [rax]
mov rax, qword [rsp + 0x260]
mov edx, dword [rax]
lea rcx, [0x18000d270]
call fcn.1800892c0
xor eax, eax
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1800eb430
add rsp, 0x240
pop rdi
ret