Function at 0x10011a40
Capabilities:
Get disk information

Disassembly:
sub esp, 0x24
push ebx
push edi
mov edi, ecx
lea eax, [edi + 0x1c]
push eax
lea ecx, [esp + 0xc]
call fcn.1000fcf0
lea ecx, [esp + 0x14]
push 4
push ecx
call fcn.1000cdf0
lea edx, [esp + 0x20]
push 4
push edx
call fcn.1000cdf0
mov ecx, dword [esp + 0x28]
xor ebx, ebx
add esp, 0x10
cmp ecx, ebx
je 0x10011a80
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
push ecx
lea ecx, [edi + 0x24]
mov dword [esp + 0x20], ebx
call fcn.100104d0
test eax, eax
mov ecx, dword [esp + 0x18]
je 0x10011b1c
cmp ecx, ebx
mov edi, ecx
je 0x10011aaa
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
lea ecx, [esp + 0x30]
push edi
push ecx
call fcn.1001cd50
mov edx, dword [eax]
mov ecx, dword [esp + 0x3c]
add esp, 8
push edx
call fcn.100035c0
mov eax, dword [esp + 0x30]
push eax
call fcn.10002e75
add esp, 4
cmp edi, ebx
mov dword [esp + 0x30], ebx
je 0x10011ae2
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x10011af5
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x10011b09
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], ebx
lea ecx, [esp + 8]
call fcn.1000fd10
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret 8
cmp ecx, ebx
je 0x10011b2b
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x10011b3f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], ebx
push ebp
push esi
lea ecx, [esp + 0x10]
call fcn.1000fd10
mov eax, dword [edi + 0x3c]
mov esi, dword [eax + 0x6bc]
mov ebp, 1
jmp 0x10011b62
xor ebx, ebx
test ebp, ebp
jbe 0x10011b71
push ebp
call fcn.10002e89
add esp, 4
mov ebx, eax
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x1c]
push ecx
push ebp
push ebx
push 1
push edx
call esi
mov edi, eax
cmp edi, 0xc0000004
je 0x10011b93
cmp edi, 0x80000005
jne 0x10011ba8
add ebp, 0x100
test ebx, ebx
je 0x10011b60
push ebx
call fcn.10002e75
add esp, 4
jmp 0x10011b60
test edi, edi
jne 0x10011e41
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.1000d5b0
mov ecx, dword [eax]
mov edi, dword [esp + 0x44]
add esp, 8
push ecx
mov ecx, edi
call fcn.100035c0
mov edx, dword [esp + 0x38]
push edx
call fcn.10002e75
add esp, 4
test ebx, ebx
je 0x10011be6
push ebx
call fcn.10002e75
add esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
push 0
push 0
call ebx
mov esi, eax
test esi, esi
jbe 0x10011e35
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10002e89
add esp, 4
mov ebp, eax
push ebp
push esi
mov dword [esp + 0x34], ebp
call ebx
test eax, eax
je 0x10011e28
cmp word [ebp], 0
mov dword [esp + 0x10], ebp
je 0x10011e28
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x10011c44
mov ebp, dword [esp + 0x10]
push ebp
call ebx
add eax, 1
push eax
lea ecx, [esp + 0x28]
call fcn.100013e9
mov esi, dword [esp + 0x24]
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebp
call ebx
mov word [esi + eax*2 - 2], 0
mov ebp, 1
xor esi, esi
test esi, esi
je 0x10011c7e
push esi
call fcn.10002e75
add esp, 4
xor ecx, ecx
mov eax, ebp
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10002e89
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x24]
push ebp
push esi
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x10011cd4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x10011cbc
add ebp, 0x40
jmp 0x10011c71
test esi, esi
je 0x10011cc9
push esi
call fcn.10002e75
add esp, 4
mov eax, dword [esp + 0x24]
test eax, eax
jmp 0x10011dfe
mov eax, dword [edi]
push eax
call ebx
push esi
mov ebp, eax
call ebx
cmp ebp, eax
jl 0x10011de9
push esi
call ebx
push eax
xor ebp, ebp
push ebp
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.1000ff20
mov eax, dword [eax]
push 1
push esi
push eax
call fcn.1000cff0
mov edx, dword [esp + 0x20]
test eax, eax
push edx
sete byte [esp + 0x48]
call fcn.10002e75
add esp, 0x10
cmp byte [esp + 0x38], 0
mov dword [esp + 0x14], ebp
je 0x10011deb
push 0xffffffffffffffff
push esi
call ebx
push eax
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.1000ff20
push 0x10020ba8
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], ebp
call fcn.100035c0
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, edi
call fcn.100035c0
mov edx, dword [esp + 0x38]
push edx
call fcn.10002e75
mov eax, dword [esp + 0x28]
add esp, 4
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], ebp
call fcn.100035c0
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x1c]
push edi
push edx
call fcn.10005a10
mov eax, dword [eax]
add esp, 0xc
push eax
mov ecx, edi
call fcn.100035c0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.10002e75
mov edx, dword [esp + 0x3c]
push edx
mov dword [esp + 0x20], ebp
call fcn.10002e75
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x28]
push edi
push ecx
call fcn.10005a10
mov edx, dword [eax]
add esp, 0x14
push edx
mov ecx, edi
call fcn.100035c0
mov eax, dword [esp + 0x1c]
push eax
call fcn.10002e75
mov ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x24], ebp
call fcn.10002e75
add esp, 8
mov dword [esp + 0x3c], ebp
jmp 0x10011deb
xor ebp, ebp
cmp esi, ebp
je 0x10011df8
push esi
call fcn.10002e75
add esp, 4
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x10011e09
push eax
call fcn.10002e75
add esp, 4
mov esi, dword [esp + 0x10]
push esi
call ebx
cmp word [esi + eax*2 + 2], 0
lea eax, [esi + eax*2 + 2]
mov dword [esp + 0x10], eax
jne 0x10011c40
mov ebp, dword [esp + 0x2c]
test ebp, ebp
je 0x10011e35
push ebp
call fcn.10002e75
add esp, 4
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret 8
test ebx, ebx
je 0x10011e4e
push ebx
call fcn.10002e75
add esp, 4
pop esi
pop ebp
mov eax, edi
pop edi
pop ebx
add esp, 0x24
ret 8