Function at 0x40a210
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x628
mov eax, dword [0x5749c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
cmp byte [esi + 0x555], 0
push edi
je 0x40a32c
mov edx, dword [str.SOFTWAREConexantSA3]
test edx, edx
jne 0x40a243
xor eax, eax
jmp 0x40a25f
mov eax, edx
lea ebx, [eax + 2]
jmp 0x40a250
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40a250
sub eax, ebx
sar eax, 1
push eax
push edx
lea ecx, [esi + 0x558]
call fcn.004019a0
mov eax, dword [esi + 0x55c]
cmp dword [eax - 0xc], 0
je 0x40a311
push 1
push 0x5269f8
lea ecx, [esi + 0x558]
call fcn.004040c0
mov eax, dword [esi + 0x55c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esi + 0x558]
call fcn.004040c0
mov eax, dword [esi + 0x558]
lea edx, [ebp - 0x624]
push edx
push 0x20119
push 0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40a2fa
mov edx, dword [ebp - 0x624]
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x61c]
push ecx
push 0
push 0
push str.CplExeFile
push edx
mov dword [ebp - 0x628], 0x30c
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40a311
mov eax, dword [esi + 0x55c]
push eax
push str.Conexant
lea ecx, [esi + 0x558]
call fcn.00403af0
mov edx, dword [esi + 0x48]
push ecx
mov ecx, esp
mov dword [ebp - 0x624], esp
push edx
call fcn.00401f20
push 0
push 0
jmp 0x40a491
mov eax, dword [esi + 0x55c]
cmp dword [eax - 0xc], 0
je 0x40a3ed
push 1
push 0x5269f8
lea ecx, [esi + 0x558]
call fcn.004040c0
mov eax, dword [esi + 0x55c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esi + 0x558]
call fcn.004040c0
mov eax, dword [esi + 0x558]
lea edx, [ebp - 0x628]
push edx
push 0x20119
push 0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40a3ba
mov edx, dword [ebp - 0x628]
lea eax, [ebp - 0x624]
push eax
lea ecx, [ebp - 0x61c]
push ecx
push 0
push 0
push str.CplExeFile
push edx
mov dword [ebp - 0x624], 0x30c
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40a3d1
mov eax, dword [esi + 0x55c]
push eax
push str.Conexant
lea ecx, [esi + 0x558]
call fcn.00403af0
push ecx
mov ecx, esp
mov dword [ebp - 0x620], esp
push 0x5269e2
call fcn.00404360
push 0
push 0
jmp 0x40a491
cmp byte [esi + 0x549], 0
je 0x40a415
push ecx
mov ecx, esp
mov dword [ebp - 0x620], esp
push 0x5269e2
call fcn.00404360
movzx ecx, byte [esi + 0x553]
push ecx
push 4
jmp 0x40a491
cmp byte [ebp + 8], 0
jne 0x40a474
cmp byte [esi + 0x548], 0
je 0x40a443
push ecx
mov ecx, esp
mov dword [ebp - 0x620], esp
push 0x5269e2
call fcn.00404360
movzx eax, byte [esi + 0x553]
push eax
push 3
jmp 0x40a491
cmp byte [esi + 0x554], 0
je 0x40a474
call fcn.00404cf0
test al, al
je 0x40a498
push ecx
mov ecx, esp
mov dword [ebp - 0x620], esp
push 0x5269e2
call fcn.00404360
movzx ecx, byte [esi + 0x553]
push ecx
push 2
jmp 0x40a491
push ecx
mov ecx, esp
mov dword [ebp - 0x620], esp
push 0x5269e2
call fcn.00404360
movzx edx, byte [esi + 0x553]
push edx
push 1
mov ecx, esi
call fcn.00409b60
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ff97d
mov esp, ebp
pop ebp
ret 4