Function at 0x452b10
Capabilities:
Get disk information

Disassembly:
sub esp, 0x25c
push ebx
push esi
mov esi, dword [esp + 0x268]
push edi
push ebp
push 0x47f934
push esi
call fcn.00455690
add esp, 8
test eax, eax
je 0x452b59
call fcn.00454ee0
mov dword [eax], 2
call fcn.00454ef0
pop ebp
mov dword [eax], 2
mov eax, 0xffffffff
pop edi
pop esi
pop ebx
add esp, 0x25c
ret
cmp byte [esi + 1], 0x3a
jne 0x452ba2
mov al, byte [esi]
test al, al
je 0x452b91
cmp byte [esi + 2], 0
jne 0x452b91
call fcn.00454ee0
mov dword [eax], 2
call fcn.00454ef0
pop ebp
mov dword [eax], 2
mov eax, 0xffffffff
pop edi
pop esi
pop ebx
add esp, 0x25c
ret
movsx eax, al
push eax
call fcn.00455820
add esp, 4
lea ebp, [eax - 0x60]
jmp 0x452ba9
call fcn.00455750
mov ebp, eax
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov ebx, eax
jne 0x452c72
push 0x47f930
push esi
call fcn.00455690
add esp, 8
test eax, eax
je 0x452c4c
lea eax, [esp + 0x168]
push 0x104
push esi
xor ebx, ebx
push eax
call fcn.004555d0
add esp, 0xc
mov edx, eax
test edx, edx
je 0x452c4c
mov edi, edx
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jne 0x452c4c
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x452c4c
mov edi, dword [esp + 0x274]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
push ebx
mov byte [esp + 0x58], bl
push ebx
mov dword [esp + 0x30], 0x10
push ebx
push 1
push 1
push 0x7bc
call fcn.004550f0
add esp, 0x18
mov dword [edi + 0x1c], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x20], eax
jmp 0x452df4
call fcn.00454ee0
mov dword [eax], 2
call fcn.00454ef0
pop ebp
mov dword [eax], 2
mov eax, 0xffffffff
pop edi
pop esi
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 0x452e7e
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x452e7e
mov edi, dword [esp + 0x274]
mov eax, dword [esp + 0x1c]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x1e]
push eax
mov eax, dword [esp + 0x20]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
mov eax, dword [esp + 0x24]
and eax, 0xffff
push eax
call fcn.004550f0
add esp, 0x18
mov dword [edi + 0x1c], eax
cmp dword [esp + 0x34], 0
jne 0x452cf8
cmp dword [esp + 0x38], 0
je 0x452d66
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x452e58
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x452e58
mov eax, dword [esp + 0x1c]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x1e]
push eax
mov eax, dword [esp + 0x20]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
mov eax, dword [esp + 0x24]
and eax, 0xffff
push eax
call fcn.004550f0
add esp, 0x18
cmp dword [esp + 0x2c], 0
mov dword [edi + 0x18], eax
jne 0x452d7c
cmp dword [esp + 0x30], 0
jne 0x452d7c
mov eax, dword [edi + 0x1c]
jmp 0x452dea
lea eax, [esp + 0x20]
lea ecx, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x452e32
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x452e32
mov eax, dword [esp + 0x1c]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x1e]
push eax
mov eax, dword [esp + 0x20]
and eax, 0xffff
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
xor eax, eax
mov ax, word [esp + 0x22]
push eax
mov eax, dword [esp + 0x24]
and eax, 0xffff
push eax
call fcn.004550f0
add esp, 0x18
push ebx
mov dword [edi + 0x20], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x28]
push esi
push eax
call fcn.00452a30
mov word [edi + 6], ax
add esp, 8
mov word [edi + 8], 1
mov eax, dword [esp + 0x48]
dec ebp
mov dword [edi + 0x14], eax
mov dword [edi], ebp
xor eax, eax
mov dword [edi + 0x10], ebp
mov word [edi + 4], ax
pop ebp
mov word [edi + 0xc], ax
mov word [edi + 0xa], ax
pop edi
pop esi
pop ebx
add esp, 0x25c
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00454e60
add esp, 4
push ebx
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.00454e60
add esp, 4
push ebx
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.00454e60
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x25c
ret