Function at 0x4cce13
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50e6f6
mov eax, dword fs:[0]
push eax
mov eax, 0x2930
call fcn.004fb440
mov eax, dword [0x56600c]
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 dword [ebp - 0x2938], edx
mov byte [ebp - 0x2925], cl
mov eax, dword [ebp + 8]
mov edi, 0x536e9c
push 0x62
pop edx
mov ecx, edi
mov dword [ebp - 0x293c], eax
call fcn.004cb7ef
xor ebx, ebx
cmp byte [ebp - 0x2925], bl
jne 0x4cce88
push 0x69
pop edx
mov ecx, edi
call fcn.004cb7ef
call fcn.004cd866
mov byte [ebp - 0x2925], al
push 0x6e
pop edx
mov ecx, edi
call fcn.004cb7ef
movsx eax, byte [ebp - 0x2925]
push eax
lea eax, [ebp - 0x1d8]
push str.._c:
push eax
call fcn.0043ff30
add esp, 0xc
lea eax, [ebp - 0x1d8]
push ebx
push ebx
push 3
push ebx
push 3
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push 0x7b
mov esi, eax
mov ecx, edi
pop edx
mov dword [ebp - 0x292c], esi
call fcn.004cb7ef
cmp esi, 0xffffffff
je 0x4cd293
push 0x7f
pop edx
mov ecx, edi
call fcn.004cb7ef
mov esi, 0x2710
mov dword [ebp - 0x2930], ebx
push esi
lea eax, [ebp - 0x28e8]
mov dword [ebp - 0x291c], ebx
push ebx
push eax
mov dword [ebp - 0x2924], ebx
mov dword [ebp - 0x2920], ebx
call fcn.004d37c0
add esp, 0xc
mov edx, 0x8d
mov ecx, edi
call fcn.004cb7ef
push ebx
lea eax, [ebp - 0x2930]
push eax
push esi
lea eax, [ebp - 0x28e8]
push eax
push 0xc
lea eax, [ebp - 0x2924]
push eax
push 0x2d1400
push dword [ebp - 0x292c]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4cd27b
mov edx, 0x96
mov ecx, edi
call fcn.004cb7ef
mov edx, 0x9e
mov ecx, edi
call fcn.004cb7ef
cmp dword [ebp - 0x28d0], esi
jae 0x4cd27b
cmp dword [ebp - 0x28d8], esi
jae 0x4cd27b
mov edx, 0xaa
mov ecx, edi
call fcn.004cb7ef
mov eax, esi
sub eax, dword [ebp - 0x28d0]
push 0x64
pop edx
cmp eax, edx
mov ecx, edx
mov edi, edx
cmovl ecx, eax
sub esi, dword [ebp - 0x28d8]
dec ecx
cmp esi, edx
mov dword [ebp - 0x2934], ecx
mov ecx, 0x536e9c
cmovl edi, esi
add edx, 0x4c
dec edi
call fcn.004cb7ef
mov esi, dword [ebp - 0x2934]
cmp esi, 1
jl 0x4cd276
cmp edi, 1
jl 0x4cd276
push 0x64
lea eax, [ebp - 0x74]
push ebx
push eax
call fcn.004d37c0
push 0x64
lea eax, [ebp - 0xd8]
push ebx
push eax
call fcn.004d37c0
add esp, 0x18
mov edx, 0xbb
mov ecx, 0x536e9c
call fcn.004cb7ef
lea edx, [ebp - 0x28e8]
add edx, dword [ebp - 0x28d0]
lea ecx, [ebp - 0x74]
push esi
call fcn.004cdddc
mov edx, 0xbf
mov ecx, 0x536e9c
call fcn.004cb7ef
mov eax, dword [ebp - 0x28d8]
lea ecx, [ebp - 0x28e8]
add eax, ecx
push edi
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.004e38a0
add esp, 0xc
mov edi, 0x536e9c
mov edx, 0xc7
mov ecx, edi
call fcn.004cb7ef
mov al, byte [ebp - 0x74]
test al, al
jle 0x4cd072
movsx eax, al
push eax
call fcn.004e210b
pop ecx
test eax, eax
jne 0x4cd08f
mov al, byte [ebp - 0x61]
test al, al
jle 0x4cd27b
movsx eax, al
push eax
call fcn.004e210b
pop ecx
test eax, eax
je 0x4cd27b
mov edx, 0xcb
mov ecx, edi
call fcn.004cb7ef
push 0xf
pop esi
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x28f0], ebx
mov dword [ebp - 0x28ec], ebx
lea edx, [ecx + 1]
mov dword [ebp - 0x28f0], ebx
mov dword [ebp - 0x28ec], esi
mov byte [ebp - 0x2900], bl
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4cd0c2
sub ecx, edx
lea eax, [ebp - 0x74]
push ecx
push eax
lea ecx, [ebp - 0x2900]
call fcn.004592f7
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x2900]
cmp dword [ebp - 0x28ec], 0x10
lea ecx, [ebp - 0x2918]
push dword [ebp - 0x28f0]
cmovae eax, dword [ebp - 0x2900]
push eax
call fcn.004b2802
mov byte [ebp - 4], 1
mov edi, dword [ebp - 0x2938]
mov ecx, edi
push eax
call fcn.0045dbff
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x2918]
call fcn.00455dac
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x28ec]
cmp edx, 0x10
jb 0x4cd161
mov ecx, dword [ebp - 0x2900]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4cd158
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4cd2bd
push edx
push ecx
call fcn.0047834a
pop ecx
pop ecx
lea ecx, [ebp - 0xd8]
mov dword [ebp - 0x2908], ebx
mov dword [ebp - 0x2904], ebx
lea edx, [ecx + 1]
mov dword [ebp - 0x28f0], ebx
mov dword [ebp - 0x28ec], esi
mov byte [ebp - 0x2900], bl
mov dword [ebp - 0x2908], ebx
mov dword [ebp - 0x2904], esi
mov byte [ebp - 0x2918], bl
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4cd19a
sub ecx, edx
lea eax, [ebp - 0xd8]
push ecx
push eax
lea ecx, [ebp - 0x2918]
call fcn.004592f7
mov dword [ebp - 4], 2
lea eax, [ebp - 0x2918]
cmp dword [ebp - 0x2904], 0x10
lea ecx, [ebp - 0x2900]
push dword [ebp - 0x2908]
cmovae eax, dword [ebp - 0x2918]
push eax
call fcn.004b2802
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x293c]
mov ecx, esi
push eax
call fcn.0045dbff
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2900]
call fcn.00455dac
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2904]
cmp edx, 0x10
jb 0x4cd241
mov ecx, dword [ebp - 0x2918]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4cd238
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4cd2bd
push edx
push ecx
call fcn.0047834a
pop ecx
pop ecx
mov dword [ebp - 0x2908], ebx
mov dword [ebp - 0x2904], 0xf
mov byte [ebp - 0x2918], bl
cmp dword [edi + 0x10], ebx
jne 0x4cd261
cmp dword [esi + 0x10], ebx
je 0x4cd276
mov edi, 0x536e9c
mov edx, 0xd2
mov ecx, edi
call fcn.004cb7ef
mov bl, 1
jmp 0x4cd27b
mov edi, 0x536e9c
mov edx, 0xda
mov ecx, edi
call fcn.004cb7ef
push dword [ebp - 0x292c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 0xde
mov ecx, edi
call fcn.004cb7ef
mov al, bl
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.00478339
leave
ret 4
call fcn.004d7bfa
int3