Function at 0x105c94f
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x1075318]
cmp eax, 0x1075318
je 0x105c97e
test dword [eax + 0x1c], 0x20000000
je 0x105c97e
push 0x100f984
push 0x17
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01016edb
push esi
push edi
push 1
push 0x2b2
push 0x100f994
lea ecx, [ebp - 0x58]
call fcn.01055826
xor esi, esi
mov eax, 0x1010420
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
cmp dword [ebp + 0xc], esi
je 0x105c9cc
mov ecx, dword [ebp + 0xc]
call fcn.010635d7
cmp dword [ebp + 0x10], esi
je 0x105c9d9
mov ecx, dword [ebp + 0x10]
call fcn.010635d7
lea eax, [ebp - 0x10]
push eax
push 0x10
call dword [sym.imp.ntdll.dll_RtlSetThreadErrorMode]
mov ecx, eax
call fcn.0105d4af
mov dword [ebp - 0x58], eax
cmp eax, esi
mov eax, 0x2c5
jge 0x105ca01
mov word [ebp - 0x52], ax
jmp 0x105cc3f
mov word [ebp - 0x54], ax
mov eax, 0x2c7
cmp dword [ebp + 0xc], esi
jne 0x105ca18
mov dword [ebp - 0x58], 0x80070057
jmp 0x105c9f8
mov word [ebp - 0x54], ax
mov eax, 0x2c8
cmp dword [ebp + 0x10], esi
je 0x105ca0f
push 0x20
pop edi
push ebx
push edi
mov word [ebp - 0x54], ax
mov dword [ebp - 0x58], esi
call fcn.01017294
push dword [ebp - 8]
mov edi, eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea ebx, [edi + edi + 2]
push ebx
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov dword [ebp - 8], eax
cmp eax, esi
je 0x105caa5
push ebx
mov ecx, 0x2d1
push esi
push eax
mov dword [ebp - 0x58], esi
mov word [ebp - 0x54], cx
call sub.msvcrt.dll_memset
mov ebx, dword [ebp - 8]
add esp, 0xc
push esi
push esi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
push esi
push edi
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x105cab6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x15
je 0x105cab6
cmp eax, 0xea
jne 0x105cc26
mov eax, 0x2e0
jmp 0x105ca2a
mov dword [ebp - 0x58], 0x8007000e
mov eax, 0x2d1
jmp 0x105cc3a
xor eax, eax
mov word [ebx + edi*2], ax
cmp word [ebx], si
je 0x105cadf
mov edx, ebx
lea ecx, [ebp - 0x34]
call fcn.01064416
mov dword [ebp - 0x58], eax
cmp eax, esi
mov eax, 0x2e6
jl 0x105cc3a
mov word [ebp - 0x54], ax
mov dword [ebp - 0xc], 0x40
mov ebx, 0x2f0
push dword [ebp - 0xc]
call fcn.01017294
push dword [ebp - 4]
mov edi, eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea eax, [edi + edi]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov dword [ebp - 4], eax
cmp eax, esi
je 0x105cb46
mov ecx, ebx
mov word [ebp - 0x54], cx
lea ecx, [ebp - 0xc]
push ecx
push edi
push eax
push dword [ebp + 8]
mov dword [ebp - 0x58], esi
call dword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
jne 0x105cb68
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x105cb56
mov eax, 0x2f6
mov dword [ebp - 0x58], esi
mov word [ebp - 0x54], ax
jmp 0x105caeb
mov dword [ebp - 0x58], 0x8007000e
mov word [ebp - 0x52], bx
jmp 0x105cc3e
call fcn.0105d3b8
mov dword [ebp - 0x58], eax
mov eax, 0x2f6
jmp 0x105cc3a
mov edi, dword [ebp - 4]
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x105cb70
sub eax, edx
sar eax, 1
je 0x105cbee
cmp word [edi], si
je 0x105cbee
mov ebx, 0x30a
cmp edi, dword [ebp - 4]
je 0x105cbb0
mov edx, 0x1009c14
lea ecx, [ebp - 0x28]
call fcn.01064416
mov dword [ebp - 0x58], eax
cmp eax, esi
mov eax, 0x308
jl 0x105cc3a
mov word [ebp - 0x54], ax
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.01064416
cmp eax, esi
mov dword [ebp - 0x58], eax
jl 0x105cb4d
push 0x5c
mov eax, ebx
pop edx
lea ecx, [ebp - 0x28]
mov word [ebp - 0x54], ax
call fcn.01063962
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x105cbd7
sub eax, edx
sar eax, 1
lea edi, [edi + eax*2 + 2]
cmp word [edi], si
jne 0x105cb8a
cmp dword [ebp - 0x24], esi
jne 0x105cc0e
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x28]
call fcn.0106470b
mov dword [ebp - 0x58], eax
cmp eax, esi
mov eax, 0x311
jl 0x105cc3a
mov word [ebp - 0x54], ax
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x28]
call fcn.01063925
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x34]
call fcn.01063925
jmp 0x105cc3e
call fcn.0105d3b8
mov dword [ebp - 0x58], eax
mov eax, 0x2e0
mov dword [ebp - 0x50], 1
mov word [ebp - 0x52], ax
pop ebx
push dword [ebp - 4]
mov edi, dword [sym.imp.ole32.dll_CoTaskMemFree]
call edi
push dword [ebp - 8]
call edi
push esi
push dword [ebp - 0x10]
call dword [sym.imp.ntdll.dll_RtlSetThreadErrorMode]
mov esi, dword [ebp - 0x58]
lea ecx, [ebp - 0x28]
call fcn.010635b3
lea ecx, [ebp - 0x34]
call fcn.010635b3
lea ecx, [ebp - 0x58]
call fcn.01055a3c
pop edi
mov eax, esi
pop esi
leave
ret 0xc