Function at 0x1000d1a0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3ec
mov dword [ebp - 0x3b4], eax
or eax, edx
mov dword [ebp - 0x3d4], edx
mov dword [ebp - 0x3c0], ecx
je 0x1000e57b
lea eax, [ebp - 0x3a0]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov eax, dword [sym.imp.advapi32.dll_RegOpenKeyExW]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1001f41c
mov dword [esp], 0x80000002
mov dword [ebp - 0x3ac], eax
call eax
mov dword [ebp - 0x3bc], eax
sub esp, 0x14
test eax, eax
jne 0x1000e61b
mov ebx, dword [sym.imp.advapi32.dll_RegEnumKeyW]
xor esi, esi
lea edi, [ebp - 0x20a]
lea esi, cs:[esi]
mov dword [ebp - 0x39c], 0xff
mov dword [esp + 4], esi
add esi, 1
mov dword [esp + 0xc], 0xff
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x3a0]
mov dword [esp], eax
call ebx
sub esp, 0x10
test eax, eax
je 0x1000d220
cmp dword [0x10035004], esi
jb 0x1000e140
mov dword [ebp - 0x3d0], 0
mov eax, edi
mov dword [ebp - 0x3cc], 0
shr eax, 0x10
mov dword [ebp - 0x3b0], eax
lea eax, [ebp - 0x384]
mov dword [ebp - 0x3c8], 0
shr eax, 0x10
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x3b8], 0
mov dword [ebp - 0x3a8], 0
lea esi, cs:[esi]
nop
mov dword [ebp - 0x394], 0x4e
lea eax, [ebp - 0x38c]
mov dword [ebp - 0x39c], 0xff
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x39c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x3a8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3a0]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumKeyExW]
sub esp, 0x20
cmp eax, 0x103
je 0x1000ddf0
movzx edx, byte [0x1001c03c]
test eax, eax
jne 0x1000def8
and edx, 8
jne 0x1000d5d8
lea eax, [ebp - 0x398]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x3a0]
mov dword [esp], eax
mov eax, dword [ebp - 0x3ac]
call eax
sub esp, 0x14
test eax, eax
je 0x1000d478
test byte [0x1001c03c], 2
je 0x1000d2b0
mov eax, dword [ebp - 0x3b0]
test eax, eax
je 0x1000dcb0
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x1000d8ec
cmp word [ebp - 0x20a], 0
je 0x1000e3ee
lea esi, [esi]
mov edx, ecx
lea ecx, [ecx + 1]
cmp word [edi + edx*2 + 2], 0
jne 0x1000d3c0
mov eax, 0x224c
mov dword [ebp - 0x3a4], edi
mov word [ebp - 0x336], ax
lea eax, [ebp - 0x334]
jmp 0x1000d423
cmp cx, 9
je 0x1000da68
cmp cx, 0xa
jne 0x1000dcc8
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x1000d468
lea ecx, [ebp - 0x214]
cmp ecx, eax
jb 0x1000d8c0
add dword [ebp - 0x3a4], 2
mov esi, dword [ebp - 0x3a4]
movzx ecx, word [esi - 2]
cmp cx, 0xd
je 0x1000daf0
jbe 0x1000d3f0
cmp cx, 0x22
je 0x1000da80
cmp cx, 0x5c
jne 0x1000dd20
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
sub edx, 1
jae 0x1000d415
lea esi, [esi]
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x1000d8db
lea eax, [ebp - 0x394]
mov dword [esp + 0xc], 0
mov ebx, dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x384]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1001f57c
mov eax, dword [ebp - 0x398]
mov dword [esp], eax
call ebx
sub esp, 0x18
test eax, eax
jne 0x1000d770
cmp dword [ebp - 0x394], 0x4e
je 0x1000d920
test byte [0x1001c03c], 2
je 0x1000d2b0
mov eax, dword [ebp - 0x3c4]
test eax, eax
je 0x1000e038
lea eax, [ebp - 0x384]
mov dword [esp + 4], 0xffffffff
mov esi, str._invalid_
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x1000db4e
cmp word [ebp - 0x384], 0
je 0x1000e32e
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ebp + edx*2 - 0x382], 0
jne 0x1000d520
mov eax, 0x224c
lea ebx, [ebp - 0x384]
mov word [ebp - 0x336], ax
lea eax, [ebp - 0x334]
mov dword [ebp - 0x3a4], ebx
jmp 0x1000d583
cmp cx, 9
je 0x1000de68
cmp cx, 0xa
jne 0x1000e058
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x1000d5c8
lea ecx, [ebp - 0x214]
cmp ecx, eax
jb 0x1000db20
add dword [ebp - 0x3a4], 2
mov esi, dword [ebp - 0x3a4]
movzx ecx, word [esi - 2]
cmp cx, 0xd
je 0x1000de50
jbe 0x1000d550
cmp cx, 0x22
je 0x1000de98
cmp cx, 0x5c
jne 0x1000e120
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
sub edx, 1
jae 0x1000d575
lea esi, [esi]
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x1000db3b
mov eax, dword [ebp - 0x3b0]
test eax, eax
je 0x1000da50
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x1000d6f8
cmp word [ebp - 0x20a], 0
je 0x1000e220
lea esi, cs:[esi]
nop
mov edx, ecx
lea ecx, [ecx + 1]
cmp word [edi + edx*2 + 2], 0
jne 0x1000d620
mov eax, 0x224c
mov dword [ebp - 0x3a4], edi
mov word [ebp - 0x336], ax
lea eax, [ebp - 0x334]
jmp 0x1000d67f
cmp cx, 9
je 0x1000d758
cmp cx, 0xa
jne 0x1000da98
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x1000d6c8
lea ecx, [ebp - 0x214]
cmp ecx, eax
jb 0x1000d6d0
add dword [ebp - 0x3a4], 2
mov ebx, dword [ebp - 0x3a4]
movzx ecx, word [ebx - 2]
cmp cx, 0xd
je 0x1000d728
jbe 0x1000d650
cmp cx, 0x22
je 0x1000d740
cmp cx, 0x5c
jne 0x1000db08
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
sub edx, 1
jae 0x1000d675
lea esi, [esi]
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x1000d6e7
mov byte [eax], 0x22
test edx, edx
je 0x1000d6cb
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x336]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._this_time_through_sub_key__s._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.1
jmp 0x1000d333
movzx ebx, word [str._r_]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d670
movzx ebx, word [0x10020de6]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d670
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d670
test byte [0x1001c03c], 2
je 0x1000d2b0
mov eax, dword [ebp - 0x3b0]
test eax, eax
je 0x1000e178
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x1000d891
cmp word [ebp - 0x20a], 0
je 0x1000e51b
lea esi, [esi]
mov edx, ecx
lea ecx, [ecx + 1]
cmp word [edi + edx*2 + 2], 0
jne 0x1000d7c0
mov eax, 0x224c
mov dword [ebp - 0x3a4], edi
mov word [ebp - 0x336], ax
lea eax, [ebp - 0x334]
jmp 0x1000d81f
cmp cx, 9
je 0x1000dec8
cmp cx, 0xa
jne 0x1000e1b0
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x1000d861
lea ecx, [ebp - 0x214]
cmp ecx, eax
jb 0x1000d869
add dword [ebp - 0x3a4], 2
mov ebx, dword [ebp - 0x3a4]
movzx ecx, word [ebx - 2]
cmp cx, 0xd
je 0x1000deb0
jbe 0x1000d7f0
cmp cx, 0x22
je 0x1000dee0
cmp cx, 0x5c
jne 0x1000e208
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
sub edx, 1
jae 0x1000d815
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x1000d880
mov byte [eax], 0x22
test edx, edx
je 0x1000d864
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x336]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.:_missing_GUID_registry_data_member_for_service_provider__s._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000d2b0
mov byte [eax], 0x22
test edx, edx
je 0x1000d46b
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x336]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.:_could_not_open_registry_key_for_service_provider__s._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000d2b0
mov eax, dword [ebp - 0x3a8]
lea esi, [ebp - 0x390]
shl eax, 4
mov dword [ebp - 0x3a4], eax
add eax, dword [section..bss]
mov dword [esp + 4], eax
lea eax, [ebp - 0x384]
mov dword [esp], eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [ebp - 0x3b4]
mov dword [ebp - 0x390], 0
sub esp, 8
test eax, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
je 0x1000dd38
mov dword [esp + 4], str.DescriptionA
mov eax, dword [ebp - 0x398]
mov ebx, dword [sym.imp.advapi32.dll_RegQueryValueExA]
mov dword [esp], eax
call ebx
sub esp, 0x18
test eax, eax
jne 0x1000df20
mov eax, dword [ebp - 0x390]
cmp dword [ebp - 0x3c8], eax
jb 0x1000e190
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x3b8], eax
mov dword [esp + 0x14], esi
mov esi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.DescriptionA
mov eax, dword [ebp - 0x398]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x3c0]
sub esp, 0x18
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 6
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x3a4]
add eax, dword [section..bss]
mov dword [esp], eax
mov eax, dword [ebp - 0x3b4]
call eax
sub esp, 0x14
test eax, eax
je 0x1000ddf0
add dword [ebp - 0x3a8], 1
jmp 0x1000d2b0
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf_1
jmp 0x1000d6f8
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d410
movzx ebx, word [0x10020de6]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d410
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x1000d670
movzx ebx, word [str._r_]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d410
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000da98
mov byte [eax], cl
add eax, 1
jmp 0x1000d670
mov byte [eax], 0x22
test edx, edx
je 0x1000d5cb
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x336]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov esi, eax
mov eax, dword [ebp - 0x3b0]
test eax, eax
je 0x1000e020
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, eax
sub esp, 8
mov eax, str._invalid_
test ecx, ecx
jne 0x1000dc7e
cmp word [ebp - 0x20a], 0
je 0x1000e34c
lea esi, [esi]
mov edx, ecx
lea ecx, [ecx + 1]
cmp word [edi + edx*2 + 2], 0
jne 0x1000db90
mov eax, 0x224c
mov dword [ebp - 0x3a4], edi
mov word [ebp - 0x336], ax
lea eax, [ebp - 0x334]
mov dword [ebp - 0x3d8], esi
jmp 0x1000dbef
cmp cx, 9
je 0x1000de38
cmp cx, 0xa
jne 0x1000e0c8
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
sub edx, 1
jb 0x1000dc38
lea ecx, [ebp - 0x214]
cmp ecx, eax
jb 0x1000dc50
add dword [ebp - 0x3a4], 2
mov esi, dword [ebp - 0x3a4]
movzx ecx, word [esi - 2]
cmp cx, 0xd
je 0x1000de20
jbe 0x1000dbc0
cmp cx, 0x22
je 0x1000de80
cmp cx, 0x5c
jne 0x1000e0b0
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
sub edx, 1
jae 0x1000dbe5
lea esi, [esi]
mov byte [eax], 0x22
mov esi, dword [ebp - 0x3d8]
lea edx, [eax + 1]
jmp 0x1000dc6d
mov byte [eax], 0x22
mov esi, dword [ebp - 0x3d8]
test edx, edx
je 0x1000dc41
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x336]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.:_invalid_format_for_the_GUID_registry_data_member_for_service_provider__s___s_._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000d2b0
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf_1
jmp 0x1000d8ec
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x1000d410
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000dcc8
mov byte [eax], cl
add eax, 1
jmp 0x1000d410
mov dword [esp + 4], str.DescriptionW
mov eax, dword [ebp - 0x398]
mov dword [esp], eax
call ebx
sub esp, 0x18
test eax, eax
jne 0x1000e23e
mov eax, dword [ebp - 0x390]
cmp dword [ebp - 0x3d0], eax
jb 0x1000e40c
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x3cc], eax
mov dword [esp + 0x14], esi
mov esi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.DescriptionW
mov eax, dword [ebp - 0x398]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x3c0]
sub esp, 0x18
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 6
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x3a4]
add eax, dword [section..bss]
mov dword [esp], eax
mov eax, dword [ebp - 0x3d4]
call eax
sub esp, 0x14
test eax, eax
jne 0x1000da3a
lea esi, cs:[esi]
nop
mov eax, dword [ebp - 0x3b8]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x3cc]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x3bc]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movzx ebx, word [str._r_]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000dbe0
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x1000dbe0
movzx ebx, word [str._r_]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d570
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d570
movzx ebx, word [0x10020de6]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000dbe0
movzx ebx, word [0x10020de6]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d570
movzx ebx, word [str._r_]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d810
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d810
movzx ebx, word [0x10020de6]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000d810
and edx, 2
jne 0x1000e36a
mov dword [ebp - 0x3bc], 0x8877005a
mov eax, dword [ebp - 0x3bc]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x1001c03c], 2
je 0x1000d2b0
mov eax, dword [ebp - 0x3b0]
test eax, eax
je 0x1000e4a0
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x1000e3c1
cmp word [ebp - 0x20a], 0
je 0x1000e63b
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [edi + edx*2 + 2], 0
jne 0x1000df70
mov eax, 0x224c
mov dword [ebp - 0x3a4], edi
mov word [ebp - 0x336], ax
lea eax, [ebp - 0x334]
jmp 0x1000dfd7
cmp cx, 9
je 0x1000e452
cmp cx, 0xa
jne 0x1000e4b7
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
lea esi, cs:[esi]
nop
sub edx, 1
jb 0x1000e570
lea ecx, [ebp - 0x214]
cmp ecx, eax
jb 0x1000e393
add dword [ebp - 0x3a4], 2
mov esi, dword [ebp - 0x3a4]
movzx ecx, word [esi - 2]
cmp cx, 0xd
je 0x1000e43f
jbe 0x1000df97
cmp cx, 0x22
je 0x1000e42c
cmp cx, 0x5c
jne 0x1000e508
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x1000dfc0
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf_1
jmp 0x1000dc7e
lea eax, [ebp - 0x384]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf_1
mov esi, eax
jmp 0x1000db4e
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x1000d570
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000e0c8
mov byte [eax], cl
add eax, 1
jmp 0x1000dbe0
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x1000dbe0
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000e058
mov byte [eax], cl
add eax, 1
jmp 0x1000d570
mov eax, dword [section..bss]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, esi
shl eax, 4
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [section..bss], eax
test eax, eax
je 0x1000e69d
mov dword [0x10035004], esi
jmp 0x1000d25b
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf_1
jmp 0x1000d891
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x3b8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x3c8]
jmp 0x1000d9bb
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x1000d810
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000e1b0
mov byte [eax], cl
add eax, 1
jmp 0x1000d810
mov eax, 0x224c
mov byte [ebp - 0x334], 0x22
lea edx, [ebp - 0x333]
mov word [ebp - 0x336], ax
jmp 0x1000d6e7
test byte [0x1001c03c], 2
je 0x1000d2b0
mov ebx, dword [ebp - 0x3b0]
test ebx, ebx
je 0x1000e463
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, str._invalid_
test edx, edx
jne 0x1000e473
cmp word [ebp - 0x20a], 0
je 0x1000e67f
mov eax, edx
lea edx, [edx + 1]
cmp word [edi + eax*2 + 2], 0
jne 0x1000e28a
mov edx, 0x224c
mov dword [ebp - 0x3a4], edi
mov word [ebp - 0x336], dx
lea edx, [ebp - 0x334]
jmp 0x1000e2ef
cmp cx, 9
je 0x1000e54c
cmp cx, 0xa
jne 0x1000e58a
mov esi, 0x6e5c
add edx, 2
mov word [edx - 2], si
lea esi, [esi]
sub eax, 1
jb 0x1000e633
lea ecx, [ebp - 0x214]
cmp ecx, edx
jb 0x1000e5ee
add dword [ebp - 0x3a4], 2
mov ebx, dword [ebp - 0x3a4]
movzx ecx, word [ebx - 2]
cmp cx, 0xd
je 0x1000e539
jbe 0x1000e2b1
cmp cx, 0x22
je 0x1000e55d
cmp cx, 0x5c
jne 0x1000e5db
mov ecx, 0x5c5c
add edx, 2
mov word [edx - 2], cx
jmp 0x1000e2d8
mov eax, 0x224c
mov byte [ebp - 0x334], 0x22
lea edx, [ebp - 0x333]
mov word [ebp - 0x336], ax
jmp 0x1000db3b
mov eax, 0x224c
mov byte [ebp - 0x334], 0x22
lea edx, [ebp - 0x333]
mov word [ebp - 0x336], ax
jmp 0x1000dc6d
mov dword [esp + 0xc], str.:_could_not_enumerate_on_service_provider_key._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000df01
mov byte [eax], 0x22
test edx, edx
je 0x1000e573
mov esi, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], si
lea eax, [ebp - 0x336]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.:_missing_DescriptionA_registry_data_member_for_service_provider__s._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000d2b0
mov eax, 0x224c
mov byte [ebp - 0x334], 0x22
lea edx, [ebp - 0x333]
mov word [ebp - 0x336], ax
jmp 0x1000d8db
mov dword [ebp - 0x3d0], eax
mov eax, dword [ebp - 0x3cc]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x3d0]
jmp 0x1000dd68
movzx ebx, word [0x10020de6]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000dfc0
movzx ebx, word [str._r_]
add eax, 2
mov word [eax - 2], bx
jmp 0x1000dfc0
mov ebx, 0x745c
add eax, 2
mov word [eax - 2], bx
jmp 0x1000dfc0
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf_1
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.:_missing_DescriptionW_registry_data_member_for_service_provider__s._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000d2b0
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf_1
mov edx, eax
jmp 0x1000e3c1
mov esi, ecx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [eax - 1], cl
mov byte [eax - 2], bl
jmp 0x1000dfc0
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000e4b7
mov byte [eax], cl
add eax, 1
jmp 0x1000dfc0
mov eax, 0x224c
mov byte [ebp - 0x334], 0x22
lea edx, [ebp - 0x333]
mov word [ebp - 0x336], ax
jmp 0x1000d880
movzx ebx, word [str._r_]
add edx, 2
mov word [edx - 2], bx
jmp 0x1000e2d8
mov ebx, 0x745c
add edx, 2
mov word [edx - 2], bx
jmp 0x1000e2d8
movzx ebx, word [0x10020de6]
add edx, 2
mov word [edx - 2], bx
jmp 0x1000e2d8
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x1000e3ae
mov dword [ebp - 0x3bc], 0x80070057
jmp 0x1000de0c
mov esi, ecx
mov byte [edx], 0x5c
add edx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
shr si, 8
and esi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov esi, ecx
and ecx, 0xf
shr si, 4
movzx ecx, byte [ecx + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
and esi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefIDirectPlayImpl_SetPlayerName]
mov byte [edx - 1], cl
mov byte [edx - 2], bl
jmp 0x1000e2d8
lea esi, [ecx - 0x20]
cmp si, 0x5e
ja 0x1000e58a
mov byte [edx], cl
add edx, 1
jmp 0x1000e2d8
mov byte [edx], 0x22
test eax, eax
je 0x1000e636
mov byte [edx + 3], 0x2e
mov eax, 0x2e2e
mov word [edx + 1], ax
lea eax, [edx + 4]
mov byte [eax], 0
lea eax, [ebp - 0x336]
mov dword [esp], eax
call sym.___wine_dbg_strdup
jmp 0x1000e473
test byte [0x1001c03c], 2
jne 0x1000e659
mov dword [ebp - 0x3bc], 0x80004005
jmp 0x1000de0c
mov byte [edx], 0x22
lea eax, [edx + 1]
jmp 0x1000e605
mov eax, 0x224c
mov byte [ebp - 0x334], 0x22
lea edx, [ebp - 0x333]
mov word [ebp - 0x336], ax
jmp 0x1000e3ae
mov dword [esp + 0xc], str.:_no_service_provider_key_in_the_registry___check_your_Wine_installation_____n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000e624
mov ecx, 0x224c
mov byte [ebp - 0x334], 0x22
lea eax, [ebp - 0x333]
mov word [ebp - 0x336], cx
jmp 0x1000e605
test byte [0x1001c03c], 2
je 0x1000df01
mov dword [esp + 0xc], str.:_failed_to_allocate_required_memory._n
mov dword [esp + 8], str.DirectPlayEnumerateAW
mov dword [esp + 4], 0x1001c03c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000df01