Function at 0x409e67
Capabilities:
Get disk information
Get file system object information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x934
or dword [esp + 4], 0xffffffff
push ebx
push ebp
push esi
mov esi, dword [esp + 0x948]
xor ebx, ebx
mov dword [esp + 0xc], ebx
push edi
mov edi, dword [esp + 0x948]
mov ebp, dword [edi + 0x10]
mov dword [esp + 0x18], ebp
test esi, esi
jne 0x409e9a
mov esi, 0x4cd1c4
push 0x34
lea eax, [esp + 0x20]
push ebx
push eax
call fcn.00401510
push 0x28
lea eax, [esp + 0x60]
push ebx
push eax
call fcn.00401510
mov eax, dword [ebp + 0x218]
add esp, 0x18
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x409ed0
xor ecx, ecx
push ecx
push ecx
push 0x10
push eax
call ebx
test esi, esi
je 0x40a00c
xor eax, eax
cmp word [esi], ax
je 0x40a00c
push 0x4cc188
push esi
call fcn.00419494
pop ecx
pop ecx
test eax, eax
je 0x40a00c
push 0x5c
pop eax
push eax
push esi
call fcn.0042570e
pop ecx
pop ecx
push esi
test eax, eax
jne 0x409f44
lea eax, [ebp + 0xc]
push eax
call fcn.004187d6
pop ecx
pop ecx
xor eax, eax
push eax
push 9
push 0x110a
push dword [edi]
mov word [esp + 0x88], ax
call ebx
test eax, eax
je 0x409f3a
lea ecx, [esp + 0x78]
push ecx
push eax
push ebp
call fcn.00408dca
mov ax, word [esp + 0x78]
jmp 0x40a013
call fcn.004187f8
pop ecx
push 0x5c
pop ecx
cmp word [esi + eax*2 - 2], cx
jne 0x409f83
lea eax, [esp + 0x78]
push esi
push eax
call fcn.004187d6
mov ax, word [esp + 0x80]
pop ecx
cmp ax, 0x61
movzx eax, ax
pop ecx
jb 0x409f75
sub eax, 0x20
mov esi, dword [esp + 0x10]
mov word [esp + 0x78], ax
jmp 0x40a016
xor eax, eax
push 0x104
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00401510
push esi
call fcn.004187f8
add esp, 0x10
test eax, eax
js 0x409f3a
lea ecx, [esi + eax*2]
push 0x5c
mov dword [esp + 0x14], ecx
pop edx
cmp word [ecx], dx
je 0x409fc5
sub ecx, 2
sub eax, 1
mov dword [esp + 0x10], ecx
jns 0x409faf
jmp 0x409f3a
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x7c]
push esi
push eax
call fcn.00418f20
mov ax, word [esp + 0x84]
add esp, 0xc
cmp ax, 0x61
movzx eax, ax
jb 0x409fef
sub eax, 0x20
mov word [esp + 0x78], ax
mov eax, dword [esp + 0x10]
add eax, 2
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004187d6
pop ecx
pop ecx
jmp 0x409f3a
xor eax, eax
mov word [esp + 0x78], ax
xor esi, esi
inc esi
test ax, ax
je 0x40a090
movzx eax, ax
sub eax, 0x41
mov dword [esp + 0x14], eax
lea eax, [esp + 0x7e]
push eax
call fcn.004187f8
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x86]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.00418f20
lea eax, [esp + 0x88]
push eax
call fcn.004187f8
xor ecx, ecx
mov word [esp + eax*2 + 0x8e], cx
lea eax, [esp + 0x8c]
push eax
call fcn.004187f8
add esp, 0x18
test eax, eax
js 0x40a090
push 0x5c
pop ecx
cmp word [esp + eax*2 + 0x78], cx
jne 0x40a08b
xor ecx, ecx
push 0x5c
mov word [esp + eax*2 + 0x7c], cx
pop ecx
sub eax, 1
jns 0x40a07a
test esi, esi
je 0x40a24c
mov esi, 0xffff0000
xor eax, eax
push esi
push eax
push 0x1101
push dword [edi]
call ebx
mov eax, dword [0x51faec]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x1c]
push eax
xor eax, eax
mov dword [esp + 0x20], esi
push eax
mov dword [esp + 0x28], esi
xor esi, esi
push 0x1132
push dword [edi]
inc esi
mov dword [esp + 0x34], 0x67
mov dword [esp + 0x44], 0x51f8e0
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], 0xfffb
call ebx
mov dword [ebp + 0x214], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x280]
push esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], 0xffff0002
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x488]
push 0x4cc17c
push eax
call fcn.004187d6
mov ebp, dword [esp + 0x18]
xor edx, edx
pop ecx
pop ecx
mov esi, edx
xor eax, eax
mov ecx, esi
inc eax
shl eax, cl
test ebp, eax
je 0x40a1e6
lea eax, [esi + 0x41]
mov dword [esp + 0x48], esi
mov word [esp + 0x488], ax
xor eax, eax
push 0x4001
mov word [esp + 0x284], ax
mov word [esp + 0x8a8], ax
lea eax, [esp + 0x694]
push 0x2b4
push eax
push edx
lea eax, [esp + 0x498]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [esp + 0x694]
push 0x200
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x694]
push 0x2b4
push eax
xor eax, eax
push eax
lea eax, [esp + 0x498]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea eax, [esp + 0x69c]
push eax
lea eax, [esp + 0x284]
push eax
call fcn.004187d6
pop ecx
pop ecx
lea eax, [esp + 0x1c]
push eax
xor eax, eax
push eax
push 0x1132
push dword [edi]
call ebx
xor edx, edx
inc esi
cmp esi, 0x1f
jle 0x40a139
push edx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
cmp dword [0x4e7f98], 0
mov ebp, dword [esp + 0x18]
je 0x40a23b
test dword [ebp + 8], 0x200
jne 0x40a23b
mov eax, dword [0x51fae8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x1c]
push eax
xor eax, eax
mov dword [esp + 0x38], 0x51f4d0
push eax
push 0x1132
push dword [edi]
mov dword [esp + 0x58], 0xfd
call ebx
push dword [ebp + 0x214]
mov eax, 0x1102
push eax
push eax
push dword [edi]
call ebx
cmp dword [esp + 0x14], 0xffffffff
je 0x40a39f
mov dword [esp + 0x50], 0x14
push dword [ebp + 0x214]
push 4
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
je 0x40a39f
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x50]
mov dword [esp + 0x54], esi
push eax
xor eax, eax
push eax
push 0x113e
push dword [edi]
call ebx
movzx eax, byte [esp + 0x74]
push esi
cmp eax, ebp
je 0x40a2b3
push 1
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
jne 0x40a27e
jmp 0x40a39f
mov eax, 0x1102
push eax
push eax
push dword [edi]
call ebx
cmp word [esp + 0x78], 0
lea ebp, [esp + 0x78]
mov dword [esp + 0x50], 0x15
mov dword [esp + 0x64], 0x104
je 0x40a386
push esi
push 4
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
je 0x40a39f
lea eax, [esp + 0x280]
mov dword [esp + 0x54], esi
mov dword [esp + 0x60], eax
lea eax, [esp + 0x50]
push eax
xor eax, eax
push eax
push 0x113e
push dword [edi]
call ebx
cmp byte [esp + 0x74], 0xfc
jne 0x40a348
lea eax, [esp + 0x280]
cmp dword [esp + 0x60], eax
je 0x40a334
push dword [esp + 0x60]
push eax
call fcn.004187d6
pop ecx
pop ecx
lea eax, [esp + 0x280]
push eax
push ebp
call fcn.004257be
pop ecx
pop ecx
test eax, eax
je 0x40a35a
push esi
push 1
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
jne 0x40a2f4
test esi, esi
je 0x40a39f
push esi
mov eax, 0x1102
push eax
push eax
push dword [edi]
call ebx
push ebp
call fcn.004187f8
pop ecx
lea ebp, [ebp + eax*2]
xor eax, eax
add ebp, 2
cmp word [ebp], ax
jne 0x40a2de
jmp 0x40a388
xor eax, eax
push esi
push eax
push 0x1114
push dword [edi]
call ebx
push esi
push 9
push 0x110b
push dword [edi]
call ebx
xor eax, eax
push eax
push edi
call fcn.00408f99
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x934
ret 8