Function at 0x10001980
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x160
test byte [0x10003018], 8
jne 0x10001ae8
mov eax, dword [ebp + 8]
test eax, eax
je 0x10001cc1
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x10001cd0
mov eax, dword [ebp + 0xc]
mov ecx, 0x80000000
xor ebx, ebx
mov esi, str.SoftwareMicrosoftShared_Tools_t2embed
mov dword [eax], 1
lea eax, [ebp - 0x14c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
sub esp, 0x14
test eax, eax
jne 0x10001a99
mov eax, dword [ebp + 0xc]
lea esi, [ebp - 0x138]
lea edi, [ebp - 0x148]
mov dword [eax], 1
xor eax, eax
lea esi, [esi]
mov dword [esp + 4], eax
mov ebx, 4
mov ecx, 0x20
mov dword [ebp - 0x144], ebx
lea ebx, [eax + 1]
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x148], ecx
lea edx, [ebp - 0x140]
mov dword [esp + 0x18], edx
lea ecx, [ebp - 0x144]
xor edx, edx
mov dword [esp + 0x1c], ecx
lea ecx, [ebp - 0x13c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumValueA]
sub esp, 0x20
test eax, eax
jne 0x10001a80
cmp dword [ebp - 0x13c], 4
je 0x10001ab8
mov eax, ebx
jmp 0x10001a10
cmp eax, 0x103
jne 0x10001a78
mov eax, dword [ebp - 0x14c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
xor eax, eax
test byte [0x10003018], 8
jne 0x10001bb0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov dword [esp], esi
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpiA]
sub esp, 8
test eax, eax
jne 0x10001a78
mov edx, dword [ebp - 0x140]
xor eax, eax
mov edi, dword [ebp + 0xc]
test edx, edx
setne al
mov dword [edi], eax
jmp 0x10001a87
mov edx, dword [ebp + 8]
test edx, edx
je 0x10001e98
mov eax, dword [ebp + 8]
shr eax, 0x10
je 0x10001c70
mov eax, 0xffffffff
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
sub esp, 8
test eax, eax
jne 0x10001e8e
mov edi, dword [ebp + 8]
cmp byte [edi], 0
je 0x10001eaa
mov ecx, edi
lea esi, [esi]
mov edx, eax
cmp byte [ecx + edx + 1], 0
lea eax, [eax + 1]
jne 0x10001b30
mov byte [ebp - 0x138], 0x22
mov esi, dword [ebp + 8]
lea ebx, [ebp - 0x137]
lea edi, [ebp - 0x15]
jmp 0x10001b85
cmp al, 9
je 0x10001d40
cmp al, 0xa
jne 0x10001ced
mov word [ebx], 0x6e5c
add ebx, 2
lea eax, [edx - 1]
test edx, edx
jle 0x10001dc0
cmp ebx, edi
ja 0x10001dc0
mov edx, eax
movzx eax, byte [esi]
inc esi
cmp al, 0xd
je 0x10001d30
jle 0x10001b58
cmp al, 0x22
je 0x10001d20
cmp al, 0x5c
lea esi, [esi]
jne 0x10001cdf
mov word [ebx], 0x5c5c
add ebx, 2
jmp 0x10001b70
mov eax, dword [ebp + 8]
shr eax, 0x10
je 0x10001e78
mov eax, 0xffffffff
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
sub esp, 8
test eax, eax
jne 0x10001ec4
mov edi, dword [ebp + 8]
cmp byte [edi], 0
je 0x10001ece
mov ecx, edi
lea esi, [esi]
mov edx, eax
cmp byte [ecx + edx + 1], 0
lea eax, [eax + 1]
jne 0x10001bf0
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x137]
mov edi, edx
mov byte [ebp - 0x138], 0x22
lea esi, [ebp - 0x15]
jmp 0x10001c45
cmp al, 9
je 0x10001d50
cmp al, 0xa
jne 0x10001d7b
mov word [ecx], 0x6e5c
add ecx, 2
lea eax, [edi - 1]
cmp ecx, esi
ja 0x10001e00
test edi, edi
jle 0x10001e00
mov edi, eax
movzx eax, byte [ebx]
inc ebx
cmp al, 0xd
je 0x10001d60
jle 0x10001c18
cmp al, 0x22
je 0x10001db0
cmp al, 0x5c
lea esi, [esi]
jne 0x10001d6d
mov word [ecx], 0x5c5c
add ecx, 2
jmp 0x10001c30
mov dword [esp], str._04x
movzx eax, word [ebp + 8]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov dword [esp + 0x10], eax
mov edi, dword [ebp + 0xc]
mov eax, str.__s__p__n
mov dword [esp + 0xc], eax
mov eax, str.TTIsEmbeddingEnabledForFacename
mov dword [esp + 8], eax
mov eax, 0x10003018
mov dword [esp + 4], eax
mov dword [esp + 0x14], edi
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp + 8]
test eax, eax
jne 0x100019a4
lea esp, [ebp - 0xc]
mov eax, 0x113
pop ebx
pop esi
pop edi
pop ebp
ret 8
lea esp, [ebp - 0xc]
mov eax, 0x118
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov cl, al
sub cl, 0x20
cmp cl, 0x5e
jbe 0x10001df0
mov word [ebx], 0x785c
mov cl, al
and al, 0xf
shr cl, 4
movzx eax, al
movzx ecx, cl
movzx eax, byte [eax + str.0123456789abcdef]
add ebx, 4
movzx ecx, byte [ecx + str.0123456789abcdef]
mov byte [ebx - 1], al
mov byte [ebx - 2], cl
jmp 0x10001b70
mov word [ebx], 0x225c
add ebx, 2
jmp 0x10001b70
mov word [ebx], 0x725c
add ebx, 2
jmp 0x10001b70
mov word [ebx], 0x745c
add ebx, 2
jmp 0x10001b70
mov word [ecx], 0x745c
add ecx, 2
jmp 0x10001c30
mov word [ecx], 0x725c
add ecx, 2
jmp 0x10001c30
mov dl, al
sub dl, 0x20
cmp dl, 0x5e
jbe 0x10001ea2
mov word [ecx], 0x785c
mov dl, al
and al, 0xf
shr dl, 4
movzx eax, al
movzx edx, dl
movzx eax, byte [eax + str.0123456789abcdef]
add ecx, 4
movzx edx, byte [edx + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], dl
jmp 0x10001c30
mov word [ecx], 0x225c
add ecx, 2
jmp 0x10001c30
mov byte [ebx], 0x22
test eax, eax
jle 0x10001ebc
mov word [ebx + 1], 0x2e2e
lea eax, [ebx + 4]
mov byte [ebx + 3], 0x2e
mov byte [eax], 0
lea esi, [ebp - 0x138]
mov dword [esp], esi
call sym.___wine_dbg_strdup
jmp 0x10001c84
mov byte [ebx], al
inc ebx
jmp 0x10001b70
mov byte [ecx], 0x22
test eax, eax
jle 0x10001ee0
mov word [ecx + 1], 0x2e2e
lea eax, [ecx + 4]
mov byte [ecx + 3], 0x2e
mov byte [eax], 0
lea eax, [ebp - 0x138]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edi, dword [ebp + 0xc]
mov edx, str.enabled
mov ebx, str.embedding__s_for__s_n
mov esi, str.TTIsEmbeddingEnabledForFacename
mov ecx, dword [edi]
mov edi, 0x10003018
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp + 0x14], eax
test ecx, ecx
mov ecx, str.disabled
mov dword [esp], 3
cmove edx, ecx
mov dword [esp + 0x10], edx
call sym._wine_dbg_log.constprop.0
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov dword [esp], str._04x
movzx eax, word [ebp + 8]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
jmp 0x10001e29
mov eax, str._invalid_
jmp 0x10001c84
mov eax, str._null_
jmp 0x10001c84
mov byte [ecx], al
inc ecx
jmp 0x10001c30
lea ebx, [ebp - 0x137]
mov eax, 0x2222
mov word [ebp - 0x138], ax
lea eax, [ebx + 1]
jmp 0x10001dd8
mov eax, str._invalid_
jmp 0x10001e29
lea ecx, [ebp - 0x137]
mov edx, 0x2222
mov word [ebp - 0x138], dx
lea eax, [ecx + 1]
jmp 0x10001e18