Function at 0x456a00
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49db21
mov eax, dword fs:[0]
push eax
mov eax, 0x12e0
call fcn.0047e620
mov eax, dword [0x4cf06c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x45700f
cmp word [ecx], 0
je 0x45700f
lea edx, [ebp - 0x21c]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x456a51
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
cmp word [ebp - 0x21a], 0x3a
jne 0x456f9c
movzx eax, word [ebp - 0x21c]
push eax
call fcn.0048793a
add esp, 4
lea edi, [eax - 0x41]
cmp edi, 0x19
ja 0x45700f
lea ecx, [edi + edi*2]
cmp dword [ebx + ecx*8 + 0xc], 0
jne 0x456be0
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [ebp - 0x1248], eax
cmp eax, 4
jne 0x456be7
lea eax, [ebp - 0x1238]
mov dword [ebp - 0x1238], 0x800
push eax
lea eax, [ebp - 0x122c]
push eax
push 2
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.MPR.dll_WNetGetUniversalNameW]
test eax, eax
jne 0x45700f
mov esi, dword [ebp - 0x122c]
test esi, esi
je 0x456b48
lea edx, [ebp - 0x21c]
mov ecx, esi
sub edx, esi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x456b05
lea eax, [esi + 4]
push 0x4bcd48
push eax
call fcn.0047f21b
add esp, 8
test eax, eax
je 0x456b48
push 0xc
push str.DavWWWRoot_
push eax
call fcn.00487ab6
xor esi, esi
add esp, 0xc
test eax, eax
mov ecx, 2
cmove esi, ecx
jmp 0x456b4a
xor esi, esi
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
lea eax, [ebp - 0x21c]
mov ecx, ebx
push eax
call fcn.00456850
lea edx, [ebp - 0x21c]
lea ecx, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x456b70
sub edx, ecx
sub esp, 8
sar edx, 1
lea ecx, [ebp - 0x21c]
add edx, edx
call fcn.0045f890
add esp, 8
mov dword [ebp - 0x1244], eax
lea eax, [ebp - 0x1244]
mov dword [ebp - 0x1240], edx
mov ecx, ebx
push 8
push eax
push edi
call fcn.00456510
push dword [ebp - 0x1240]
mov ecx, dword [ebx]
push dword [ebp - 0x1244]
call fcn.004551e0
test eax, eax
js 0x456bd7
push 8
lea ecx, [ebp - 0x1244]
push ecx
push eax
mov ecx, ebx
call fcn.00456510
push esi
push edi
mov ecx, ebx
call fcn.00456690
mov eax, edi
jmp 0x457012
push 0x104
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x456e22
lea ecx, [ebp - 0x424]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x456c11
sub ecx, edx
sar ecx, 1
lea ecx, [ecx*2 - 2]
cmp ecx, 0x208
jae 0x457030
xor eax, eax
push eax
push eax
push 3
push eax
push 3
mov word [ebp + ecx - 0x424], ax
lea eax, [ebp - 0x424]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x1264], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x456e22
cmp esi, 0xffffffff
je 0x456e12
push 0
call fcn.00486e21
add esp, 4
mov dword [ebp - 0x1250], 0
mov dword [ebp - 0x124c], 0
push 0x8000
call fcn.0048714e
add esp, 4
mov dword [ebp - 0x1254], eax
test eax, eax
je 0x456cc4
xor edx, edx
mov ecx, 0x8000
mov word [eax], dx
mov dword [ebp - 0x1250], ecx
mov word [eax + 0x7ffe], dx
jmp 0x456cc6
xor ecx, ecx
push 0
lea edx, [ebp - 0x1240]
mov byte [ebp - 4], 1
push edx
push ecx
push eax
push 0
push 0
push 0x560000
push esi
mov dword [ebp - 0x1238], 0
mov dword [ebp - 0x1230], 0
mov dword [ebp - 0x1234], 0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x456d6d
mov eax, dword [ebp - 0x1254]
mov dword [ebp - 0x1234], 0
cmp dword [eax], 1
jb 0x456d6d
mov eax, dword [eax + 8]
mov ecx, eax
push eax
or ecx, 0x1000
lea eax, [ebp - 0x424]
push str..PhysicalDrive_d
push eax
mov dword [ebp - 0x1234], ecx
mov dword [ebp - 0x1238], ecx
call fcn.0040e1d0
add esp, 0xc
lea ecx, [ebp - 0x424]
call fcn.004568a0
test eax, eax
je 0x456d6d
mov ecx, dword [ebp - 0x1234]
mov dword [ebp - 0x1230], 1
mov dword [ebp - 0x1234], ecx
cmp dword [ebp - 0x1248], 2
jne 0x456dc0
lea edx, [ebp - 0x1260]
mov dword [ebp - 0x1260], 0
mov ecx, esi
mov dword [ebp - 0x125c], 0
mov dword [ebp - 0x1258], 0
call fcn.00456950
test eax, eax
je 0x456dab
cmp byte [eax + 0xb], 0
jne 0x456db2
or dword [ebp - 0x1230], 4
push dword [ebp - 0x1260]
call fcn.00486e21
add esp, 4
cmp dword [ebp - 0x1234], 0
je 0x456e04
push 4
lea eax, [ebp - 0x1238]
mov ecx, ebx
push eax
push edi
call fcn.00456510
push dword [ebp - 0x1230]
mov ecx, ebx
push edi
call fcn.00456690
push dword [ebp - 0x1254]
call fcn.00486e21
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x457012
push dword [ebp - 0x1254]
call fcn.00486e21
add esp, 4
test esi, esi
je 0x456e22
cmp esi, 0xffffffff
je 0x456e22
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
push 0x80000002
lea ecx, [ebp - 0x12ec]
call fcn.00460b10
push ecx
push str.SYSTEMMountedDevices
lea ecx, [ebp - 0x12ec]
mov dword [ebp - 4], 2
call fcn.00460ba0
test eax, eax
je 0x456f93
movzx eax, word [ebp - 0x21c]
push eax
lea eax, [ebp - 0xa2c]
mov dword [ebp - 0x1248], 0x400
push str.DosDevices_c:
push eax
call fcn.0040e230
add esp, 0xc
lea eax, [ebp - 0x1248]
lea ecx, [ebp - 0x12ec]
push eax
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0xa2c]
push eax
call fcn.00460f60
test eax, eax
je 0x456f93
push 4
lea eax, [ebp - 0x824]
push 0x4bcd8c
push eax
call fcn.00487ab6
add esp, 0xc
test eax, eax
jne 0x456f05
lea eax, [ebp - 0x824]
push 0x23
push eax
call fcn.0047ece0
add esp, 8
test eax, eax
je 0x456f05
add eax, 2
push 0x23
push eax
call fcn.0047ece0
add esp, 8
test eax, eax
je 0x456f05
push 0x26
push eax
call fcn.0047ece0
add esp, 8
test eax, eax
je 0x456f05
push 0x10
add eax, 2
push 0
push eax
call fcn.00486d08
add esp, 0xc
mov ecx, eax
jmp 0x456f59
push 4
lea eax, [ebp - 0x824]
push 0x4bcdbc
push eax
call fcn.00487ab6
add esp, 0xc
test eax, eax
jne 0x456f34
lea eax, [ebp - 0x824]
push 0x7b
push eax
call fcn.0047ece0
add esp, 8
test eax, eax
jne 0x456ef1
push 8
lea eax, [ebp - 0x824]
push str.DMIO:ID:
push eax
call fcn.00487ab6
mov ecx, dword [ebp - 0x824]
add esp, 0xc
test eax, eax
cmove ecx, dword [ebp - 0x814]
mov dword [ebp - 0x1230], ecx
cmp ecx, 0x1e
ja 0x456f70
or ecx, 0x88000000
mov dword [ebp - 0x1230], ecx
push 4
lea eax, [ebp - 0x1230]
push eax
push edi
mov ecx, ebx
call fcn.00456510
lea ecx, [ebp - 0x12ec]
call fcn.00460b50
mov eax, edi
jmp 0x457012
push 1
push 0x4aef7e
jmp 0x456f79
lea eax, [ebp - 0x21c]
mov ecx, ebx
push eax
call fcn.00456850
lea edx, [ebp - 0x21c]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x456fb3
sub edx, ecx
sub esp, 8
sar edx, 1
lea ecx, [ebp - 0x21c]
add edx, edx
call fcn.0045f890
mov ecx, dword [ebx]
add esp, 8
mov dword [ebp - 0x1244], eax
mov dword [ebp - 0x1240], edx
push edx
push eax
call fcn.004551e0
mov esi, eax
test esi, esi
js 0x45700f
lea eax, [esi + esi*2]
cmp dword [ebx + eax*8 + 0xc], 0
jne 0x45700b
push 8
lea eax, [ebp - 0x1244]
mov ecx, ebx
push eax
push esi
call fcn.00456510
mov eax, esi
jmp 0x457012
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047d39f
mov esp, ebp
pop ebp
ret 4
call fcn.0047d64c
int3