Function at 0x406c2f
Capabilities:
Get disk information

Disassembly:
push 0x50c
mov eax, 0x59f18e
call fcn.00493819
mov edi, ecx
mov dword [ebp - 0x4f8], edi
mov esi, edx
add edi, 0x740
xor ebx, ebx
push edi
mov dword [ebp - 0x4f0], esi
mov dword [ebp - 0x4f4], ebx
call fcn.0044d1a0
pop ecx
test al, al
je 0x406c7e
push edi
call fcn.00406c0b
test al, al
je 0x406c7e
push edi
call fcn.004023ec
mov eax, esi
jmp 0x407065
push ecx
mov dword [ebp - 0x4fc], esp
lea esi, [ebp - 0x510]
mov dword [ebp - 0x4fc], esp
call fcn.0040b11d
push 0x5fdf8c
lea eax, [ebp - 0x4b0]
mov dword [ebp - 4], 1
call fcn.004017bc
push 0x5fdf94
lea eax, [ebp - 0x494]
mov byte [ebp - 4], 2
call fcn.004017bc
push 0x5fdf9c
lea eax, [ebp - 0x478]
mov byte [ebp - 4], 3
call fcn.004017bc
push 0x5fdfa4
lea eax, [ebp - 0x45c]
mov byte [ebp - 4], 4
call fcn.004017bc
push 0x5fdfac
lea eax, [ebp - 0x440]
mov byte [ebp - 4], 5
call fcn.004017bc
xor eax, eax
mov dword [ebp - 0x4d4], 7
mov dword [ebp - 0x4d8], ebx
mov word [ebp - 0x4e8], ax
mov dword [ebp - 0x4ec], ebx
mov byte [ebp - 4], 7
lea ebx, [ebp - 0x4b0]
push ebx
lea ecx, [ebp - 0x510]
call fcn.0040becc
push eax
lea eax, [ebp - 0x500]
push eax
lea eax, [ebp - 0x510]
push eax
call fcn.0040b94e
push ebx
lea esi, [ebp - 0x4cc]
call fcn.004023ec
mov eax, dword [ebp - 0x4f8]
mov byte [ebp - 4], 8
cmp byte [eax + 0x7b8], 0
mov esi, 0x5fdfb4
jne 0x406d6f
mov esi, 0x5fdfcc
push esi
call fcn.0048aa3a
pop ecx
mov edi, eax
push esi
lea eax, [ebp - 0x4cc]
call fcn.00401664
lea eax, [ebp - 0x4cc]
push eax
call fcn.0044d1a0
pop ecx
test al, al
je 0x406da5
lea eax, [ebp - 0x4cc]
push eax
call fcn.00406c0b
test al, al
jne 0x406e11
push 1
xor edi, edi
lea esi, [ebp - 0x4cc]
mov byte [ebp - 4], 7
call fcn.004019e2
inc dword [ebp - 0x4ec]
add ebx, 0x1c
cmp dword [ebp - 0x4ec], 5
jl 0x406d26
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push eax
call fcn.0048b3f0
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
mov ebx, 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
cmp word [ebp - 0x420], di
lea eax, [ebp - 0x420]
jmp 0x406fcb
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x4cc]
lea ecx, [ebp - 0x4e8]
call fcn.00401a8e
mov esi, dword [ebp - 0x4f0]
lea ebx, [ebp - 0x4e8]
call fcn.00401511
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
lea esi, [ebp - 0x4cc]
mov dword [ebp - 0x4f4], ebx
call fcn.004019e2
push ebx
lea esi, [ebp - 0x4e8]
call fcn.004019e2
push 0x4017ea
push 5
push 0x1c
lea eax, [ebp - 0x4b0]
push eax
mov byte [ebp - 4], bl
call fcn.0048aed8
mov dword [ebp - 4], 9
jmp 0x407048
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.0048b3f0
add esp, 0xc
push dword [ebp - 0x4ec]
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.0048b387
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x406fb6
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x4cc]
call fcn.004017bc
mov byte [ebp - 4], 0xa
mov edi, dword [ebp - 0x50c]
mov esi, dword [edi + 4]
mov dword [ebp - 0x4fc], edi
jmp 0x406f0a
lea ecx, [esi + 0xc]
lea eax, [ebp - 0x4cc]
call fcn.00402169
test al, al
je 0x406f06
mov esi, dword [esi + 8]
jmp 0x406f0a
mov edi, esi
mov esi, dword [esi]
cmp byte [esi + 0x29], 0
je 0x406eef
mov dword [ebp - 0x518], edi
cmp edi, dword [ebp - 0x50c]
je 0x406f38
lea eax, [edi + 0xc]
lea ecx, [ebp - 0x4cc]
call fcn.00402169
test al, al
jne 0x406f38
lea eax, [ebp - 0x518]
jmp 0x406f4a
mov eax, dword [ebp - 0x50c]
mov dword [ebp - 0x514], eax
lea eax, [ebp - 0x514]
mov ecx, dword [ebp - 0x4fc]
cmp dword [eax], ecx
jne 0x406fa3
mov eax, dword [ebp - 0x4f8]
cmp byte [eax + 0x7b8], 0
mov esi, 0x5fdfb4
jne 0x406f6d
mov esi, 0x5fdfcc
push esi
call fcn.0048aa3a
pop ecx
mov edi, eax
push esi
lea eax, [ebp - 0x4cc]
call fcn.00401664
lea eax, [ebp - 0x4cc]
push eax
call fcn.0044d1a0
pop ecx
test al, al
je 0x406fa3
lea eax, [ebp - 0x4cc]
push eax
call fcn.00406c0b
test al, al
jne 0x406fd9
push 1
xor edi, edi
lea esi, [ebp - 0x4cc]
mov byte [ebp - 4], 7
call fcn.004019e2
mov esi, dword [ebp - 0x4ec]
push esi
call fcn.0048aa3a
lea eax, [esi + eax*2 + 2]
cmp word [eax], 0
pop ecx
mov dword [ebp - 0x4ec], eax
jne 0x406e7e
jmp 0x407001
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x4cc]
lea ecx, [ebp - 0x4e8]
call fcn.00401a8e
push 1
xor edi, edi
lea esi, [ebp - 0x4cc]
mov byte [ebp - 4], 7
call fcn.004019e2
mov esi, dword [ebp - 0x4f0]
lea ebx, [ebp - 0x4e8]
call fcn.00401511
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
lea esi, [ebp - 0x4e8]
mov dword [ebp - 0x4f4], ebx
call fcn.004019e2
push 0x4017ea
push 5
push 0x1c
lea eax, [ebp - 0x4b0]
push eax
mov byte [ebp - 4], bl
call fcn.0048aed8
mov dword [ebp - 4], 0xb
lea eax, [ebp - 0x510]
call fcn.0040aced
push dword [ebp - 0x50c]
call fcn.0048a131
mov eax, dword [ebp - 0x4f0]
pop ecx
call fcn.00493863
ret