Function at 0x100189c0
Capabilities:
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10056ccb
mov eax, dword fs:[0]
push eax
sub esp, 0x28c
mov eax, dword [0x10076008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x278], ecx
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x270], 6
xorps xmm0, xmm0
movlpd qword [ebp - 0x288], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0x290], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0x298], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0x25c], xmm0
mov dword [ebp - 0x24c], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x250]
push ecx
push 0x1006b534
push 0x100
lea edx, [ebp - 0x210]
push edx
call fcn.1000a6a0
add esp, 0x10
push 0
push 0x80
push 3
push 0
push 3
push SysReAllocString
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x24c], eax
cmp dword [ebp - 0x24c], 0xffffffff
je 0x10018e0c
push 0
lea ecx, [ebp - 0x26c]
push ecx
push 0x18
lea edx, [ebp - 0x240]
push edx
push 0
push 0
push 0x70000
mov eax, dword [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x10018def
mov dword [ebp - 0x264], 0x3900
mov ecx, dword [ebp - 0x264]
push ecx
call fcn.1002fc65
add esp, 4
mov dword [ebp - 0x268], eax
mov edx, dword [ebp - 0x268]
mov dword [ebp - 0x244], edx
push 0
lea eax, [ebp - 0x26c]
push eax
mov ecx, dword [ebp - 0x264]
push ecx
mov edx, dword [ebp - 0x244]
push edx
push 0
push 0
push 0x70050
mov eax, dword [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x10018dad
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x248], 0
jmp 0x10018b5f
mov ecx, dword [ebp - 0x248]
add ecx, 1
mov dword [ebp - 0x248], ecx
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x248]
cmp eax, dword [edx + 4]
jae 0x10018dab
mov ecx, dword [ebp - 0x244]
cmp dword [ecx], 1
jne 0x10018c42
imul edx, dword [ebp - 0x248], 0x90
mov eax, dword [ebp - 0x244]
cmp dword [eax + edx + 0x48], 0
je 0x10018c3d
xorps xmm0, xmm0
movlpd qword [ebp - 0x25c], xmm0
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
push 0
push 0x200
mov eax, dword [edx + ecx + 0x3c]
push eax
mov ecx, dword [edx + ecx + 0x38]
push ecx
call fcn.10055460
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], edx
mov edx, dword [ebp - 0x25c]
cmp edx, dword [ebp + 0x10]
jne 0x10018c3d
mov eax, dword [ebp - 0x258]
cmp eax, dword [ebp + 0x14]
jne 0x10018c3d
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
mov eax, dword [edx + ecx + 0x48]
mov dword [ebp - 0x254], eax
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
lea eax, [edx + ecx + 0x60]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x10018dab
jmp 0x10018da6
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
movzx eax, byte [edx + ecx + 0x50]
cmp eax, 0xf
je 0x10018c76
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
movzx eax, byte [edx + ecx + 0x50]
cmp eax, 5
jne 0x10018c89
cmp dword [ebp - 0x260], 0
jne 0x10018c89
mov dword [ebp - 0x260], 1
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
movzx eax, byte [edx + ecx + 0x50]
test eax, eax
je 0x10018da6
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
movzx eax, byte [edx + ecx + 0x50]
cmp eax, 5
je 0x10018da6
imul ecx, dword [ebp - 0x248], 0x90
mov edx, dword [ebp - 0x244]
cmp dword [edx + ecx + 0x48], 0
je 0x10018da6
xorps xmm0, xmm0
movlpd qword [ebp - 0x25c], xmm0
imul eax, dword [ebp - 0x248], 0x90
mov ecx, dword [ebp - 0x244]
push 0
push 0x200
mov edx, dword [ecx + eax + 0x3c]
push edx
mov eax, dword [ecx + eax + 0x38]
push eax
call fcn.10055460
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], edx
mov ecx, dword [ebp - 0x25c]
cmp ecx, dword [ebp + 0x10]
jne 0x10018da6
mov edx, dword [ebp - 0x258]
cmp edx, dword [ebp + 0x14]
jne 0x10018da6
cmp dword [ebp - 0x270], 4
jg 0x10018d5d
imul eax, dword [ebp - 0x248], 0x90
mov ecx, dword [ebp - 0x244]
mov edx, dword [ecx + eax + 0x48]
add edx, dword [ebp - 0x260]
mov dword [ebp - 0x254], edx
jmp 0x10018d77
imul eax, dword [ebp - 0x248], 0x90
mov ecx, dword [ebp - 0x244]
mov edx, dword [ecx + eax + 0x48]
mov dword [ebp - 0x254], edx
imul eax, dword [ebp - 0x248], 0x90
mov ecx, dword [ebp - 0x244]
lea edx, [ecx + eax + 0x58]
mov eax, dword [ebp + 0x18]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
jmp 0x10018dab
jmp 0x10018b50
jmp 0x10018dc8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x250]
push eax
push str._ERR__GetLogicalPartitionNumber__IOCTL_DISK_GET_DRIVE_LAYOUT_EX_error_:__d___lu
call fcn.100098e0
add esp, 0xc
mov ecx, dword [ebp - 0x244]
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x274]
push edx
call fcn.1002faee
add esp, 4
mov dword [ebp - 0x244], 0
jmp 0x10018e0a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x250]
push eax
push str._ERR__GetLogicalPartitionNumber__IOCTL_DISK_GET_DRIVE_GEOMETRY_error_:__d___lu
call fcn.100098e0
add esp, 0xc
jmp 0x10018e27
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x250]
push ecx
push str._ERR__GetLogicalPartitionNumber__create_file_error_:__d___lu
call fcn.100098e0
add esp, 0xc
cmp dword [ebp - 0x24c], 0xffffffff
je 0x10018e47
mov edx, dword [ebp - 0x24c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x24c], 0
mov eax, dword [ebp + 0x18]
sub esp, 0x10
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea ecx, [ebp - 0x228]
push ecx
mov ecx, dword [ebp - 0x278]
call fcn.10018ef0
mov dword [ebp - 0x27c], eax
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 0x280], edx
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x280]
call fcn.10005370
push eax
mov eax, dword [ebp - 0x254]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x250]
push edx
push str._INF__GetLogicalPartitionNumber__get_logical_part_number_:__d___d_____d__szPartGUID__S
call fcn.100098e0
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x228]
call fcn.10005450
mov eax, dword [ebp - 0x254]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1002fa64
mov esp, ebp
pop ebp
ret 0x14