Function at 0x4056e0
Capabilities:
Get disk information
Get disk size
Get file attributes
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54007b
mov eax, dword fs:[0]
push eax
sub esp, 0x38c
mov eax, dword [0x5a38c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov ebx, ecx
mov eax, dword [ebx + 0x878]
push 0
push 0x1009
push eax
mov dword [ebp - 0x398], ebx
call esi
mov edi, edi
mov ecx, dword [ebx + 0x878]
push 0
push 0
push 0x101c
push ecx
call esi
test eax, eax
jne 0x405730
push 0xffffffffffffffff
push 0xc8
push eax
push 0x551800
lea esi, [ebx + 0x858]
push eax
mov ecx, esi
call fcn.00435cae
push 0xffffffffffffffff
push 0x64
push 0
push 0x5517f8
push 1
mov ecx, esi
call fcn.00435cae
push 0xffffffffffffffff
push 0x64
push 0
push 0x5517f0
push 2
mov ecx, esi
call fcn.00435cae
push 0xffffffffffffffff
push 0x73
push 0
push 0x5517e4
push 3
mov ecx, esi
call fcn.00435cae
lea edx, [ebp - 0x214]
push edx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
xor eax, eax
lea edi, [ebp - 0x214]
mov dword [ebp - 0x394], eax
mov dword [ebp - 0x390], eax
mov dword [ebp - 0x38c], eax
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x37c], eax
cmp byte [ebp - 0x214], al
je 0x405a02
push 0x104
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00527530
add esp, 0xc
push 0x104
xor ebx, ebx
lea ecx, [ebp - 0x114]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
lea edx, [ebp - 0x114]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
lea eax, [ebp - 0x394]
push eax
lea ecx, [ebp - 0x38c]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x40586b
mov eax, dword [ebp - 0x394]
mov edx, dword [ebp - 0x390]
mov ecx, dword [ebp - 0x388]
shrd eax, edx, 0x14
mov dword [ebp - 0x384], eax
mov eax, dword [ebp - 0x38c]
shrd eax, ecx, 0x14
shr edx, 0x14
mov dword [ebp - 0x380], eax
shr ecx, 0x14
jmp 0x405877
mov dword [ebp - 0x384], ebx
mov dword [ebp - 0x380], ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push eax
push edi
call fcn.00401930
mov edx, dword [ebp - 0x37c]
add esp, 8
push ebx
push eax
push ebx
push ebx
push edi
push edx
push 3
mov ecx, esi
call fcn.00435d03
push 1
push 0
push 0
push 0
push 0
push 4
mov ebx, eax
push 0
push ebx
mov ecx, esi
call fcn.00435d51
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x4058ec
push 0x410
push 0x160
lea ecx, [ebp - 0x374]
push ecx
push 0x80
push edi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
lea edx, [ebp - 0x264]
push edx
jmp 0x4058f3
lea eax, [ebp - 0x114]
push eax
push 1
push ebx
mov ecx, esi
call fcn.00435810
call fcn.00428115
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x405a5a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x378], eax
fild dword [ebp - 0x384]
mov ecx, dword [ebp - 0x384]
mov dword [ebp - 4], 0
test ecx, ecx
jns 0x405940
fadd dword [0x5517e0]
fmul qword [0x5517d8]
sub esp, 8
lea edx, [ebp - 0x378]
fstp qword [esp]
push str._10.1f_GB
push edx
call fcn.00401560
mov eax, dword [ebp - 0x378]
add esp, 0x10
push eax
push 2
push ebx
mov ecx, esi
call fcn.00435810
fild dword [ebp - 0x380]
mov ecx, dword [ebp - 0x380]
test ecx, ecx
jns 0x405987
fadd dword [0x5517e0]
fmul qword [0x5517d8]
sub esp, 8
lea edx, [ebp - 0x378]
fstp qword [esp]
push str._10.1f_GB
push edx
call fcn.00401560
mov eax, dword [ebp - 0x378]
add esp, 0x10
push eax
push 3
push ebx
mov ecx, esi
call fcn.00435810
mov eax, dword [ebp - 0x378]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4059e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc dword [ebp - 0x37c]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edi, [edi + eax + 1]
xor eax, eax
cmp byte [edi], al
jne 0x4057e1
mov ebx, dword [ebp - 0x398]
push eax
push 0x5517ad
lea ecx, [ebx + 0x720]
call fcn.004037a0
mov ecx, dword [ebx + 0x804]
push 0
push 0
push 0x14b
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [ebx + 0x720]
push edx
push 0x5517b4
push ebx
call fcn.00401b70
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00527098
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00401050
int3