Function at 0x408d10
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b21b
mov eax, dword fs:[0]
push eax
sub esp, 0x548
mov eax, dword [0x447150]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x524], edi
mov eax, dword [ebp + 8]
push dword [edi + 0x2dc]
mov dword [ebp - 0x528], eax
call dword [sym.imp.aviplayer.dll_AVI_PlayStop]
add esp, 4
mov dword [edi + 0x58], 3
call fcn.00407a50
mov ecx, eax
test ecx, ecx
jne 0x408d79
push 0x80004005
call fcn.00406b30
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x520], esi
mov eax, dword [ebp - 0x528]
xorps xmm0, xmm0
push 0
push 0
push str.STRING
movups xmmword [ebp - 0x554], xmm0
push str.IDS_OPEN
mov ecx, 0x4482b8
mov dword [ebp - 4], 0
movups xmmword [ebp - 0x544], xmm0
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x550], 0
call fcn.00402e40
mov dword [ebp - 0x548], eax
lea eax, [ebp - 0x114]
mov dword [ebp - 0x54c], eax
lea eax, [edi + 0x67c8]
mov dword [ebp - 0x530], eax
mov eax, dword [eax]
mov dword [ebp - 0x544], 0x251
mov dword [ebp - 0x540], 0x4077e0
cmp dword [eax - 0xc], 0
jne 0x408eef
push 0x200
lea eax, [ebp - 0x51c]
push 0
push eax
call fcn.00428770
add esp, 0xc
lea eax, [ebp - 0x51c]
push eax
push 0x1ff
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
test eax, eax
je 0x408eef
lea edi, [ebp - 0x51c]
push 1
mov dword [ebp - 0x52c], edi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [ebp - 0x534], eax
push edi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 2
jne 0x408e9a
push edi
lea eax, [ebp - 0x218]
push 0x43ca60
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0042d145
add esp, 0x14
mov edi, eax
call fcn.0042d96b
mov dword [eax], edi
test edi, edi
je 0x408eb8
mov edi, dword [ebp - 0x52c]
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408ea0
sub ecx, edx
inc edi
add edi, ecx
mov dword [ebp - 0x52c], edi
cmp byte [edi], al
jne 0x408e57
jmp 0x408edd
lea ecx, [ebp - 0x218]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408ec1
sub ecx, edx
lea eax, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x530]
push eax
call fcn.0040bd00
push dword [ebp - 0x534]
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov edi, dword [ebp - 0x524]
mov eax, dword [edi + 0x67c8]
mov dword [ebp - 0x53c], eax
lea eax, [ebp - 0x554]
push eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
test eax, eax
je 0x409360
lea ecx, [ebp - 0x114]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408f27
mov eax, dword [0x447db8]
sub ecx, edx
cmp byte [ebp + ecx - 0x115], 0x5c
jne 0x408f8a
sub eax, 0
je 0x408f76
sub eax, 1
je 0x408f62
sub eax, 1
jne 0x408f76
mov eax, 0x43c9a4
push eax
lea eax, [ebp - 0x114]
push eax
push 0x43ca68
jmp 0x408fb9
mov eax, 0x43c9a0
push eax
lea eax, [ebp - 0x114]
push eax
push 0x43ca68
jmp 0x408fb9
mov eax, 0x43c99c
push eax
lea eax, [ebp - 0x114]
push eax
push 0x43ca68
jmp 0x408fb9
sub eax, 0
je 0x408fa7
sub eax, 1
je 0x408fa0
sub eax, 1
jne 0x408fa7
mov eax, 0x43c9a4
jmp 0x408fac
mov eax, 0x43c9a0
jmp 0x408fac
mov eax, 0x43c99c
push eax
lea eax, [ebp - 0x114]
push eax
push str._s._s
lea eax, [ebp - 0x520]
push eax
call fcn.00407950
mov esi, dword [ebp - 0x520]
lea eax, [ebp - 0x45c]
add esp, 0x10
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x524], eax
cmp eax, 0xffffffff
jne 0x409274
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408ff4
mov eax, dword [0x447db8]
sub ecx, edx
cmp byte [ebp + ecx - 0x115], 0x5c
jne 0x409057
sub eax, 0
je 0x409043
sub eax, 1
je 0x40902f
sub eax, 1
jne 0x409043
mov eax, 0x43c9a4
push eax
lea eax, [ebp - 0x114]
push eax
push 0x43ca78
jmp 0x409086
mov eax, 0x43c9a0
push eax
lea eax, [ebp - 0x114]
push eax
push 0x43ca78
jmp 0x409086
mov eax, 0x43c99c
push eax
lea eax, [ebp - 0x114]
push eax
push 0x43ca78
jmp 0x409086
sub eax, 0
je 0x409074
sub eax, 1
je 0x40906d
sub eax, 1
jne 0x409074
mov eax, 0x43c9a4
jmp 0x409079
mov eax, 0x43c9a0
jmp 0x409079
mov eax, 0x43c99c
push eax
lea eax, [ebp - 0x114]
push eax
push str._sdata._s
lea eax, [ebp - 0x520]
push eax
call fcn.00407950
mov esi, dword [ebp - 0x520]
lea eax, [ebp - 0x45c]
add esp, 0x10
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x524], eax
cmp eax, 0xffffffff
je 0x40910d
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_IsWindow]
cmp eax, 1
jne 0x4090d4
push 0
push 0
push 0x1009
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4090e0
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [edi + 0x67c8]
call fcn.0040bd00
push dword [ebp - 0x524]
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x4091df
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409116
push dword [0x447db8]
sub ecx, edx
call fcn.00412130
cmp byte [ebp + ecx - 0x115], 0x5c
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x520]
jne 0x409149
push 0x43ca94
jmp 0x40914e
push str._sevent._s
push eax
call fcn.00407950
mov esi, dword [ebp - 0x520]
lea eax, [ebp - 0x45c]
add esp, 0x14
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x524], eax
cmp eax, 0xffffffff
je 0x4091fe
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_IsWindow]
cmp eax, 1
jne 0x40919a
push 0
push 0
push 0x1009
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x114]
push eax
lea ecx, [edi + 0x67c8]
call fcn.004069e0
push dword [ebp - 0x524]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [edi + 0x2dc]
call dword [sym.imp.aviplayer.dll_AVI_IsPanormaMode]
add esp, 4
test eax, eax
je 0x4091df
mov eax, dword [edi + 0x2dc]
test eax, eax
je 0x4091df
push eax
call dword [sym.imp.aviplayer.dll_AVI_UnsetPanoramaMode]
add esp, 4
push 2
push 0
push 0x7ea
push dword [ebp - 0x528]
call dword [sym.imp.USER32.dll_PostMessageA]
mov edi, 1
jmp 0x409362
push 0x104
lea eax, [ebp - 0x31c]
push 0
push eax
call fcn.00428770
add esp, 0xc
mov ecx, 0x4482b8
push 0
push 0
push str.STRING
push str.IDS_WARN
call fcn.00402e40
push eax
lea eax, [ebp - 0x31c]
push 0x104
push eax
call fcn.0042cd27
add esp, 0xc
lea eax, [ebp - 0x31c]
mov ecx, 0x4482b8
push 0x30
push eax
push 0
push 0
push str.STRING
push str.IDS_VIDEO
call fcn.00402e40
push eax
push dword [ebp - 0x528]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x409304
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_IsWindow]
cmp eax, 1
jne 0x409294
push 0
push 0
push 0x1009
push dword [edi + 0x34]
call dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [ebp - 0x114]
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4092a0
sub edx, ecx
lea eax, [ebp - 0x114]
push edx
push eax
lea ecx, [edi + 0x67c8]
call fcn.0040bd00
push dword [ebp - 0x524]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [edi + 0x2dc]
call dword [sym.imp.aviplayer.dll_AVI_IsPanormaMode]
add esp, 4
test eax, eax
je 0x4092ef
mov eax, dword [edi + 0x2dc]
test eax, eax
je 0x4092ef
push eax
call dword [sym.imp.aviplayer.dll_AVI_UnsetPanoramaMode]
add esp, 4
push 2
push 0
push 0x7ea
push dword [ebp - 0x528]
call dword [sym.imp.USER32.dll_PostMessageA]
push 0
push 0
push 0x1028
push dword [edi + 0x30]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x1004
push dword [edi + 0x30]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
lea ecx, [edi + 0x160]
mov dword [edi + 0x170], eax
mov dword [edi + 0x174], 0
call fcn.00426090
push 0
push 0
push 5
push dword [edi + 0x188]
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, 1
jmp 0x409362
xor edi, edi
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x409381
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004271bb
mov esp, ebp
pop ebp
ret 4