Function at 0x406c4b
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x35c
push ebx
push esi
push edi
push dword [ebp + 0x7c]
xor edi, edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x70], edi
call fcn.00403bbc
pop ecx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
mov ebx, dword [sym.imp.SHLWAPI.dll_StrChrW]
push 0x23
push esi
call ebx
cmp eax, edi
je 0x406c92
mov word [eax], di
add eax, 2
push eax
call fcn.00402463
pop ecx
mov dword [ebp + 0x60], eax
xor edi, edi
inc edi
cmp word [esi], 0
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x7c], edi
je 0x406ccb
push 0x401d4c
push esi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
neg eax
sbb eax, eax
push 0x401d44
neg eax
push esi
mov dword [ebp + 0x6c], eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
neg eax
sbb eax, eax
neg eax
mov dword [ebp + 0x7c], eax
push 0x3a
push esi
call ebx
mov ebx, eax
test ebx, ebx
mov dword [ebp + 0x68], ebx
je 0x406d06
dec ebx
dec ebx
mov dword [ebp + 0x68], ebx
je 0x406d06
push ebx
call fcn.00402de4
pop ecx
xor ecx, ecx
cmp dword [ebp + 0x6c], ecx
jne 0x406cf3
cmp dword [ebp + 0x7c], ecx
je 0x406cf6
mov word [ebx], cx
cmp eax, 2
jne 0x406cfe
mov dword [ebp + 0x7c], edi
cmp eax, 5
jne 0x406d06
mov dword [ebp + 0x6c], edi
xor esi, esi
mov dword [ebp + 0x64], esi
jmp 0x406d10
mov ebx, dword [ebp + 0x68]
test ebx, ebx
je 0x406d80
push ebx
call fcn.00402de4
cmp eax, 5
pop ecx
jne 0x406d34
movzx eax, word [ebx]
push eax
mov dword [ebp + 0x70], edi
call fcn.00402f84
pop ecx
mov esi, eax
jmp 0x406e1f
cmp eax, 2
jne 0x406e94
mov dword [ebp + 0x70], edi
mov esi, 0x401d3c
lea edi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
push 0x9a
lea eax, [ebp - 0x3a]
push 0
push eax
movsw word es:[edi], word [esi]
call sub.MSVCRT.dll_memset
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x40]
push eax
call fcn.00406b8f
add esp, 0x10
mov esi, eax
neg esi
sbb esi, esi
xor edi, edi
inc esi
inc edi
jmp 0x406e1f
lea eax, [ebp - 0x2e8]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
cmp word [ebp - 0x2e8], 0
lea ebx, [ebp - 0x2e8]
je 0x406e1f
push ebx
call fcn.00402de4
cmp eax, 2
pop ecx
jne 0x406df1
cmp dword [ebp + 0x7c], 0
je 0x406e0e
mov dword [ebp + 0x70], edi
mov esi, 0x401d3c
lea edi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
push 0x9a
lea eax, [ebp - 0x3a]
push 0
push eax
movsw word es:[edi], word [esi]
call sub.MSVCRT.dll_memset
mov ax, word [ebx]
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x40]
push eax
call fcn.00406b8f
add esp, 0x10
mov esi, eax
neg esi
sbb esi, esi
xor edi, edi
inc esi
inc edi
jmp 0x406e0e
cmp eax, 5
jne 0x406e0e
cmp dword [ebp + 0x6c], 0
je 0x406e0e
mov eax, dword [ebp + 0x68]
movzx eax, word [eax]
push eax
mov dword [ebp + 0x70], edi
call fcn.00402f84
pop ecx
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebx, [ebx + eax*2 + 2]
cmp word [ebx], 0
jne 0x406da2
test esi, esi
jne 0x406e86
cmp dword [ebp + 0x70], esi
je 0x406e94
mov eax, dword [ebp + 0x60]
test eax, eax
jbe 0x406e39
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], eax
je 0x406e94
jmp 0x406e86
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
push 0x50
lea eax, [ebp - 0xe0]
push eax
push 0x2713
push dword [0x4122d8]
call ebx
push 0x50
lea eax, [ebp - 0x40]
push eax
push 0x2714
push dword [0x4122d8]
call ebx
push 0x24
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xe0]
push eax
push dword [0x4122d4]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x406e94
cmp dword [ebp + 0x70], 0
je 0x406e94
test esi, esi
je 0x406d0d
xor eax, eax
pop edi
test esi, esi
pop esi
sete al
pop ebx
add ebp, 0x74
leave
ret