Function at 0x40d1e6
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x408
push ebx
push esi
push edi
push dword [ebp + 0x7c]
xor ebx, ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x6c], ebx
call fcn.00406343
pop ecx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x2c
push ebx
push esi
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp eax, ebx
je 0x40d22c
mov word [eax], bx
add eax, 2
push eax
call fcn.00403470
pop ecx
mov dword [ebp + 0x58], eax
push 0x3a
push esi
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, ebx
mov dword [ebp + 0x68], eax
je 0x40d253
cmp word [esi], 0x3a
jne 0x40d24d
mov dword [ebp + 0x68], ebx
jmp 0x40d278
sub dword [ebp + 0x68], 2
jmp 0x40d278
cmp esi, ebx
je 0x40d278
cmp word [esi], bx
je 0x40d278
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
push 0x402ad8
push esi
call edi
push 0x402ad0
push esi
mov dword [ebp + 0x60], eax
call edi
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x68], ebx
mov dword [ebp + 0x70], ebx
jne 0x40d28e
cmp dword [ebp + 0x60], ebx
jne 0x40d28e
cmp dword [ebp + 0x64], ebx
jne 0x40d28e
xor eax, eax
jmp 0x40d291
xor eax, eax
inc eax
cmp eax, ebx
mov dword [ebp + 0x5c], ebx
je 0x40d4c1
mov esi, 0x402aac
lea edi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
push 0x9a
lea eax, [ebp - 0x46]
push ebx
push eax
movsw word es:[edi], word [esi]
call sub.MSVCRT.dll_memset
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp eax, ebx
je 0x40d319
mov cx, word [eax]
push eax
mov word [ebp - 0x4c], cx
call fcn.00403ae6
pop ecx
xor ecx, ecx
cmp eax, 5
sete cl
mov dword [ebp + 0x54], eax
cmp ecx, ebx
mov dword [ebp + 0x6c], ecx
je 0x40d2f6
push dword [ebp - 0x4c]
call fcn.00403c41
neg eax
sbb eax, eax
inc eax
or dword [ebp + 0x70], eax
pop ecx
jmp 0x40d3cb
cmp eax, 0x10002
je 0x40d308
cmp eax, 0x10001
jne 0x40d4c1
push dword [ebp - 0x4c]
mov dword [ebp + 0x6c], 1
call fcn.00403dca
jmp 0x40d2ed
cmp dword [ebp + 0x60], ebx
jne 0x40d327
cmp dword [ebp + 0x64], ebx
je 0x40d3cb
push 0x206
lea eax, [ebp - 0x392]
push ebx
push eax
mov word [ebp - 0x394], bx
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x394]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
cmp word [ebp - 0x394], bx
lea esi, [ebp - 0x394]
je 0x40d3cb
mov ax, word [esi]
push esi
mov word [ebp - 0x4c], ax
call fcn.00403ae6
cmp eax, 0x10002
pop ecx
mov dword [ebp + 0x54], eax
je 0x40d383
cmp eax, 0x10001
jne 0x40d399
cmp dword [ebp + 0x64], ebx
je 0x40d399
push dword [ebp - 0x4c]
mov dword [ebp + 0x6c], 1
call fcn.00403dca
jmp 0x40d3b7
cmp eax, 5
jne 0x40d3bb
cmp dword [ebp + 0x60], ebx
je 0x40d3bb
push dword [ebp - 0x4c]
mov dword [ebp + 0x6c], 1
call fcn.00403c41
neg eax
sbb eax, eax
inc eax
or dword [ebp + 0x70], eax
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp word [esi], bx
jne 0x40d364
cmp dword [ebp + 0x6c], ebx
je 0x40d4c1
cmp dword [ebp + 0x70], ebx
je 0x40d4c1
mov eax, dword [ebp + 0x58]
cmp eax, ebx
jbe 0x40d3f5
inc dword [ebp + 0x5c]
cmp dword [ebp + 0x5c], eax
jne 0x40d29c
jmp 0x40d4c1
mov esi, 0x9e
push esi
lea eax, [ebp - 0xea]
push ebx
push eax
mov word [ebp - 0xec], bx
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x18a]
push ebx
push eax
mov word [ebp - 0x18c], bx
call sub.MSVCRT.dll_memset
push 0x206
lea eax, [ebp - 0x392]
push ebx
push eax
mov word [ebp - 0x394], bx
call sub.MSVCRT.dll_memset
add esp, 0x24
cmp dword [ebp + 0x54], 5
push 0x50
lea eax, [ebp - 0xec]
push eax
jne 0x40d456
push 0x2713
jmp 0x40d45b
push 0x2714
push dword [0x41d42c]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x394]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x50
lea eax, [ebp - 0x18c]
push eax
push 0x272e
push dword [0x41d42c]
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x24
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x394]
push eax
push dword [0x41d428]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
je 0x40d29c
mov eax, dword [ebp + 0x70]
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret