Function at 0x100250d0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1e4
mov ebx, dword [ebp + 8]
mov dword [esp], 0x10056400
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [0x10056418]
sub esp, 4
cmp eax, 0x10056418
je 0x10025180
mov edi, dword [sym.imp.ucrtbase.dll_wcscmp]
lea esi, [eax - 0x18]
jmp 0x1002511d
mov eax, dword [esi + 0x18]
lea esi, [eax - 0x18]
cmp eax, 0x10056418
je 0x10025180
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call edi
test eax, eax
jne 0x10025110
mov esi, dword [esi]
mov dword [esp], 0x10056400
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
test esi, esi
je 0x10025190
mov eax, dword [esi]
lea edx, [ebp - 0x138]
mov dword [esp + 8], 0x1006b208
mov dword [esp + 0xc], edx
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [eax + 0xc]
mov edx, dword [ebp - 0x138]
sub esp, 0x10
test eax, eax
js 0x10025300
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x10056400
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
lea eax, [ebp - 0x1d8]
mov dword [esp + 4], str.ProtocolsFilter
mov esi, dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov dword [esp + 8], eax
mov dword [esp], ParseURLW
call esi
sub esp, 0xc
test eax, eax
jne 0x100252e0
lea eax, [ebp - 0x1d4]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1d8]
mov dword [esp], eax
call esi
mov edi, dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, eax
mov eax, dword [ebp - 0x1d8]
sub esp, 0xc
mov dword [esp], eax
call edi
sub esp, 4
test esi, esi
jne 0x100252f0
lea eax, [ebp - 0x1cc]
lea edx, [ebp - 0x1b8]
mov dword [ebp - 0x1cc], pe_nt_image_headers32
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x1d0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1d4]
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp + 4], str.CLSID
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov esi, eax
mov eax, dword [ebp - 0x1d4]
sub esp, 0x18
mov dword [esp], eax
call edi
sub esp, 4
test esi, esi
jne 0x10025335
cmp dword [ebp - 0x1d0], 1
lea edx, [ebp - 0x1b8]
jne 0x10025335
lea edi, [ebp - 0x1c8]
mov dword [esp], edx
mov dword [esp + 4], edi
call dword [sym.imp.ole32.dll_CLSIDFromString]
sub esp, 8
mov esi, eax
test eax, eax
js 0x1002546b
lea eax, [ebp - 0x138]
mov dword [esp + 0xc], 0x1006b208
mov dword [esp + 0x10], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], edi
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edx, dword [ebp - 0x138]
sub esp, 0x14
test eax, eax
jns 0x10025176
test byte [0x10056428], 4
je 0x100252f0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.CoCreateInstance_failed:__08lx_n
jmp 0x10025315
test byte [0x10056428], 8
jne 0x10025401
lea esi, [esi]
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x10056428], 4
je 0x100252f0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.CreateInstance_failed:__08lx_n
mov dword [esp + 8], str.get_mime_filter
mov dword [esp + 4], 0x10056428
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
xor edx, edx
jmp 0x100252f2
test byte [0x10056428], 4
je 0x100252f0
test ebx, ebx
je 0x100255ff
mov eax, ebx
shr eax, 0x10
je 0x100255db
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x1005f6d7
sub esp, 8
test eax, eax
jne 0x1002545a
cmp word [ebx], 0
je 0x100256d4
mov esi, eax
lea eax, [eax + 1]
cmp word [ebx + esi*2 + 2], 0
jne 0x1002537c
mov eax, 0x224c
lea edi, [ebp - 0x16]
mov word [ebp - 0x138], ax
lea eax, [ebp - 0x136]
jmp 0x100253cd
cmp dx, 9
je 0x100255ca
cmp dx, 0xa
jne 0x10025568
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [esi - 1]
cmp eax, edi
ja 0x1002542c
test esi, esi
jle 0x1002542c
mov esi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x1002554a
jbe 0x100253a0
cmp dx, 0x22
je 0x100255b9
cmp dx, 0x5c
jne 0x1002555b
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x100253c0
mov dword [esp + 0xc], str.Could_not_open_MIME_filters_key_n
mov dword [esp + 8], str.get_mime_filter
mov dword [esp + 4], 0x10056428
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_15
xor edx, edx
jmp 0x10025176
mov byte [eax], 0x22
test edx, edx
jle 0x100256ea
mov esi, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], si
lea eax, [ebp - 0x138]
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.Could_not_get_filter_CLSID_for__s_n
jmp 0x10025315
test byte [0x10056428], 4
je 0x100252f0
test ebx, ebx
je 0x10025736
mov eax, ebx
shr eax, 0x10
je 0x1002571e
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x1005f6d7
test edx, edx
jne 0x10025632
cmp word [ebx], 0
je 0x10025740
mov ecx, edx
lea edx, [edx + 1]
cmp word [ebx + ecx*2 + 2], 0
jne 0x100254b8
mov word [ebp - 0x138], 0x224c
lea eax, [ebp - 0x136]
mov dword [ebp + 8], ebx
jmp 0x10025511
cmp dx, 9
je 0x100256f2
cmp dx, 0xa
jne 0x10025672
mov ebx, 0x6e5c
add eax, 2
mov word [eax - 2], bx
lea edx, [ecx - 1]
test ecx, ecx
jle 0x10025609
lea ecx, [ebp - 0x16]
cmp eax, ecx
ja 0x10025609
mov ecx, edx
add dword [ebp + 8], 2
mov edx, dword [ebp + 8]
movzx edx, word [edx - 2]
cmp dx, 0xd
je 0x10025703
jbe 0x100254d9
cmp dx, 0x22
je 0x100256c3
cmp dx, 0x5c
jne 0x10025665
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x100254f9
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x100253c0
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x100255f5
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefUrlMkSetSessionOption]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefUrlMkSetSessionOption]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefUrlMkSetSessionOption]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefUrlMkSetSessionOption]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x100253c0
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x100253c0
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x100253c0
movzx ebx, bx
mov dword [esp], 0x1005f6e1
mov dword [esp + 4], ebx
call sym._wine_dbg_sprintf_12
mov edx, eax
jmp 0x1002545a
mov byte [eax], dl
add eax, 1
jmp 0x100253c0
mov edx, 0x1005f6d0
jmp 0x1002545a
mov byte [eax], 0x22
test edx, edx
jle 0x10025756
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x138]
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.CLSIDFromString_failed_for__s___lx__n
mov dword [esp + 8], str.get_mime_filter
mov dword [esp + 4], 0x10056428
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
xor edx, edx
jmp 0x100252f2
lea edi, [edx - 0x20]
cmp di, 0x5e
jbe 0x10025714
mov edi, edx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefUrlMkSetSessionOption]
mov edi, edx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefUrlMkSetSessionOption]
mov edi, edx
and edx, 0xf
shr di, 4
movzx edx, byte [edx + str.0123456789abcdefUrlMkSetSessionOption]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefUrlMkSetSessionOption]
mov byte [eax - 1], dl
mov byte [eax - 2], bl
jmp 0x100254f9
mov ebx, 0x225c
add eax, 2
mov word [eax - 2], bx
jmp 0x100254f9
mov word [ebp - 0x138], 0x224c
lea eax, [ebp - 0x136]
mov byte [ebp - 0x136], 0x22
lea edx, [eax + 1]
jmp 0x10025447
mov edi, 0x745c
add eax, 2
mov word [eax - 2], di
jmp 0x100254f9
mov edx, 0x725c
add eax, 2
mov word [eax - 2], dx
jmp 0x100254f9
mov byte [eax], dl
add eax, 1
jmp 0x100254f9
movzx ebx, bx
mov dword [esp], 0x1005f6e1
mov dword [esp + 4], ebx
call sym._wine_dbg_sprintf_12
jmp 0x10025632
mov eax, 0x1005f6d0
jmp 0x10025632
mov word [ebp - 0x138], 0x224c
lea eax, [ebp - 0x136]
mov byte [ebp - 0x136], 0x22
lea edx, [eax + 1]
jmp 0x10025621