Function at 0x4011b0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
mov eax, dword [0x416028]
xor eax, esp
mov dword [esp + 0x140], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
push eax
lea esi, [esp + 0x18]
call section..text
xor edi, edi
cmp dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov byte [esp + 0x13], 0
jle 0x4013b1
lea ebx, [edi + 1]
jmp 0x401200
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4]
mov ecx, str._preset
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401230
test dl, dl
je 0x40122c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401230
add eax, 2
add ecx, 2
test dl, dl
jne 0x401210
xor eax, eax
jmp 0x401235
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401256
cmp dword [esp + 0x14], ebx
jle 0x401361
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + edi*4 + 4]
inc edi
inc ebx
mov dword [esp + 0x20], edx
jmp 0x4012e2
mov ecx, str._remote
mov eax, esi
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401280
test dl, dl
je 0x40127c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401280
add eax, 2
add ecx, 2
test dl, dl
jne 0x401260
xor eax, eax
jmp 0x401285
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4012a3
cmp dword [esp + 0x14], ebx
jle 0x401361
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
inc edi
inc ebx
mov dword [esp + 0x28], ecx
jmp 0x4012e2
mov ecx, 0x41408c
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4012d0
test dl, dl
je 0x4012cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4012d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4012b0
xor eax, eax
jmp 0x4012d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401361
mov byte [esp + 0x13], 1
inc edi
inc ebx
cmp edi, dword [esp + 0x14]
jl 0x401200
cmp dword [esp + 0x28], 0
je 0x40134e
push 0
push str.AC3Filter_control
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
test edi, edi
je 0x40134e
mov ebx, dword [esp + 0x28]
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401311
mov ecx, 0x20
sub ecx, dword [0x418164]
xor esi, esi
shl esi, cl
sub eax, edx
mov edx, ebx
mov ecx, esi
call fcn.00402c80
mov ecx, 0x20
sub ecx, dword [0x418164]
shr eax, cl
push eax
push 0
push 0x40b
push edi
call dword [sym.imp.USER32.dll_PostMessageA]
mov ebx, dword [esp + 0x20]
test ebx, ebx
jne 0x4013b3
cmp byte [esp + 0x13], bl
je 0x4013b3
jmp 0x401673
push 0
push str.AC3Config_usage
push str.AC3Filter_configuration_utility_n_nUsage:_n__ac3config________preset_PRESET____remote_PRESET____q__n_nWhere:_n_______show_this_help_n___q___be_quiet__do_not_show_the_config_dialog__n___preset___set_the_default_preset_n___remote___find_an_active_AC3Filter_and_change_the_preset_for_it._n_nExamples:_n__ac3config_nShow_AC3Filter_configuration_dialog._n_n__ac3config__preset_MyPreset__q_nLoad_MyPreset_preset_and_exit__do_not_show_the_dialog_._Note__that_this_command_does_not_affect_current_playback__it_just_changes_the_default_preset._Only_applications_started_later_are_affected._n_n__ac3config__remote__Enable_SPDIF___q_nYou_can_specify_such_command_line_at_your_infrared_control_application_to_control_the_current_playback._Note_that_default_preset_is_not_affected_in_this_case._Applications_started_later_will_use_an_old_default_preset._n
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x401386
push eax
call fcn.00402d4e
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x401397
push eax
call fcn.00402d4e
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.00402d3f
mov esp, ebp
pop ebp
ret 0x10
mov ebx, edi
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea edx, [esp + 0x24]
push edx
push 0x413b7c
push 1
push 0
push 0x413b8c
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jge 0x401430
push 0x10
push str.ERROR_
push str.Cannot_create_AC3Filter_instance__AC3Filter_is_not_installed__
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x401403
push eax
call fcn.00402d4e
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x401414
push eax
call fcn.00402d4e
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.00402d3f
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, vtable.RegistryKey.0
test ebx, ebx
je 0x4014cf
push ebx
lea eax, [esp + 0x4c]
push str.SoftwareAC3Filterpreset_s
push eax
call fcn.00402dbe
add esp, 0xc
lea ecx, [esp + 0x30]
push ecx
push 0x2001f
push 0
lea edx, [esp + 0x54]
push edx
push 0x80000001
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0
call esi
test eax, eax
je 0x401486
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 0x1ff
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0xc4]
call eax
cmp byte [esp + 0x13], 0
je 0x4014bc
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc8]
push 0x1ff
push 0
push eax
call edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
test eax, eax
je 0x4014cf
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [esp + 0x13], 0
je 0x4014ed
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x401673
lea eax, [esp + 0x38]
push eax
push 0x2001f
push 0
push str.SoftwareAC3Filter
push 0x80000001
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], 0
call esi
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov ebx, 4
test eax, eax
je 0x40152a
mov dword [esp + 0x38], 0
jmp 0x401570
mov eax, dword [esp + 0x38]
test eax, eax
je 0x401570
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x34]
push ecx
push 0
push str.offline_warning
push eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401570
cmp dword [esp + 0x2c], ebx
jne 0x401570
cmp dword [esp + 0x20], eax
setne al
test al, al
je 0x4015aa
push 0x31
push str.WARNING_
push str.This_utility_is_for_OFFLINE_filter_configuration_only_This_means_that_you_will_not_see_any_activity_of_currently_playing_applications_and_configuration_settings_will_not_affect_them._You_need_to_restart_your_player_for_changes_take_in_effect__n_nPress_cancel_to_skip_this_dialog_in_future
push 0
call esi
cmp eax, 2
jne 0x4015aa
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4015aa
push ebx
lea edx, [esp + 0x30]
push edx
push ebx
push 0
push str.offline_warning
push eax
mov dword [esp + 0x44], 0
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push edx
push 0x4121cc
push eax
mov eax, dword [ecx]
call eax
test eax, eax
jge 0x401601
push 0x10
push str.ERROR_
push 0x413b9c
push 0
call esi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], edi
test eax, eax
je 0x401375
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x401375
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push 0
push 0
push 0
push ecx
push edx
lea eax, [esp + 0x50]
push eax
push 1
push 0
push 0x1e
push 0x1e
push 0
call dword [sym.imp.OLEAUT32.dll_OleLoadPicture]
mov ecx, dword [esp + 0x44]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], edi
test eax, eax
je 0x401673
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x401684
push eax
call fcn.00402d4e
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x401695
push eax
call fcn.00402d4e
add esp, 4
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00402d3f
mov esp, ebp
pop ebp
ret 0x10