Function at 0x410a30
Capabilities:
Get disk information

Disassembly:
sub esp, 0x260
push ebx
push ebp
mov ebp, dword [esp + 0x26c]
push esi
push edi
push 0x41a770
push ebp
call fcn.00413bd0
add esp, 8
test eax, eax
je 0x410a70
mov eax, 2
mov dword [0x4230f8], eax
mov dword [0x4230fc], eax
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x260
ret
mov al, byte [ebp + 1]
xor ebx, ebx
cmp al, 0x3a
jne 0x410ab3
mov al, byte [ebp]
cmp al, bl
je 0x410aa2
cmp byte [ebp + 2], bl
jne 0x410aa2
mov eax, 2
mov dword [0x4230f8], eax
mov dword [0x4230fc], eax
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x260
ret
movsx eax, al
push eax
call fcn.00413b30
add esp, 4
sub eax, 0x60
jmp 0x410ab8
call fcn.004125f0
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 0x410b8b
push 0x41a76c
push ebp
call fcn.00413bd0
add esp, 8
test eax, eax
je 0x410b6e
push 0x104
lea edx, [esp + 0x170]
push ebp
push edx
call fcn.00413a60
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x410b6e
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x410b23
push esi
call fcn.00410da0
add esp, 4
test eax, eax
je 0x410b6e
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x410b6e
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.00413970
mov esi, dword [esp + 0x294]
add esp, 0x1c
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], eax
jmp 0x410d34
mov eax, 2
mov dword [0x4230f8], eax
mov dword [0x4230fc], eax
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 0x410d76
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x410d76
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.00413970
mov esi, dword [esp + 0x294]
mov ecx, dword [esp + 0x54]
add esp, 0x1c
cmp ecx, ebx
mov dword [esi + 0x1c], eax
jne 0x410c1d
cmp dword [esp + 0x3c], ebx
je 0x410c97
lea ecx, [esp + 0x24]
lea edx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x410d76
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x410d76
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.00413970
add esp, 0x1c
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x410cb0
cmp dword [esp + 0x34], ebx
jne 0x410cb0
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x20], edx
jmp 0x410d2d
lea eax, [esp + 0x24]
lea ecx, [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x410d76
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x410d76
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.00413970
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.00410960
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.00413700
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