Function at 0x10007030
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x240
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x21c], 0
mov ebx, dword [ebp + 0xc]
test ecx, ecx
je 0x10007407
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x10007407
test eax, eax
je 0x10007110
mov ecx, dword [0x1000e5a8]
cmp dword [eax], ecx
je 0x10007090
test byte [0x1000b0f0], 1
jne 0x10007440
mov eax, 0x80158180
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [0x1000e5ac]
cmp dword [eax + 4], edi
jne 0x10007074
mov esi, dword [0x1000e5b0]
cmp dword [eax + 8], esi
jne 0x10007074
mov esi, dword [0x1000e5b4]
cmp dword [eax + 0xc], esi
jne 0x10007074
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0x59
jbe 0x10007411
lea eax, [ebx + 0x20]
mov dword [ebx + 0x14], eax
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + str.Local_Area_Connection___IPv4]
mov word [ebx + eax + 0x20], dx
add eax, 2
test dx, dx
jne 0x100070c8
mov eax, dword [ebp + 0x14]
mov dword [ebx + 4], 0x4ce725f6
mov dword [ebx + 8], 0xdaded3c0
mov dword [ebx + 0xc], 0xf9116fba
mov dword [ebx + 0x10], 0x9942bc65
mov dword [eax], 1
xor eax, eax
jmp 0x100073e6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
lea eax, [ebp - 0x21c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x20019
mov dword [esp + 8], 0
mov dword [esp + 4], str.SOFTWAREMicrosoftDirectPlay8Service_Providers
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
sub esp, 0x14
cmp eax, 2
je 0x10007081
mov eax, dword [ebp - 0x21c]
lea esi, [ebp - 0x214]
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], esi
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegEnumKeyW]
mov dword [esp + 4], 0
mov dword [ebp - 0x224], eax
call eax
sub esp, 0x10
test eax, eax
jne 0x100073fc
mov ecx, dword [sym.imp.advapi32.dll_RegGetValueW]
lea eax, [ebp - 0x218]
mov dword [ebp + 0xc], ebx
xor edi, edi
mov dword [ebp - 0x228], 0
mov ebx, eax
mov dword [ebp - 0x220], ecx
lea esi, [esi]
mov eax, dword [ebp - 0x21c]
mov dword [esp + 0x18], ebx
mov dword [ebp - 0x218], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], str.Friendly_Name
mov dword [esp + 4], esi
call eax
sub esp, 0x1c
test eax, eax
jne 0x1000721e
mov ecx, dword [ebp - 0x228]
mov eax, dword [ebp - 0x218]
lea eax, [ecx + eax + 0x20]
mov dword [ebp - 0x228], eax
mov eax, dword [ebp + 0x14]
add dword [eax], 1
mov eax, dword [ebp - 0x21c]
add edi, 1
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], esi
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 4], edi
call eax
sub esp, 0x10
test eax, eax
je 0x100071b8
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x228]
cmp ecx, dword [edi]
ja 0x1000741d
mov edi, dword [ebp + 0x14]
mov edx, dword [edi]
mov dword [esp], eax
mov dword [esp + 0xc], 0x104
mov eax, dword [ebp - 0x224]
shl edx, 5
mov dword [esp + 8], esi
mov dword [ebp - 0x230], edx
mov dword [esp + 4], 0
call eax
mov dword [ebp - 0x228], eax
sub esp, 0x10
test eax, eax
jne 0x100073e0
mov ecx, dword [sym.imp.advapi32.dll_RegGetValueW]
mov dword [ebp + 0xc], ebx
xor edi, edi
lea eax, [ebp - 0x218]
mov dword [ebp - 0x22c], 0
mov ebx, eax
mov dword [ebp - 0x220], ecx
jmp 0x100072ff
mov eax, dword [ebp - 0x21c]
add edi, 1
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], esi
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 4], edi
call eax
sub esp, 0x10
test eax, eax
jne 0x100073e0
mov eax, dword [ebp - 0x21c]
mov dword [esp + 0x18], ebx
mov dword [ebp - 0x218], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], str.Friendly_Name
mov dword [esp + 4], esi
call eax
sub esp, 0x1c
test eax, eax
jne 0x100072d0
mov eax, dword [ebp - 0x22c]
mov edx, dword [0x1000e5b0]
mov ecx, dword [0x1000e5a8]
shl eax, 5
add eax, dword [ebp + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [0x1000e5b4]
mov dword [eax + 4], ecx
mov ecx, dword [0x1000e5ac]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x230]
add edx, dword [ebp - 0x228]
add edx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0x21c]
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x220]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], str.Friendly_Name
mov dword [esp + 4], esi
mov dword [esp], eax
call edx
mov edx, dword [ebp - 0x218]
add dword [ebp - 0x22c], 1
add dword [ebp - 0x228], edx
sub esp, 0x1c
jmp 0x100072d0
mov eax, dword [ebp - 0x21c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
xor eax, eax
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x21c]
jmp 0x10007267
mov eax, 0x80004003
jmp 0x10007086
mov dword [ebp - 0x228], 0x5a
xor eax, eax
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x228]
sub esp, 4
mov dword [eax], esi
mov eax, 0x80158100
jmp 0x10007086
mov dword [esp + 0xc], str.Application_requested_a_provider_we_dont_handle__yet__n
mov dword [esp + 8], str.enum_services_providers
mov dword [esp + 4], 0x1000b0f0
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_4
jmp 0x10007081