Function at 0x472120
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x14ec
call fcn.004887b0
mov eax, dword [0x4db06c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
push 0x4f2a68
mov dword [ebp - 0x14e4], edx
mov ebx, ecx
mov dword [ebp - 0x14ec], eax
call dword [sym.imp.KERNEL30.dll_GetLocalTime]
push 0x471a90
call fcn.0049140e
mov edi, ebx
add esp, 4
lea ecx, [edi + 2]
nop dword [eax + eax]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x472170
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
lea esi, [edi + edi]
mov dword [ebp - 0x14e8], eax
push esi
push ebx
push eax
call fcn.00489a20
mov ecx, dword [ebp - 0x14e8]
xor eax, eax
add esp, 0x10
mov edx, 0x3ff
mov word [esi + ecx], ax
test edi, edi
jle 0x4721d7
movzx eax, word [esi + ecx - 2]
add eax, 0x2800
cmp ax, dx
ja 0x4721d7
xor eax, eax
mov word [esi + ecx - 2], ax
mov dword [0x4f2a50], ecx
mov ecx, ebx
call fcn.00463750
mov edi, dword [ebp - 0x14e4]
mov dword [0x4f2a30], eax
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4721f2
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00487989
lea esi, [edi + edi]
mov ebx, eax
push esi
push dword [ebp - 0x14e4]
push ebx
call fcn.00489a20
xor eax, eax
add esp, 0x10
mov word [esi + ebx], ax
test edi, edi
jle 0x472254
movzx eax, word [esi + ebx - 2]
mov ecx, 0x3ff
add eax, 0x2800
cmp ax, cx
ja 0x472254
xor eax, eax
mov word [esi + ebx - 2], ax
mov ecx, dword [ebp - 0x14ec]
mov eax, 0x4bcb64
test ecx, ecx
mov dword [0x4f2a2c], ebx
mov dword [0x4f2a4c], 0x1a25
cmovne eax, ecx
push eax
call fcn.00495cfc
push 0x1040
mov dword [0x4f2a7c], eax
lea eax, [ebp - 0x1444]
push 0
push eax
call fcn.0048b570
add esp, 0x10
lea eax, [ebp - 0x1444]
push 0x820
push eax
push 0
call dword [sym.imp.KERNEL30.dll_GetModuleFileNameW]
test eax, eax
je 0x4722f9
cmp word [ebp - 0x1444], 0x5c
mov ax, word [ebp - 0x1442]
jne 0x4722c4
cmp ax, 0x5c
je 0x4722ef
cmp ax, 0x3a
jne 0x4722f9
cmp word [ebp - 0x1440], 0x5c
jne 0x4722f9
xor eax, eax
mov word [ebp - 0x143e], ax
lea eax, [ebp - 0x1444]
push eax
call dword [sym.imp.KERNEL30.dll_GetDriveTypeW]
cmp eax, 4
jne 0x4722f9
mov dword [0x4f2a78], 1
push ecx
xor ecx, ecx
call fcn.00471ab0
push 0x98
lea eax, [ebp - 0x14dc]
mov dword [ebp - 0x14e0], 0x9c
push 0
push eax
call fcn.0048b570
add esp, 0x10
lea eax, [ebp - 0x14e0]
push eax
call dword [sym.imp.KERNEL30.dll_GetVersionExA]
movzx eax, word [ebp - 0x1448]
push eax
movzx eax, word [ebp - 0x144a]
push eax
movzx eax, word [ebp - 0x144c]
push eax
push dword [ebp - 0x14d4]
lea eax, [ebp - 0x404]
push dword [ebp - 0x14d8]
push dword [ebp - 0x14dc]
push str._02x__02x__02x__02x__02x__02x
push 0x400
push eax
call fcn.00462e40
lea edi, [ebp - 0x404]
add esp, 0x24
lea ecx, [edi + 1]
nop word [eax + eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x472380
sub edi, ecx
lea eax, [edi + 1]
push eax
call fcn.00487989
mov esi, eax
lea eax, [ebp - 0x404]
push edi
push eax
push esi
call fcn.00489a20
add esp, 0x10
mov byte [esi + edi], 0
mov dword [0x4f2a64], esi
push 0
call dword [sym.imp.KERNEL30.dll_GetModuleHandleW]
push 0x4702a0
mov dword [0x4f29dc], eax
call dword [sym.imp.KERNEL30.dll_SetUnhandledExceptionFilter]
call fcn.00471e10
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00487555
mov esp, ebp
pop ebp
ret