Function at 0x100106a0
Capabilities:
Get disk information
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x858
mov eax, dword [0x10067bf0]
xor eax, ebp
mov dword [ebp - 0x38], eax
cmp dword [0x1011fd7c], 5
je 0x100106c8
cmp dword [0x1011fd7c], 0x91
jne 0x100106e0
mov eax, dword [ebp + 0xc]
push eax
movsx ecx, byte [ebp + 8]
push ecx
push str.IsSpecUSB_:___c___s_
push 0
call fcn.1003b780
add esp, 0x10
mov dl, byte [ebp + 8]
mov byte [ebp - 1], dl
mov eax, dword [0x10059474]
mov dword [ebp - 0x20], eax
mov cx, word [0x10059478]
mov word [ebp - 0x1c], cx
mov dl, byte [0x1005947a]
mov byte [ebp - 0x1a], dl
mov eax, dword [str..x:]
mov dword [ebp - 0x858], eax
mov cx, word [0x10059480]
mov word [ebp - 0x854], cx
mov dl, byte [0x10059482]
mov byte [ebp - 0x852], dl
mov al, byte [ebp - 1]
mov byte [ebp - 0x20], al
mov cl, byte [ebp - 1]
mov byte [ebp - 0x1c], cl
mov dl, byte [ebp - 1]
mov byte [ebp - 0x854], dl
mov dword [ebp - 0x28], 0xffffffff
push 0
push 0
push 3
push 0
push 3
push 0
lea eax, [ebp - 0x858]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
jne 0x10010790
cmp dword [0x1011fd7c], 5
je 0x1001077a
cmp dword [0x1011fd7c], 0x91
jne 0x10010789
push str.ret_IsSpecUSB_false1
push 0
call fcn.1003b780
add esp, 8
xor al, al
jmp 0x10010afc
mov dword [ebp - 0x644], 0
push 0
lea ecx, [ebp - 0x644]
push ecx
push 0xc
lea edx, [ebp - 0x34]
push edx
push 0
push 0
push 0x2d1080
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x100107cb
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x28], 0xffffffff
jne 0x10010806
cmp dword [0x1011fd7c], 5
je 0x100107f0
cmp dword [0x1011fd7c], 0x91
jne 0x100107ff
push str.ret_IsSpecUSB_false2
push 0
call fcn.1003b780
add esp, 8
xor al, al
jmp 0x10010afc
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 0x43c], eax
push 0x200
lea ecx, [ebp - 0x850]
push ecx
lea edx, [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x10010860
cmp dword [0x1011fd7c], 5
je 0x1001084a
cmp dword [0x1011fd7c], 0x91
jne 0x10010859
push str.ret_IsSpecUSB_false3
push 0
call fcn.1003b780
add esp, 8
xor al, al
jmp 0x10010afc
lea eax, [ebp - 0x850]
push eax
mov ecx, dword [ebp - 0x43c]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call fcn.100103c0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x100108ae
cmp dword [0x1011fd7c], 5
je 0x10010898
cmp dword [0x1011fd7c], 0x91
jne 0x100108a7
push str.ret_IsSpecUSB_false4
push 0
call fcn.1003b780
add esp, 8
xor al, al
jmp 0x10010afc
mov dword [ebp - 8], 0
xor eax, eax
mov word [ebp - 0x438], ax
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x64c], 0
push 0
mov ecx, dword [ebp - 0x10]
push ecx
lea edx, [ebp - 0x64c]
push edx
call dword [sym.imp.SETUPAPI.dll_CM_Get_Parent]
mov dword [ebp - 0xc], eax
push 0
push 0x200
lea eax, [ebp - 0x640]
push eax
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [sym.imp.SETUPAPI.dll_CM_Get_Device_IDA]
cmp dword [0x1011fd7c], 5
je 0x10010912
cmp dword [0x1011fd7c], 0x91
jne 0x10010928
lea edx, [ebp - 0x640]
push edx
push str.buf__s_
push 0
call fcn.1003b780
add esp, 0xc
push 0x5c
lea eax, [ebp - 0x640]
push eax
call fcn.10003a50
add esp, 8
mov dword [ebp - 0x648], eax
cmp dword [ebp - 0x648], 0
jne 0x10010973
cmp dword [0x1011fd7c], 5
je 0x1001095d
cmp dword [0x1011fd7c], 0x91
jne 0x1001096c
push str.ret_IsSpecUSB_false5
push 0
call fcn.1003b780
add esp, 8
xor al, al
jmp 0x10010afc
push 0x5c
mov ecx, dword [ebp - 0x648]
add ecx, 1
push ecx
call fcn.10003a50
add esp, 8
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x100109bb
cmp dword [0x1011fd7c], 5
je 0x100109a5
cmp dword [0x1011fd7c], 0x91
jne 0x100109b4
push str.ret_IsSpecUSB_false6
push 0
call fcn.1003b780
add esp, 8
xor al, al
jmp 0x10010afc
mov edx, dword [ebp - 0x18]
mov byte [edx], 0
cmp dword [0x1011fd7c], 5
je 0x100109d6
cmp dword [0x1011fd7c], 0x91
jne 0x100109f3
mov eax, dword [ebp - 0x648]
add eax, 1
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.sHWID__s_pFound11__s_
push 0
call fcn.1003b780
add esp, 0x10
mov edx, dword [ebp - 0x648]
add edx, 1
push edx
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x10010a36
cmp dword [0x1011fd7c], 5
je 0x10010a20
cmp dword [0x1011fd7c], 0x91
jne 0x10010a2f
push str.ret_IsSpecUSB_true1
push 0
call fcn.1003b780
add esp, 8
mov al, 1
jmp 0x10010afc
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.1003e400
add esp, 4
cmp eax, 0xa
jbe 0x10010ad6
mov eax, dword [ebp - 0x18]
push eax
call fcn.1003e400
add esp, 4
mov ecx, dword [ebp - 0x18]
lea edx, [ecx + eax - 0xa]
mov dword [ebp - 0x18], edx
cmp dword [0x1011fd7c], 5
je 0x10010a7f
cmp dword [0x1011fd7c], 0x91
jne 0x10010a96
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.sHWID__s_pFound2__s_
push 0
call fcn.1003b780
add esp, 0x10
cmp dword [ebp - 0x18], 0
je 0x10010ad6
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x10010ad6
cmp dword [0x1011fd7c], 5
je 0x10010ac3
cmp dword [0x1011fd7c], 0x91
jne 0x10010ad2
push str.ret_IsSpecUSB_true2
push 0
call fcn.1003b780
add esp, 8
mov al, 1
jmp 0x10010afc
cmp dword [0x1011fd7c], 5
je 0x10010aeb
cmp dword [0x1011fd7c], 0x91
jne 0x10010afa
push str.ret_IsSpecUSB_false7
push 0
call fcn.1003b780
add esp, 8
xor al, al
mov ecx, dword [ebp - 0x38]
xor ecx, ebp
call fcn.1003e48b
mov esp, ebp
pop ebp
ret