Function at 0x47a3f0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x25c
push ebx
push esi
mov esi, dword [esp + 0x268]
push edi
push ebp
push 0x47bda8
push esi
call fcn.0047ac30
add esp, 8
test eax, eax
je 0x47a432
mov eax, 2
pop ebp
pop edi
mov dword [0x4c5b60], eax
pop esi
mov dword [0x4c5b64], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
cmp byte [esi + 1], 0x3a
jne 0x47a474
mov al, byte [esi]
test al, al
je 0x47a463
cmp byte [esi + 2], 0
jne 0x47a463
mov eax, 2
pop ebp
pop edi
mov dword [0x4c5b60], eax
pop esi
mov dword [0x4c5b64], eax
mov eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
movsx eax, al
push eax
call fcn.0047ad10
add esp, 4
lea ebx, [eax - 0x60]
jmp 0x47a47b
call fcn.0047acd0
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 0x47a552
push 0x47bda4
push esi
call fcn.0047ac30
add esp, 8
test eax, eax
je 0x47a533
lea eax, [esp + 0x168]
push 0x104
push esi
push eax
call fcn.0047ab50
add esp, 0xc
mov ebp, eax
test ebp, ebp
je 0x47a533
mov edi, ebp
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
je 0x47a4e6
push ebp
call fcn.0047a790
add esp, 4
test eax, eax
je 0x47a533
push ebp
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
jbe 0x47a533
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.00464a20
add esp, 0x1c
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x20], eax
jmp 0x47a6da
mov eax, 2
pop ebp
pop edi
mov dword [0x4c5b60], eax
pop esi
mov dword [0x4c5b64], 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 0x47a765
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x47a765
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.00464a20
add esp, 0x1c
mov dword [ebp + 0x1c], eax
cmp dword [esp + 0x34], 0
jne 0x47a5da
cmp dword [esp + 0x38], 0
je 0x47a64a
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x47a73f
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x47a73f
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.00464a20
add esp, 0x1c
cmp dword [esp + 0x2c], 0
mov dword [ebp + 0x18], eax
jne 0x47a660
cmp dword [esp + 0x30], 0
jne 0x47a660
mov eax, dword [ebp + 0x1c]
jmp 0x47a6d0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x47a719
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x47a719
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.00464a20
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.0047a310
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.004654b0
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.004654b0
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.004654b0
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