Function at 0x407136
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4244b9
mov eax, dword fs:[0]
push eax
mov eax, 0x1440
call fcn.004238d0
mov eax, dword [0x43b028]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x2d
mov dword [ebp - 0x1434], eax
pop eax
push 0x27
mov word [ebp - 0x64], ax
lea eax, [ebp - 0x62]
mov esi, edx
push 0
push eax
mov ebx, ecx
mov dword [ebp - 0x1448], esi
call sub.MSVCR90.dll_memset
push 0x2d
pop eax
mov word [ebp - 0x38], ax
xor eax, eax
lea edi, [ebp - 0x36]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x2d
pop eax
mov word [ebp - 0x20], ax
xor eax, eax
lea edi, [ebp - 0x1e]
stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x42a474
stosb byte es:[edi], al
lea eax, [ebp - 0x1438]
push str.IDS_NA
push eax
call dword [sym.imp.ASOHelper.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_STLoadStringFromMainINI_wchar_t_const___wchar_t_const__]
add esp, 0x18
and dword [ebp - 4], 0
mov eax, dword [ebp - 0x1438]
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x4071d9
mov edi, dword [sym.imp.MSVCR90.dll_wcstombs]
sub eax, ecx
sar eax, 1
push eax
push dword [ebp - 0x1438]
lea eax, [ebp - 0x64]
push eax
call edi
mov eax, dword [ebp - 0x1438]
add esp, 0xc
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x407206
sub eax, ecx
sar eax, 1
push eax
push dword [ebp - 0x1438]
lea eax, [ebp - 0x38]
push eax
call edi
mov eax, dword [ebp - 0x1438]
add esp, 0xc
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x40722d
sub eax, ecx
sar eax, 1
push eax
push dword [ebp - 0x1438]
lea eax, [ebp - 0x20]
push eax
call edi
add esp, 0xc
test esi, esi
je 0x4072c8
mov eax, dword [ebp - 0x1448]
push 0xa
pop ecx
lea esi, [eax + 0x36]
push 5
lea edi, [ebp - 0x64]
rep movsd dword es:[edi], dword [esi]
lea esi, [eax + 0x14]
pop ecx
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x2e]
mov eax, dword [eax + 0x32]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x64]
push eax
mov dword [ebp - 0x20], ecx
push 0x28
pop ecx
call fcn.00408848
lea eax, [ebp - 0x38]
push eax
push 0x14
pop ecx
call fcn.00408848
lea eax, [ebp - 0x20]
push eax
push 8
pop ecx
call fcn.00408848
push 0x28
lea esi, [ebp - 0x64]
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x24], 0
mov byte [ebp - 0x18], 0
call fcn.0040d0fd
push 0x14
lea esi, [ebp - 0x38]
call fcn.0040d0fd
push 8
lea esi, [ebp - 0x20]
call fcn.0040d0fd
add esp, 0x18
lea eax, [ebx + 0x238]
push 0x29
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040d14b
push 0x15
lea eax, [ebx + 0x28a]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0040d14b
lea eax, [ebx + 0x2b4]
push 9
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040d14b
mov edi, dword [sym.imp.ASOHelper.dll_int___cdecl_BytesToString_unsigned_long_long_unsigned___int64___unsigned_int__wchar_t___unsigned_int_]
add esp, 0x24
cmp dword [ebp - 0x1448], 0
mov esi, 0x400
jne 0x407352
and dword [ebx + 0x20], 0
push 0x42a474
lea eax, [ebp - 0x144c]
push str.IDS_NA
push eax
call dword [sym.imp.ASOHelper.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_STLoadStringFromMainINI_wchar_t_const___wchar_t_const__]
push dword [eax]
lea eax, [ebx + 0x306]
push 0x20
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy_s]
add esp, 0x18
lea ecx, [ebp - 0x144c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x407375
mov eax, dword [ebp - 0x1448]
movzx eax, word [eax + 0x2a]
imul eax, dword [ebx + 4]
push 0x20
lea ecx, [ebx + 0x306]
push ecx
push esi
push 0
push eax
mov dword [ebx + 0x20], eax
call edi
add esp, 0x14
mov eax, dword [ebx + 0xc]
imul eax, dword [ebx + 8]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push 0
push eax
call fcn.00423980
push edx
push eax
push 0
push dword [ebx + 4]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
call fcn.00423980
mov ecx, dword [ebx + 0x30]
mov dword [ebp - 0x1444], eax
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0x1440], edx
cmp eax, edx
jb 0x4073c8
ja 0x4073bc
cmp ecx, dword [ebp - 0x1444]
jbe 0x4073c8
mov dword [ebp - 0x1444], ecx
mov dword [ebp - 0x1440], eax
push 0x20
lea eax, [ebp - 0x124]
push eax
push 0x3e8
push dword [ebp - 0x1440]
push dword [ebp - 0x1444]
call edi
push 0x20
lea eax, [ebx + 0x2c6]
push eax
push esi
push dword [ebp - 0x1440]
push dword [ebp - 0x1444]
call edi
add esp, 0x28
cmp dword [ebp - 0x1448], 0
jne 0x4077c6
xor eax, eax
push eax
mov dword [ebp - 0x142c], eax
mov dword [ebp - 0x1430], eax
lea eax, [ebp - 0x1440]
push eax
push 0x1000
lea eax, [ebp - 0x1424]
push eax
push 0xc
lea eax, [ebp - 0x1430]
push eax
push 0x2d1400
push dword [ebp - 0x1434]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x40745f
lea eax, [ebp - 0x124]
push eax
push dword [ebx]
push str.HDD_u___s_
jmp 0x4077d9
xor eax, eax
mov edi, 0xfe
push edi
mov word [ebp - 0x424], ax
xor esi, esi
lea eax, [ebp - 0x422]
push esi
push eax
call sub.MSVCR90.dll_memset
xor eax, eax
push edi
mov word [ebp - 0x224], ax
lea eax, [ebp - 0x222]
push esi
push eax
call sub.MSVCR90.dll_memset
xor eax, eax
push edi
mov word [ebp - 0x324], ax
lea eax, [ebp - 0x322]
push esi
push eax
call sub.MSVCR90.dll_memset
add edi, 0xffffff82
push edi
lea eax, [ebp - 0x424]
push esi
push eax
call sub.MSVCR90.dll_memset
push edi
lea eax, [ebp - 0x224]
push esi
push eax
call sub.MSVCR90.dll_memset
push edi
lea eax, [ebp - 0x324]
push esi
push eax
call sub.MSVCR90.dll_memset
mov esi, dword [ebp - 0x1418]
add esp, 0x48
test esi, esi
jbe 0x407560
push 0x7f
lea eax, [ebp - 0xe3]
push 0
push eax
mov byte [ebp - 0xe4], 0
call sub.MSVCR90.dll_memset
lea eax, [ebp + esi - 0x1424]
push eax
lea eax, [ebp - 0xe4]
push edi
push eax
call dword [sym.imp.MSVCR90.dll_strcpy_s]
lea eax, [ebp - 0xe4]
add esp, 0x18
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40751e
sub eax, esi
je 0x407536
push eax
lea esi, [ebp - 0xe4]
call fcn.0040d0fd
pop ecx
lea eax, [ebp - 0xe4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40753f
sub eax, edx
inc eax
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.0040d14b
add esp, 0xc
mov esi, dword [ebp - 0x1414]
test esi, esi
jbe 0x4075e5
push 0x7f
lea eax, [ebp - 0xe3]
push 0
push eax
mov byte [ebp - 0xe4], 0
call sub.MSVCR90.dll_memset
lea eax, [ebp + esi - 0x1424]
push eax
lea eax, [ebp - 0xe4]
push edi
push eax
call dword [sym.imp.MSVCR90.dll_strcpy_s]
lea eax, [ebp - 0xe4]
add esp, 0x18
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4075a3
sub eax, esi
je 0x4075bb
push eax
lea esi, [ebp - 0xe4]
call fcn.0040d0fd
pop ecx
lea eax, [ebp - 0xe4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4075c4
sub eax, edx
inc eax
push eax
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.0040d14b
add esp, 0xc
mov esi, dword [ebp - 0x1410]
test esi, esi
jbe 0x4076a2
push 0x7f
lea eax, [ebp - 0xe3]
push 0
push eax
mov byte [ebp - 0xe4], 0
call sub.MSVCR90.dll_memset
lea eax, [ebp + esi - 0x1424]
push eax
lea eax, [ebp - 0xe4]
push edi
push eax
call dword [sym.imp.MSVCR90.dll_strcpy_s]
lea eax, [ebp - 0xe4]
add esp, 0x18
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40762c
sub eax, esi
je 0x407644
push eax
lea esi, [ebp - 0xe4]
call fcn.0040d0fd
pop ecx
lea eax, [ebp - 0xe4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40764d
sub eax, edx
inc eax
push eax
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.0040d14b
lea eax, [ebp - 0x324]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x407677
sub eax, edx
sar eax, 1
je 0x4076a2
push 9
lea eax, [ebp - 0x324]
push eax
lea eax, [ebx + 0x2b4]
push 9
push eax
call dword [sym.imp.MSVCR90.dll_wcsncpy_s]
add esp, 0x10
xor eax, eax
inc eax
cmp dword [ebp - 0x1408], eax
je 0x4076b8
cmp dword [ebp - 0x1408], 9
je 0x4076b8
xor eax, eax
mov dword [ebx + 0x348], eax
lea eax, [ebp - 0x424]
push 2
lea edx, [eax + 2]
pop esi
mov cx, word [eax]
add eax, esi
test cx, cx
jne 0x4076ca
sub eax, edx
sar eax, 1
je 0x40770b
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x424]
push eax
push str._s__s___s_
push 0x100
add ebx, 0x38
push ebx
call dword [sym.imp.MSVCR90.dll_swprintf_s]
add esp, 0x18
jmp 0x4077eb
lea eax, [ebp - 0x224]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, esi
test cx, cx
jne 0x407714
sub eax, edx
sar eax, 1
je 0x40774f
lea eax, [ebp - 0x324]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, esi
test cx, cx
jne 0x40772d
sub eax, edx
sar eax, 1
je 0x40774f
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x224]
jmp 0x4077d3
lea eax, [ebp - 0x224]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, esi
test cx, cx
jne 0x407758
sub eax, edx
sar eax, 1
jne 0x40773d
lea eax, [ebp - 0x324]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, esi
test cx, cx
jne 0x407771
sub eax, edx
sar eax, 1
je 0x4077eb
push 0x42a474
lea eax, [ebp - 0x144c]
push str.IDS_NA
push eax
call dword [sym.imp.ASOHelper.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_STLoadStringFromMainINI_wchar_t_const___wchar_t_const__]
lea ecx, [ebp - 0x124]
push ecx
push dword [eax]
add ebx, 0x38
push str._s___s_
push 0x100
push ebx
call dword [sym.imp.MSVCR90.dll_swprintf_s]
add esp, 0x20
lea ecx, [ebp - 0x144c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x4077eb
lea eax, [ebp - 0x124]
push eax
lea eax, [ebx + 0x238]
push eax
push str._s___s_
push 0x100
add ebx, 0x38
push ebx
call dword [sym.imp.MSVCR90.dll_swprintf_s]
add esp, 0x14
lea ecx, [ebp - 0x1438]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00423038
leave
ret