Function at 0x401c50
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42a814
mov eax, dword fs:[0]
push eax
mov eax, 0x39c4
call fcn.0040baa0
mov eax, dword [0x432110]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x39b8], 0
push 0x42c2af
lea ecx, [ebp - 0x2c]
call fcn.00403130
mov dword [ebp - 4], 1
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x30], 0
jmp 0x401cb6
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x10
jge 0x401f97
mov dword [ebp - 0x138], 0
mov ecx, dword [ebp - 0x30]
push ecx
push 0x42c2d4
lea edx, [ebp - 0x134]
push edx
call fcn.0040b79a
add esp, 0xc
push 0
push 0
push 3
push 0
push 3
push 0
lea eax, [ebp - 0x134]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x138], eax
cmp dword [ebp - 0x138], 0xffffffff
je 0x401f92
mov dword [ebp - 0x2858], 0
push 9
push 0
lea ecx, [ebp - 0x144]
push ecx
call fcn.0040b720
add esp, 0xc
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
push 0x2710
push 0
lea edx, [ebp - 0x2854]
push edx
call fcn.0040b720
add esp, 0xc
push 0
lea eax, [ebp - 0x2858]
push eax
push 0x2710
lea ecx, [ebp - 0x2854]
push ecx
push 9
lea edx, [ebp - 0x144]
push edx
push 0x2d1400
mov eax, dword [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x401f85
lea ecx, [ebp - 0x2854]
mov dword [ebp - 0x3048], ecx
lea edx, [ebp - 0x3434]
push edx
push 0
mov eax, dword [ebp - 0x3048]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x2854]
push edx
call fcn.00401950
add esp, 0x10
lea eax, [ebp - 0x3044]
push eax
push 0
mov ecx, dword [ebp - 0x3048]
mov edx, dword [ecx + 0x10]
push edx
lea eax, [ebp - 0x2854]
push eax
call fcn.00401950
add esp, 0x10
lea ecx, [ebp - 0x2c5c]
push ecx
push 0
mov edx, dword [ebp - 0x3048]
mov eax, dword [edx + 0x14]
push eax
lea ecx, [ebp - 0x2854]
push ecx
call fcn.00401950
add esp, 0x10
lea edx, [ebp - 0x383c]
push edx
push 1
mov eax, dword [ebp - 0x3048]
mov ecx, dword [eax + 0x18]
push ecx
lea edx, [ebp - 0x2854]
push edx
call fcn.00401950
add esp, 0x10
push 0x42c2b2
lea ecx, [ebp - 0x2874]
call fcn.00403130
mov byte [ebp - 4], 2
lea eax, [ebp - 0x3434]
push eax
lea ecx, [ebp - 0x2874]
call fcn.004031d0
lea ecx, [ebp - 0x3044]
push ecx
lea ecx, [ebp - 0x2874]
call fcn.00402c50
lea edx, [ebp - 0x383c]
push edx
lea ecx, [ebp - 0x3450]
call fcn.00403130
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3450]
call fcn.00403210
test eax, eax
jbe 0x401f67
lea ecx, [ebp - 0x2874]
call fcn.00403210
test eax, eax
jbe 0x401f67
mov byte [ebp - 0x393c], 0
push 0xff
push 0
lea eax, [ebp - 0x393b]
push eax
call fcn.0040b720
add esp, 0xc
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x395c], esp
lea edx, [ebp - 0x2874]
push edx
call fcn.00403170
mov dword [ebp - 0x39bc], eax
lea eax, [ebp - 0x3978]
push eax
call section..text
add esp, 0x20
mov dword [ebp - 0x39c0], eax
lea ecx, [ebp - 0x3978]
call fcn.004031b0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x397c], esp
lea edx, [ebp - 0x3450]
push edx
call fcn.00403170
mov dword [ebp - 0x39c4], eax
lea eax, [ebp - 0x3998]
push eax
call section..text
add esp, 0x20
mov dword [ebp - 0x39c8], eax
lea ecx, [ebp - 0x3998]
call fcn.004031b0
lea ecx, [ebp - 0x3450]
call fcn.004031f0
push eax
lea ecx, [ebp - 0x2874]
call fcn.004031f0
push eax
push 0x42c2e8
lea ecx, [ebp - 0x393c]
push ecx
call fcn.0040b79a
add esp, 0x10
lea edx, [ebp - 0x393c]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402c50
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3450]
call fcn.004031b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2874]
call fcn.004031b0
mov eax, dword [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x401cad
lea ecx, [ebp - 0x2c]
call fcn.00402c70
cmp eax, 1
jbe 0x402050
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402c70
sub eax, 1
push eax
lea ecx, [ebp - 0x3958]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00402d10
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
call fcn.00403210
test eax, eax
jbe 0x402041
push 0x42c2f0
lea edx, [ebp - 0x3958]
push edx
call fcn.004030d0
add esp, 8
movzx eax, al
test eax, eax
je 0x402041
lea ecx, [ebp - 0x2c]
call fcn.00402c70
sub eax, 1
push eax
push 0
lea ecx, [ebp - 0x39b4]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00402d10
mov dword [ebp - 0x39cc], eax
mov edx, dword [ebp - 0x39cc]
mov dword [ebp - 0x39d0], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x39d0]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402c30
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x39b4]
call fcn.004031b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3958]
call fcn.004031b0
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00403170
mov edx, dword [ebp - 0x39b8]
or edx, 1
mov dword [ebp - 0x39b8], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.004031b0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040a92b
mov esp, ebp
pop ebp
ret