Function at 0x451b50
Capabilities:
Get disk information

Disassembly:
sub esp, 0x260
push ebx
push ebp
mov ebp, dword [esp + 0x26c]
push esi
push edi
push 0x4548fc
push ebp
call fcn.00452440
add esp, 8
test eax, eax
je 0x451b90
mov eax, 2
mov dword [0x77a0c4], eax
mov dword [0x77a0c8], 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 0x451bd3
mov al, byte [ebp]
cmp al, bl
je 0x451bc2
cmp byte [ebp + 2], bl
jne 0x451bc2
mov eax, 2
mov dword [0x77a0c4], eax
mov dword [0x77a0c8], eax
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x260
ret
movsx eax, al
push eax
call fcn.004523b0
add esp, 4
sub eax, 0x60
jmp 0x451bd8
call fcn.004472e0
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 0x451cab
push 0x4548f8
push ebp
call fcn.00452440
add esp, 8
test eax, eax
je 0x451c8e
push 0x104
lea edx, [esp + 0x170]
push ebp
push edx
call fcn.004473d0
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x451c8e
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x451c43
push esi
call fcn.00451ec0
add esp, 4
test eax, eax
je 0x451c8e
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x451c8e
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.004522c0
mov esi, dword [esp + 0x294]
add esp, 0x1c
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], eax
jmp 0x451e54
mov eax, 2
mov dword [0x77a0c4], eax
mov dword [0x77a0c8], 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 0x451e96
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x451e96
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.004522c0
mov esi, dword [esp + 0x294]
mov ecx, dword [esp + 0x54]
add esp, 0x1c
cmp ecx, ebx
mov dword [esi + 0x1c], eax
jne 0x451d3d
cmp dword [esp + 0x3c], ebx
je 0x451db7
lea ecx, [esp + 0x24]
lea edx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x451e96
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x451e96
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.004522c0
add esp, 0x1c
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x451dd0
cmp dword [esp + 0x34], ebx
jne 0x451dd0
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x20], edx
jmp 0x451e4d
lea eax, [esp + 0x24]
lea ecx, [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x451e96
lea edx, [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x451e96
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.004522c0
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.00451a80
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.0044bd90
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