Function at 0x401450
Capabilities:
Check if process is running under wine
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x37c]
lea edi, [ebp - 0x370]
push ebx
sub esp, 0x3ac
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x40868c
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov dword [esp], 0x40865c
call sub.ole32.dll_CoCreateInstance
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0x17f
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x37c]
mov ecx, 2
mov word [ebp - 0x370], cx
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x184
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x185
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 2
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], str.HKEY_broken_key
call sub.oleaut32.dll_SysAllocString
mov ebx, eax
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x189
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov esi, 2
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x37c]
mov word [ebp - 0x370], si
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x18c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80070003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x18d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 2
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], ebx
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], str.HKEY_CURRENT_USERa
call sub.oleaut32.dll_SysAllocString
mov ebx, eax
mov eax, 2
sub esp, 4
mov word [ebp - 0x370], ax
mov eax, dword [ebp - 0x37c]
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x193
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80070003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x194
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 2
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], ebx
call sub.oleaut32.dll_SysFreeString
lea eax, [ebp - 0x374]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], str.SoftwareWineTest
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegCreateKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x198
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 0x14], 7
mov dword [esp + 0x10], 0x408195
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x19b
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 0x14], 9
mov dword [esp + 0x10], 0x4081a2
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4081ab
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x19e
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 0x14], 9
mov dword [esp + 0x10], 0x4081b2
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4081bb
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x1a1
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
lea ebx, [ebp - 0x380]
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 4
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4081c6
mov dword [esp], eax
mov dword [ebp - 0x380], 0xa
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1a5
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 4
mov dword [esp + 0xc], 3
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4081cf
mov dword [esp], eax
mov dword [ebp - 0x380], 0xb
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x1a9
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got__d_n
lea ebx, [ebp - 0x220]
mov dword [esp], eax
call fcn.00405bb0
xor eax, eax
mov edx, 0x48
jmp 0x401997
movzx edx, word [eax + str.HKEY_CURRENT_USERSoftwareWineTest_]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x401990
cmp word [ebp - 0x220], 0
mov edx, ebx
je 0x4019b9
nop
add edx, 2
cmp word [edx], 0
jne 0x4019b0
xor eax, eax
mov ecx, 0x72
jmp 0x4019c9
movzx ecx, word [eax + str.regsz]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4019c2
mov dword [esp], ebx
lea esi, [ebp - 0x370]
call sub.oleaut32.dll_SysAllocString
sub esp, 4
mov edi, eax
mov dword [ebp - 0x394], eax
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantInit
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x1b1
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1b2
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 8
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1b3
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov esi, dword [ebp - 0x368]
test esi, esi
je 0x403200
mov eax, esi
shr eax, 0x10
je 0x403180
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4031d0
cmp word [esi], 0
je 0x401adb
add eax, 1
cmp word [esi + eax*2], 0
jne 0x401ad1
mov edx, 0x224c
mov word [ebp - 0x34c], dx
lea edx, [ebp - 0x34a]
jmp 0x401b16
cmp ax, 9
je 0x401be0
cmp ax, 0xa
jne 0x401b80
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, dword [ebp - 0x38c]
lea edi, [eax - 1]
mov dword [ebp - 0x38c], edi
test eax, eax
jle 0x401bf1
lea eax, [ebp - 0x22a]
cmp edx, eax
ja 0x401bf1
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x401b60
jbe 0x401af0
cmp ax, 0x22
je 0x401b70
cmp ax, 0x5c
jne 0x401b80
mov edi, 0x5c5c
add edx, 2
mov word [edx - 2], di
jmp 0x401b10
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
jmp 0x401b10
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
jmp 0x401b10
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4031c0
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ecx, byte [edi + str.0123456789abcdefe]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], cl
movzx ecx, byte [edi + str.0123456789abcdefe]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefe]
and edi, 0xf
mov byte [edx - 3], cl
movzx ecx, byte [edi + str.0123456789abcdefe]
mov byte [edx - 1], al
mov byte [edx - 2], cl
jmp 0x401b10
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
jmp 0x401b10
mov ecx, dword [ebp - 0x38c]
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x401c11
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x34c]
mov dword [esp], eax
mov dword [ebp - 0x390], eax
call fcn.00406700
mov esi, dword [ebp - 0x368]
mov edi, eax
mov eax, dword [sym.imp.kernel32.dll_lstrcmpW]
mov dword [esp + 4], str.foobar
mov dword [esp], esi
mov dword [ebp - 0x398], eax
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], str.got__s_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov edx, 0x1b4
call fcn.00401040
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
mov eax, dword [ebp - 0x394]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
xor eax, eax
mov edx, 0x48
sub esp, 4
jmp 0x401ca9
movzx edx, word [eax + str.HKEY_CURRENT_USERSoftwareWineTest_]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x401ca2
cmp word [ebp - 0x220], 0
mov edx, ebx
je 0x401cca
add edx, 2
cmp word [edx], 0
jne 0x401cc1
xor eax, eax
mov ecx, 0x72
jmp 0x401cda
movzx ecx, word [eax + str.regsz2]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x401cd3
mov dword [esp], ebx
lea edi, [ebp - 0x370]
call sub.oleaut32.dll_SysAllocString
sub esp, 4
mov esi, eax
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantInit
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x1be
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1bf
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 8
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1c0
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x368]
mov dword [esp], eax
call sub.oleaut32.dll_SysStringLen
mov edi, eax
mov eax, dword [ebp - 0x368]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_SysStringLen
sub esp, 4
cmp eax, 6
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], str.len__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov edx, 0x1c1
call fcn.00401040
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
sub esp, 4
mov dword [esp], esi
call sub.oleaut32.dll_SysFreeString
xor eax, eax
mov edx, 0x48
sub esp, 4
jmp 0x401e27
movzx edx, word [eax + str.HKEY_CURRENT_USERSoftwareWineTest_]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x401e20
cmp word [ebp - 0x220], 0
mov edx, ebx
je 0x401e49
nop
add edx, 2
cmp word [edx], 0
jne 0x401e40
xor eax, eax
mov ecx, 0x72
jmp 0x401e59
movzx ecx, word [eax + str.regdword]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x401e52
mov dword [esp], ebx
lea edi, [ebp - 0x370]
call sub.oleaut32.dll_SysAllocString
sub esp, 4
mov esi, eax
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantInit
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x1cb
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1cc
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 3
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1cd
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x368]
mov dword [esp + 4], str.got__d_n
cmp eax, 0xa
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], esi
call sub.oleaut32.dll_SysFreeString
xor eax, eax
mov edx, 0x48
sub esp, 4
jmp 0x401f67
movzx edx, word [eax + str.HKEY_CURRENT_USERSoftwareWineTest_]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x401f60
cmp word [ebp - 0x220], 0
mov edx, ebx
je 0x401f89
nop
add edx, 2
cmp word [edx], 0
jne 0x401f80
xor eax, eax
mov ecx, 0x72
jmp 0x401f99
movzx ecx, word [eax + str.regbinary]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x401f92
mov dword [esp], ebx
lea edi, [ebp - 0x370]
call sub.oleaut32.dll_SysAllocString
sub esp, 4
mov esi, eax
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantInit
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x1d6
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1d7
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got_0x_x_n
cmp dx, 0x200c
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetDim
sub esp, 4
mov edi, eax
mov dword [esp + 4], 0x1d9
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp edi, 1
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got__u_n
lea edi, [ebp - 0x378]
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetLBound
sub esp, 0xc
mov dword [ebp - 0x38c], eax
mov dword [esp + 4], 0x1dc
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x38c]
mov dword [esp + 4], str.got_0x_08x_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1dd
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x378]
mov dword [esp + 4], str.got__u_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetUBound
sub esp, 0xc
mov dword [ebp - 0x38c], eax
mov dword [esp + 4], 0x1e0
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x38c]
mov dword [esp + 4], str.got_0x_08x_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1e1
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x378]
mov dword [esp + 4], str.got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x382]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x368]
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetVartype
sub esp, 8
mov dword [ebp - 0x38c], eax
mov dword [esp + 4], 0x1e4
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x38c]
mov dword [esp + 4], str.got_0x_08x_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1e5
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x382]
mov dword [esp + 4], str.got__d_n
cmp dx, 0xc
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x360]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x378], 0
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetElement
sub esp, 0xc
mov dword [ebp - 0x38c], eax
mov dword [esp + 4], 0x1e9
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x38c]
mov dword [esp + 4], str.got_0x_08x_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1ea
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x360]
mov dword [esp + 4], str.got__d_n
cmp dx, 0x11
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1eb
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, byte [ebp - 0x358]
mov dword [esp + 4], str.got__u_n
cmp dl, 0xb
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x360]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
lea eax, [ebp - 0x370]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
sub esp, 4
mov dword [esp], esi
call sub.oleaut32.dll_SysFreeString
xor eax, eax
mov edx, 0x48
sub esp, 4
jmp 0x402358
movzx edx, word [eax + str.HKEY_CURRENT_USERSoftwareWineTest_]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x402351
cmp word [ebp - 0x220], 0
mov edx, ebx
je 0x402379
add edx, 2
cmp word [edx], 0
jne 0x402370
xor eax, eax
mov ecx, 0x72
jmp 0x402389
movzx ecx, word [eax + str.regmultisz]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402382
mov dword [esp], ebx
call sub.oleaut32.dll_SysAllocString
mov esi, eax
sub esp, 4
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantInit
mov eax, dword [ebp - 0x37c]
lea ecx, [ebp - 0x370]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov dword [ebp - 0x38c], eax
mov dword [esp + 4], 0x1f6
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x38c]
mov dword [esp + 4], str.got_0x_08x_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1f7
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got_0x_x_n
cmp dx, 0x200c
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], esi
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x368]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetDim
sub esp, 4
mov esi, eax
mov dword [esp + 4], 0x1fb
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 1
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__u_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetLBound
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x1fe
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x1ff
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x378]
mov dword [esp + 4], str.got__u_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x368]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetUBound
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x202
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x203
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x378]
mov dword [esp + 4], str.got__u_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x382]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x368]
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetVartype
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x206
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x207
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x382]
mov dword [esp + 4], str.got__d_n
cmp dx, 0xc
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x360]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x378], 0
mov dword [esp], eax
call sub.oleaut32.dll_SafeArrayGetElement
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x20b
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x20c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x360]
mov dword [esp + 4], str.got__d_n
cmp dx, 8
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x20d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov esi, dword [ebp - 0x358]
test esi, esi
je 0x403220
mov eax, esi
shr eax, 0x10
je 0x403160
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4031f0
cmp word [esi], 0
je 0x40271a
lea esi, [esi]
lea esi, [esi]
add eax, 1
cmp word [esi + eax*2], 0
jne 0x402710
mov edx, 0x224c
mov word [ebp - 0x34c], dx
lea edx, [ebp - 0x34a]
jmp 0x402756
cmp ax, 9
je 0x402810
cmp ax, 0xa
jne 0x4027b0
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
lea esi, [esi]
mov eax, dword [ebp - 0x38c]
lea edi, [eax - 1]
mov dword [ebp - 0x38c], edi
lea edi, [ebp - 0x22a]
cmp edx, edi
ja 0x402832
test eax, eax
jle 0x402832
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x4027a2
jbe 0x402730
cmp ax, 0x22
je 0x402821
cmp ax, 0x5c
jne 0x4027b0
mov edi, 0x5c5c
add edx, 2
mov word [edx - 2], di
jmp 0x402750
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
jmp 0x402750
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4031b0
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ecx, byte [edi + str.0123456789abcdefe]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], cl
movzx ecx, byte [edi + str.0123456789abcdefe]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefe]
and edi, 0xf
mov byte [edx - 3], cl
movzx ecx, byte [edi + str.0123456789abcdefe]
mov byte [edx - 1], al
mov byte [edx - 2], cl
jmp 0x402750
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
jmp 0x402750
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
jmp 0x402750
mov ecx, dword [ebp - 0x38c]
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x402852
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
mov eax, dword [ebp - 0x390]
mov dword [esp], eax
call fcn.00406700
mov esi, dword [ebp - 0x358]
mov edi, eax
mov dword [esp], esi
mov eax, dword [ebp - 0x398]
mov dword [esp + 4], 0x40825a
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
lea edi, [ebp - 0x370]
movzx eax, al
mov dword [esp + 4], str.got__s_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x358]
mov edx, 0x20e
call fcn.00401040
lea eax, [ebp - 0x360]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
lea eax, [ebp - 0x370]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
sub esp, 4
mov dword [esp], str.HKEY_CURRENT_USERSoftwareWineTest_regsz1
call sub.oleaut32.dll_SysAllocString
mov esi, eax
mov eax, 2
sub esp, 4
mov word [ebp - 0x370], ax
mov eax, dword [ebp - 0x37c]
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x215
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp edi, 0x80070002
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x216
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x370]
mov dword [esp + 4], str.got__d_n
cmp dx, 2
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
sub esp, 4
mov dword [esp], esi
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x374]
sub esp, 4
call fcn.004010e0
lea eax, [ebp - 0x374]
mov dword [esp + 4], str.SoftwareWineTest
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegCreateKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x21e
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x37c]
mov edx, dword [eax]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x221
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
xor eax, eax
mov edx, 0x48
jmp 0x402a67
movzx edx, word [eax + str.HKEY_CURRENT_USERSoftwareWineTest_]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x402a60
cmp word [ebp - 0x220], 0
mov edx, ebx
je 0x402a89
nop
add edx, 2
cmp word [edx], 0
jne 0x402a80
xor eax, eax
mov ecx, 0x72
jmp 0x402a99
movzx ecx, word [eax + str.regsz]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x402a92
mov dword [esp], ebx
lea edi, [ebp - 0x370]
call sub.oleaut32.dll_SysAllocString
mov ebx, eax
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x228
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantInit
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x22c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80004003
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x37c]
mov edx, dword [eax]
mov dword [esp + 0xc], edi
mov dword [esp + 8], edi
lea edi, [ebp - 0x360]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x22f
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80070057
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, 0xa
mov dword [ebp - 0x358], 0x80020004
mov word [ebp - 0x360], ax
mov eax, dword [ebp - 0x37c]
mov edx, dword [eax]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x370]
mov dword [esp + 8], edi
lea edi, [ebp - 0x360]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x235
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x37c]
mov edx, 3
mov dword [ebp - 0x368], 0xc
mov word [ebp - 0x370], dx
mov edx, dword [eax]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x370]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x23b
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov edi, dword [ebp - 0x390]
mov eax, dword [ebp - 0x374]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
mov dword [ebp - 0x34c], 0
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x23f
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x240
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x34c]
mov dword [esp + 4], str.got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x243
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
lea esi, [ebp - 0x360]
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], str.regsz
mov ecx, 8
mov word [ebp - 0x370], cx
call sub.oleaut32.dll_SysAllocString
mov dword [ebp - 0x368], eax
mov eax, dword [ebp - 0x37c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x370]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x247
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
mov eax, dword [ebp - 0x374]
mov dword [ebp - 0x34c], 0
sub esp, 4
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x24c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x24d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x34c]
mov dword [esp + 4], str.got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x250
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov esi, 4
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x37c]
mov word [ebp - 0x370], si
lea esi, [ebp - 0x360]
mov dword [ebp - 0x368], 0x3f99999a
mov edx, dword [eax]
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x370]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x254
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
lea eax, [ebp - 0x370]
mov dword [esp], eax
call sub.oleaut32.dll_VariantClear
mov eax, dword [ebp - 0x374]
mov dword [ebp - 0x34c], 0
sub esp, 4
mov dword [esp + 0xc], edi
mov edi, 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x259
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x25a
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x34c]
mov dword [esp + 4], str.got__d_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x374]
mov dword [esp + 4], 0x40819c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x25d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got__d_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, 2
mov word [ebp - 0x370], di
lea edi, [ebp - 0x360]
mov word [ebp - 0x360], ax
mov eax, 1
mov word [ebp - 0x358], ax
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x368], 0x3f99999a
mov edx, dword [eax]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x370]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x263
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80070057
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], edi
call sub.oleaut32.dll_VariantClear
sub esp, 4
mov dword [esp], ebx
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x374]
sub esp, 4
call fcn.004010e0
mov eax, dword [ebp - 0x37c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00401000
mov esi, dword [ebp - 0x358]
mov edi, eax
jmp 0x40286b
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00401000
mov esi, dword [ebp - 0x368]
mov edi, eax
lea eax, [ebp - 0x34c]
mov dword [ebp - 0x390], eax
jmp 0x401c30
mov byte [edx], al
add edx, 1
jmp 0x402750
mov byte [edx], al
add edx, 1
jmp 0x401b10
lea eax, [ebp - 0x34c]
mov esi, dword [ebp - 0x368]
mov edi, str._invalid_
mov dword [ebp - 0x390], eax
jmp 0x401c30
mov esi, dword [ebp - 0x358]
mov edi, str._invalid_
jmp 0x40286b
lea eax, [ebp - 0x34c]
mov edi, str._null_
mov dword [ebp - 0x390], eax
jmp 0x401c30
mov edi, str._null_
jmp 0x40286b