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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x509b9b
mov eax, dword fs:[0]
push eax
mov eax, 0x1494
call fcn.004db7a0
mov eax, dword [0x54b144]
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.004dcc10
add esp, 0xc
lea eax, [ebp - 0x210]
push ebx
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0x100
push eax
call fcn.0044ab20
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 0x45ce1d
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.004dcc10
add esp, 0xc
lea eax, [ebp - 0x210]
push dword [ebp - 0x149c]
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0x100
push eax
call fcn.0044ab20
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 0x45ce85
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x45cef1
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.004dcc10
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 0x45cf04
cmp esi, 0xffffffff
je 0x45cefd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x45d166
mov eax, dword [ebp - 0x1208]
test eax, eax
je 0x45cf35
cmp eax, 0x1000
jae 0x45cf35
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf22
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 4]
call fcn.0044c030
mov eax, dword [ebp - 0x1204]
test eax, eax
je 0x45cf66
cmp eax, 0x1000
jae 0x45cf66
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf53
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 0x1c]
call fcn.0044c030
mov eax, dword [ebp - 0x1200]
test eax, eax
je 0x45cf97
cmp eax, 0x1000
jae 0x45cf97
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf84
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 0x34]
call fcn.0044c030
mov eax, dword [ebp - 0x120c]
test eax, eax
je 0x45cfc8
cmp eax, 0x1000
jae 0x45cfc8
lea edx, [ebp - 0x1218]
add edx, eax
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cfb5
sub ecx, ebx
push ecx
push edx
lea ecx, [edi + 0x4c]
call fcn.0044c030
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.004584e0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [edi + 0x44], 0
mov dword [ebp - 0x1498], 0xffffffff
jne 0x45d161
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.00469290
cmp dword [ebp - 0x1444], 0
je 0x45d156
lea ecx, [edi + 4]
lea eax, [ebp - 0x1484]
cmp ecx, eax
je 0x45d108
cmp dword [ebp - 0x1470], 0x10
push dword [ebp - 0x1474]
cmovae eax, dword [ebp - 0x1484]
push eax
call fcn.0044c030
lea ecx, [edi + 0x1c]
lea eax, [ebp - 0x146c]
cmp ecx, eax
je 0x45d12f
cmp dword [ebp - 0x1458], 0x10
push dword [ebp - 0x145c]
cmovae eax, dword [ebp - 0x146c]
push eax
call fcn.0044c030
lea ecx, [edi + 0x34]
lea eax, [ebp - 0x1454]
cmp ecx, eax
je 0x45d156
cmp dword [ebp - 0x1440], 0x10
push dword [ebp - 0x1444]
cmovae eax, dword [ebp - 0x1454]
push eax
call fcn.0044c030
lea ecx, [ebp - 0x1488]
call fcn.004503e0
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.004dafe6
mov esp, ebp
pop ebp
ret