Function at 0x44e910
Capabilities:
Get storage device properties

Disassembly:
push 0xffffffffffffffff
push 0x45c690
mov eax, dword fs:[0]
push eax
mov eax, 0x2f30
call fcn.00436270
mov eax, dword [0x47b5b0]
xor eax, esp
mov dword [esp + 0x2f2c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47b5b0]
xor eax, esp
push eax
lea eax, [esp + 0x2f44]
mov dword fs:[0], eax
push 0xffffffffffffffff
xor ebx, ebx
push ebx
mov dword [esp + 0x28], ecx
xor edi, edi
call fcn.004150d0
push 0x1fe
lea ecx, [esp + 0x236]
xor eax, eax
push ebx
push ecx
mov word [esp + 0x23c], ax
call fcn.00434200
mov ebp, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
add esp, 0xc
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x18]
push edx
push 0x467998
lea edx, [esp + 0x238]
call fcn.00404700
add esp, 8
push ebx
push ebx
push 3
push ebx
push 3
push ebx
lea eax, [esp + 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x44eba4
xor eax, eax
push 0x2710
lea ecx, [esp + 0x834]
push ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
push ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
call fcn.00434200
add esp, 0xc
push ebx
lea edx, [esp + 0x20]
push edx
push 0x2710
lea eax, [esp + 0x83c]
push eax
push 0xc
lea ecx, [esp + 0x38]
push ecx
push 0x2d1400
push esi
call ebp
test eax, eax
je 0x44eb9d
call fcn.00414a0e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x44ebe0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push 0x1ff
lea ecx, [esp + 0x35]
push ebx
mov dword [esp + 0x2f54], ebx
push ecx
mov byte [esp + 0x3c], bl
call fcn.00434200
push 0x3fe
lea eax, [esp + 0x442]
xor edx, edx
push ebx
push eax
mov word [esp + 0x448], dx
call fcn.00434200
mov eax, dword [esp + 0x860]
add esp, 0x18
lea edi, [esp + 0x30]
lea ecx, [esp + 0x830]
call fcn.0044d240
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x44ea98
sub eax, edx
push eax
lea ecx, [esp + 0x34]
push ecx
push 0x200
lea edx, [esp + 0x43c]
push edx
push ebx
call fcn.00433608
lea eax, [esp + 0x444]
add esp, 0x14
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x44eac7
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x434]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401f90
lea ebx, [esp + 0x14]
call fcn.00403480
mov ebx, eax
call fcn.00403500
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
mov edi, 1
je 0x44eb70
push 0x4679c0
push eax
call fcn.00432a46
add esp, 8
test eax, eax
je 0x44eb70
push 0x2710
lea ecx, [esp + 0x834]
push 0
push ecx
call fcn.00434200
add esp, 0xc
push 0
lea edx, [esp + 0x20]
push edx
push 0x2710
lea eax, [esp + 0x83c]
push eax
push 0
push 0
push 0x700a0
push esi
call ebp
test eax, eax
je 0x44eb70
cmp dword [esp + 0x838], 0xc
jne 0x44eb70
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.004152ff
mov dword [esp + 0x2f4c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44eb9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor ebx, ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 0x10
mov dword [esp + 0x18], eax
jl 0x44e989
mov eax, edi
mov ecx, dword [esp + 0x2f44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2f2c]
xor ecx, esp
call fcn.00431fec
add esp, 0x2f3c
ret
push 0x80004005
call fcn.00402190
int3