Function at 0x40613b
Capabilities:
Get disk information
Get disk size
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
push edi
mov dword [ebp - 0x244], ecx
and dword [ebp - 0x10], 0
mov dword [ebp - 8], 3
mov dword [ebp - 0xc], 4
push 0x7e
push 0
mov eax, dword [ebp - 0x244]
add eax, 0x15e
push eax
call fcn.0040e8f0
add esp, 0xc
call sym.NPROTECT.EXE__NPSystemGetWindowsType_0
cmp eax, 2
jne 0x40638a
mov eax, dword [0x41c3dc]
mov dword [ebp - 0x228], eax
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x224]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x244]
mov al, byte [eax]
mov byte [ebp - 0x228], al
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
jne 0x406220
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x23c], eax
push dword [ebp - 0x23c]
push str.Failure_reading_drive_statistics__error_d
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
pop ecx
cmp dword [ebp - 0x23c], 5
jne 0x40620c
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x39], 5
jmp 0x406219
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x39], 0xf
xor eax, eax
jmp 0x40650f
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 2
je 0x40626e
cmp dword [ebp - 0x248], 3
je 0x406280
cmp dword [ebp - 0x248], 4
je 0x406292
cmp dword [ebp - 0x248], 5
je 0x4062a4
cmp dword [ebp - 0x248], 6
je 0x4062b6
jmp 0x4062c8
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x1dc], 0xc
jmp 0x4062d5
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x1dc], 0xd
jmp 0x4062d5
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x1dc], 0xe
jmp 0x4062d5
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x1dc], 0x11
jmp 0x4062d5
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x1dc], 0xf
jmp 0x4062d5
mov eax, dword [ebp - 0x244]
and dword [eax + 0x1dc], 0
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x244]
mov cl, byte [ecx]
mov byte [eax + 0x16d], cl
mov eax, dword [ebp - 0x244]
movsx eax, byte [eax]
push 0x41
pop ecx
sub ecx, eax
mov eax, dword [ebp - 0x244]
mov byte [eax + 0x15e], cl
mov eax, dword [ebp - 0x124]
imul eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x244]
mov dword [ecx + 0x172], eax
mov eax, dword [ebp - 0x244]
mov cx, word [ebp - 0x238]
mov word [eax + 0x160], cx
mov eax, dword [ebp - 0x22c]
imul eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x244]
mov dword [ecx + 0x17a], eax
mov eax, dword [ebp - 0x244]
mov cl, byte [ebp - 0x22c]
mov byte [eax + 0x162], cl
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x244]
mov cx, word [ecx + 0x1dc]
mov word [eax + 0x18a], cx
mov eax, dword [ebp - 0x124]
dec eax
mov ecx, dword [ebp - 0x244]
mov dword [ecx + 0x196], eax
jmp 0x4063ef
mov eax, dword [ebp - 0x244]
add eax, 0x15e
push eax
mov eax, dword [ebp - 0x244]
mov al, byte [eax]
push eax
call dword [0x42059c]
test eax, eax
jne 0x4063c8
mov eax, dword [ebp - 0x244]
mov dword [eax + 0x39], 0xf
push str.Failure_reading_drive_statistics
call sym.NPROTECT.EXE_int___cdecl_dprintf_char__
pop ecx
xor eax, eax
jmp 0x40650f
mov eax, dword [ebp - 0x244]
add eax, 0x1e0
push eax
mov eax, dword [ebp - 0x244]
add eax, 0x1dc
push eax
mov eax, dword [ebp - 0x244]
mov al, byte [eax]
push eax
call dword [0x4205a0]
push str.Switches
mov eax, dword [ebp - 0x244]
movsx eax, byte [eax]
push eax
push str.SoftwareSymantecNorton_UtilitiesNorton_Protection
push str._sDrive__c:_s
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea eax, [ebp - 0x10]
push eax
push 1
push 0
lea eax, [ebp - 0x120]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4064d3
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
push 0
push str.DirKBSize
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x406468
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x2d], ecx
jmp 0x4064d3
mov eax, dword [ebp - 0x244]
mov eax, dword [eax + 0x172]
xor edx, edx
push 0xa
pop ecx
div ecx
mov ecx, dword [ebp - 0x244]
movzx ecx, word [ecx + 0x160]
imul eax, ecx
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x240]
shr eax, 0xa
mov dword [ebp - 0x240], eax
cmp dword [ebp - 0x240], 0x2800
jbe 0x4064b8
mov dword [ebp - 0x24c], 0x2800
jmp 0x4064c4
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x24c]
mov dword [eax + 0x2d], ecx
mov eax, dword [ebp - 0x244]
mov eax, dword [eax + 0x2d]
shl eax, 0xa
mov ecx, dword [ebp - 0x244]
mov dword [ecx + 0x2d], eax
mov eax, dword [ebp - 0x244]
push dword [eax + 0x2d]
mov eax, dword [ebp - 0x244]
add eax, 0x15e
push eax
call dword [0x42058c]
mov ecx, dword [ebp - 0x244]
mov dword [ecx + 0x31], eax
push 1
pop eax
pop edi
leave
ret