Function at 0x1068ce6
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x5c8]
sub esp, 0x648
mov eax, dword [0x10cf230]
mov dword [ebp + 0x5c4], eax
mov eax, dword [ebp + 0x5d0]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x5d8]
push ebx
mov ebx, dword [ebp + 0x5d4]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x5dc]
push esi
xor esi, esi
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x5e4]
push edi
mov edi, dword [ebp + 0x5e0]
mov dword [ebp - 0x60], eax
mov dword [edi], esi
mov eax, dword [ebx + 0xc]
test al, 0xc0
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x70], esi
jne 0x1068d4e
test ah, 1
je 0x1068d6e
push 1
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
jne 0x1068d6e
push 0x61c9
push dword [ebp - 0x60]
call fcn.0105f0eb
jmp 0x1068fce
push 0x468
call fcn.0105f1e1
mov esi, eax
test esi, esi
pop ecx
mov dword [ebp - 0x70], esi
je 0x1068fc1
mov dword [esi], 1
mov dword [esi + 4], 0x80004005
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push dword [ebp - 0x64]
mov dword [esi + 8], eax
call fcn.0105f52f
test eax, eax
pop ecx
jne 0x1068db0
push 0x61b2
jmp 0x1068d61
lea eax, [ebp + 0x3b8]
push eax
push 0x104
push dword [ebp - 0x64]
call fcn.010608ef
add esp, 0xc
test eax, eax
je 0x10690b2
cmp eax, 0x104
ja 0x10690b2
lea eax, [ebp + 0x3b8]
push 0x5c
push eax
call sub.msvcrt.dll_wcsrchr
test eax, eax
pop ecx
pop ecx
je 0x1068df3
and word [eax + 2], 0
lea eax, [ebp + 0x3b8]
push eax
call fcn.01060b64
cmp eax, 4
pop ecx
jne 0x1068e1e
push dword [ebp - 0x64]
call fcn.01060ca1
cmp eax, 0xffffffff
pop ecx
je 0x1068e1e
test al, 1
jne 0x1068e1e
mov dword [ebp - 0x74], 0xc
call fcn.01060d03
cmp eax, 1
jne 0x1068e4a
mov eax, dword [ebx + 0xb4]
test eax, eax
je 0x1068e4a
push dword [ebp - 0x60]
push eax
call fcn.0105fac9
mov edi, eax
test edi, edi
pop ecx
pop ecx
jl 0x10690d6
mov edi, dword [ebp - 0x68]
push dword [ebp - 0x60]
lea eax, [esi + 0xc]
push edi
push eax
mov eax, dword [ebx + 0xc]
push dword [ebx + 0xb4]
or eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x64]
call fcn.0105fc23
mov edi, eax
add esp, 0x18
test edi, edi
jl 0x10690d6
push dword [ebp - 0x60]
lea eax, [esi + 0x28]
push 0x104
push eax
push dword [ebp - 0x64]
call fcn.0105f4db
mov edi, eax
add esp, 0x10
test edi, edi
jl 0x10690d6
call fcn.01060d03
cmp eax, 1
jne 0x1068f72
lea eax, [ebp + 0x3b8]
push eax
call fcn.0105f9ed
test eax, eax
pop ecx
jne 0x1068ebe
push 0x61b1
jmp 0x1068d61
xor edi, edi
push edi
push edi
lea eax, [ebp - 0x78]
push eax
push edi
push edi
push edi
push edi
lea eax, [ebp + 0x3b8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x1068ee8
push dword [ebp - 0x60]
call fcn.0105f56c
jmp 0x1068fcf
test byte [ebp - 0x78], 8
je 0x1068f4b
or dword [esi + 0x440], 2
test byte [ebx + 0xd], 0x20
je 0x1068f21
mov eax, dword [ebx + 0xb4]
cmp eax, edi
je 0x1068f21
push dword [ebp - 0x60]
push eax
lea eax, [esi + 0x28]
push eax
call fcn.0105f9be
mov edi, eax
add esp, 0xc
test edi, edi
jl 0x10690d6
xor edi, edi
cmp dword [ebx + 0xb4], edi
jne 0x1068f4b
push dword [ebp - 0x60]
lea eax, [esi + 0x43c]
push eax
lea eax, [esi + 0x28]
push eax
call fcn.0105f8fc
mov edi, eax
add esp, 0xc
test edi, edi
jl 0x10690d6
xor edi, edi
mov eax, dword [ebx + 0xb4]
cmp eax, edi
je 0x1068f74
push dword [ebp - 0x60]
lea ecx, [esi + 0x43c]
push ecx
push eax
call fcn.0105fa77
mov edi, eax
add esp, 0xc
test edi, edi
jl 0x10690d6
xor edi, edi
push dword [ebp - 0x60]
lea eax, [ebp - 0x5c]
push eax
push 0x208
push edi
call fcn.0105f3a5
push eax
lea eax, [esi + 0x28]
push edi
push eax
call fcn.0105f2bc
mov edi, eax
add esp, 0x1c
test edi, edi
jl 0x10690d6
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x5c]
push eax
push edi
push dword [esi + 0x43c]
call fcn.01060703
add esp, 0xc
cmp eax, edi
mov dword [esi + 0x10], eax
jne 0x1068fd7
push 0x8007000e
push dword [ebp - 0x60]
call fcn.0105f099
pop ecx
pop ecx
mov edi, eax
jmp 0x10690d2
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x10]
push dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x5c]
push eax
push 0x208
push edi
call fcn.0105f3a5
push eax
lea eax, [esi + 0x28]
push 0x100ea68
push eax
call fcn.0105f2bc
mov edi, eax
add esp, 0x1c
test edi, edi
jl 0x10690c3
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x5c]
push eax
push 0
push dword [esi + 0x43c]
call fcn.01060703
add esp, 0xc
test eax, eax
mov dword [esi + 0x14], eax
jne 0x1069046
push 0x8007000e
push dword [ebp - 0x60]
call fcn.0105f099
jmp 0x10690bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x60]
xor ecx, ecx
cmp eax, 0xb7
setne cl
mov eax, ecx
mov ecx, dword [ebp - 0x68]
push dword [ecx]
push eax
push dword [ebp - 0x80]
push ebx
push esi
call fcn.01068699
mov edi, eax
add esp, 0x18
test edi, edi
jl 0x10690c3
mov eax, dword [esi + 0x448]
add eax, 0xc
push 0x100e068
push eax
call fcn.0105ed68
test eax, eax
pop ecx
pop ecx
jne 0x1069095
push 0x61b3
jmp 0x10690b7
mov eax, dword [esi + 0x448]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x7c]
and dword [esi + 4], 0
test eax, eax
je 0x10690c3
mov dword [eax], esi
xor esi, esi
mov dword [ebp - 0x70], esi
jmp 0x10690c3
push 0x61b2
push dword [ebp - 0x60]
call fcn.0105f0eb
pop ecx
pop ecx
mov edi, eax
cmp dword [ebp - 0x6c], 0
je 0x10690d2
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test edi, edi
jge 0x10690fd
test esi, esi
je 0x10690ec
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10690ec
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [esi + 0xc], 0
mov eax, dword [ebp - 0x68]
cmp dword [eax], 1
jne 0x10690fd
push dword [ebp - 0x64]
call fcn.01060b07
pop ecx
lea eax, [ebp - 0x70]
push eax
call fcn.01068bc8
pop ecx
mov ecx, dword [ebp + 0x5c4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.01041c5f
add ebp, 0x5c8
leave
ret