Function at 0x5ddf70
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x30
push 0
push 0
dec ecx
jne 0x5ddf79
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5de33d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x5de358
call fcn.004c938c
mov byte [ebp - 0xd], 0
cmp byte [0x889858], 0
je 0x5de312
lea eax, [ebp - 0x14]
call fcn.0040528c
lea eax, [ebp - 0x14e]
xor ecx, ecx
mov edx, 0x121
call fcn.00403464
lea eax, [ebp - 0x2d]
xor ecx, ecx
mov edx, 0xd
call fcn.00403464
push 0
lea eax, [ebp - 0x20]
push eax
push 0x121
lea eax, [ebp - 0x14e]
push eax
push 0xd
lea eax, [ebp - 0x2d]
push eax
push 0x2d1400
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x5de2bd
mov eax, dword [ebp - 0x132]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x158]
call fcn.0040a878
mov ecx, dword [ebp - 0x158]
lea eax, [ebp - 0x154]
mov edx, 0x5de370
call fcn.00405598
mov eax, dword [ebp - 0x154]
call fcn.004c938c
cmp dword [ebp - 0x132], 7
je 0x5de312
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffec
sub eax, 0x14
jb 0x5de068
add eax, 0xfffffffa
sub eax, 0x30
jae 0x5de074
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 0x20
jmp 0x5de07e
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x200
jne 0x5de055
mov eax, dword [ebp - 0xc]
mov byte [eax + 3], 1
mov eax, dword [ebp - 0xc]
mov byte [eax + 0xa4], 1
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 8]
call fcn.0040a78c
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x15c]
mov edx, 0x5de38c
call fcn.00405598
mov eax, dword [ebp - 0x15c]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x14
mov edx, dword [ebp - 0x13a]
call fcn.005ac594
mov dword [ebp - 0x1c], 0x2e
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx - 0x2e]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x36
jne 0x5de0e7
lea edx, [ebp - 0x164]
mov eax, dword [ebp - 0x14]
call fcn.0040a298
mov edx, dword [ebp - 0x164]
lea eax, [ebp - 0x14]
call fcn.00405324
mov eax, dword [ebp - 0x14]
call fcn.0040554c
cmp eax, 0xa
jle 0x5de142
lea eax, [ebp - 0x14]
push eax
mov ecx, 0xa
mov edx, 1
mov eax, dword [ebp - 0x14]
call fcn.004057ac
lea eax, [ebp - 0x14]
mov edx, 0x5de3a0
call fcn.00405554
push dword [ebp - 0x14]
push 0x5de3ac
lea edx, [ebp - 0x16c]
mov eax, dword [ebp - 8]
call fcn.0040a78c
push dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
mov edx, 3
call fcn.0040560c
mov eax, dword [ebp - 0x168]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x14
mov edx, dword [ebp - 0x13a]
call fcn.005ac6e0
mov dword [ebp - 0x1c], 0x14
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx - 0x14]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x28
jne 0x5de1a3
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 8
mov edx, dword [ebp - 0x142]
call fcn.005ac594
push 0x5de3bc
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x28
mov edx, dword [ebp - 0x13e]
call fcn.005ac594
mov edx, dword [ebp - 0x170]
lea eax, [ebp - 0x14]
call fcn.00405554
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 0x14]
call fcn.0040a298
mov edx, dword [ebp - 0x174]
lea eax, [ebp - 0x14]
call fcn.00405324
mov eax, dword [ebp - 0x14]
call fcn.0040554c
cmp eax, 0x27
jg 0x5de24d
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
mov edx, 0x5de3d0
call fcn.00405554
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x28
jne 0x5de237
mov dword [ebp - 0x1c], 0x36
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx - 0x36]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x5e
jne 0x5de254
lea eax, [ebp - 0x14]
call fcn.0040528c
xor eax, eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x178]
mov edx, dword [ebp - 0x1c]
mov dl, byte [ebp + edx - 0x12d]
call fcn.00405474
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x14]
call fcn.00405554
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x100
jne 0x5de27d
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
call fcn.004052e0
mov byte [ebp - 0xd], 1
jmp 0x5de2df
call sub.kernel32.dll_GetLastError_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x17c]
call fcn.0040a878
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp + 8]
call fcn.004052e0
lea ecx, [ebp - 0x184]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dl, 1
call fcn.004c1b78
mov ecx, dword [ebp - 0x184]
lea eax, [ebp - 0x180]
mov edx, 0x5de3dc
call fcn.00405598
mov eax, dword [ebp - 0x180]
call fcn.004c938c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5de344
lea eax, [ebp - 0x184]
mov edx, 0xd
call fcn.004052b0
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004052b0
ret