Function at 0x4217f0
Capabilities:
Set registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42c698
push eax
mov dword fs:[0], esp
sub esp, 0x70
push esi
mov esi, ecx
mov eax, dword [esi + 0x20]
test eax, eax
je 0x421b0f
push ebx
push edi
call sub.MFC42.DLL_AfxGetModuleState
mov edi, dword [eax + 4]
push 1
mov ecx, esi
call sub.MFC42.DLL_CWnd::UpdateData
mov ecx, dword [esi + 0x6e8]
lea eax, [esi + 0x5d0]
push eax
call fcn.00418350
lea ecx, [esi + 0x628]
mov ebx, eax
push ecx
mov ecx, dword [esi + 0x6ec]
call fcn.00418350
test ebx, ebx
jne 0x421857
test eax, eax
je 0x42185c
mov eax, 1
push ebp
push eax
push str.ControlsChanged
push 0x42fbd8
mov ecx, edi
mov dword [esi + 0x6cc], eax
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov edx, dword [esi + 0x684]
mov ecx, edi
push edx
push str.ShowPlayback
push 0x42fbd8
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov eax, dword [esi + 0x688]
mov ecx, edi
push eax
push str.ShowRecord
push 0x42fbd8
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov ecx, dword [esi + 0x68c]
push ecx
push 0x42fc34
push 0x42fbd8
mov ecx, edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov edx, dword [esi + 0x680]
mov ecx, edi
push edx
push 0x42fc00
push 0x42fbd8
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov eax, dword [esi + 0x6a4]
mov ecx, edi
push eax
push 0x42fbf4
push 0x42fbd8
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov eax, dword [esi + 0x6e4]
test eax, eax
je 0x421a5a
mov ecx, dword [esi + 0x69c]
mov eax, dword [esi + 0x6d8]
lea ebx, [esi + 0x69c]
xor ebp, ebp
cmp ecx, eax
jne 0x421957
mov edx, dword [esi + 0x6a0]
mov eax, dword [esi + 0x6dc]
cmp edx, eax
jne 0x421957
mov eax, dword [esi + 0x698]
mov ecx, dword [esi + 0x6d4]
cmp eax, ecx
jne 0x421957
mov ecx, dword [esi + 0x6a8]
mov eax, dword [esi + 0x6d0]
cmp ecx, eax
jne 0x421957
mov edx, dword [esi + 0x6b4]
mov eax, dword [esi + 0x6e0]
cmp edx, eax
je 0x421a38
lea eax, [esp + 0x10]
mov ebp, 1
push eax
push str.SoftwareAnalog_DevicesSMax4PNPSettings
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x421a00
mov ecx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 4
push ebx
push 4
push eax
push str.DetectOnStartup
push ecx
call edi
mov eax, dword [esp + 0x10]
lea edx, [esi + 0x698]
push 4
push edx
push 4
push 0
push str.DetectDevices
push eax
call edi
mov edx, dword [esp + 0x10]
lea ecx, [esi + 0x6a0]
push 4
push ecx
push 4
push 0
push str.ShowDisconnect
push edx
call edi
mov ecx, dword [esp + 0x10]
lea eax, [esi + 0x6a8]
push 4
push eax
push 4
push 0
push str.AutoChangeSpkrConfig
push ecx
call edi
mov eax, dword [esp + 0x10]
lea edx, [esi + 0x6b4]
push 4
push edx
push 4
push 0
push str.Show_Connection_Wizard
push eax
call edi
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebx]
mov eax, dword [esi + 0x6a0]
mov ecx, dword [esi + 0x698]
mov dword [esi + 0x6d8], edx
mov edx, dword [esi + 0x6a8]
mov dword [esi + 0x6dc], eax
mov eax, dword [esi + 0x6b4]
mov dword [esi + 0x6d4], ecx
mov dword [esi + 0x6d0], edx
mov dword [esi + 0x6e0], eax
mov ecx, 0x438468
call fcn.004265a0
test eax, eax
je 0x421a5a
test ebp, ebp
je 0x421a5a
push 0
push 0
push 0x8066
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [esi + 0x6fc]
xor ebx, ebx
cmp ecx, ebx
pop ebp
je 0x421a74
mov edx, dword [esi + 0x6ac]
push edx
push ebx
call fcn.00418be0
mov ecx, dword [esi + 0x6fc]
cmp ecx, ebx
je 0x421a95
cmp dword [esi + 0x6c4], 1
jle 0x421a95
mov eax, dword [esi + 0x6b0]
push eax
push 1
call fcn.00418be0
mov ecx, dword [esi + 0x4b0]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
push 0x147
push ecx
call edi
mov edx, dword [esi + 0x4b0]
push ebx
push eax
push 0x150
push edx
call edi
mov edi, eax
mov eax, dword [esi + 0x6bc]
cmp edi, eax
je 0x421b07
lea ecx, [esp + 0x10]
call fcn.00424bd0
mov eax, dword [esi + edi*4 + 0x700]
lea ecx, [esp + 0x10]
push eax
mov dword [esp + 0x88], ebx
call fcn.004254a0
lea ecx, [esp + 0x10]
mov dword [esi + 0x6bc], edi
mov ebx, 1
mov dword [esp + 0x84], 0xffffffff
call fcn.00424d40
mov dword [0x438538], ebx
pop edi
pop ebx
mov ecx, dword [esp + 0x74]
pop esi
mov dword fs:[0], ecx
add esp, 0x7c
ret