Function at 0x4206b0
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47cded
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x4b41e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0x230]
mov esi, dword [ebp + 8]
cmp eax, 0xffffffff
je 0x420e82
test eax, eax
je 0x420e82
test esi, esi
je 0x420700
mov eax, dword [edi + 0x10]
mov dword [esi], eax
mov eax, dword [edi + 0xc]
cmp eax, 0xffffffff
jne 0x420e85
call fcn.0041ee90
test eax, eax
je 0x420750
movzx ecx, word [eax + 0x1b2]
mov dword [edi + 0x10], ecx
cmp ecx, 0x3e8
jbe 0x42073b
test esi, esi
je 0x42072d
mov dword [esi], ecx
mov dword [edi + 0xc], 0
xor eax, eax
jmp 0x420e85
cmp ecx, 1
je 0x420749
test byte [eax + 0x152], 1
je 0x420750
mov dword [edi + 0xc], 2
xorps xmm0, xmm0
mov dword [edi + 0x10], 0
push 0xc
movlpd qword [ebp - 0x1c], xmm0
call fcn.0046a22b
mov ebx, eax
mov dword [ebp - 0x18], 0xc
add esp, 4
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x230]
cmp ecx, 0xffffffff
je 0x4207da
test ecx, ecx
je 0x4207da
push 0
lea eax, [edi + 4]
mov dword [ebx], 7
push eax
push 0xc
push ebx
push 0xc
push ebx
mov dword [ebx + 4], 0
push 0x2d1400
push dword [edi + 0x230]
mov dword [eax], 0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4207da
cmp byte [ebx + 8], 0
je 0x4207e5
xor esi, esi
push ebx
mov dword [edi + 0xc], esi
call fcn.00469e73
add esp, 4
mov eax, esi
jmp 0x420e85
mov ecx, edi
call fcn.004205b0
test al, al
je 0x4207ec
mov dword [edi + 0xc], 2
cmp dword [edi + 0xc], 0xffffffff
jne 0x420e03
cmp byte [edi + 0x15], 0
lea esi, [edi + 0x15]
mov dword [ebp - 0x20], esi
lea ebx, [edi + 0x1c]
je 0x420866
mov ecx, dword [ebx]
test ecx, ecx
je 0x420824
xor eax, eax
add ecx, 2
cmp eax, 0x29
jg 0x420824
test ecx, ecx
je 0x420824
cmp byte [ecx], 3
je 0x420854
inc eax
add ecx, 0xc
jmp 0x420810
cmp byte [edi + 0x14], 0xff
jne 0x420866
mov ecx, edi
call fcn.0041e1f0
mov ecx, dword [ebx]
mov byte [edi + 0x14], al
test ecx, ecx
je 0x420866
xor eax, eax
add ecx, 2
nop
cmp eax, 0x29
jg 0x420866
test ecx, ecx
je 0x420866
cmp byte [ecx], 3
je 0x420854
inc eax
add ecx, 0xc
jmp 0x420840
cmp dword [ecx + 5], 0
je 0x420869
mov dword [edi + 0xc], 0
jmp 0x420e00
mov dword [ebp - 0x20], esi
cmp byte [esi], 0
je 0x42098d
mov ecx, dword [ebx]
test ecx, ecx
je 0x420894
xor eax, eax
add ecx, 2
nop dword [eax]
cmp eax, 0x29
jg 0x420894
test ecx, ecx
je 0x420894
cmp byte [ecx], 0xce
je 0x4208c4
inc eax
add ecx, 0xc
jmp 0x420880
cmp byte [edi + 0x14], 0xff
jne 0x4208ca
mov ecx, edi
call fcn.0041e1f0
mov ecx, dword [ebx]
mov byte [edi + 0x14], al
test ecx, ecx
je 0x4208ca
xor eax, eax
add ecx, 2
nop
cmp eax, 0x29
jg 0x4208ca
test ecx, ecx
je 0x4208ca
cmp byte [ecx], 0xce
je 0x4208c4
inc eax
add ecx, 0xc
jmp 0x4208b0
cmp dword [ecx + 5], 0
jne 0x42085a
cmp byte [esi], 0
je 0x42098d
mov ecx, dword [ebx]
test ecx, ecx
je 0x4208f4
xor eax, eax
add ecx, 2
nop
cmp eax, 0x29
jg 0x4208f4
test ecx, ecx
je 0x4208f4
cmp byte [ecx], 0xbd
je 0x420924
inc eax
add ecx, 0xc
jmp 0x4208e0
cmp byte [edi + 0x14], 0xff
jne 0x42092e
mov ecx, edi
call fcn.0041e1f0
mov ecx, dword [ebx]
mov byte [edi + 0x14], al
test ecx, ecx
je 0x42092e
xor eax, eax
add ecx, 2
nop
cmp eax, 0x29
jg 0x42092e
test ecx, ecx
je 0x42092e
cmp byte [ecx], 0xbd
je 0x420924
inc eax
add ecx, 0xc
jmp 0x420910
cmp dword [ecx + 5], 0
jne 0x42085a
cmp byte [esi], 0
je 0x42098d
mov eax, dword [ebx]
test eax, eax
je 0x420958
xor ecx, ecx
add eax, 2
nop
cmp ecx, 0x29
jg 0x420958
test eax, eax
je 0x420958
cmp byte [eax], 0xa
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420940
cmp byte [edi + 0x14], 0xff
lea esi, [edi + 0x14]
jne 0x420990
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420990
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420990
test eax, eax
je 0x420990
cmp byte [eax], 0xa
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420975
lea esi, [edi + 0x14]
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0
je 0x4209ee
mov ecx, dword [ebx]
test ecx, ecx
je 0x4209b7
xor eax, eax
add ecx, 2
cmp eax, 0x29
jg 0x4209b7
test ecx, ecx
je 0x4209b7
cmp byte [ecx], 0xcf
je 0x4209e4
inc eax
add ecx, 0xc
jmp 0x4209a3
cmp byte [esi], 0xff
jne 0x4209ee
mov ecx, edi
call fcn.0041e1f0
mov ecx, dword [ebx]
mov byte [esi], al
test ecx, ecx
je 0x4209ee
xor eax, eax
add ecx, 2
cmp eax, 0x29
jg 0x4209ee
test ecx, ecx
je 0x4209ee
cmp byte [ecx], 0xcf
je 0x4209e4
inc eax
add ecx, 0xc
jmp 0x4209d0
cmp dword [ecx + 5], 0
jne 0x42085a
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0
je 0x420a4a
mov eax, dword [ebx]
test eax, eax
je 0x420a19
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420a19
test eax, eax
je 0x420a19
cmp byte [eax], 8
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420a01
cmp byte [esi], 0xff
jne 0x420a4a
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420a4a
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420a4a
test eax, eax
je 0x420a4a
cmp byte [eax], 8
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420a32
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420aa9
mov eax, dword [ebx]
test eax, eax
je 0x420a78
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420a78
test eax, eax
je 0x420a78
cmp byte [eax], 0xb
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420a60
cmp byte [esi], 0xff
jne 0x420aa9
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420aa9
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420aa9
test eax, eax
je 0x420aa9
cmp byte [eax], 0xb
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420a91
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420b09
mov eax, dword [ebx]
test eax, eax
je 0x420ad8
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420ad8
test eax, eax
je 0x420ad8
cmp byte [eax], 0xd0
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420ac0
cmp byte [esi], 0xff
jne 0x420b09
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420b09
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420b09
test eax, eax
je 0x420b09
cmp byte [eax], 0xd0
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420af1
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420b69
mov eax, dword [ebx]
test eax, eax
je 0x420b38
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420b38
test eax, eax
je 0x420b38
cmp byte [eax], 0xbf
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420b20
cmp byte [esi], 0xff
jne 0x420b69
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420b69
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420b69
test eax, eax
je 0x420b69
cmp byte [eax], 0xbf
je 0x42085a
inc ecx
add eax, 0xc
jmp 0x420b51
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420bc9
mov eax, dword [ebx]
test eax, eax
je 0x420b98
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420b98
test eax, eax
je 0x420b98
cmp byte [eax], 0xaa
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420b80
cmp byte [esi], 0xff
jne 0x420bc9
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420bc9
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420bc9
test eax, eax
je 0x420bc9
cmp byte [eax], 0xaa
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420bb1
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420c29
mov eax, dword [ebx]
test eax, eax
je 0x420bf8
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420bf8
test eax, eax
je 0x420bf8
cmp byte [eax], 0xe7
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420be0
cmp byte [esi], 0xff
jne 0x420c29
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420c29
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420c29
test eax, eax
je 0x420c29
cmp byte [eax], 0xe7
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420c11
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420c89
mov eax, dword [ebx]
test eax, eax
je 0x420c58
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420c58
test eax, eax
je 0x420c58
cmp byte [eax], 0xe9
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420c40
cmp byte [esi], 0xff
jne 0x420c89
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420c89
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420c89
test eax, eax
je 0x420c89
cmp byte [eax], 0xe9
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420c71
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420ce9
mov eax, dword [ebx]
test eax, eax
je 0x420cb8
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420cb8
test eax, eax
je 0x420cb8
cmp byte [eax], 0xca
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420ca0
cmp byte [esi], 0xff
jne 0x420ce9
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420ce9
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420ce9
test eax, eax
je 0x420ce9
cmp byte [eax], 0xca
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420cd1
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420d49
mov eax, dword [ebx]
test eax, eax
je 0x420d18
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420d18
test eax, eax
je 0x420d18
cmp byte [eax], 0x20
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420d00
cmp byte [esi], 0xff
jne 0x420d49
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420d49
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420d49
test eax, eax
je 0x420d49
cmp byte [eax], 0x20
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420d31
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420da5
mov eax, dword [ebx]
test eax, eax
je 0x420d78
xor ecx, ecx
add eax, 2
nop dword [eax]
cmp ecx, 0x29
jg 0x420d78
test eax, eax
je 0x420d78
cmp byte [eax], 0xf2
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420d60
cmp byte [esi], 0xff
jne 0x420da5
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420da5
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420da5
test eax, eax
je 0x420da5
cmp byte [eax], 0xf2
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420d91
mov ecx, dword [ebp - 0x20]
cmp byte [ecx], 0
je 0x420e00
mov eax, dword [ebx]
test eax, eax
je 0x420dcc
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420dcc
test eax, eax
je 0x420dcc
cmp byte [eax], 0xf1
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420db8
cmp byte [esi], 0xff
jne 0x420e00
mov ecx, edi
call fcn.0041e1f0
mov byte [esi], al
mov eax, dword [ebx]
test eax, eax
je 0x420e00
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x420e00
test eax, eax
je 0x420e00
cmp byte [eax], 0xf1
je 0x420df9
inc ecx
add eax, 0xc
jmp 0x420de5
mov dword [edi + 0xc], 2
mov ebx, dword [ebp - 0x1c]
mov esi, dword [edi + 0xc]
cmp esi, 2
jne 0x420e3e
mov ecx, edi
call fcn.0041f590
mov byte [edi + 0x16], al
test al, al
je 0x420e2e
mov esi, 4
push ebx
mov dword [edi + 0xc], esi
call fcn.00469e73
add esp, 4
mov eax, esi
jmp 0x420e85
mov esi, dword [edi + 0xc]
push ebx
call fcn.00469e73
add esp, 4
mov eax, esi
jmp 0x420e85
test esi, esi
je 0x420e75
mov ecx, edi
call fcn.0041e540
test eax, eax
je 0x420e6c
cmp dword [eax + 4], 7
jne 0x420e6c
push ebx
mov dword [edi + 0xc], 1
mov esi, 1
call fcn.00469e73
add esp, 4
mov eax, esi
jmp 0x420e85
mov dword [edi + 0xc], 0
xor esi, esi
push ebx
call fcn.00469e73
add esp, 4
mov eax, esi
jmp 0x420e85
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00469e65
mov esp, ebp
pop ebp
ret 4