Function at 0x10008460
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x180
push ebx
push esi
push edi
call fcn.10001b70
mov ecx, 0xff458ae9
xor esi, esi
push esi
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
call fcn.100113e0
mov cl, byte [ebp - 1]
push esi
mov byte [ebp - 0x34], cl
lea ecx, [ebp - 0x34]
call fcn.100113e0
mov dl, byte [ebp - 1]
mov dword [ebp - 0x10], esi
mov byte [ebp - 0x14], dl
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
mov ebx, 0x63
push ebx
lea eax, [ebp - 0x40]
push str._c:_
push eax
call fcn.1001440f
lea edi, [ebp - 0x40]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x24]
call fcn.10011940
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100084df
mov eax, 0x1001e220
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeA]
cmp eax, 1
je 0x100085b4
test eax, eax
je 0x100085aa
cmp eax, 5
je 0x100085aa
mov eax, dword [0x100235e4]
test eax, eax
je 0x1000851b
mov ecx, 0x100235e0
call fcn.10011360
mov esi, dword [0x100235e4]
jmp 0x10008520
mov esi, 0x1001e220
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x10008534
lea ecx, [ebp - 0x24]
call fcn.10011360
mov eax, dword [ebp - 0x20]
jmp 0x10008539
mov eax, 0x1001e220
mov dl, byte [esi]
mov cl, byte [eax]
cmp dl, cl
je 0x100085aa
mov eax, dword [0x1001e224]
lea ecx, [ebp - 0x24]
push eax
push 0
push ecx
lea ecx, [ebp - 0x34]
call fcn.100110d0
mov edi, 0x10020264
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10020264
lea ecx, [ebp - 0x34]
call fcn.10011880
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x1000857e
mov eax, 0x1001e220
lea edx, [ebp - 0x180]
push edx
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileA]
cmp eax, 0xffffffff
je 0x100085aa
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x24]
push eax
push 1
push ecx
lea ecx, [ebp - 0x14]
call fcn.10011fc0
inc ebx
cmp ebx, 0x7a
jl 0x100084a7
push 0
call fcn.100142bb
push eax
call fcn.1001428c
add esp, 8
push 0x8003
call dword [sym.imp.KERNEL32.DLL_SetErrorMode]
mov esi, dword [ebp - 0x10]
xor ebx, ebx
cmp esi, ebx
je 0x10008649
mov edi, dword [ebp - 0xc]
sub edi, esi
sar edi, 4
je 0x10008649
call fcn.10014299
mov edx, dword [0x100270f4]
mov ecx, dword [0x100270f8]
add eax, edx
xor edx, edx
add eax, ecx
mov esi, dword [ebp - 0x10]
div edi
cmp edx, ebx
jl 0x10008649
cmp esi, ebx
je 0x10008649
mov eax, dword [ebp - 0xc]
sub eax, esi
sar eax, 4
cmp edx, eax
jae 0x10008649
push edx
lea ecx, [ebp - 0x14]
call fcn.10010ef0
mov edi, eax
sub esp, 0x10
mov esi, esp
mov cl, byte [edi]
push ebx
mov byte [esi], cl
mov ecx, esi
call fcn.100113e0
mov edx, dword [0x1001e224]
mov ecx, esi
push edx
push ebx
push edi
call fcn.100110d0
call fcn.10008330
mov esi, dword [ebp - 0x10]
add esp, 0x10
mov edi, dword [ebp - 0xc]
cmp esi, edi
je 0x10008662
push ebx
mov ecx, esi
call fcn.10013040
add esi, 0x10
cmp esi, edi
jne 0x10008650
mov esi, dword [ebp - 0x10]
push esi
call fcn.1001348e
mov ecx, dword [ebp - 0x30]
add esp, 4
cmp ecx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
je 0x10008697
mov al, byte [ecx - 1]
test al, al
je 0x1000868d
cmp al, 0xff
je 0x1000868d
dec al
mov byte [ecx - 1], al
jmp 0x10008697
dec ecx
push ecx
call fcn.1001348e
add esp, 4
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], ebx
cmp ecx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
je 0x100086c8
mov al, byte [ecx - 1]
test al, al
je 0x100086be
cmp al, 0xff
je 0x100086be
dec al
mov byte [ecx - 1], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec ecx
push ecx
call fcn.1001348e
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret