Function at 0x1000d460
Capabilities:
Get disk information

Disassembly:
mov ecx, dword [esp + 8]
sub esp, 0x210
test cx, cx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x220]
push edi
jne 0x1000d486
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea eax, [esp + 0x18]
and ebx, 0xffff
push ebx
push esi
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
lea ecx, [esp + 0x24]
mov byte [esp + ebx + 0x24], 0
push ecx
call fcn.1000dd70
mov al, byte [esi]
add esp, 0x10
cmp al, 0x5c
jne 0x1000d4b8
cmp byte [esi + 1], al
je 0x1000d4c2
cmp al, 0x2f
jne 0x1000d51e
cmp byte [esi + 1], 0x2f
jne 0x1000d51e
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea eax, [esp + 0x18]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x22c]
mov dword [esp + 0x10], eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + ebx + 0x18]
cmp edx, ecx
jae 0x1000d511
cmp byte [eax], 0x2f
jne 0x1000d508
mov byte [eax], 0x5c
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x1000d4fc
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x210
ret
lea eax, [esp + 0x18]
push 0x3a
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
mov ebp, dword [esp + 0x234]
mov edx, eax
add esp, 8
test edx, edx
je 0x1000d5c4
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
sub edx, ecx
cmp edx, 1
je 0x1000d578
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x210
ret
mov edi, 0x1004faf8
or ecx, 0xffffffff
xor eax, eax
mov dl, byte [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x14], dl
lea edx, [esp + 0x15]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp ax, 1
ja 0x1000d5c4
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x210
ret
lea edx, [esp + 0x18]
lea ecx, [esp + ebx + 0x18]
lea eax, [esp + 0x18]
cmp edx, ecx
mov dword [esp + 0x10], eax
jae 0x1000d5ed
cmp byte [eax], 0x2f
jne 0x1000d5e4
mov byte [eax], 0x5c
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x1000d5d8
cmp byte [esp + 0x18], 0x5c
jne 0x1000d629
cmp byte [esp + 0x19], 0x5c
jne 0x1000d629
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x210
ret
lea ecx, [esp + 0x10]
lea edx, [esp + 0x18]
push ecx
push ebp
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test ax, ax
je 0x1000d64a
cmp ax, 0x104
jb 0x1000d681
lea eax, [esp + 0x18]
push 0x104
push eax
push ebp
call dword [sym.imp.MSVCRT.dll__fullpath]
add esp, 0xc
test eax, eax
jne 0x1000d681
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x11c]
push 0x104
push eax
push ebp
call fcn.1000d720
mov edx, eax
add esp, 0xc
test dx, dx
je 0x1000d6cb
cmp dx, 0x104
jae 0x1000d6cb
lea edi, [esp + 0x11c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x1000d6d9
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, ecx
test dx, dx
jbe 0x1000d703
mov ecx, edx
and ecx, 0xffff
mov al, byte [ebp]
cmp al, 0x61
jl 0x1000d6f9
cmp al, 0x7a
jg 0x1000d6f9
movsx eax, al
sub eax, 0x20
jmp 0x1000d6fc
movsx eax, al
mov byte [ebp], al
inc ebp
dec ecx
jne 0x1000d6e6
pop edi
mov eax, edx
pop esi
pop ebp
and eax, 0xffff
pop ebx
add esp, 0x210
ret