Function at 0x6514ee00
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x88
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x58], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x50], eax
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x54], eax
test byte [0x65157018], 8
jne 0x6514f000
mov dword [esp + 4], str.AddPort
mov esi, dword [sym.imp.kernel32.dll_lstrcmpW]
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514ef60
test byte [0x65157018], 8
jne 0x6514ef20
lea eax, [ebp - 0x3c]
mov dword [esp + 4], 0x6515b380
mov dword [esp + 8], eax
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x6514eeb8
test byte [0x65157018], 8
jne 0x6514f060
lea esp, [ebp - 0x10]
mov eax, esi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x1c
mov eax, edi
call sym._does_port_exist
test eax, eax
jne 0x6514f160
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x651591ce
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
mov esi, eax
mov eax, dword [ebp - 0x3c]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x65157018], 8
je 0x6514eea4
jmp 0x6514f060
mov eax, edi
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.InputData___ld_:__s_n
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514ee72
mov dword [esp + 4], str.ConfigureLPTPortCommandOK
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514f0a0
test byte [0x65157018], 8
jne 0x6514f1b8
lea eax, [ebp - 0x3c]
mov dword [esp + 4], str.SoftwareMicrosoftWindows_NTCurrentVersionWindows
mov dword [esp + 8], eax
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegCreateKeyW]
sub esp, 0xc
mov esi, eax
test eax, eax
jne 0x6514eea4
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 1
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
mov esi, eax
mov eax, dword [ebp - 0x3c]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x6514eea4
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0
mov edx, dword [ebp - 0x54]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x28], edx
mov edx, dword [ebp - 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], edx
mov edx, dword [ebp - 0x58]
mov dword [esp + 0xc], str.__p___s___p___ld___p___ld___p__n
mov dword [esp + 0x20], edx
mov edx, dword [ebp - 0x4c]
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x1c], edx
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514ee47
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.___lu_n
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
lea esp, [ebp - 0x10]
mov eax, esi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x1c
mov dword [esp + 4], str.DeletePort
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514f1f8
test byte [0x65157018], 8
jne 0x6514f320
lea eax, [ebp - 0x3c]
mov dword [esp + 4], 0x6515b380
mov esi, 2
mov dword [esp + 8], eax
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
test eax, eax
jne 0x6514eea4
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegDeleteValueW]
mov esi, eax
mov eax, dword [ebp - 0x3c]
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x65157018], 8
je 0x6514eea4
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.___lu_with__lu_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514eea4
mov eax, dword [ebp - 0x3c]
mov esi, 0xb7
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x65157018], 8
je 0x6514eea4
mov dword [esp + 0x10], 0xb7
mov dword [esp + 0xc], str.___u_n
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514eea4
mov eax, edi
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.InputData___ld_:__s_n
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514ef85
mov dword [esp + 4], str.GetDefaultCommConfig
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514f260
test byte [0x65157018], 8
jne 0x6514f416
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [eax], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x58]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetDefaultCommConfigW]
sub esp, 0xc
mov ebx, eax
test byte [0x65157018], 8
jne 0x6514f3dc
test ebx, ebx
jne 0x6514f2b7
mov eax, dword fs:[0x18]
mov esi, dword [eax + 0x34]
jmp 0x6514eea4
mov dword [esp + 4], str.GetTransmissionRetryTimeout
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514f451
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x50], 3
mov dword [eax], 4
jbe 0x6514f360
mov eax, dword [ebp - 0x58]
mov dword [eax], 0x2d
lea eax, [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], str.SoftwareMicrosoftWindows_NTCurrentVersionWindows
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
test eax, eax
je 0x6514f2be
xor esi, esi
jmp 0x6514eea4
lea eax, [ebp - 0x40]
lea ebx, [ebp - 0x38]
mov dword [ebp - 0x40], 0x1e
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
jne 0x6514f309
cmp word [ebp - 0x38], 0
jne 0x6514f67e
mov eax, dword [ebp - 0x3c]
xor esi, esi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x6514eea4
mov eax, edi
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.InputData___ld_:__s_n
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514f0c5
mov esi, 0x7a
jmp 0x6514eea4
mov ebx, dword [ebp - 0x5c]
mov dword [esp + 4], 0x20
add ebx, 0xc
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
je 0x6514f388
lea ebx, [eax + 2]
lea esi, [ebp - 0x38]
lea ecx, [ebp - 0x1a]
mov eax, esi
movzx edx, word [ebx]
test dx, dx
je 0x6514f3a6
add eax, 2
add ebx, 2
mov word [eax - 2], dx
cmp eax, ecx
jne 0x6514f390
mov word [eax], 0
cmp word [ebp - 0x38], 0
jne 0x6514f6a1
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 8], eax
call dword [sym.imp.kernel32.dll_SetDefaultCommConfigW]
sub esp, 0xc
mov ebx, eax
test byte [0x65157018], 8
je 0x6514f247
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.got__lu_with__lu_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514f247
mov eax, edi
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.InputData___ld_:__s_n
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514f219
mov dword [esp + 4], 0x65159338
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514f4ab
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x50], 0x17
mov dword [eax], 0x18
jbe 0x6514f360
mov eax, dword [ebp - 0x58]
xor esi, esi
mov dword [eax], 0x6f006c
mov dword [eax + 4], 0x610063
mov dword [eax + 8], 0x75006c
mov dword [eax + 0xc], 0x2e0069
mov dword [eax + 0x10], 0x6c0064
mov dword [eax + 0x14], 0x6c
jmp 0x6514eea4
mov dword [esp + 4], str.PortIsValid
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
jne 0x6514f5e6
test byte [0x65157018], 8
jne 0x6514f643
mov dword [esp + 8], 3
mov ebx, dword [sym.imp.ucrtbase.dll_wcsncmp]
mov dword [esp + 4], 0x65159364
mov dword [esp], edi
call ebx
mov edx, eax
mov eax, 1
test edx, edx
je 0x6514f5aa
mov dword [esp + 8], 3
mov dword [esp + 4], 0x6515936c
mov dword [esp], edi
call ebx
test eax, eax
je 0x6514f5a5
mov edx, 1
mov eax, edi
call sym._get_type_from_name.part.0
mov ebx, eax
test byte [0x65157018], 8
je 0x6514f247
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.detected_as__lu_n
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test ebx, ebx
jne 0x6514f2b7
test byte [0x65157018], 8
je 0x6514f24b
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.___lu_n
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514f24b
mov eax, 2
test byte [0x65157018], 8
je 0x6514f2b7
mov dword [esp + 0x10], eax
xor esi, esi
mov dword [esp + 0xc], str.detected_as__lu_n
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514eea4
mov dword [esp + 4], str.SetDefaultCommConfig
mov dword [esp], ebx
call esi
push edx
push edx
test eax, eax
je 0x6514f36a
mov esi, 0x57
test byte [0x65157018], 1
je 0x6514eea4
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.command_not_supported:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 4], 0x65157018
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x6514eea4
mov eax, edi
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.InputData___ld_:__s_n
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], str.localmon_XcvDataPort
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x65157018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x6514f4d0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_wcstoul]
mov edi, dword [ebp - 0x58]
mov dword [edi], eax
jmp 0x6514f309
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcslen]
mov word [ebp + eax*2 - 0x3a], 0
jmp 0x6514f3b6