Function at 0x4163a0
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x439430
mov eax, dword fs:[0]
push eax
mov eax, 0x2b20
call fcn.00419b90
mov eax, dword [0x44c018]
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 0x4166e7
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.0041a810
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 0x4166e0
mov edx, dword [ebp - 0x2af0]
lea eax, [ebp - 0x3f8]
push eax
push ecx
lea ecx, [ebp - 0x2b08]
call fcn.00416230
movsx eax, byte [ebp - 0x3f8]
push eax
call fcn.00425cce
add esp, 0xc
test eax, eax
jne 0x4164b9
movsx eax, byte [ebp - 0x3e5]
push eax
call fcn.00425cce
add esp, 4
test eax, eax
je 0x4166e0
lea esi, [ebp - 0x3f8]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4164c2
sub esi, ecx
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x2b28], ecx
cmp esi, ecx
ja 0x416506
mov ebx, edi
cmp ecx, 0x10
jb 0x4164e1
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.0041a290
add esp, 0xc
mov byte [esi + ebx], 0
jmp 0x4165f0
cmp esi, 0x7fffffff
ja 0x416705
mov ebx, esi
or ebx, 0xf
cmp ebx, 0x7fffffff
ja 0x41654e
mov edx, ecx
mov eax, 0x7fffffff
shr edx, 1
sub eax, edx
cmp ecx, eax
ja 0x41654e
lea eax, [edx + ecx]
cmp ebx, eax
cmovb ebx, eax
lea ecx, [ebx + 1]
cmp ecx, 0x1000
jb 0x416576
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x41670a
jmp 0x416558
mov ebx, 0x7fffffff
mov eax, 0x80000023
push eax
call fcn.00418f64
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x41670f
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x416587
test ecx, ecx
je 0x416585
push ecx
call fcn.00418f64
add esp, 4
jmp 0x416587
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.0041a290
mov ebx, dword [ebp - 0x2b18]
add esp, 0xc
mov eax, dword [ebp - 0x2b28]
mov byte [ebx + esi], 0
cmp eax, 0x10
jb 0x4165ee
mov ecx, dword [edi]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x4165e4
mov esi, dword [ecx - 4]
add edx, 0x23
sub ecx, esi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x41670f
mov ecx, esi
push edx
push ecx
call fcn.00418f2e
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 0x416610
mov edx, dword [edi]
lea ecx, [eax + edx]
lea esi, [eax + edx]
mov dword [ebp - 0x2b18], ecx
jmp 0x41661d
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.0041b1c0
add esp, 0xc
mov ecx, esi
test eax, eax
cmovne ecx, eax
mov eax, ecx
cmp ecx, esi
je 0x416652
inc ecx
cmp ecx, esi
je 0x416652
nop
mov dl, byte [ecx]
cmp dl, 0x20
je 0x41664a
mov byte [eax], dl
inc eax
inc ecx
cmp ecx, esi
jne 0x416640
mov ebx, dword [edi + 0x14]
mov dword [ebp - 4], 0
mov ecx, edi
cmp ebx, 0x10
jb 0x416662
mov ecx, dword [edi]
mov edx, dword [ebp - 0x2b1c]
mov esi, eax
sub esi, ecx
mov edx, dword [edx]
cmp edx, esi
jb 0x416714
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 0x416694
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.0041a970
mov eax, dword [ebp - 0x2b20]
add esp, 0xc
mov esi, dword [ebp - 0x2b2c]
mov ecx, 1
mov dword [ebp - 4], 0xffffffff
cmp dword [ebx], 0
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.00418ae7
mov esp, ebp
pop ebp
ret
call fcn.0040145c
call fcn.00401423
call fcn.0042113f
call fcn.004023da
int3