Function at 0x1003a9d0
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x3f58448
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x3f67864]
xor eax, ebp
mov dword [ebp - 0x10], eax
jmp 0x1003ae3d
mov dword [ebp - 4], 0xffffffff
jmp 0x1003ad90
push 0x3f5db34
xor ebx, ebx
lea esp, [esp - 4]
pushfd
push eax
shl al, 4
dec ax
push ebx
push ebx
and ebx, ebx
push eax
push ecx
mov cl, 0x83
push eax
lea esp, [esp - 4]
lea esp, [esp - 0x28]
push eax
cbw
push edx
pushfd
ror al, 5
aam 0xa
sahf
push ebx
push edx
mov ebx, edx
shl ebx, 6
mov eax, dword [esp]
mov dword [esp + 0x38], eax
pop ebx
cmp edx, 0x5eb5
bt bx, 5
push ecx
bswap ecx
neg ebx
cbw
cdq
aaa
lahf
daa
bt ax, 3
aaa
xadd eax, ecx
mov ecx, dword [esp]
not dh
rol bl, 5
daa
not ebx
sub bl, bl
das
sahf
cdq
push ebx
cdq
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
not ebx
mov ebx, dword [esp + 0xc]
push ebx
popfd
mov ebx, dword [esp + 8]
lea esp, [esp + 0x40]
mov dword [esp], edx
cdq
aad 0xa
aaa
inc cx
neg al
bswap ecx
xchg al, bh
shl bh, 5
xchg dh, dl
neg edx
nop
bt ecx, 4
dec ecx
ror ax, 4
dec eax
bswap ecx
ror bl, 5
ror eax, 1
cmp bx, 0xbdc2
dec ch
mov ecx, dword [esp + 8]
aad 0xa
nop
lahf
and dx, 0x3a
and bx, bx
aaa
cwd
mov edx, dword [esp]
aaa
mov eax, eax
mov eax, dword [esp + 0x18]
not bx
mov ebx, dword [esp + 0x1c]
push ebx
popfd
mov ebx, dword [esp + 0x10]
lea esp, [esp + 0x20]
mov dword [esp], edx
mov dword [ebp - 4], ebx
call fcn.1003a3b0
mov edi, dword [ebp - 0x24]
add esp, 0xc
push ebx
push ebx
push 3
push ebx
push 3
push ebx
push edi
call dword [0x3f5d0b0]
mov esi, eax
cmp esi, 0xffffffff
jne 0x1003ab42
call dword [0x3f5d108]
add edi, 0xfffffff0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x1003ab3b
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov eax, esi
jmp 0x1003ad50
push ebx
lea ecx, [ebp - 0x28]
push ecx
push 8
jmp 0x1003ae65
add eax, 0x10
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x24]
jmp 0x1003a9ff
call fcn.10065070
mov ecx, dword [ebp - 0x20]
add esp, 0x14
push ebx
lea eax, [ebp - 0x28]
push eax
push edi
push ecx
push 0xc
lea edx, [ebp - 0x1c]
push edx
push 0x2d1400
push esi
call dword [0x3f5d0ac]
test eax, eax
jne 0x1003ac0a
call dword [0x3f5d108]
mov ebx, eax
mov eax, dword [ebp - 0x20]
push edi
push eax
push 0x3f1abf5
pushfd
push ecx
inc ch
push ebx
mov bx, 0x91e3
push eax
aad 0xa
aad 0xa
xchg bl, ah
clc
inc bh
push edx
mov dx, 0x675a
nop
aad 0xa
nop
ror dx, 2
aaa
test bx, cx
test dx, cx
neg bx
mov ebx, dword [esp + 8]
bswap eax
not cx
mov eax, dword [esp + 0x10]
push eax
popfd
cdq
mov eax, dword [esp + 4]
push ebx
lea ecx, [edx + ecx + 0x7cb6]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 4]
lea esp, [esp + 0x18]
jmp fcn.10051b20
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x1003acbc
add ecx, eax
mov eax, ecx
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
lea esp, [esp]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x1003ac29
sub eax, dword [ebp - 0x2c]
lea esp, [esp - 4]
push eax
push edx
lea edx, [eax + edx - 0x35cb]
mov ax, 0x8c
push ecx
mov cx, 0xab
pushfd
mul cx
aas
and ch, 0x61
dec eax
cmp eax, 0x179c
cwd
aas
mov cl, 0x82
xchg ah, cl
daa
aas
inc ax
push ebx
lea ebx, [ecx - 0x1c95]
cwd
sahf
inc edx
aas
cmc
rol ecx, 1
bsr cx, ax
cwd
neg dh
bswap ebx
dec ch
inc bl
not al
or cl, cl
shr bx, 5
mov ebx, dword [esp]
daa
cdq
mov eax, dword [esp + 0x10]
stc
dec edx
mov edx, dword [esp + 0xc]
inc cx
mov ecx, dword [esp + 8]
clc
push ecx
mov ecx, dword [esp + 8]
push ecx
popfd
pop ecx
lea esp, [esp + 0x14]
mov dword [esp], eax
push ecx
mov ecx, dword [ebp - 0x38]
call fcn.10010680
mov eax, dword [ebp - 0x20]
lea esp, [esp - 4]
pushfd
push ecx
rol ch, 2
nop
push edx
xchg dx, dx
push eax
aam 0xa
or ch, 0xa3
push ebx
xadd eax, ebx
not dh
xchg ecx, ebx
not bl
mov ebx, dword [esp]
neg ch
sahf
lea eax, [eax + ecx - 0x91e]
neg dl
xor dx, dx
mov ax, 0x6d06
mov cx, 0x6d7b
div cx
mov ecx, dword [esp + 0xc]
aaa
stc
mov eax, dword [esp + 0x10]
push eax
popfd
xchg dx, ax
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
lea esp, [esp + 0x14]
mov dword [esp], edi
push eax
call fcn.10051b20
add esp, 8
push esi
call dword [0x3f5d054]
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1003ad4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
jmp 0x1003ae2e
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], ebx
call dword [0x3f5d0ac]
test eax, eax
jne 0x1003adb4
call dword [0x3f5d108]
push esi
mov ebx, eax
call dword [0x3f5d054]
lea eax, [edi - 0x10]
jmp 0x1003a9f3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1003adad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
jmp 0x1003ad50
mov edi, dword [ebp - 0x30]
lea ecx, [ebp - 0x20]
push edi
push ecx
mov dword [ebp - 0x20], ebx
call fcn.100519f0
mov edx, dword [ebp - 0x20]
push edi
push ebx
push edx
jb 0x1003ab60
lea esp, [esp - 0x34]
push eax
push eax
lahf
push ecx
bswap ecx
pushfd
rol ax, 1
das
push ebx
dec ebx
nop
neg ecx
mov eax, dword [esp]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
pop edx
shl bh, 5
not eax
bsr bx, cx
not ebx
mov ebx, dword [esp + 0x40]
not ax
not ecx
xor edx, 9
neg edx
inc dh
aaa
and ax, 0xc679
mov eax, dword [esp + 8]
xadd ecx, edx
mov ecx, dword [esp]
push ecx
popfd
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x3c]
lea esp, [esp + 0x44]
jae 0x1003ab60
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10063daf
mov esp, ebp
pop ebp
ret
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [0x3f6766c]
mov dword [ebp - 0x38], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x3f6766c
call eax
jmp 0x1003ab4e
xor eax, eax
lea edx, [ebp - 0x34]
push edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
push 0xc
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
push eax
push 0x2d1400
lea esp, [esp - 4]
pushfd
push eax
aas
cmp ebx, eax
push edx
inc edx
dec edx
sahf
push ebx
bswap ebx
cbw
shl dh, 6
sahf
xor edx, edx
mov eax, 0x2f12
push ecx
mov ecx, 0x40fc
div ecx
mov edx, dword [esp + 8]
dec eax
neg bx
not ch
xor ebx, ebx
or ebx, ecx
mov ebx, dword [esp + 4]
mov ecx, dword [esp]
daa
aas
mov eax, dword [esp + 0xc]
stc
push eax
mov eax, dword [esp + 0x14]
push eax
popfd
mov eax, dword [esp]
pushfd
sahf
push eax
daa
push ecx
neg ecx
push ebx
mov bx, 0x41f1
btc bx, 2
mov eax, 0x3098
mov ecx, 0xd5d5
push edx
mul ecx
aas
not cl
not ax
das
xor al, 0x1e
inc al
cmc
nop
cdq
lea eax, [ebx + ebx - 0x14b4]
lahf
aaa
bsf bx, dx
cbw
mov bh, dl
push ecx
nop
cdq
not ebx
test bl, al
sar cx, 6
mov ecx, dword [esp + 0xc]
cwd
bswap edx
mov edx, dword [esp + 4]
mov ax, 0x922
mov eax, dword [esp + 0x10]
and bl, 0x13
mov ebx, dword [esp + 0x14]
push ebx
popfd
mov ebx, dword [esp + 8]
lea esp, [esp + 0x18]
lea esp, [esp + 4]
lea esp, [esp + 0x14]
mov dword [esp], esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
jmp 0x1003ad62