Function at 0x10034ea0
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1010e601
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x1015a4dc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x2c], 0
push eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.10004110
mov dword [ebp - 4], 0
call fcn.10005050
mov ecx, eax
test ecx, ecx
je 0x100351f8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
push 0x10123530
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.10004440
test al, al
jne 0x10034f8b
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
push 0xffffffffffffffff
push 0x10123530
push 0
push 3
call ebx
lea edi, [eax - 1]
test edi, edi
jle 0x10034f83
mov esi, dword [ebp - 0x24]
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x10034f60
push edi
lea ecx, [ebp - 0x24]
call fcn.100053e0
mov esi, dword [ebp - 0x24]
push edi
push esi
push 0xffffffffffffffff
push 0x10123530
push 0
push 3
call ebx
cmp edi, dword [esi - 8]
jg 0x10035202
xor eax, eax
mov dword [esi - 0xc], edi
mov word [esi + edi*2], ax
jmp 0x10034f8e
lea ecx, [ebp - 0x24]
call fcn.1001e8b0
mov esi, dword [ebp - 0x24]
mov ecx, dword [esi - 0x10]
lea edi, [esi - 0x10]
mov byte [ebp - 4], 3
test ecx, ecx
je 0x10034fa7
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x10034fbd
call fcn.10005050
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x1003520c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
push dword [eax - 0xc]
push eax
push dword [esi - 0xc]
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.10023b50
add esp, 0x14
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x20]
push eax
call fcn.1000e8a0
mov edx, dword [ebp - 0x28]
or ebx, 0xffffffff
mov byte [ebp - 4], 2
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10035013
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x1003502b
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov esi, dword [eax - 0xc]
lea ecx, [esi - 1]
test ecx, ecx
cmovns ebx, ecx
cmp ebx, 0x7ffffffe
jg 0x100351ee
mov edi, esi
lea ecx, [ebx + 1]
sub edi, ebx
cmp ecx, esi
jle 0x10035061
mov ecx, edi
mov dword [ebp - 0x28], edi
test ecx, ecx
jle 0x100350ef
jmp 0x10035069
mov ecx, 1
mov dword [ebp - 0x28], ecx
sub esi, ecx
sub edi, ecx
cmp dword [eax - 4], 1
jle 0x10035084
push dword [eax - 0xc]
lea ecx, [ebp - 0x20]
call fcn.10004fa0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
add ecx, ebx
lea edi, [edi*2 + 2]
lea ecx, [eax + ecx*2]
lea eax, [eax + ebx*2]
test edi, edi
je 0x100350c1
test eax, eax
jne 0x100350b2
call fcn.100b0427
mov dword [eax], 0x16
call fcn.100b0300
mov eax, 0x16
jmp 0x100350c3
test ecx, ecx
je 0x1003509b
push edi
push ecx
push eax
call fcn.10095850
add esp, 0xc
xor eax, eax
push eax
call fcn.10004380
add esp, 4
test esi, esi
js 0x10035202
mov eax, dword [ebp - 0x20]
cmp esi, dword [eax - 8]
jg 0x10035202
mov dword [eax - 0xc], esi
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov word [eax + esi*2], cx
mov eax, dword [ebp - 0x20]
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x100351ac
push 8
call fcn.100b1e0e
mov esi, eax
add esp, 4
test esi, esi
je 0x100351ac
push 0
lea eax, [ebp - 0x30]
push eax
push 8
push esi
push 0xc
lea eax, [ebp - 0x1c]
push eax
push 0x2d1400
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x10035155
push esi
call fcn.100b1df1
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100351ac
push dword [esi + 4]
call fcn.100b1e0e
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x30]
push 0
push eax
push dword [esi + 4]
lea eax, [ebp - 0x1c]
push ebx
push 0xc
push eax
push 0x2d1400
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push esi
call fcn.100b1df1
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebx + 0x1c], 7
push ebx
jne 0x100351a4
call fcn.100b1df1
add esp, 4
mov esi, 1
jmp 0x100351ae
call fcn.100b1df1
add esp, 4
xor esi, esi
mov eax, dword [ebp - 0x20]
or ecx, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x100351d0
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10067b98
mov esp, ebp
pop ebp
ret
push 0x80070216
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80070057
call fcn.10004420
push 0x80004005
call fcn.10004420
int3