Function at 0x441867
Capabilities:
Get storage device properties

Disassembly:
xor ebx, ebx
cmp byte [ebp + esi - 0x140c], 0
je 0x441833
mov eax, esi
shr eax, 1
cmp byte [ebp + eax - 0x1410], 0
je 0x441833
mov ecx, ebx
mov edx, edi
movzx eax, word [edx]
lea edx, [edx + 2]
mov dword [ebp + ecx*4 - 0x404], eax
inc ecx
cmp ecx, 0x100
jl 0x4417ff
mov ecx, dword [ebp - 0x141c]
lea eax, [ebp - 0x404]
push eax
push esi
call int.004414d7
xor ebx, ebx
inc ebx
mov dword [ebp - 0x1414], ebx
jmp 0x441839
mov ebx, dword [ebp - 0x1414]
inc esi
add edi, 0x200
cmp esi, 8
jb 0x4417e1
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043ae55
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
mov eax, 0x2cd4
call fcn.0043b0b0
mov eax, dword [0x62e15c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ebx, ecx
call fcn.004259be
test al, al
je 0x44189c
inc ebp
or ebp, dword [ebp + 0x10]
dec ebp
jle 0x441891
jle 0x4418d7
mov al, 0xf6
jl 0x441833
out dx, al
mov al, 0x73
xor esi, esi
push esi
lea eax, [ebp - 0x404]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x404]
push 0
push 0
push 3
push 0
push 3
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x441b46
add byte [ebx - 0x2cd35b], al
inc dword [eax]
and dword [ebp - 0x2cd4], 0
lea eax, [ebp - 0x2b20]
push 0xc
push 0
push eax
call fcn.004463a0
xor eax, eax
push 0x2710
push eax
mov dword [ebp - 0x2b20], eax
mov dword [ebp - 0x2b1c], eax
lea eax, [ebp - 0x2b14]
push eax
call fcn.004463a0
add esp, 0x18
lea eax, [ebp - 0x2cd4]
push 0
push eax
push 0x2710
lea eax, [ebp - 0x2b14]
push eax
push 0xc
lea eax, [ebp - 0x2b20]
push eax
push 0x2d1400
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x441b2c
push 0x80
lea eax, [ebp - 0x204]
push 0
push eax
call fcn.004463a0
push 0x80
lea eax, [ebp - 0x104]
push 0
push eax
call fcn.004463a0
push 0x80
lea eax, [ebp - 0x84]
push 0
push eax
call fcn.004463a0
push 0x80
lea eax, [ebp - 0x184]
push 0
push eax
call fcn.004463a0
add esp, 0x30
lea eax, [ebp - 0x84]
mov ecx, ebx
push eax
push 0
push dword [ebp - 0x2b08]
lea eax, [ebp - 0x2b14]
push eax
call fcn.00441cf9
lea eax, [ebp - 0x104]
mov ecx, ebx
push eax
push 0
push dword [ebp - 0x2b04]
lea eax, [ebp - 0x2b14]
push eax
call fcn.00441cf9
lea eax, [ebp - 0x184]
mov ecx, ebx
push eax
push 0
push dword [ebp - 0x2b00]
lea eax, [ebp - 0x2b14]
push eax
call fcn.00441cf9
lea eax, [ebp - 0x204]
mov ecx, ebx
push eax
push 1
push dword [ebp - 0x2afc]
lea eax, [ebp - 0x2b14]
push eax
call fcn.00441cf9
lea ecx, [ebp - 0x2cd0]
call fcn.0044123e
lea eax, [ebp - 0x84]
push eax
call fcn.00454b10
pop ecx
test eax, eax
je 0x441a38
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x2ca8]
push eax
call fcn.00454ba0
pop ecx
pop ecx
lea eax, [ebp - 0x104]
push eax
call fcn.00454b10
pop ecx
test eax, eax
je 0x441a5e
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x2ca8]
push eax
call fcn.00454bb0
pop ecx
pop ecx
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x2ba8]
push eax
call fcn.00454ba0
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x2c28]
push eax
call fcn.00454ba0
add esp, 0x10
lea eax, [ebp - 0x2c28]
mov ecx, ebx
push eax
call fcn.00442145
lea eax, [ebp - 0x2ca8]
mov ecx, ebx
push eax
call fcn.00442145
lea eax, [ebp - 0x2ba8]
mov ecx, ebx
push eax
call fcn.00442145
push 0x2710
lea eax, [ebp - 0x2b14]
push 0
push eax
call fcn.004463a0
add esp, 0xc
lea eax, [ebp - 0x2cd4]
xor ecx, ecx
push ecx
push eax
push 0x2710
lea eax, [ebp - 0x2b14]
push eax
push ecx
push ecx
push 0x700a0
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x441b46
mov eax, dword [ebp - 0x2afc]
mov dword [ebp - 0x2cd0], eax
mov eax, dword [ebp - 0x2af8]
mov dword [ebp - 0x2ccc], eax
xor eax, eax
cmp dword [ebp - 0x2b0c], 0xc
push 2
pop ecx
cmove eax, ecx
mov ecx, ebx
mov dword [ebp - 0x2b28], eax
lea eax, [ebp - 0x2cd0]
push eax
call fcn.0044129c
jmp 0x441b3f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._nDeviceIOControl_IOCTL_STORAGE_QUERY_PROPERTY_error___d_n
call fcn.00442248
pop ecx
pop ecx
add byte [ecx + 0x59], bl
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, 0x10
jl 0x44189e
call fcn.00425c70
test al, al
je 0x441b74
and byte [ebp + esi + 0x5217e579], dh
inc ebx
loop 0x441b7c
les eax, [edx]
stc
cld
in eax, 0x56
and esi, dword [edi + 0x45]
cmpsb byte [esi], byte es:[edi]
nop
enter 0xffffffffffffd480, 0x79
mov edi, 0x3f9ee8a8
invalid
call fcn.00425b17
test al, al
je 0x441b9b
push ds
pop edi
jle 0x441b3c
sub eax, 0xdbba7e7c
mov esp, 0x469b34ef
js 0x441bf5
adc byte [ebp + 0x647fbc0f], al
retf 0xb6b9
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043ae55
mov esp, ebp
pop ebp
ret
cdq
idiv ecx
cmp dword [esi], 0
mov dword [ebp + 8], eax
je 0x441c14
mov eax, dword [esi + 8]
sub eax, dword [esi]
cdq
idiv ecx
push ecx
push eax
push dword [esi]
call fcn.00413020
add esp, 0xc
imul eax, ebx, 0x1b0
add eax, edi
mov dword [esi + 8], eax
imul eax, dword [ebp + 8], 0x1b0
add eax, edi
mov dword [esi + 4], eax
mov dword [esi], edi
call fcn.0043b32f
ret 4