Function at 0x421e90
Capabilities:
Get disk information

Disassembly:
sub esp, 0x260
push ebx
push ebp
mov ebp, dword [esp + 0x26c]
push esi
push edi
push 0x4544d0
push ebp
call fcn.00423c00
add esp, 8
test eax, eax
jne 0x421f9c
mov al, byte [ebp + 1]
xor ebx, ebx
cmp al, 0x3a
jne 0x421ee1
mov al, byte [ebp]
cmp al, bl
je 0x421ed0
cmp byte [ebp + 2], bl
je 0x421f9c
movsx eax, al
push eax
call fcn.00428ec0
add esp, 4
sub eax, 0x60
jmp 0x421ee6
call fcn.00428e70
lea ecx, [esp + 0x2c]
mov dword [esp + 0x20], eax
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x421fc0
push 0x4544cc
push ebp
call fcn.00423c00
add esp, 8
test eax, eax
je 0x421f9c
push 0x104
lea edx, [esp + 0x170]
push ebp
push edx
call fcn.00425530
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x421f9c
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x421f51
push esi
call fcn.004221d0
add esp, 4
test eax, eax
je 0x421f9c
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x421f9c
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push 1
push 1
push 0x7bc
mov dword [esp + 0x48], 0x10
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov byte [esp + 0x74], bl
call fcn.004289c0
mov esi, dword [esp + 0x294]
add esp, 0x1c
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], eax
jmp 0x422169
call fcn.00425b10
mov dword [eax], 2
call fcn.00425b20
mov dword [eax], 2
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x260
ret
lea eax, [esp + 0x24]
lea ecx, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x4221ab
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4221ab
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1a]
mov eax, dword [esp + 0x18]
and ecx, 0xffff
push 0xffffffffffffffff
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x1e]
and eax, 0xffff
push edx
mov edx, dword [esp + 0x1e]
push eax
mov eax, dword [esp + 0x20]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
call fcn.004289c0
mov esi, dword [esp + 0x294]
mov ecx, dword [esp + 0x54]
add esp, 0x1c
cmp ecx, ebx
mov dword [esi + 0x1c], eax
jne 0x422052
cmp dword [esp + 0x3c], ebx
je 0x4220cc
lea ecx, [esp + 0x24]
lea edx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x4221ab
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4221ab
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1a]
mov ecx, dword [esp + 0x18]
and edx, 0xffff
push 0xffffffffffffffff
and eax, 0xffff
push edx
mov edx, dword [esp + 0x1e]
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x1e]
push ecx
mov ecx, dword [esp + 0x20]
and edx, 0xffff
and eax, 0xffff
push edx
and ecx, 0xffff
push eax
push ecx
call fcn.004289c0
add esp, 0x1c
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x4220e5
cmp dword [esp + 0x34], ebx
jne 0x4220e5
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x20], edx
jmp 0x422162
lea eax, [esp + 0x24]
lea ecx, [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x4221ab
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4221ab
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1a]
mov eax, dword [esp + 0x18]
and ecx, 0xffff
push 0xffffffffffffffff
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x1e]
and eax, 0xffff
push edx
mov edx, dword [esp + 0x1e]
push eax
mov eax, dword [esp + 0x20]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
call fcn.004289c0
add esp, 0x1c
mov dword [esi + 0x20], eax
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x2c]
push ebp
push ecx
call fcn.00421dc0
mov edx, dword [esp + 0x54]
mov word [esi + 6], ax
mov eax, dword [esp + 0x28]
add esp, 8
dec eax
mov word [esi + 8], 1
mov dword [esi], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov word [esi + 4], bx
mov word [esi + 0xc], bx
mov word [esi + 0xa], bx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x260
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00425a90
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x260
ret