Function at 0x401680
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x423dbd
mov eax, dword fs:[0]
push eax
mov eax, 0x2f08
call fcn.004145d0
mov eax, dword [0x42f660]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x2f0c]
push 0x4264c8
xor ebx, ebx
push eax
mov dword [ebp - 0x2f04], ebx
call fcn.00404770
add esp, 0xc
mov ecx, dword [ebp - 0x2f0c]
push ebx
push ebx
push 3
push ebx
push 3
push ebx
push ecx
mov dword [ebp - 4], ebx
call dword [0x426174]
mov dword [ebp - 0x2f08], eax
cmp eax, 0xffffffff
jne 0x4017c6
mov ecx, dword [0x42f058]
cmp ecx, ebx
je 0x4019d7
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, 2
jl 0x4019d7
push 0x5c
push 0x4264b4
call fcn.00413da3
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x401737
mov edi, 0x4263d0
lea ecx, [ebp - 0x2f00]
call fcn.004040e0
push 0x426488
lea ecx, [ebp - 0x2f08]
mov byte [ebp - 4], 1
call fcn.00404070
mov esi, eax
mov byte [ebp - 4], 2
call dword [0x426178]
push eax
mov ecx, esi
call fcn.00405610
mov eax, dword [eax]
push eax
push 0x426524
push 0x2a0
push edi
lea ecx, [ebp - 0x2f00]
push 0x426450
push ecx
call fcn.00403910
add esp, 0x18
lea ecx, [ebp - 0x2f08]
mov byte [ebp - 4], 1
call fcn.004030e0
mov ecx, dword [0x42f058]
cmp ecx, ebx
je 0x4017b3
mov edx, dword [ecx]
mov eax, dword [ebp - 0x2f00]
mov edx, dword [edx + 0x28]
push eax
call edx
lea ecx, [ebp - 0x2f00]
mov byte [ebp - 4], bl
call fcn.004030e0
jmp 0x4019d7
xor eax, eax
mov dword [ebp - 0x2efc], eax
mov dword [ebp - 0x2ef8], eax
push 0x2710
mov dword [ebp - 0x2ef4], eax
lea eax, [ebp - 0x2ef0]
push ebx
push eax
mov dword [ebp - 0x2f10], ebx
mov dword [ebp - 0x2efc], ebx
mov dword [ebp - 0x2ef8], ebx
call fcn.00414600
add esp, 0xc
push ebx
lea ecx, [ebp - 0x2f10]
push ecx
mov ecx, dword [ebp - 0x2f08]
push 0x2710
lea edx, [ebp - 0x2ef0]
push edx
push 0xc
lea eax, [ebp - 0x2efc]
push eax
push 0x2d1400
push ecx
call dword [0x42617c]
test eax, eax
je 0x401908
mov eax, dword [ebp - 0x2ee0]
lea edx, [ebp - 0x7e0]
push edx
push ebx
push eax
lea ecx, [ebp - 0x2ef0]
push ecx
call fcn.00401510
mov eax, dword [ebp - 0x2ed8]
lea edx, [ebp - 0x3f8]
push edx
push 1
push eax
lea ecx, [ebp - 0x2ef0]
push ecx
call fcn.00401510
push 0x4263d0
push 0xffffffffffffffff
lea edx, [ebp - 0x7e0]
push edx
lea eax, [ebp - 0x2f04]
push eax
call fcn.004047d0
add esp, 0x30
push eax
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.004031c0
lea ecx, [ebp - 0x2f04]
mov byte [ebp - 4], bl
call fcn.004030e0
mov ecx, esi
call fcn.00403980
mov ecx, esi
call fcn.00403930
push 0x4263d0
push 0xffffffffffffffff
lea ecx, [ebp - 0x3f8]
push ecx
lea edx, [ebp - 0x2f04]
push edx
call fcn.004047d0
add esp, 0x10
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.004031c0
lea ecx, [ebp - 0x2f04]
mov byte [ebp - 4], bl
call fcn.004030e0
mov ecx, edi
call fcn.00403980
mov ecx, edi
call fcn.00403930
mov dword [ebp - 0x2f04], 1
jmp 0x4019ca
mov ecx, dword [0x42f058]
cmp ecx, ebx
je 0x4019ca
mov eax, dword [ecx]
mov edx, dword [eax + 0x30]
call edx
cmp eax, 2
jl 0x4019ca
push 0x5c
push 0x4264b4
call fcn.00413da3
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x401940
mov edi, 0x4263d0
lea ecx, [ebp - 0x2f00]
call fcn.004040e0
push 0x4264e0
lea ecx, [ebp - 0x2f14]
mov byte [ebp - 4], 5
call fcn.00404070
mov esi, eax
mov byte [ebp - 4], 6
call dword [0x426178]
push eax
mov ecx, esi
call fcn.00405610
mov eax, dword [eax]
push eax
push 0x426524
push 0x2c9
push edi
lea eax, [ebp - 0x2f00]
push 0x426450
push eax
call fcn.00403910
add esp, 0x18
lea ecx, [ebp - 0x2f14]
mov byte [ebp - 4], 5
call fcn.004030e0
mov ecx, dword [0x42f058]
cmp ecx, ebx
je 0x4019bc
mov edx, dword [ecx]
mov eax, dword [ebp - 0x2f00]
mov edx, dword [edx + 0x28]
push eax
call edx
lea ecx, [ebp - 0x2f00]
mov byte [ebp - 4], bl
call fcn.004030e0
mov eax, dword [ebp - 0x2f08]
push eax
call dword [0x426180]
lea ecx, [ebp - 0x2f0c]
mov dword [ebp - 4], 0xffffffff
call fcn.004030e0
mov eax, dword [ebp - 0x2f04]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041419e
mov esp, ebp
pop ebp
ret