Function at 0x412dac
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x491c
push ebx
push esi
push edi
call fcn.0040d29e
mov ecx, eax
call fcn.0040d0cf
test eax, eax
je 0x4133aa
call fcn.0040d65c
call fcn.0040d29e
cmp byte [eax + 3], 0
jne 0x412de7
push 0x40cb58
call fcn.00413cbf
pop ecx
call fcn.0040f9bc
mov ecx, eax
call fcn.0040f949
test eax, eax
je 0x4133aa
push 0x14
call fcn.004100db
test eax, eax
pop ecx
jne 0x412e23
push 0x415738
push 0x415638
push 0x40d020
call fcn.0040fa1a
add esp, 0xc
jmp 0x4133aa
push 0x11
call fcn.004100db
test eax, eax
pop ecx
jne 0x412e3b
push 0x415738
push 0x415538
jmp 0x412e11
push 0xa
call fcn.004100db
test eax, eax
pop ecx
jne 0x412e53
push 0x415738
push 0x417538
jmp 0x412e11
push 0x400
lea eax, [ebp - 0x291c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x291c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x291c]
push eax
push 0x40d000
push 0x417d60
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x291c]
push eax
call fcn.0040d2c4
add esp, 0x10
test eax, eax
je 0x4133aa
xor esi, esi
lea eax, [ebp - 0x18]
inc esi
push eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], 8
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
test eax, eax
je 0x412ee6
call fcn.0040d29e
cmp byte [eax + 1], 0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
je 0x412eed
push 0x41a5e8
call fcn.0040d29e
push dword [eax + 8]
call fcn.00410cf8
test eax, eax
pop ecx
pop ecx
jne 0x412f28
mov eax, esi
jmp 0x4134c4
lea ecx, [ebp - 0x491c]
call fcn.0040f9e2
call fcn.0040d29e
push dword [eax + 8]
lea eax, [ebp - 0x491c]
push eax
call ebx
sub esp, 0x2000
mov edi, esp
lea esi, [ebp - 0x491c]
mov ecx, 0x800
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x41a5e8
call fcn.004106b0
call fcn.0040d29e
cmp dword [eax + 4], 2
je 0x412f3e
call fcn.0040d29e
cmp dword [eax + 4], 3
jne 0x412fa1
call fcn.0040d29e
cmp byte [eax + 1], 0
je 0x412f66
push 0x41a5c8
call fcn.0040d29e
push dword [eax + 0xc]
call fcn.00410cf8
test eax, eax
pop ecx
pop ecx
jne 0x412fa1
jmp 0x4133aa
lea ecx, [ebp - 0x491c]
call fcn.0040f9e2
call fcn.0040d29e
push dword [eax + 0xc]
lea eax, [ebp - 0x491c]
push eax
call ebx
sub esp, 0x2000
mov edi, esp
lea esi, [ebp - 0x491c]
mov ecx, 0x800
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x41a5c8
call fcn.004106b0
xor edx, edx
xor eax, eax
cmp dword [0x41a5f4], edx
mov word [ebp - 0x211c], dx
mov ecx, 0x1ff
lea edi, [ebp - 0x211a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 4], edx
jbe 0x4131ab
mov esi, dword [ebp - 4]
mov eax, dword [0x41a5ec]
shl esi, 0xd
lea edi, [esi + eax]
push 0x40cff8
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrW]
cmp eax, edi
jne 0x413025
push 0x800
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 4]
push eax
push 0x40cfec
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x111c]
push edi
push eax
call fcn.0040fb1a
push edi
call fcn.0040ffe4
add esp, 0x18
jmp 0x41303b
mov eax, dword [0x41a5ec]
add eax, esi
push eax
lea eax, [ebp - 0x111c]
push eax
call fcn.0040fb1a
pop ecx
pop ecx
lea eax, [ebp - 0x111c]
push eax
lea eax, [ebp - 0x91c]
push eax
call ebx
lea eax, [ebp - 0x91c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
and word [ebp - 0x918], 0
lea eax, [ebp - 0x91c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4133aa
lea eax, [ebp - 0x91c]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
cmp dword [ebp - 4], 0
jne 0x4130c6
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x211c]
push eax
call ebx
lea eax, [ebp - 0x111c]
push eax
mov edi, 0x418da0
push edi
call ebx
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x111c]
push eax
mov edi, 0x4195c8
push edi
call ebx
push edi
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
jmp 0x4130e2
lea eax, [ebp - 0x211c]
push eax
lea eax, [ebp - 0x91c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x4133aa
lea eax, [ebp - 0x111c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathSkipRootW]
test eax, eax
je 0x413109
push 0x40cfe8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
lea eax, [ebp - 0x111c]
jne 0x41310f
lea eax, [ebp - 0x91c]
push eax
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 0x1800]
push eax
call ebx
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 0x1800]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
lea eax, [ebp - 0x111c]
push eax
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 0x800]
push eax
call ebx
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 0x800]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 0x800]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
lea eax, [ebp - 0x111c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
test eax, eax
je 0x413185
add eax, 2
push eax
jmp 0x41318a
push 0x40cb54
mov eax, dword [0x41a5ec]
lea eax, [esi + eax + 0x1000]
push eax
call ebx
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [0x41a5f4]
jb 0x412fca
movzx eax, word [ebp - 0x91c]
push eax
lea eax, [ebp - 0x11c]
push 0x40cfe0
xor esi, esi
push eax
mov dword [ebp - 4], esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
mov edi, 0x2000000
push edi
push 3
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileA]
push 3
push 0xc0000000
lea eax, [ebp - 0x11c]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 8], eax
jne 0x41320f
xor eax, eax
push eax
push edi
push 3
push eax
push eax
push eax
lea eax, [ebp - 0x11c]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 8], eax
je 0x413283
call fcn.0040f9bc
lea ecx, [ebp - 0x1c]
push ecx
push 0x400
lea ecx, [ebp - 0x151c]
push ecx
push 1
push dword [ebp - 8]
call dword [eax + 4]
test eax, eax
jne 0x413269
cmp word [ebp - 0x151c], ax
jbe 0x413269
mov esi, 0x800
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
movzx ecx, word [ebp - 0x151c]
mov edx, dword [ebp - 0x1518]
shr ecx, 1
and word [edx + ecx*2], 0
push dword [ebp - 0x1518]
mov dword [ebp - 4], eax
push eax
call ebx
jmp 0x41326e
mov esi, 0x800
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], 0
jne 0x413374
jmp 0x413288
mov esi, 0x800
movzx eax, word [ebp - 0x91c]
push eax
lea eax, [ebp - 0xd1c]
push 0x40cfdc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x400
lea eax, [ebp - 0x191c]
push eax
lea eax, [ebp - 0xd1c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
test eax, eax
je 0x413374
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x191c]
push eax
call edi
test eax, eax
je 0x413374
push 0x40cfc8
lea eax, [ebp - 0x191c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrA]
test eax, eax
mov dword [ebp - 8], eax
jne 0x413330
push 0x40cfc0
lea eax, [ebp - 0x191c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrA]
test eax, eax
jne 0x413374
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ecx, [ebp - 0x191c]
push ecx
push 0x40cfb8
push eax
mov dword [ebp - 4], eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x413374
push 0x40cfa4
call edi
push 0x40cfa0
push dword [ebp - 8]
mov edi, eax
add edi, dword [ebp - 8]
call dword [sym.imp.SHLWAPI.dll_StrStrA]
inc eax
mov dword [ebp - 0x10], eax
mov byte [edi], 0
je 0x413374
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push dword [ebp - 0x10]
mov dword [ebp - 4], eax
push dword [ebp - 8]
push 0x40cf94
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp word [ebp - 0x91c], 0x30
jne 0x413398
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x40cf60
push eax
mov dword [ebp - 4], eax
call dword [sym.imp.USER32.dll_wsprintfW]
pop ecx
pop ecx
mov esi, dword [ebp - 4]
test esi, esi
jne 0x4133b2
push 0x415838
call fcn.0040fa1a
pop ecx
xor eax, eax
inc eax
jmp 0x4134c4
push esi
push 0x418560
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 8], eax
lea eax, [esi + eax*2 - 2]
cmp byte [eax], 0x5c
jne 0x4133d4
and word [eax], 0
dec dword [ebp - 8]
mov esi, dword [sym.imp.USER32.dll_DialogBoxParamA]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov byte [ebp - 0xa], 0
lea eax, [ebp - 0x211c]
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x10]
push dword [ebp - 4]
mov byte [ebp - 9], 0
push eax
call fcn.00411929
add esp, 0x10
call fcn.0040d29e
cmp byte [eax + 3], 0
je 0x41344b
mov eax, dword [0x41a604]
test eax, eax
je 0x413441
xor ebx, ebx
test eax, eax
jbe 0x41342f
push ebx
mov ecx, 0x41a5d8
call fcn.004105a8
inc ebx
cmp ebx, dword [0x41a604]
jb 0x41341b
cmp dword [0x41a5e4], 0
je 0x413441
push dword [ebp - 0x10]
call fcn.0041165f
pop ecx
call fcn.0040d29e
push dword [eax + 4]
jmp 0x41349f
xor ebx, ebx
cmp dword [0x41a604], ebx
je 0x41347e
push ebx
push 0x412348
push ebx
push 0x65
push ebx
mov byte [ebp - 0xa], 1
call edi
push eax
call esi
cmp dword [0x41a5e4], ebx
je 0x4134a5
push dword [ebp - 0x10]
call fcn.0041165f
mov byte [ebp - 9], 1
jmp 0x4134a4
cmp byte [ebp - 0xa], 0
jne 0x413499
push ebx
push 0x412c32
push ebx
push 0x6d
push ebx
mov dword [0x4195c4], ebx
call edi
push eax
call esi
push dword [0x4195c4]
call fcn.00410e56
pop ecx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp byte [ebp - 9], 0
jne 0x4133e4
call fcn.0040d3ed
call fcn.00413a5f
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x10