Function at 0x410b70
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.00413d10
add esp, 8
test eax, eax
je 0x410bb0
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 0x410bf3
mov al, byte [ebp]
cmp al, bl
je 0x410be2
cmp byte [ebp + 2], bl
jne 0x410be2
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.00413c70
add esp, 4
sub eax, 0x60
jmp 0x410bf8
call fcn.00412730
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 0x410ccb
push 0x41a76c
push ebp
call fcn.00413d10
add esp, 8
test eax, eax
je 0x410cae
push 0x104
lea edx, [esp + 0x170]
push ebp
push edx
call fcn.00413ba0
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x410cae
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x410c63
push esi
call fcn.00410ee0
add esp, 4
test eax, eax
je 0x410cae
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x410cae
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.00413ab0
mov esi, dword [esp + 0x294]
add esp, 0x1c
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], eax
jmp 0x410e74
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 0x410eb6
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x410eb6
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.00413ab0
mov esi, dword [esp + 0x294]
mov ecx, dword [esp + 0x54]
add esp, 0x1c
cmp ecx, ebx
mov dword [esi + 0x1c], eax
jne 0x410d5d
cmp dword [esp + 0x3c], ebx
je 0x410dd7
lea ecx, [esp + 0x24]
lea edx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x410eb6
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x410eb6
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.00413ab0
add esp, 0x1c
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x410df0
cmp dword [esp + 0x34], ebx
jne 0x410df0
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x20], edx
jmp 0x410e6d
lea eax, [esp + 0x24]
lea ecx, [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x410eb6
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x410eb6
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.00413ab0
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.00410aa0
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.00413840
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