Function at 0x64932c
Capabilities:
Get disk information
Get file system object information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd50
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x2b0], ebx
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x284], ebx
mov dword [ebp - 0x10], ebx
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x6496b2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.004053b0
cmp dword [ebp - 8], 0
jne 0x64938a
cmp byte [ebp - 9], 0
jne 0x64938a
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
call fcn.00646e94
jmp 0x64967b
mov eax, dword [ebp - 4]
call fcn.006491f4
test al, al
je 0x6494e7
xor eax, eax
push ebp
push 0x649419
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.00405738
jne 0x64940f
cmp byte [ebp - 9], 0
jne 0x64940f
cmp dword [ebp - 8], 0
jl 0x64940f
mov eax, dword [0x98ab48]
cmp dword [eax], 1
je 0x64940f
lea edx, [ebp - 0x284]
mov eax, dword [ebp - 4]
call fcn.0064885c
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 0x10]
call fcn.00404f0c
cmp dword [ebp - 0x10], 0
je 0x64940f
mov eax, dword [ebp - 0x10]
call fcn.0040513c
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
je 0x64940f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64967b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x649423
cmp byte [ebp - 9], 0
je 0x64942d
xor ebx, ebx
jmp 0x649433
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x3c]
lea eax, [ebp - 0x120]
mov edx, 0x110
call fcn.00408a38
mov eax, dword [ebp - 4]
cmp dword [eax + 0x68], 0
je 0x649491
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebp - 8]
push eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
push eax
mov eax, dword [eax]
call dword [eax + 0x48]
call fcn.0041de14
test al, al
je 0x649491
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
lea edx, [ebp - 0x118]
call fcn.00646660
lea eax, [ebp - 0x118]
call fcn.006466d0
jmp 0x64967b
mov eax, dword [ebp - 4]
cmp dword [eax + 0x64], 0
je 0x64967b
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebp - 8]
push eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
call fcn.0041de14
test al, al
je 0x64967b
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
lea edx, [ebp - 0x118]
call fcn.00646660
lea eax, [ebp - 0x118]
call fcn.006466d0
jmp 0x64967b
cmp byte [ebp - 9], 0
je 0x64951c
cmp dword [ebp - 8], 3
jle 0x649500
mov eax, dword [ebp + 8]
call fcn.004053b0
jmp 0x64967b
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 8]
lea edx, [edx + edx*2]
mov ecx, dword [0x989ef4]
mov edx, dword [ecx + edx*4]
call fcn.00405594
jmp 0x64967b
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9c], 0
jne 0x649556
push 0x140
mov eax, dword [ebp - 4]
add eax, 0x70
push eax
push 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
push eax
call sub.shell32.dll_SHGetDataFromIDListA
call fcn.0041de14
test al, al
je 0x64967b
mov eax, dword [ebp - 8]
dec eax
je 0x64956f
dec eax
je 0x649624
dec eax
je 0x64965a
jmp 0x64967b
mov eax, dword [ebp - 4]
test dword [eax + 0x70], 0x10
jbe 0x649588
mov eax, dword [ebp + 8]
call fcn.004053b0
jmp 0x64967b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
cmp eax, 0x400
jae 0x6495a9
test eax, eax
jbe 0x6495a9
mov eax, dword [ebp - 4]
mov dword [eax + 0x90], 0x400
lea eax, [ebp - 0x288]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
mov dword [ebp - 0x2a0], eax
xor eax, eax
mov dword [ebp - 0x29c], eax
fild qword [ebp - 0x2a0]
fdiv dword [0x6496c4]
fstp xword [ebp - 0x2ac]
wait
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x298], eax
mov byte [ebp - 0x294], 3
mov eax, 0x6496d0
mov dword [ebp - 0x290], eax
mov byte [ebp - 0x28c], 0xb
lea edx, [ebp - 0x298]
mov ecx, 1
mov eax, 0x6496dc
call fcn.0040ca7c
mov edx, dword [ebp - 0x288]
mov eax, dword [ebp + 8]
call fcn.00405594
jmp 0x64967b
push 0x408
push 0x160
lea eax, [ebp - 0x280]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.006481b4
push eax
call sub.shell32.dll_SHGetFileInfoA
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x170]
mov ecx, 0x50
call fcn.00405560
jmp 0x64967b
lea edx, [ebp - 0x2b0]
mov eax, dword [ebp - 4]
add eax, 0x84
call fcn.00649270
mov edx, dword [ebp - 0x2b0]
mov eax, dword [ebp + 8]
call fcn.00405594
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6496b9
lea eax, [ebp - 0x2b0]
call fcn.00404c7c
lea eax, [ebp - 0x288]
call fcn.00404c7c
lea eax, [ebp - 0x284]
call fcn.004053b0
lea eax, [ebp - 0x10]
call fcn.00404c7c
ret