Function at 0x406335
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e8
push edi
mov eax, dword [0x41104c]
mov dword [eax], 0
mov ecx, dword [0x41105c]
mov dword [ecx], 0
lea edx, [ebp - 4]
push edx
push 0
call fcn.0040171a
add esp, 8
test eax, eax
je 0x4063a9
cmp dword [ebp - 4], 0
je 0x406382
mov eax, dword [0x41105c]
mov ecx, dword [eax]
or ecx, 1
mov edx, dword [0x41105c]
mov dword [edx], ecx
jmp 0x406394
mov eax, dword [0x41105c]
mov ecx, dword [eax]
and ecx, 0xfffffffe
mov edx, dword [0x41105c]
mov dword [edx], ecx
mov eax, dword [0x41105c]
mov ecx, dword [eax]
or ecx, 0x10000
mov edx, dword [0x41105c]
mov dword [edx], ecx
lea eax, [ebp - 4]
push eax
push 0x10
call fcn.00401633
add esp, 8
test eax, eax
je 0x406409
mov ecx, dword [ebp - 4]
and ecx, 0xff
and ecx, 0xff
test ecx, ecx
je 0x4063e2
mov edx, dword [0x41105c]
mov eax, dword [edx]
or al, 2
mov ecx, dword [0x41105c]
mov dword [ecx], eax
jmp 0x4063f4
mov edx, dword [0x41105c]
mov eax, dword [edx]
and al, 0xfd
mov ecx, dword [0x41105c]
mov dword [ecx], eax
mov edx, dword [0x41105c]
mov eax, dword [edx]
or eax, 0x20000
mov ecx, dword [0x41105c]
mov dword [ecx], eax
mov dword [ebp - 0xc], 1
jmp 0x40641b
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 3
jae 0x406436
push 0
mov eax, dword [ebp - 0xc]
push eax
push 0x411030
call fcn.004010f0
add esp, 0xc
jmp 0x406412
call fcn.004014e0
mov ecx, dword [0x4110bc]
mov dword [ecx], eax
push 0
call fcn.00401513
add esp, 4
or eax, 0xc3f
mov edx, dword [0x41107c]
mov dword [edx], eax
mov eax, dword [0x41108c]
mov dword [eax], 0x64
mov ecx, dword [0x4110ac]
mov dword [ecx], 1
mov dword [ebp - 8], 0x1f
mov edx, dword [0x41107c]
mov eax, dword [edx]
and eax, dword [ebp - 8]
test eax, eax
je 0x406495
mov ecx, dword [0x41109c]
mov dword [ecx], 1
jmp 0x4064a1
mov edx, dword [0x41109c]
mov dword [edx], 5
push 0
mov eax, 0x4110c0
sub eax, 0x411060
sar eax, 4
push eax
push 0x411060
call fcn.004011d0
add esp, 0xc
push 0x414168
mov ecx, dword [0x4110cc]
push ecx
call fcn.004092a0
add esp, 8
test eax, eax
jne 0x40651c
mov dword [ebp - 0xc], 1
jmp 0x4064e8
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 7
jae 0x40651a
push 0
mov eax, dword [ebp - 0xc]
push eax
push 0x411060
call fcn.004011d0
add esp, 0xc
test eax, eax
je 0x406518
push 0
mov ecx, dword [ebp - 0xc]
push ecx
push 0x411060
call fcn.004010f0
add esp, 0xc
jmp 0x4064df
jmp 0x40655d
push str.3.40.00
mov edx, dword [0x4110cc]
push edx
call fcn.00408e50
add esp, 8
mov dword [ebp - 0xc], 1
jmp 0x406542
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 7
jae 0x40655d
push 0
mov ecx, dword [ebp - 0xc]
push ecx
push 0x411060
call fcn.004010f0
add esp, 0xc
jmp 0x406539
mov edx, dword [0x41107c]
mov eax, dword [edx]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0
jmp 0x40657a
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x20
jge 0x4065ba
mov edx, dword [ebp - 8]
and edx, 1
test edx, edx
je 0x4065b0
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x70
mov edx, dword [ecx + 0x411208]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 8]
shr ecx, 1
mov dword [ebp - 8], ecx
jmp 0x406571
push 0
mov edx, 0x413870
sub edx, 0x413840
sar edx, 4
push edx
push 0x413840
call fcn.004011d0
add esp, 0xc
test eax, eax
jne 0x4065e6
mov dword [0x417380], 1
mov dword [ebp - 0xc], 0
jmp 0x4065f8
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 4
jae 0x406622
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x21c
mov edx, 1
mov ecx, dword [ecx + 0x413880]
shl edx, cl
mov eax, dword [0x417680]
or eax, edx
mov dword [0x417680], eax
jmp 0x4065ef
push 0
mov ecx, 0x4110e0
sub ecx, 0x4110d0
sar ecx, 4
push ecx
push 0x4110d0
call fcn.004011d0
add esp, 0xc
test eax, eax
je 0x40666d
mov edx, dword [0x4110ec]
mov dword [edx], 1
push 1
mov eax, 0x4110e0
sub eax, 0x4110d0
sar eax, 4
push eax
push 0x4110d0
call fcn.004010f0
add esp, 0xc
mov dword [ebp - 0xa4], 0x94
mov dword [ebp - 0xa0], 0
mov ecx, 0x23
xor eax, eax
lea edi, [ebp - 0x9c]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0xa4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x94], 2
jne 0x4066b2
mov edx, dword [0x4110ec]
mov dword [edx], 0
mov eax, dword [0x41107c]
mov ecx, dword [eax]
and ecx, 0x80000
test ecx, ecx
je 0x4066f0
lea edx, [ebp - 0xa8]
push edx
push 0x13
call fcn.00401633
add esp, 8
mov eax, dword [ebp - 0xa8]
and eax, 0xff
cmp eax, 3
je 0x4066f0
mov ecx, dword [0x4110ec]
mov dword [ecx], 0
push 2
mov edx, 0x4110e0
sub edx, 0x4110d0
sar edx, 4
push edx
push 0x4110d0
call fcn.004010f0
add esp, 0xc
lea eax, [ebp - 0xac]
push eax
push 0x414178
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x406740
lea ecx, [ebp - 0xac]
push ecx
push 0x414194
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov edx, dword [ebp - 0xac]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xb0]
push eax
push 0x4141b0
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x40677f
lea ecx, [ebp - 0xb0]
push ecx
push 0x4141cc
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov edx, dword [ebp - 0xb0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0x148], 0x94
mov dword [ebp - 0x144], 0
mov ecx, 0x23
xor eax, eax
lea edi, [ebp - 0x140]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x144], 4
jne 0x4067d9
mov dword [ebp - 0xb4], 0
lea ecx, [ebp - 0x14c]
push ecx
push 0x4141e8
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x406820
push 4
lea edx, [ebp - 0xb4]
push edx
push 4
push 0
push str.NPDIRECT_FUNCTION
mov eax, dword [ebp - 0x14c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0x14c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x150], 1
mov dword [ebp - 0x1e4], 0x94
mov dword [ebp - 0x1e0], 0
mov ecx, 0x23
xor eax, eax
lea edi, [ebp - 0x1dc]
rep stosd dword es:[edi], eax
lea edx, [ebp - 0x1e4]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x1e0], 4
jne 0x40686d
mov dword [ebp - 0x150], 0
lea eax, [ebp - 0x1e8]
push eax
push 0x414218
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x4068b4
push 4
lea ecx, [ebp - 0x150]
push ecx
push 4
push 0
push str.AC_FUNCTION
mov edx, dword [ebp - 0x1e8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x1e8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov esp, ebp
pop ebp
ret