Function at 0x100b5150
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1018d37a
mov eax, dword fs:[0]
push eax
sub esp, 0x680
mov eax, dword [0x101d8724]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x600], 0
movzx eax, byte [ebp + 0xc]
push eax
lea ecx, [ebp - 0x4bc]
push ecx
call fcn.100b50c0
add esp, 8
mov dword [ebp - 4], 1
movzx edx, byte [ebp - 0x4bc]
neg edx
sbb edx, edx
add edx, 1
movzx eax, dl
test eax, eax
je 0x100b520b
lea ecx, [ebp - 0x609]
mov dword [ebp - 0x608], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x670], edx
mov byte [ebp - 4], 2
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.10042350
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x600]
or eax, 1
mov dword [ebp - 0x600], eax
mov dword [ebp - 4], 3
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4bc]
call fcn.10081c00
mov eax, dword [ebp + 8]
jmp 0x100b57b2
mov ecx, dword [0x101a349c]
mov dword [ebp - 0x90], ecx
mov dl, byte [ebp + 0xc]
mov byte [ebp - 0x90], dl
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 0x674], eax
cmp dword [ebp - 0x674], 2
je 0x100b5250
cmp dword [ebp - 0x674], 3
je 0x100b5276
cmp dword [ebp - 0x674], 5
je 0x100b527f
jmp 0x100b5288
movzx ecx, byte [ebp + 0xc]
push ecx
call fcn.100b4f30
add esp, 4
movzx edx, al
test edx, edx
je 0x100b526d
mov dword [ebp - 0x50], 0x101a76f8
jmp 0x100b5274
mov dword [ebp - 0x50], 0x101a76d8
jmp 0x100b52de
mov dword [ebp - 0x50], 0x101a76d8
jmp 0x100b52de
mov dword [ebp - 0x50], 0x101a76e8
jmp 0x100b52de
lea eax, [ebp - 0x615]
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x678], ecx
mov byte [ebp - 4], 4
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.10042350
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x600]
or edx, 1
mov dword [ebp - 0x600], edx
mov dword [ebp - 4], 5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4bc]
call fcn.10081c00
mov eax, dword [ebp + 8]
jmp 0x100b57b2
push 0x12
push 0
push 0
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xffffffff
jne 0x100b534d
lea ecx, [ebp - 0x621]
mov dword [ebp - 0x620], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x67c], edx
mov byte [ebp - 4], 6
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.10042350
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x600]
or eax, 1
mov dword [ebp - 0x600], eax
mov dword [ebp - 4], 7
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4bc]
call fcn.10081c00
mov eax, dword [ebp + 8]
jmp 0x100b57b2
mov dword [ebp - 0xb0], 0x400
lea ecx, [ebp - 0x4b4]
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x6c], 0x1c
lea edx, [ebp - 0x62d]
mov dword [ebp - 0x62c], edx
lea eax, [ebp - 0xac]
mov dword [ebp - 0x680], eax
mov byte [ebp - 4], 8
push 0
push 0
lea ecx, [ebp - 0xac]
call fcn.10042350
mov byte [ebp - 4], 9
mov dword [ebp - 0x4c0], 0
jmp 0x100b53b4
mov ecx, dword [ebp - 0x4c0]
add ecx, 1
mov dword [ebp - 0x4c0], ecx
xor edx, edx
cmp dword [ebp - 0x9c], 0
sete dl
movzx eax, dl
test eax, eax
je 0x100b572a
lea ecx, [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x4c0]
push edx
mov eax, dword [ebp - 0x50]
push eax
push 0
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x100b53ef
jmp 0x100b572a
mov dword [ebp - 0x4c4], 0
push 0
lea edx, [ebp - 0x4c4]
push edx
push 0
push 0
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
cmp dword [ebp - 0x4c4], 0
je 0x100b5725
cmp dword [ebp - 0x4c4], 0x400
ja 0x100b5725
mov edx, dword [ebp - 0x8c]
mov dword [edx], 5
push 0x1c
push 0
lea eax, [ebp - 0x88]
push eax
call fcn.1014e270
add esp, 0xc
mov dword [ebp - 0x88], 0x1c
lea ecx, [ebp - 0x88]
push ecx
lea edx, [ebp - 0x4c4]
push edx
mov eax, dword [ebp - 0x4c4]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
lea edx, [ebp - 0x6c]
push edx
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
test eax, eax
je 0x100b5725
mov dword [ebp - 0x5dc], 0
push 0
mov ecx, dword [ebp - 0x74]
push ecx
lea edx, [ebp - 0x5dc]
push edx
call dword [sym.imp.SETUPAPI.dll_CM_Get_Parent]
push 0
push 0x104
lea eax, [ebp - 0x5d4]
push eax
mov ecx, dword [ebp - 0x5dc]
push ecx
call dword [sym.imp.SETUPAPI.dll_CM_Get_Device_IDA]
mov edx, dword [ebp - 0x8c]
add edx, 4
push edx
lea eax, [ebp - 0x4cc]
push eax
call fcn.100b4fd0
add esp, 8
mov byte [ebp - 4], 0xa
movzx ecx, byte [ebp - 0x4cc]
neg ecx
sbb ecx, ecx
add ecx, 1
movzx edx, cl
test edx, edx
jne 0x100b5504
mov eax, dword [ebp - 0x4c8]
cmp eax, dword [ebp - 0x4b8]
je 0x100b552e
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 9
movzx ecx, byte [ebp - 0x4cc]
test ecx, ecx
je 0x100b5529
lea ecx, [ebp - 0x4cc]
call fcn.100b71d0
mov byte [ebp - 0x4cc], 0
jmp 0x100b53a5
lea edx, [ebp - 0x5d4]
push edx
lea ecx, [ebp - 0x5f8]
call fcn.10083da0
mov byte [ebp - 4], 0xc
push 4
push 0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x5f8]
call fcn.100b6ab0
mov dword [ebp - 0x684], eax
mov ecx, dword [ebp - 0x684]
mov dword [ebp - 0x648], ecx
mov byte [ebp - 4], 0xd
push str.USB_
mov ecx, dword [ebp - 0x648]
call fcn.100b79f0
neg eax
sbb eax, eax
add eax, 1
movzx edx, al
neg edx
sbb edx, edx
add edx, 1
mov byte [ebp - 0x5f9], dl
mov byte [ebp - 4], 0xe
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.10042350
mov byte [ebp - 4], 0xc
movzx eax, byte [ebp - 0x5f9]
test eax, eax
je 0x100b55f4
mov byte [ebp - 4], 0xf
push 0
push 1
lea ecx, [ebp - 0x5f8]
call fcn.10042350
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], 9
movzx ecx, byte [ebp - 0x4cc]
test ecx, ecx
je 0x100b55ef
lea ecx, [ebp - 0x4cc]
call fcn.100b71d0
mov byte [ebp - 0x4cc], 0
jmp 0x100b53a5
mov byte [ebp - 0x64b], 0x5c
push 1
push 0xffffffffffffffff
lea edx, [ebp - 0x64b]
push edx
lea ecx, [ebp - 0x5f8]
call fcn.100b6cc0
mov dword [ebp - 0x5d8], eax
cmp dword [ebp - 0x5d8], 0xffffffff
jne 0x100b5661
mov byte [ebp - 4], 0x11
push 0
push 1
lea ecx, [ebp - 0x5f8]
call fcn.10042350
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], 9
movzx eax, byte [ebp - 0x4cc]
test eax, eax
je 0x100b565c
lea ecx, [ebp - 0x4cc]
call fcn.100b71d0
mov byte [ebp - 0x4cc], 0
jmp 0x100b53a5
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x5d8]
add ecx, 1
push ecx
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0x5f8]
call fcn.100b6ab0
mov dword [ebp - 0x688], eax
mov eax, dword [ebp - 0x688]
mov dword [ebp - 0x654], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x654]
push ecx
lea ecx, [ebp - 0x5f8]
call fcn.10088af0
mov byte [ebp - 4], 0x14
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.10042350
mov byte [ebp - 4], 0xc
mov byte [ebp - 0x655], 0x26
push 1
push 0
lea edx, [ebp - 0x655]
push edx
lea ecx, [ebp - 0x5f8]
call fcn.100955d0
cmp eax, 0xffffffff
jne 0x100b56f4
mov eax, dword [0x101a1a18]
push eax
push 0
lea ecx, [ebp - 0x5f8]
push ecx
lea ecx, [ebp - 0xac]
call fcn.100861f0
mov byte [ebp - 4], 0x15
push 0
push 1
lea ecx, [ebp - 0x5f8]
call fcn.10042350
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 0x16
mov byte [ebp - 4], 9
movzx edx, byte [ebp - 0x4cc]
test edx, edx
je 0x100b5725
mov byte [ebp - 0x4cc], 0
jmp 0x100b53a5
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
lea ecx, [ebp - 0x665]
mov dword [ebp - 0x664], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x68c], edx
mov byte [ebp - 4], 0x17
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.10042350
lea eax, [ebp - 0xac]
push eax
mov ecx, dword [ebp + 8]
call fcn.10088af0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x600]
or ecx, 1
mov dword [ebp - 0x600], ecx
mov byte [ebp - 4], 0x18
push 0
push 1
lea ecx, [ebp - 0xac]
call fcn.10042350
mov byte [ebp - 4], 1
mov dword [ebp - 4], 0x19
mov byte [ebp - 4], 0
movzx edx, byte [ebp - 0x4bc]
test edx, edx
je 0x100b57af
mov byte [ebp - 0x4bc], 0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1014c68a
mov esp, ebp
pop ebp
ret