Function at 0x4047a2
Capabilities:
Get disk information

Disassembly:
mov eax, 0x4a5a74
call fcn.00483228
sub esp, 0x38
push ebx
push esi
push edi
push 2
mov edi, ecx
pop esi
push ecx
mov dword [ebp - 0x18], edi
mov ecx, esp
mov dword [ebp - 0x10], esp
push dword [ebp + 8]
mov dword [ebp - 0x14], esi
call fcn.0049d64d
lea eax, [ebp - 0x10]
push eax
call fcn.00447404
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [eax - 8], ebx
je 0x40486e
push ebx
push ecx
mov edi, esp
mov dword [ebp - 0x1c], esp
push ecx
mov esi, 0x4dd1e4
mov ecx, esp
mov dword [ebp - 0x20], esp
push esi
call fcn.0049d946
push ecx
mov byte [ebp - 4], 1
mov ecx, esp
mov dword [ebp - 0x24], esp
push dword [ebp + 8]
call fcn.0049d64d
push edi
mov byte [ebp - 4], bl
call fcn.0044cf68
add esp, 8
mov byte [ebp - 4], 2
mov edi, esp
mov dword [ebp - 0x24], esp
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push esi
call fcn.0049d946
push ecx
lea eax, [ebp - 0x10]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
mov byte [ebp - 4], 3
call fcn.0049d64d
push edi
mov byte [ebp - 4], 2
call fcn.0044cf68
add esp, 0xc
mov byte [ebp - 4], bl
call fcn.0044c9c8
add esp, 0xc
cmp eax, ebx
jne 0x404868
push 6
jmp 0x4049f7
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
dec eax
dec eax
je 0x4049f5
dec eax
je 0x4049f1
dec eax
je 0x4049ed
dec eax
je 0x4049e9
push ebx
push ecx
lea eax, [edi + 0x40]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0049d64d
push ecx
mov byte [ebp - 4], 4
mov ecx, esp
mov dword [ebp - 0x20], esp
push dword [ebp + 8]
call fcn.0049d64d
mov byte [ebp - 4], bl
call fcn.0044c9c8
add esp, 0xc
cmp eax, ebx
je 0x4048cc
push 1
jmp 0x4049f7
push ebx
push ecx
add edi, 0x44
mov ecx, esp
mov dword [ebp - 0x24], esp
push edi
call fcn.0049d64d
mov edi, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x20], esp
push edi
mov byte [ebp - 4], 5
call fcn.0049d64d
mov byte [ebp - 4], bl
call fcn.0044c9c8
add esp, 0xc
cmp eax, ebx
je 0x404905
push 8
jmp 0x4049f7
push ebx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.Printers
call fcn.0049d946
push ecx
mov byte [ebp - 4], 6
mov ecx, esp
mov dword [ebp - 0x24], esp
push edi
call fcn.0049d64d
mov byte [ebp - 4], bl
call fcn.0044c9c8
add esp, 0xc
cmp eax, ebx
je 0x40493c
push 9
jmp 0x4049f7
push ebx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.Entire_Network
call fcn.0049d946
push ecx
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x24], esp
push dword [ebp + 0xc]
call fcn.0049d64d
mov byte [ebp - 4], bl
call fcn.0044c9c8
add esp, 0xc
cmp eax, ebx
je 0x404975
push 0xb
jmp 0x4049f7
cmp dword [ebp + 0x10], ebx
je 0x4049f8
cmp dword [ebp + 0x14], ebx
je 0x4049f8
lea eax, [ebp - 0x44]
push 0x20
push eax
push 2
pop esi
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call dword [sym.imp.SHELL32.dll_SHGetDataFromIDListA]
test eax, eax
je 0x4049aa
mov eax, dword [edi]
mov esi, dword [eax - 8]
neg esi
sbb esi, esi
and esi, 0xfffffff8
add esi, 0xa
jmp 0x4049f8
mov eax, dword [ebp - 0x3c]
cmp eax, 1
jne 0x4049b6
push 0xd
jmp 0x4049f7
cmp eax, esi
jne 0x4049be
push 0xa
jmp 0x4049f7
cmp eax, 3
je 0x4049f8
cmp eax, ebx
je 0x4049cc
cmp eax, 6
jne 0x4049d0
push 0xc
jmp 0x4049f7
cmp eax, 0xa
jne 0x4049d9
push 0xe
jmp 0x4049f7
xor ecx, ecx
cmp eax, 0xb
setne cl
dec ecx
and ecx, 0xd
add esi, ecx
jmp 0x4049f8
push 4
jmp 0x4049f7
push 3
jmp 0x4049f7
push 2
jmp 0x4049f7
push 5
pop esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0049d8d8
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10