Function at 0x422f30
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bfda0
mov eax, dword fs:[0]
push eax
mov eax, 0x2b20
call fcn.00426250
mov eax, dword [0x4eb018]
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
push 0
push 0
push 3
push 0
push 3
push 0
xor bl, bl
push str..PhysicalDrive0
mov dword [ebp - 0x2b20], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
mov dword [ebp - 0x2b2c], esi
cmp esi, 0xffffffff
je 0x423270
push 0x2710
lea eax, [ebp - 0x2b08]
mov dword [ebp - 0x2b0c], 0
push 0
push eax
mov dword [ebp - 0x2b14], 0
mov dword [ebp - 0x2b10], 0
call fcn.0049d5c0
add esp, 0xc
mov dword [ebp - 0x2b24], 0
lea eax, [ebp - 0x2b24]
push 0
push eax
push 0x2710
lea eax, [ebp - 0x2b08]
push eax
push 0xc
lea eax, [ebp - 0x2b14]
push eax
push 0x2d1400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x423269
mov edx, dword [ebp - 0x2af0]
lea eax, [ebp - 0x3f8]
push eax
push ecx
lea ecx, [ebp - 0x2b08]
call fcn.00422dc0
movsx eax, byte [ebp - 0x3f8]
push eax
call fcn.004a9e74
add esp, 0xc
test eax, eax
jne 0x423049
movsx eax, byte [ebp - 0x3e5]
push eax
call fcn.004a9e74
add esp, 4
test eax, eax
je 0x423269
lea esi, [ebp - 0x3f8]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x423052
sub esi, ecx
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x2b28], ecx
cmp esi, ecx
ja 0x423096
mov ebx, edi
cmp ecx, 0x10
jb 0x423071
mov ebx, dword [edi]
lea eax, [edi + 0x10]
mov dword [eax], esi
mov dword [ebp - 0x2b1c], eax
lea eax, [ebp - 0x3f8]
push esi
push eax
push ebx
call fcn.0049cf70
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x423180
cmp esi, 0x7fffffff
ja 0x42328e
mov ebx, esi
or ebx, 0xf
cmp ebx, 0x7fffffff
ja 0x4230de
mov edx, ecx
mov eax, SysReAllocString
shr edx, 1
sub eax, edx
cmp ecx, eax
ja 0x4230de
lea eax, [edx + ecx]
cmp ebx, eax
cmovb ebx, eax
lea ecx, [ebx + 1]
cmp ecx, 0x1000
jb 0x423106
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x423293
jmp 0x4230e8
mov ebx, SysReAllocString
mov eax, 0x80000023
push eax
call fcn.004252e9
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x423298
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x423117
test ecx, ecx
je 0x423115
push ecx
call fcn.004252e9
add esp, 4
jmp 0x423117
xor eax, eax
lea ecx, [edi + 0x10]
mov dword [ebp - 0x2b18], eax
mov dword [ecx], esi
mov dword [ebp - 0x2b1c], ecx
lea ecx, [ebp - 0x3f8]
push esi
push ecx
push eax
mov dword [edi + 0x14], ebx
call fcn.0049cf70
mov ebx, dword [ebp - 0x2b18]
add esp, 0xc
mov eax, dword [ebp - 0x2b28]
mov byte [ebx + esi], 0
cmp eax, 0x10
jb 0x42317e
mov ecx, dword [edi]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x423174
mov esi, dword [ecx - 4]
add edx, 0x23
sub ecx, esi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x423298
mov ecx, esi
push edx
push ecx
call fcn.0042556a
add esp, 8
mov dword [edi], ebx
mov eax, dword [ebp - 0x2b1c]
mov ebx, dword [edi + 0x14]
mov eax, dword [eax]
cmp ebx, 0x10
jb 0x4231a0
mov edx, dword [edi]
lea ecx, [eax + edx]
lea esi, [eax + edx]
mov dword [ebp - 0x2b18], ecx
jmp 0x4231ad
lea esi, [edi + eax]
mov edx, edi
add eax, edi
mov dword [ebp - 0x2b18], eax
mov eax, esi
sub eax, edx
push eax
push 0x20
push edx
call fcn.0049d4f0
add esp, 0xc
mov ecx, esi
test eax, eax
cmovne ecx, eax
mov eax, ecx
cmp ecx, esi
je 0x4231e2
inc ecx
cmp ecx, esi
je 0x4231e2
nop
mov dl, byte [ecx]
cmp dl, 0x20
je 0x4231da
mov byte [eax], dl
inc eax
inc ecx
cmp ecx, esi
jne 0x4231d0
mov ebx, dword [edi + 0x14]
mov dword [ebp - 4], 0
mov ecx, edi
cmp ebx, 0x10
jb 0x4231f2
mov ecx, dword [edi]
mov edx, dword [ebp - 0x2b1c]
mov esi, eax
sub esi, ecx
mov edx, dword [edx]
cmp edx, esi
jb 0x42329d
mov ecx, dword [ebp - 0x2b18]
sub ecx, eax
mov eax, edx
sub eax, esi
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x2b18], ecx
cmp ebx, 0x10
jb 0x423224
mov edi, dword [edi]
mov ebx, dword [ebp - 0x2b1c]
lea ecx, [edi + esi]
mov eax, dword [ebp - 0x2b18]
sub edx, eax
add eax, ecx
mov dword [ebx], edx
sub edx, esi
inc edx
push edx
push eax
push ecx
call fcn.0049d720
mov eax, dword [ebp - 0x2b20]
add esp, 0xc
cmp dword [ebx], 0
mov ecx, 1
mov esi, dword [ebp - 0x2b2c]
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x2b20], eax
mov ebx, eax
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
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.004250ca
mov esp, ebp
pop ebp
ret
call fcn.00401470
call fcn.004013f9
call fcn.004a4753
call fcn.0040291a
int3