Function at 0x41e143
Capabilities:
Get disk information

Disassembly:
push 0x59c
mov eax, 0x444d27
call fcn.00443f18
mov ebx, ecx
mov eax, dword [ebp + 0xc]
sub esp, 0x58
mov ecx, esp
mov dword [ebp - 0x4b4], ebx
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x4b8], eax
push 0xdc
push 9
push 0x564
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
xor esi, esi
lea ecx, [ebp - 0x4fc]
push esi
call fcn.00441304
mov eax, dword [ebp + 8]
mov dword [ebp - 4], esi
test eax, eax
jne 0x41e1ab
mov eax, 0x4076e0
push eax
push esi
push 0x407700
lea eax, [ebp - 0x4a0]
push eax
push ebx
call fcn.004279d2
add esp, 0x14
lea eax, [ebp - 0x4fc]
push 0x407720
push eax
call fcn.00441fad
mov byte [ebp - 4], 2
lea edi, [ebp - 0x468]
mov esi, 0x402740
lea eax, [ebp - 0x468]
pop ecx
pop ecx
push 0x12
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
push esi
push esi
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov edi, eax
mov dword [ebp - 0x4ac], edi
cmp edi, 0xffffffff
je 0x41ed95
mov dword [ebp - 0x41c], esi
mov dword [ebp - 0x418], esi
mov dword [ebp - 0x414], esi
mov dword [ebp - 0x410], esi
mov dword [ebp - 0x40c], esi
mov dword [ebp - 0x408], esi
mov dword [ebp - 0x420], 0x1c
lea eax, [ebp - 0x420]
mov dword [ebp - 0x4b0], esi
push eax
push esi
lea eax, [ebp - 0x468]
push eax
push 0
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x41e278
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x103
jne 0x41edcb
mov esi, dword [ebp - 0x498]
jmp 0x41eca6
xor ecx, ecx
mov dword [ebp - 0x4a8], 0x4010c0
mov dword [ebp - 0x4a4], ecx
push ecx
lea eax, [ebp - 0x494]
mov byte [ebp - 4], 3
push eax
push ecx
push ecx
lea eax, [ebp - 0x420]
mov dword [ebp - 0x438], ecx
push eax
push edi
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x424], ecx
mov dword [ebp - 0x43c], 0x1c
mov dword [ebp - 0x494], ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x41ec1e
cmp dword [ebp - 0x494], 0
je 0x41ec1e
push dword [ebp - 0x494]
lea ecx, [ebp - 0x4a8]
call fcn.00428737
mov esi, dword [ebp - 0x4a4]
lea eax, [ebp - 0x43c]
push eax
push 0
lea eax, [ebp - 0x420]
mov dword [esi], 6
push dword [ebp - 0x494]
push esi
push eax
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
test eax, eax
jne 0x41e352
push 0x406950
sub esp, 0x58
mov ecx, esp
push 0xff
push 1
push 0x5be
jmp 0x41edab
add esi, 4
push esi
push 0x4069dc
sub esp, 0x58
mov ecx, esp
push 0xdc
push 9
push 0x5c3
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.00441c0c
add esp, 0x64
lea eax, [ebp - 0x33c]
push 0xc8
push eax
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x41e49e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x41e3bf
movzx eax, ax
or eax, 0x80070000
push eax
push esi
push 0x4069f0
sub esp, 0x58
mov dword [ebp - 0x4f4], eax
mov ecx, esp
push 0xdc
push 9
push 0x5ce
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.00441c0c
push esi
push 0x406a50
push 2
push 0x407764
lea eax, [ebp - 0x504]
push eax
push ebx
call fcn.004279d2
add esp, 0x80
push esi
push 0x406a68
lea ecx, [ebp - 0x504]
mov byte [ebp - 4], 4
call fcn.00419156
push dword [ebp - 0x4f4]
lea eax, [ebp - 0x504]
push 0x4055a0
push 0x406a84
push ecx
push ecx
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x18
lea eax, [ebp - 0x504]
lea ecx, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x568]
push eax
call fcn.00419a59
lea ecx, [ebp - 0x568]
call fcn.00419d7f
lea ecx, [ebp - 0x504]
call fcn.00419d7f
lea ecx, [ebp - 0x4a8]
mov byte [ebp - 4], 2
call fcn.00428711
jmp 0x41ec12
lea eax, [ebp - 0x33c]
push eax
push 0x406ab0
sub esp, 0x58
mov ecx, esp
push 0xdc
push 9
push 0x5d8
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.00441c0c
add esp, 0x48
lea eax, [ebp - 0x33c]
mov ecx, esp
push eax
call fcn.00428c5f
lea eax, [ebp - 0x484]
mov ecx, ebx
push eax
call fcn.00425cfd
mov byte [ebp - 4], 5
lea ecx, [eax + 4]
cmp dword [eax + 0x18], 8
jb 0x41e509
mov ecx, dword [ecx]
push ecx
lea ecx, [ebp - 0x458]
call fcn.00428c5f
push 0
push 1
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 7
call fcn.00429325
cmp dword [ebp - 0x440], 8
mov eax, dword [ebp - 0x454]
jae 0x41e53d
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x33c]
push eax
push 0x407774
push 2
push 0x407764
lea eax, [ebp - 0x490]
push eax
push ebx
call fcn.004279d2
add esp, 0x1c
lea eax, [ebp - 0x33c]
mov byte [ebp - 4], 8
push eax
push 0x406b60
lea ecx, [ebp - 0x490]
call fcn.00419156
push esi
push 0x406a68
lea ecx, [ebp - 0x490]
call fcn.00419156
lea eax, [ebp - 0x33c]
push eax
push 0x406ad0
lea eax, [ebp - 0x1ac]
push 0xc8
push eax
call fcn.00417966
add esp, 0x10
mov dword [ebp - 0x4f4], eax
test eax, eax
js 0x41ee02
lea eax, [ebp - 0x1ac]
push eax
push 0x406b70
lea ecx, [ebp - 0x490]
call fcn.00419156
push ecx
lea ecx, [ebp - 0x55c]
call fcn.0042be67
push ecx
push ecx
push SysReAllocString
push ecx
push ecx
xor esi, esi
mov byte [ebp - 4], 9
push esi
lea eax, [ebp - 0x1ac]
push eax
lea edx, [ebp - 0x4fc]
call fcn.0042bae0
mov dword [ebp - 0x4f4], eax
test eax, eax
jns 0x41e6f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x41e620
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x4f4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x4f4]
lea eax, [ebp - 0x1ac]
push eax
push 0x406b20
sub esp, 0x58
mov ecx, esp
push 0xdc
push 9
push 0x5f6
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.00441c0c
add esp, 0x6c
lea eax, [ebp - 0x1ac]
push dword [ebp - 0x4f4]
push eax
push 0x406b90
push 0x406bac
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x1c
lea eax, [ebp - 0x490]
lea ecx, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x570]
push eax
call fcn.00419a59
lea ecx, [ebp - 0x570]
call fcn.00419d7f
lea ecx, [ebp - 0x55c]
call fcn.0042bd5a
lea ecx, [ebp - 0x490]
call fcn.00419d7f
push esi
push 1
lea ecx, [ebp - 0x458]
call fcn.00429325
jmp 0x41e48a
push esi
push esi
push esi
push esi
push 0x560038
lea edx, [ebp - 0x4fc]
lea ecx, [ebp - 0x55c]
call fcn.0042bea3
mov dword [ebp - 0x4f4], eax
test eax, eax
jns 0x41e7ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x41e72a
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x4f4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x4f4]
push 0x407788
sub esp, 0x58
mov ecx, esp
push 0xdc
push 9
push 0x60a
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.00441c0c
add esp, 0x68
lea eax, [ebp - 0x1ac]
push dword [ebp - 0x4f4]
push eax
push 0x406b90
push 0x406d18
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x1c
lea eax, [ebp - 0x490]
lea ecx, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x578]
push eax
call fcn.00419a59
lea ecx, [ebp - 0x578]
jmp 0x41e6c2
push ecx
push ecx
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x55c]
call fcn.0042a234
mov esi, dword [ebp - 0x510]
lea eax, [ebp - 0x490]
push esi
push dword [ebp - 0x514]
push 0x406c9c
push 0x406cb4
push ecx
push ecx
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
mov ecx, esi
xor eax, eax
and ecx, 0x10000000
add esp, 0x1c
or eax, ecx
mov eax, 0x405a2c
jne 0x41e82d
mov eax, 0x405a34
push eax
push 0x406cc8
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
mov ecx, esi
xor eax, eax
and ecx, 0x40000000
add esp, 0x14
or eax, ecx
mov eax, 0x405a2c
jne 0x41e864
mov eax, 0x405a34
push eax
push 0x406ce0
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x14
test esi, esi
jg 0x41e89e
jl 0x41e895
xor esi, esi
cmp dword [ebp - 0x514], esi
jae 0x41e8a0
jmp 0x41e897
xor esi, esi
mov eax, 0x405a2c
jmp 0x41e8a5
xor esi, esi
mov eax, 0x405a34
push eax
push 0x406cf4
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x14
push ecx
lea ecx, [ebp - 0x1ac]
call fcn.0042b981
push 0x64
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
jne 0x41e8fd
push 0x405990
push 0x64
pop edx
lea ecx, [ebp - 0x404]
call fcn.004179f8
lea eax, [ebp - 0x404]
push eax
push 0x40780c
lea ecx, [ebp - 0x490]
call fcn.00419156
lea eax, [ebp - 0x490]
push eax
lea eax, [ebp - 0x580]
push eax
lea ecx, [ebp - 0x4a0]
call fcn.00419a59
lea ecx, [ebp - 0x580]
call fcn.00419d7f
push esi
push esi
push esi
push esi
push 0x560000
lea edx, [ebp - 0x4fc]
mov dword [ebp - 0x540], esi
lea ecx, [ebp - 0x55c]
mov dword [ebp - 0x534], esi
call fcn.0042bea3
mov dword [ebp - 0x4f4], eax
test eax, eax
jns 0x41ea1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x41e97e
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x4f4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x4f4]
push 0x407828
sub esp, 0x58
mov ecx, esp
push 0xdc
push 9
push 0x635
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.00441c0c
add esp, 0x68
lea eax, [ebp - 0x1ac]
push dword [ebp - 0x4f4]
push eax
push 0x406b90
push 0x4078b8
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x1c
lea eax, [ebp - 0x490]
lea ecx, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x588]
push eax
call fcn.00419a59
lea ecx, [ebp - 0x588]
jmp 0x41e6c2
mov eax, dword [ebp - 0x528]
mov ecx, dword [eax]
lea esi, [eax + 8]
imul edi, ecx, 0x18
add edi, esi
cmp esi, edi
jae 0x41eae5
push dword [esi]
lea eax, [ebp - 0x50c]
push 0x406c20
push 0xd
push 0x407910
push eax
push ebx
call fcn.004279d2
add esp, 0x18
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x50c]
push dword [esi + 0xc]
push dword [esi + 8]
push 0x406c9c
push 0x4072d0
push ecx
push ecx
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x1c
lea eax, [ebp - 0x50c]
push dword [esi + 0x14]
push dword [esi + 0x10]
push 0x406c9c
push 0x407920
push ecx
push ecx
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x1c
lea eax, [ebp - 0x50c]
lea ecx, [ebp - 0x490]
push eax
lea eax, [ebp - 0x590]
push eax
call fcn.00419a59
lea ecx, [ebp - 0x590]
call fcn.00419d7f
lea ecx, [ebp - 0x50c]
mov byte [ebp - 4], 9
call fcn.00419d7f
add esi, 0x18
jmp 0x41ea2e
xor esi, esi
lea edx, [ebp - 0x4fc]
push esi
push esi
push esi
push esi
push 0x560030
lea ecx, [ebp - 0x55c]
mov dword [ebp - 0x540], esi
mov dword [ebp - 0x534], esi
call fcn.0042bea3
mov dword [ebp - 0x4f4], eax
test eax, eax
js 0x41eb3c
push 0x405a2c
push 0x40793c
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x14
jmp 0x41eb60
push eax
push 0x407964
push 0x40793c
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x18
push esi
push esi
push esi
push esi
push 0x560010
lea edx, [ebp - 0x4fc]
mov dword [ebp - 0x540], esi
lea ecx, [ebp - 0x55c]
mov dword [ebp - 0x534], esi
call fcn.0042bea3
mov dword [ebp - 0x4f4], eax
test eax, eax
js 0x41ebb5
push 0x405a2c
push 0x407980
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x14
jmp 0x41ebd9
push eax
push 0x407964
push 0x407980
push ecx
push ecx
lea eax, [ebp - 0x490]
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x18
lea ecx, [ebp - 0x55c]
call fcn.0042bd5a
lea ecx, [ebp - 0x490]
call fcn.00419d7f
push esi
push 1
lea ecx, [ebp - 0x458]
call fcn.00429325
lea ecx, [ebp - 0x4a8]
mov byte [ebp - 4], 2
call fcn.00428711
mov edi, dword [ebp - 0x4ac]
mov esi, dword [ebp - 0x4b0]
inc esi
jmp 0x41e23a
mov eax, 0x40ccc4
test esi, esi
jne 0x41ec2c
mov eax, 0x40ccb8
push eax
push 0x4068c8
sub esp, 0x58
mov ecx, esp
push 0xff
push 1
push 0x5ad
jmp 0x41ede2
mov dword [ebp - 4], 1
cmp dword [ebp - 0x4f4], 0
jge 0x41ecdf
push dword [ebp - 0x4f4]
lea eax, [ebp - 0x4a0]
push 0x4056cc
push 0x4079a4
push ecx
push ecx
mov ecx, esp
push eax
call fcn.0042c1f1
push ebx
call fcn.00427b5e
add esp, 0x18
cmp edi, 0xffffffff
je 0x41eceb
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
lea eax, [ebp - 0x4a0]
test esi, esi
jne 0x41ed70
push ecx
push ecx
mov ecx, esp
push eax
call fcn.0042c1f1
mov ecx, ebx
call fcn.00427b26
jmp 0x41ed77
push eax
push esi
call fcn.00433199
lea ecx, [ebp - 0x4a0]
call fcn.00419d7f
lea ecx, [ebp - 0x4fc]
call fcn.004413c9
call fcn.00443e6a
ret 8
push 0x4067b0
sub esp, 0x58
mov ecx, esp
push 0xff
push 1
push 0x57b
push 0x4076a0
push 0x406844
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.004423d6
push esi
push 0x406858
sub esp, 0x58
mov ecx, esp
push 0xff
push 1
push 0x58d
push 0x4076a0
push 0x406844
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.004423d6
lea eax, [ebp - 0x33c]
push eax
push 0x406af4
lea ecx, [ebp - 0x4fc]
call fcn.00418c3e
push eax
sub esp, 0x58
mov ecx, esp
push 0xdc
push 9
push 0x5ec
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea eax, [ebp - 0x4fc]
push eax
call fcn.0044255f
sub esp, 0x58
mov byte [ebp - 4], 0xc
mov ecx, esp
push 0xdc
push 9
push 0x667
push 0x4076a0
push 0x402d58
push 0x404fd8
call fcn.00440fc8
lea ecx, [ebp - 0x4fc]
call fcn.00441d17
int3