Function at 0x4022d0
Capabilities:
Get disk information
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6e0
mov eax, dword [0x41b0ac]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, 0x41
mov word [ebp - 4], ax
jmp 0x4022fa
mov cx, word [ebp - 4]
add cx, 1
mov word [ebp - 4], cx
movzx edx, word [ebp - 4]
cmp edx, 0x5a
jg 0x402562
mov dword [ebp - 8], 0xffffffff
xor eax, eax
mov word [ebp - 0x218], ax
push 0x206
push 0
lea ecx, [ebp - 0x216]
push ecx
call fcn.00407a70
add esp, 0xc
movzx edx, word [ebp - 4]
push edx
push str.._c:
push 0xffffffffffffffff
lea eax, [ebp - 0x218]
push eax
call fcn.00404460
add esp, 0x10
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x402372
jmp 0x402546
push 0x90
push 0
lea edx, [ebp - 0x4c8]
push edx
call fcn.00407a70
add esp, 0xc
mov dword [ebp - 0xc], 0
push 0
lea eax, [ebp - 0xc]
push eax
push 0x90
lea ecx, [ebp - 0x4c8]
push ecx
push 0
push 0
push 0x70048
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4023bd
jmp 0x402546
mov dword [ebp - 0x434], 0
xor eax, eax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], eax
push 0
lea ecx, [ebp - 0xc]
push ecx
push 0xc
lea edx, [ebp - 0x434]
push edx
push 0
push 0
push 0x2d1080
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x402400
jmp 0x402546
mov ecx, dword [0x417990]
mov dword [ebp - 0x428], ecx
mov edx, dword [0x417994]
mov dword [ebp - 0x424], edx
mov ax, word [ebp - 4]
mov word [ebp - 0x428], ax
xor ecx, ecx
mov word [ebp - 0x420], cx
push 0x206
push 0
lea edx, [ebp - 0x41e]
push edx
call fcn.00407a70
add esp, 0xc
push 0
push 0
push 0
push 0
push 0
push 0x104
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x428]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x40246e
jmp 0x402546
movzx edx, word [ebp - 4]
push edx
lea eax, [ebp - 0x420]
push eax
push str._s___c:_
push 0xffffffffffffffff
lea ecx, [ebp - 0x420]
push ecx
call fcn.00404460
add esp, 0x14
xor edx, edx
mov word [ebp - 0x6e0], dx
push 0x1fe
push 0
lea eax, [ebp - 0x6de]
push eax
call fcn.00407a70
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x4e0], ecx
mov dword [ebp - 0x4dc], ecx
mov dword [ebp - 0x4d8], ecx
mov dword [ebp - 0x4d4], ecx
mov dword [ebp - 0x4d0], ecx
mov dword [ebp - 0x4cc], ecx
xor edx, edx
cmp dword [ebp - 0x4c8], 1
sete dl
mov dword [ebp - 0x4d0], edx
mov eax, dword [ebp - 0x4b8]
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x4b4]
mov dword [ebp - 0x4d4], ecx
mov edx, dword [ebp - 0x430]
mov dword [ebp - 0x4e0], edx
mov eax, dword [ebp - 0x4b0]
mov dword [ebp - 0x4dc], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x6e0]
push edx
call fcn.00404440
add esp, 0xc
lea eax, [ebp - 0x6e0]
push eax
mov ecx, dword [ebp + 8]
call fcn.00402740
xor ecx, ecx
jne 0x40230e
cmp dword [ebp - 8], 0xffffffff
je 0x40255d
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 8], 0xffffffff
jmp 0x4022ee
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00407a5c
mov esp, ebp
pop ebp
ret