Function at 0x46eb30
Capabilities:
Get disk information

Disassembly:
sub esp, 0x25c
push ebx
push esi
mov esi, dword [esp + 0x268]
push edi
push ebp
push 0x470d8c
push esi
call fcn.0046f300
add esp, 8
test eax, eax
je 0x46eb72
mov eax, 2
pop ebp
pop edi
mov dword [0x478c6c], eax
pop esi
mov dword [0x478c70], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
cmp byte [esi + 1], 0x3a
jne 0x46ebb4
mov al, byte [esi]
test al, al
je 0x46eba3
cmp byte [esi + 2], 0
jne 0x46eba3
mov eax, 2
pop ebp
pop edi
mov dword [0x478c6c], eax
pop esi
mov dword [0x478c70], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
movsx eax, al
push eax
call fcn.0046f3e0
add esp, 4
lea ebx, [eax - 0x60]
jmp 0x46ebbb
call fcn.0046f3a0
mov ebx, eax
lea eax, [esp + 0x28]
mov ebp, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push eax
push esi
call ebp
cmp eax, 0xffffffff
mov edi, eax
jne 0x46ec92
push 0x470d88
push esi
call fcn.0046f300
add esp, 8
test eax, eax
je 0x46ec73
lea eax, [esp + 0x168]
push 0x104
push esi
push eax
call fcn.0046f220
add esp, 0xc
mov ebp, eax
test ebp, ebp
je 0x46ec73
mov edi, ebp
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x46ec26
push ebp
call fcn.0046eed0
add esp, 4
test eax, eax
je 0x46ec73
push ebp
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x46ec73
xor eax, eax
mov ebp, dword [esp + 0x274]
mov dword [esp + 0x44], eax
push 0xffffffffffffffff
mov dword [esp + 0x4c], eax
push eax
mov byte [esp + 0x5c], al
push eax
mov dword [esp + 0x34], 0x10
push eax
push 1
push 1
push 0x7bc
call fcn.00469cf0
add esp, 0x1c
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x20], eax
jmp 0x46ee1a
mov eax, 2
pop ebp
pop edi
mov dword [0x478c6c], eax
pop esi
mov dword [0x478c70], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
lea eax, [esp + 0x20]
lea ecx, [esp + 0x3c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x46eea5
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x46eea5
mov ebp, dword [esp + 0x274]
push 0xffffffffffffffff
mov eax, dword [esp + 0x20]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
mov eax, dword [esp + 0x24]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x26]
push eax
xor eax, eax
mov ax, word [esp + 0x26]
push eax
mov eax, dword [esp + 0x28]
and eax, 0xffff
push eax
call fcn.00469cf0
add esp, 0x1c
mov dword [ebp + 0x1c], eax
cmp dword [esp + 0x34], 0
jne 0x46ed1a
cmp dword [esp + 0x38], 0
je 0x46ed8a
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x46ee7f
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x46ee7f
mov eax, dword [esp + 0x1c]
push 0xffffffffffffffff
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
mov eax, dword [esp + 0x24]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x26]
push eax
xor eax, eax
mov ax, word [esp + 0x26]
push eax
mov eax, dword [esp + 0x28]
and eax, 0xffff
push eax
call fcn.00469cf0
add esp, 0x1c
cmp dword [esp + 0x2c], 0
mov dword [ebp + 0x18], eax
jne 0x46eda0
cmp dword [esp + 0x30], 0
jne 0x46eda0
mov eax, dword [ebp + 0x1c]
jmp 0x46ee10
lea eax, [esp + 0x20]
lea ecx, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x46ee59
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x46ee59
mov eax, dword [esp + 0x1c]
push 0xffffffffffffffff
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
mov eax, dword [esp + 0x24]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x26]
push eax
xor eax, eax
mov ax, word [esp + 0x26]
push eax
mov eax, dword [esp + 0x28]
and eax, 0xffff
push eax
call fcn.00469cf0
add esp, 0x1c
push edi
mov dword [ebp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x28]
push esi
push eax
call fcn.0046ea50
mov word [ebp + 6], ax
add esp, 8
mov word [ebp + 8], 1
mov eax, dword [esp + 0x48]
dec ebx
mov dword [ebp + 0x14], eax
mov dword [ebp], ebx
xor eax, eax
mov dword [ebp + 0x10], ebx
mov word [ebp + 4], ax
mov word [ebp + 0xc], ax
mov word [ebp + 0xa], ax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x25c
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00469c80
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x25c
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00469c80
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x25c
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00469c80
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x25c
ret