Function at 0x45ce80
Capabilities:
Get storage device properties
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50d27b
mov eax, dword fs:[0]
push eax
mov eax, 0x1494
call fcn.004dece0
mov eax, dword [0x550144]
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 edi, ecx
mov ebx, dword [edi]
lea eax, [ebp - 0x210]
push 0x200
push 0
push eax
mov dword [ebp - 0x149c], ebx
call fcn.004e02e0
add esp, 0xc
lea eax, [ebp - 0x210]
push ebx
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0x100
push eax
call fcn.0044aba0
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileW]
lea eax, [ebp - 0x210]
add esp, 0x14
push 0
push 0
push 3
push 0
push 1
push SysReAllocString
push eax
call ebx
mov esi, eax
cmp esi, 0xffffffff
je 0x45cf4d
push 0
push 0
push 0
push esi
mov dword [ebp - 0x1498], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x1498]
push eax
push 0x200
lea eax, [ebp - 0x1418]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x200
lea eax, [ebp - 0x210]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.004e02e0
add esp, 0xc
lea eax, [ebp - 0x210]
push dword [ebp - 0x149c]
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0x100
push eax
call fcn.0044aba0
add esp, 0x14
lea eax, [ebp - 0x210]
push 0
push 0
push 3
push 0
push 3
push 0
push eax
call ebx
mov esi, eax
mov dword [ebp - 0x1498], esi
cmp esi, 0xffffffff
jne 0x45cfb5
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x45d021
push 0x1004
lea eax, [ebp - 0x1218]
mov dword [ebp - 0x148c], 0
push 0
push eax
mov dword [ebp - 0x1494], 0
mov dword [ebp - 0x1490], 0
mov dword [ebp - 0x14a0], 0
call fcn.004e02e0
add esp, 0xc
lea eax, [ebp - 0x14a0]
push 0
push eax
push 0x1000
lea eax, [ebp - 0x1218]
push eax
push 0xc
lea eax, [ebp - 0x1494]
push eax
push 0x2d1400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x45d034
cmp esi, 0xffffffff
je 0x45d02d
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x45d296
mov eax, dword [ebp - 0x1208]
test eax, eax
je 0x45d065
cmp eax, 0x1000
jae 0x45d065
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d052
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 4]
call fcn.0044c0b0
mov eax, dword [ebp - 0x1204]
test eax, eax
je 0x45d096
cmp eax, 0x1000
jae 0x45d096
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d083
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 0x1c]
call fcn.0044c0b0
mov eax, dword [ebp - 0x1200]
test eax, eax
je 0x45d0c7
cmp eax, 0x1000
jae 0x45d0c7
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d0b4
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 0x34]
call fcn.0044c0b0
mov eax, dword [ebp - 0x120c]
test eax, eax
je 0x45d0f8
cmp eax, 0x1000
jae 0x45d0f8
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d0e5
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 0x4c]
call fcn.0044c0b0
mov eax, dword [ebp - 0x11fc]
mov ecx, dword [edi + 0x68]
mov dword [edi + 0x64], eax
mov eax, ecx
or ecx, 1
and eax, 0xfffffffe
cmp byte [ebp - 0x120e], 0
cmove ecx, eax
mov dword [edi + 0x68], ecx
mov ecx, edi
call fcn.00458620
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [edi + 0x44], 0
mov dword [ebp - 0x1498], 0xffffffff
jne 0x45d291
mov eax, dword [ebp - 0x149c]
mov dword [ebp - 0x1484], 0
mov dword [ebp - 0x146c], 0
mov dword [ebp - 0x1454], 0
mov dword [ebp - 0x143c], 0
mov dword [ebp - 0x1488], eax
mov dword [ebp - 0x1474], 0
mov dword [ebp - 0x1470], 0xf
mov byte [ebp - 0x1484], 0
mov dword [ebp - 0x145c], 0
mov dword [ebp - 0x1458], 0xf
mov byte [ebp - 0x146c], 0
mov dword [ebp - 0x1444], 0
mov dword [ebp - 0x1440], 0xf
mov byte [ebp - 0x1454], 0
mov dword [ebp - 0x142c], 0
mov dword [ebp - 0x1428], 0xf
mov byte [ebp - 0x143c], 0
mov dword [ebp - 0x1424], 0
mov dword [ebp - 0x1420], 0
mov dword [ebp - 0x141c], 0
lea ecx, [ebp - 0x1488]
mov byte [ebp - 4], 1
call fcn.004693b0
cmp dword [ebp - 0x1444], 0
je 0x45d286
lea ecx, [edi + 4]
lea eax, [ebp - 0x1484]
cmp ecx, eax
je 0x45d238
cmp dword [ebp - 0x1470], 0x10
push dword [ebp - 0x1474]
cmovae eax, dword [ebp - 0x1484]
push eax
call fcn.0044c0b0
lea ecx, [edi + 0x1c]
lea eax, [ebp - 0x146c]
cmp ecx, eax
je 0x45d25f
cmp dword [ebp - 0x1458], 0x10
push dword [ebp - 0x145c]
cmovae eax, dword [ebp - 0x146c]
push eax
call fcn.0044c0b0
lea ecx, [edi + 0x34]
lea eax, [ebp - 0x1454]
cmp ecx, eax
je 0x45d286
cmp dword [ebp - 0x1440], 0x10
push dword [ebp - 0x1444]
cmovae eax, dword [ebp - 0x1454]
push eax
call fcn.0044c0b0
lea ecx, [ebp - 0x1488]
call fcn.00450510
mov eax, 1
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.004de51d
mov esp, ebp
pop ebp
ret