Function at 0x4131a0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x940]
push ebx
sub esp, 0x968
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], 0x2000000
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
mov dword [ebp - 0x944], eax
sub esp, 0x14
test eax, eax
jne 0x4138e0
lea eax, [ebp - 0x80c]
xor edi, edi
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x948], 0
shr eax, 0x10
mov dword [ebp - 0x94c], edi
mov dword [ebp - 0x950], eax
nop
lea eax, [ebp - 0x93c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x80c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x948]
mov dword [ebp - 0x93c], 0x400
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x940]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumValueW]
sub esp, 0x20
test eax, eax
jne 0x413598
test byte [0x418888], 8
jne 0x413370
mov edi, dword [0x418880]
mov esi, dword [sym.imp.kernel32.dll_lstrcmpiW]
cmp edi, 0x418880
jne 0x4132a2
jmp 0x4132f0
mov edi, dword [edi]
cmp edi, 0x418880
je 0x4132f0
mov dword [esp + 4], ebx
mov eax, dword [edi + 0xc]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
jne 0x413298
lea eax, [ebp - 0x80c]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
jne 0x413298
mov ecx, dword [edi + 0x14]
test ecx, ecx
jne 0x413298
test byte [0x418888], 8
jne 0x413568
add dword [ebp - 0x948], 1
jmp 0x413210
add dword [ebp - 0x944], 1
mov eax, dword [ebp - 0x944]
lea esi, [eax*4]
mov eax, dword [ebp - 0x94c]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_realloc]
mov dword [ebp - 0x94c], eax
lea esi, [eax + esi - 4]
lea eax, [ebp - 0x80c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [esi], eax
test byte [0x418888], 8
je 0x4132e2
mov eax, dword [ebp - 0x944]
mov dword [esp + 0xc], str.valueslen_is_now__ld_n
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x418888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
jmp 0x4132e2
mov eax, dword [ebp - 0x950]
test eax, eax
je 0x413940
lea eax, [ebp - 0x80c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x413489
cmp word [ebp - 0x80c], 0
je 0x4138bc
nop
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ebp + edx*2 - 0x80a], 0
jne 0x4133b8
mov ecx, 0x224c
mov dword [ebp + 0xc], ebx
lea esi, [ebp - 0x80c]
mov word [ebp - 0x938], cx
lea ecx, [ebp - 0x936]
jmp 0x41341b
cmp ax, 9
je 0x4134c0
cmp ax, 0xa
jne 0x4134f6
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
test edx, edx
jle 0x413458
lea edx, [ebp - 0x816]
cmp ecx, edx
ja 0x413458
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x4134d8
jbe 0x4133e8
cmp ax, 0x22
je 0x413550
cmp ax, 0x5c
jne 0x4134e9
mov edi, 0x5c5c
add ecx, 2
lea eax, [edx - 1]
mov word [ecx - 2], di
test edx, edx
jg 0x41340f
lea esi, [esi]
mov byte [ecx], 0x22
mov ebx, dword [ebp + 0xc]
test eax, eax
jle 0x4138d5
mov esi, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], si
mov byte [eax], 0
lea eax, [ebp - 0x938]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.name_s_n
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 4], 0x418888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
jmp 0x41327f
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413408
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413408
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x413870
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefset_window_title]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefset_window_title]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefset_window_title]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefset_window_title]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x413408
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413408
mov dword [esp + 0xc], str.this_key_has_been_removed__so_skipping_n
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 4], 0x418888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
jmp 0x4132e2
mov edi, dword [ebp - 0x94c]
movzx eax, byte [0x418888]
test al, 8
jne 0x413903
mov ebx, dword [0x418880]
cmp ebx, 0x418880
je 0x413683
mov eax, dword [sym.imp.kernel32.dll_lstrcmpiW]
mov esi, ebx
mov dword [ebp - 0x948], eax
lea esi, [esi]
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x948]
call eax
sub esp, 8
test eax, eax
jne 0x413648
mov edx, dword [esi + 0x14]
test edx, edx
je 0x413648
mov eax, dword [ebp - 0x944]
test eax, eax
je 0x4136d6
mov eax, edi
xor ebx, ebx
mov edi, esi
mov esi, eax
jmp 0x41361f
add ebx, 1
cmp ebx, dword [ebp - 0x944]
je 0x4136d0
mov eax, dword [esi + ebx*4]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x10]
mov dword [esp], eax
mov eax, dword [ebp - 0x948]
call eax
sub esp, 8
test eax, eax
jne 0x413610
mov eax, esi
mov esi, edi
mov edi, eax
lea esi, [esi]
mov esi, dword [esi]
cmp esi, 0x418880
jne 0x4135d0
test byte [0x418888], 8
je 0x413683
mov dword [esp + 0xc], str.adding_null_terminator_n
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 4], 0x418888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
test edi, edi
je 0x4136ab
mov eax, dword [ebp - 0x944]
mov dword [esp], edi
lea ebx, [eax*4 + 4]
mov dword [esp + 4], ebx
call dword [sym.imp.ucrtbase.dll_realloc]
mov dword [eax + ebx - 4], 0
mov edi, eax
mov eax, dword [ebp - 0x940]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, edi
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, esi
mov esi, edi
mov edi, eax
test byte [0x418888], 8
jne 0x413738
add dword [ebp - 0x944], 1
mov eax, dword [ebp - 0x944]
mov dword [esp], edi
lea ecx, [eax*4]
mov dword [esp + 4], ecx
mov dword [ebp - 0x94c], ecx
call dword [sym.imp.ucrtbase.dll_realloc]
mov ecx, dword [ebp - 0x94c]
mov edi, eax
lea ecx, [eax + ecx - 4]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x94c], ecx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsdup]
mov ecx, dword [ebp - 0x94c]
mov dword [ecx], eax
jmp 0x413648
mov edx, dword [esi + 0x10]
test edx, edx
je 0x413b99
mov eax, edx
shr eax, 0x10
je 0x41387a
mov dword [esp + 4], 0xffffffff
mov dword [esp], edx
mov dword [ebp - 0x94c], edx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, str._invalid_
sub esp, 8
test eax, eax
jne 0x41388f
mov edx, dword [ebp - 0x94c]
cmp word [edx], 0
je 0x413a1b
lea esi, [esi]
mov ecx, eax
lea eax, [eax + 1]
cmp word [edx + ecx*2 + 2], 0
jne 0x413788
mov eax, 0x224c
mov dword [ebp - 0x950], esi
lea ebx, [ebp - 0x80a]
mov word [ebp - 0x80c], ax
mov dword [ebp - 0x94c], edx
jmp 0x4137eb
cmp ax, 9
je 0x4139e8
cmp ax, 0xa
jne 0x413977
mov eax, 0x6e5c
add ebx, 2
mov word [ebx - 2], ax
lea eax, [ecx - 1]
test ecx, ecx
jle 0x41382f
lea edx, [ebp - 0x6ea]
cmp ebx, edx
ja 0x41382f
mov ecx, eax
add dword [ebp - 0x94c], 2
mov eax, dword [ebp - 0x94c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x413a00
jbe 0x4137b8
cmp ax, 0x22
je 0x4139d0
cmp ax, 0x5c
jne 0x41396a
mov esi, 0x5c5c
add ebx, 2
lea eax, [ecx - 1]
mov word [ebx - 2], si
test ecx, ecx
jg 0x4137df
mov byte [ebx], 0x22
mov esi, dword [ebp - 0x950]
mov ecx, ebx
test eax, eax
jle 0x413a36
mov ecx, 0x2e2e
mov byte [ebx + 3], 0x2e
lea eax, [ebx + 4]
mov word [ebx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x80c]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov ecx, eax
jmp 0x41388f
mov byte [ecx], al
add ecx, 1
jmp 0x413408
movzx eax, dx
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0_7
mov ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str._s_in_list_but_not_registry_n
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 4], 0x418888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
jmp 0x4136df
mov esi, 0x224c
mov byte [ebp - 0x936], 0x22
lea ecx, [ebp - 0x936]
mov word [ebp - 0x938], si
lea eax, [ecx + 1]
jmp 0x413476
movzx eax, byte [0x418888]
test al, 4
jne 0x413a40
mov dword [ebp - 0x944], 0
xor edi, edi
test al, 8
je 0x4135ad
mov dword [esp + 0xc], str.adding_settings_in_list_but_not_registry_n
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 4], 0x418888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
mov ebx, dword [0x418880]
cmp ebx, 0x418880
jne 0x4135bf
jmp 0x413656
lea eax, [ebp - 0x80c]
mov dword [esp], str._04x
mov dword [ebp - 0x954], eax
movzx eax, word [ebp - 0x954]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0_7
mov edx, eax
jmp 0x413489
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x413a11
mov esi, eax
mov byte [ebx], 0x5c
add ebx, 5
shr si, 0xc
movzx esi, si
movzx edx, byte [esi + str.0123456789abcdefset_window_title]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ebx - 4], dl
movzx edx, byte [esi + str.0123456789abcdefset_window_title]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdefset_window_title]
and esi, 0xf
mov byte [ebx - 3], dl
movzx edx, byte [esi + str.0123456789abcdefset_window_title]
mov byte [ebx - 1], al
mov byte [ebx - 2], dl
jmp 0x4137d8
mov eax, 0x225c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x4137d8
mov eax, 0x745c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x4137d8
mov eax, 0x725c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x4137d8
mov byte [ebx], al
add ebx, 1
jmp 0x4137d8
mov eax, 0x224c
mov byte [ebp - 0x80a], 0x22
mov word [ebp - 0x80c], ax
lea eax, [ebp - 0x80a]
mov ecx, eax
mov eax, ecx
add eax, 1
jmp 0x413852
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x413c7a
mov eax, dword [ebp + 0xc]
shr eax, 0x10
je 0x413c5f
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x413b4f
mov ecx, dword [ebp + 0xc]
cmp word [ecx], 0
je 0x413c3e
nop
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x413a90
mov eax, 0x224c
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x80a]
lea edi, [ebp - 0x6ea]
mov word [ebp - 0x80c], ax
jmp 0x413aed
cmp ax, 9
je 0x413c12
cmp ax, 0xa
jne 0x413bb0
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
lea eax, [edx - 1]
cmp ecx, edi
ja 0x413b21
test edx, edx
jle 0x413b21
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x413c23
jbe 0x413aba
cmp ax, 0x22
je 0x413c01
cmp ax, 0x5c
jne 0x413ba3
mov eax, 0x5c5c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413ae0
mov byte [ecx], 0x22
test eax, eax
jle 0x413c57
mov ebx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], bx
mov byte [eax], 0
lea eax, [ebp - 0x80c]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov eax, dword [ebp - 0x944]
mov dword [esp + 0x10], edx
xor edi, edi
mov dword [esp + 0xc], str.failed_opening_registry_key__s__res0x_lx_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.enumerate_values
mov dword [esp + 4], 0x418888
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_8
movzx eax, byte [0x418888]
mov dword [ebp - 0x944], 0
jmp 0x4135a5
mov ecx, str._null_
jmp 0x41388f
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x413c34
mov ebx, eax
mov byte [ecx], 0x5c
add ecx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdefset_window_title]
mov byte [ecx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefset_window_title]
mov byte [ecx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdefset_window_title]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefset_window_title]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x413ae0
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413ae0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413ae0
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x413ae0
mov byte [ecx], al
add ecx, 1
jmp 0x413ae0
mov edx, 0x224c
mov byte [ebp - 0x80a], 0x22
lea ecx, [ebp - 0x80a]
mov word [ebp - 0x80c], dx
lea eax, [ecx + 1]
jmp 0x413b3c
movzx eax, word [ebp + 0xc]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0_7
mov edx, eax
jmp 0x413b4f
mov edx, str._null_
jmp 0x413b4f