Function at 0x413430
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2dc
mov eax, dword [0x4527b8]
push ebx
push esi
mov dword [esp + 0x2e0], eax
mov eax, dword [ebp + 0x10]
push edi
push eax
call fcn.00410180
add esp, 4
test eax, eax
je 0x413497
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x413481
mov ecx, dword [0x466b78]
push 0x40
push ecx
push str.ALREADY_MOUNTED
call fcn.00417ce0
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
or eax, 0xffffffff
mov ecx, dword [esp + 0x2e4]
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ecx, dword [ebp + 0xc]
mov edx, 1
shl edx, cl
test edx, eax
je 0x4134f0
mov eax, dword [0x466b7c]
test eax, eax
jne 0x4134da
mov eax, dword [0x466b78]
push 0x50010
push eax
push str.ALREADY_MOUNTED
call fcn.00417ce0
mov ecx, dword [0x466b74]
add esp, 4
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
or eax, 0xffffffff
mov ecx, dword [esp + 0x2e4]
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp eax, esi
jne 0x413506
call fcn.00410150
test eax, eax
jne 0x4137e6
mov ebx, dword [ebp + 0x20]
xor eax, eax
mov ecx, 0xb2
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x1c]
xor edx, edx
cmp eax, esi
sete dl
mov dword [esp + 0x284], edx
jmp 0x413530
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x270], eax
mov eax, dword [ebp + 0x14]
cmp eax, esi
mov dword [esp + 0x26c], ecx
je 0x41355f
mov ecx, 0x12
mov esi, eax
lea edi, [esp + 0x224]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
jmp 0x413566
mov dword [esp + 0x224], esi
mov eax, dword [ebx]
cmp eax, esi
jne 0x413591
cmp dword [ebx + 8], esi
je 0x413591
lea esi, [ebx + 0x18]
mov ecx, 0x12
lea edi, [esp + 0x298]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x294], 1
xor esi, esi
jmp 0x413598
mov dword [esp + 0x294], esi
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x27c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x274], eax
cmp dword [0x466b88], 5
mov dword [esp + 0x280], edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x278], ecx
mov dword [esp + 0x290], edx
mov dword [esp + 0x288], 1
jne 0x4135ea
cmp dword [0x466b8c], esi
jne 0x4135ea
mov dword [esp + 0x288], esi
mov edi, dword [ebp + 0x10]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x20]
push edi
push ecx
call fcn.0040de70
mov al, byte [edi]
add esp, 0xc
cmp al, 0x5c
jne 0x413634
mov cl, byte [edi + 1]
cmp cl, 0x5c
lea eax, [edi + 1]
jne 0x413634
push eax
push str.UNC_s
lea edx, [esp + 0x24]
push 0x104
push edx
call fcn.0041e6db
add esp, 0x10
mov dword [esp + 0x28c], 1
cmp byte [edi + 1], 0x3a
jne 0x41366a
mov al, byte [edi]
lea ecx, [esp + 0xc]
push ecx
mov byte [esp + 0x10], al
mov byte [esp + 0x11], 0x3a
mov byte [esp + 0x12], 0x5c
mov byte [esp + 0x13], 0
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 4
jne 0x41366a
mov dword [esp + 0x28c], 1
lea edx, [esp + 0x1c]
push edx
call fcn.0040e0a0
add esp, 4
push esi
lea eax, [esp + 0x18]
push eax
mov eax, dword [0x4506d8]
push 0x2c8
lea ecx, [esp + 0x24]
push ecx
push 0x2c8
mov edx, ecx
push edx
push 0x72000
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edx, eax
or eax, 0xffffffff
mov ecx, 0x12
lea edi, [esp + 0x224]
rep stosd dword es:[edi], eax
xor eax, eax
mov ecx, 0x12
lea edi, [esp + 0x224]
rep stosd dword es:[edi], eax
or eax, 0xffffffff
mov ecx, 0x12
lea edi, [esp + 0x298]
rep stosd dword es:[edi], eax
xor eax, eax
cmp edx, esi
mov ecx, 0x12
lea edi, [esp + 0x298]
rep stosd dword es:[edi], eax
jne 0x4137c6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
jne 0x41374c
cmp dword [esp + 0x284], esi
mov eax, dword [ebp + 0x24]
je 0x413765
cmp eax, esi
je 0x413713
mov dword [esp + 0x284], esi
jmp 0x413530
mov ecx, dword [0x466b78]
push 0x134
push ecx
push str.FILE_IN_USE
call fcn.00417ce0
mov edx, dword [ebp + 8]
add esp, 4
push eax
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x413481
mov dword [esp + 0x284], esi
jmp 0x413530
cmp dword [esp + 0x28c], esi
jne 0x41379f
mov dword [esp + 0x28c], 1
jmp 0x413530
cmp eax, esi
jne 0x413789
mov eax, dword [0x466b78]
push 0x10
push eax
push str.FILE_IN_USE_FAILED
call fcn.00417ce0
mov ecx, dword [ebp + 8]
add esp, 4
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
or eax, 0xffffffff
mov ecx, dword [esp + 0x2e4]
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x24], esi
jne 0x4137b0
mov edx, dword [ebp + 8]
push edx
call fcn.00411070
add esp, 4
or eax, 0xffffffff
mov ecx, dword [esp + 0x2e4]
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x413822
cmp eax, 3
jne 0x4137fb
cmp dword [ebp + 0x28], esi
je 0x4137e6
mov eax, dword [ebp + 8]
push 3
push eax
call fcn.00412a90
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x2e4]
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x24], esi
jne 0x4137e6
mov ecx, dword [ebp + 8]
push eax
push ecx
call fcn.00412a90
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x2e4]
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
push esi
push edx
push 0x8000
call fcn.00410000
mov edx, dword [esp + 0x290]
mov ecx, dword [esp + 0x2f0]
xor eax, eax
add esp, 0xc
cmp edx, esi
sete al
inc eax
call fcn.0041d4a3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret