Function at 0x427640
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5842a0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
mov eax, dword [0x61b660]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c8], ecx
xor eax, eax
mov word [ebp - 0x10c], ax
push 0xd0
push 0
lea ecx, [ebp - 0x10a]
push ecx
call fcn.00529d40
add esp, 0xc
lea edx, [ebp - 0x10c]
push edx
push 0x69
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
lea eax, [ebp - 0x10c]
mov dword [ebp - 0x164], eax
jmp 0x4276bc
mov ecx, dword [ebp - 0x164]
add ecx, 8
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x164]
movzx eax, word [edx]
test eax, eax
je 0x4278eb
mov ecx, dword [ebp - 0x164]
movzx edx, word [ecx]
cmp edx, 0x61
jl 0x4276f0
mov eax, dword [ebp - 0x164]
movzx ecx, word [eax]
sub ecx, 0x20
mov edx, dword [ebp - 0x164]
mov word [edx], cx
mov eax, dword [ebp - 0x164]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x4278e6
push 8
lea ecx, [ebp - 0x15c]
push ecx
lea edx, [ebp - 0x30]
push edx
lea eax, [ebp - 0x160]
push eax
push 0
push 0x20
lea ecx, [ebp - 0x14c]
push ecx
mov edx, dword [ebp - 0x164]
push edx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
movzx eax, word [ebp - 0x15c]
cmp eax, 0x4e
jne 0x42788c
movzx ecx, word [ebp - 0x15a]
cmp ecx, 0x54
jne 0x42788c
movzx edx, word [ebp - 0x158]
cmp edx, 0x46
jne 0x42788c
movzx eax, word [ebp - 0x156]
cmp eax, 0x53
jne 0x42788c
push 0x20
call fcn.0042a49a
add esp, 4
mov dword [ebp - 0x188], eax
cmp dword [ebp - 0x188], 0
je 0x4277fa
mov ecx, dword [ebp - 0x188]
add ecx, 0x10
mov dword [ebp - 0x198], ecx
lea edx, [ebp - 0x191]
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0x198]
mov dword [eax], 0
mov ecx, dword [ebp - 0x198]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 0x198]
mov dword [edx + 8], 0
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], eax
mov ecx, dword [ebp - 0x188]
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0x188]
mov dword [ebp - 0x1d0], edx
jmp 0x427804
mov dword [ebp - 0x1d0], 0
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x184]
mov dword [ebp - 0x16c], ecx
mov byte [ebp - 0x168], 0
xor edx, edx
mov word [ebp - 0x167], dx
mov byte [ebp - 0x165], dl
push 0
push 0
mov eax, dword [ebp - 0x164]
push eax
call fcn.0052b405
add esp, 4
push eax
lea ecx, [ebp - 0x168]
push ecx
push 0xffffffffffffffff
mov edx, dword [ebp - 0x164]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0x16c]
push eax
push 0x5c2978
lea ecx, [ebp - 0x168]
push ecx
call fcn.005297fb
add esp, 0xc
lea edx, [ebp - 0x16c]
push edx
mov ecx, dword [ebp + 8]
call fcn.00425bb0
jmp 0x4278e6
mov eax, dword [ebp - 0x164]
movzx ecx, word [eax]
push ecx
push 0x5c2970
lea edx, [ebp - 0x180]
push edx
call fcn.00427910
add esp, 0xc
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00428f50
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00429310
mov dword [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.00406130
mov dword [ebp - 4], 0xffffffff
jmp 0x4276ad
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052927b
mov esp, ebp
pop ebp
ret 8