Function at 0x446e30
Capabilities:
Get disk information

Disassembly:
sub esp, 0x25c
push ebx
push esi
mov esi, dword [esp + 0x268]
push edi
push ebp
push 0x448774
push esi
call fcn.00447600
add esp, 8
test eax, eax
je 0x446e72
mov eax, 2
pop ebp
pop edi
mov dword [0x450670], eax
pop esi
mov dword [0x450674], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
cmp byte [esi + 1], 0x3a
jne 0x446eb4
mov al, byte [esi]
test al, al
je 0x446ea3
cmp byte [esi + 2], 0
jne 0x446ea3
mov eax, 2
pop ebp
pop edi
mov dword [0x450670], eax
pop esi
mov dword [0x450674], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
movsx eax, al
push eax
call fcn.004476e0
add esp, 4
lea ebx, [eax - 0x60]
jmp 0x446ebb
call fcn.004476a0
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 0x446f92
push 0x448770
push esi
call fcn.00447600
add esp, 8
test eax, eax
je 0x446f73
lea eax, [esp + 0x168]
push 0x104
push esi
push eax
call fcn.00447520
add esp, 0xc
mov ebp, eax
test ebp, ebp
je 0x446f73
mov edi, ebp
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x446f26
push ebp
call fcn.004471d0
add esp, 4
test eax, eax
je 0x446f73
push ebp
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x446f73
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.00441c50
add esp, 0x1c
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x20], eax
jmp 0x44711a
mov eax, 2
pop ebp
pop edi
mov dword [0x450670], eax
pop esi
mov dword [0x450674], 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 0x4471a5
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x4471a5
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.00441c50
add esp, 0x1c
mov dword [ebp + 0x1c], eax
cmp dword [esp + 0x34], 0
jne 0x44701a
cmp dword [esp + 0x38], 0
je 0x44708a
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x44717f
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x44717f
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.00441c50
add esp, 0x1c
cmp dword [esp + 0x2c], 0
mov dword [ebp + 0x18], eax
jne 0x4470a0
cmp dword [esp + 0x30], 0
jne 0x4470a0
mov eax, dword [ebp + 0x1c]
jmp 0x447110
lea eax, [esp + 0x20]
lea ecx, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x447159
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x447159
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.00441c50
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.00446d50
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.00441be0
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.00441be0
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.00441be0
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