Function at 0x41a3e0
Capabilities:
Check if file exists
Get cpu information
Get file attributes
Get memory capacity
Get system information on windows
Query environment variable
Query or enumerate registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c0600
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c8
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea eax, [ebp - 0x4c8]
push edi
push 0x208
push eax
push str._ProgramData_AVG
call esi
cmp word [ebp - 0x4c8], 0
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
je 0x41a47b
lea eax, [ebp - 0x4c8]
push eax
call edi
cmp eax, 0xffffffff
je 0x41a47b
shr eax, 4
and al, 1
je 0x41a47b
cmp byte [0x4da960], 0
je 0x41a465
push 0
call fcn.004ab5ce
push eax
call fcn.004aa01a
add esp, 8
mov byte [0x4da960], 0
call fcn.004a9ff9
cdq
mov ecx, 0x122f
idiv ecx
add edx, 0x5f89
push edx
call ebx
push 0x208
lea eax, [ebp - 0x6d0]
push eax
push str._ProgramData_AVAST_Software
call esi
cmp word [ebp - 0x6d0], 0
je 0x41a4e3
lea eax, [ebp - 0x6d0]
push eax
call edi
cmp eax, 0xffffffff
je 0x41a4e3
shr eax, 4
and al, 1
je 0x41a4e3
cmp byte [0x4da960], 0
je 0x41a4cd
push 0
call fcn.004ab5ce
push eax
call fcn.004aa01a
add esp, 8
mov byte [0x4da960], 0
call fcn.004a9ff9
cdq
mov ecx, 0x7d2
idiv ecx
add edx, 0x61a9
push edx
call ebx
lea eax, [ebp - 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0xa8], 1
je 0x41a783
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x38], eax
cmp eax, 0x40b
jl 0x41a783
lea eax, [ebp - 0x98]
mov dword [ebp - 0x98], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x8c]
shrd ecx, eax, 0x14
shr eax, 0x14
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x41a553
cmp ecx, 0x7eb
jb 0x41a783
push 0x1fe
lea eax, [ebp - 0x2c0]
mov dword [ebp - 0x34], 0xff
push 0
push eax
call fcn.004a3c90
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
push 0x20119
push 0
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x41a5ac
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x2c0]
push eax
push 0
push 0
push str.ProcessorNameString
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a5d2
sub ecx, edx
lea eax, [ebp - 0x2c0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.0041aa10
mov dword [ebp - 4], 0
lea edx, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
lea edi, [ebp - 0x58]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x30]
cmovae edx, dword [ebp - 0x58]
cmovae edi, dword [ebp - 0x58]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
lea ebx, [edx + eax*2]
mov byte [ebp - 0x30], 0
mov eax, ebx
sub eax, edi
sar eax, 1
push eax
call fcn.0041b470
lea eax, [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x41a653
nop
movzx eax, byte [edi]
lea ecx, [ebp - 0x30]
push eax
call fcn.0041b720
add edi, 2
cmp edi, ebx
jne 0x41a640
mov ecx, dword [ebp - 0x1c]
lea ebx, [ebp - 0x30]
mov edi, dword [ebp - 0x30]
cmp ecx, 0x10
mov eax, dword [ebp - 0x20]
cmovae ebx, edi
cmp eax, 4
jb 0x41a6e4
add eax, 0xfffffffd
add eax, ebx
mov dword [ebp - 0x18], eax
sub eax, ebx
push eax
push 0x58
push ebx
call fcn.004bf9f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x41a6e1
mov ecx, esi
mov edx, str.Xeon
mov eax, dword [ecx]
cmp eax, dword [edx]
je 0x41a6af
cmp al, byte [edx]
jne 0x41a6b3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41a6b3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41a6b3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41a6b3
xor eax, eax
jmp 0x41a6b8
sbb eax, eax
or eax, 1
test eax, eax
je 0x41a6d6
mov eax, dword [ebp - 0x18]
inc esi
sub eax, esi
push eax
push 0x58
push esi
call fcn.004bf9f0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x41a686
jmp 0x41a6e1
sub esi, ebx
cmp esi, 0xffffffff
jne 0x41a783
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x38], 0x509
jge 0x41a700
cmp dword [ebp - 0x3c], 0
ja 0x41a700
cmp dword [ebp - 0x40], 0x801
jb 0x41a783
cmp ecx, 0x10
jb 0x41a72a
inc ecx
mov eax, edi
cmp ecx, 0x1000
jb 0x41a720
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a78b
push ecx
push edi
call fcn.004a24e6
add esp, 8
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
cmp edx, 8
jb 0x41a772
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41a768
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41a78b
push edx
push ecx
call fcn.004a24e6
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.004a9d47
int3