Function at 0x10006630
Capabilities:
Set registry value

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x44
mov ebx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
test byte [0x1000c02c], 8
jne 0x100067d8
test ebx, ebx
sete al
test edi, edi
sete cl
or al, cl
jne 0x10006978
test esi, esi
je 0x10006978
mov eax, ebx
call sym._get_root_key
mov dword [ebp - 0x30], eax
test eax, eax
je 0x10006982
movzx eax, word [esi]
cmp ax, 0xa
je 0x100067b0
cmp ax, 8
jne 0x100067bd
mov dword [esp + 4], str.REG_SZ
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_wcscmp]
mov dword [ebp - 0x2c], eax
call eax
test eax, eax
jne 0x10006830
lea esi, [ebp - 0x20]
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantInit]
mov dword [ebp - 0x2c], 1
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp + 0xc], 8
mov dword [esp + 8], 0
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantChangeType]
sub esp, 0x10
mov edi, eax
test eax, eax
je 0x10006890
test edi, edi
jns 0x10006720
test byte [0x1000c02c], 1
jne 0x10006900
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
lea eax, [ebp - 0x18]
mov dword [ebp - 0x38], 4
mov dword [ebp - 0x34], eax
mov eax, ebx
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x28]
call sym._split_reg_path
mov ebx, dword [ebp - 0x24]
mov edi, eax
test eax, eax
js 0x1000677a
mov eax, dword [ebp - 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetKeyValueW]
sub esp, 0x18
test eax, eax
jne 0x100068b0
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantClear]
sub esp, 4
test ebx, ebx
je 0x1000670e
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
cmp dword [esi + 8], 0x80020004
je 0x100066bd
lea esp, [ebp - 0x10]
mov edi, 0x80070057
pop ecx
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
mov eax, esi
call sym._wine_dbgstr_variant_1
mov dword [ebp - 0x30], eax
mov eax, edi
call sym._wine_dbgstr_variant_1
mov dword [ebp - 0x2c], eax
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0_1
mov ecx, dword [ebp - 0x30]
mov dword [esp + 0x18], ecx
mov edx, dword [ebp - 0x2c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], str.__s__s__s__n
mov dword [esp + 8], str.WshShell3_RegWrite
mov dword [esp + 4], 0x1000c02c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x1000665a
mov dword [esp + 4], str.REG_DWORD
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
call eax
test eax, eax
jne 0x100068c8
lea esi, [ebp - 0x20]
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantInit]
mov dword [ebp - 0x2c], 4
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp + 0xc], 3
mov dword [esp + 8], 0
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantChangeType]
mov edi, eax
sub esp, 0x10
test edi, edi
js 0x10006701
jmp 0x10006720
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysStringByteLen]
add eax, 2
sub esp, 4
mov dword [ebp - 0x38], eax
jmp 0x1000672d
movzx edx, ax
or edx, 0x80070000
test eax, eax
cmovg eax, edx
mov edi, eax
jmp 0x1000677a
mov dword [esp + 4], str.REG_EXPAND_SZ
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
call eax
test eax, eax
jne 0x10006940
lea esi, [ebp - 0x20]
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantInit]
mov dword [ebp - 0x2c], 2
sub esp, 4
jmp 0x100066d3
mov dword [esp + 0x14], edi
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], str.failed_to_convert_value__regtype__ld___lx._n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WshShell3_RegWrite
mov dword [esp + 4], 0x1000c02c
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1_1
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
mov dword [esp + 4], str.REG_BINARY
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
call eax
test eax, eax
jne 0x1000698c
lea esi, [ebp - 0x20]
mov dword [esp], esi
call dword [sym.imp.oleaut32.dll_VariantInit]
mov dword [ebp - 0x2c], 3
sub esp, 4
jmp 0x10006861
mov edi, 0x80004003
jmp 0x1000670e
mov edi, 0x80070003
jmp 0x1000670e
test byte [0x1000c02c], 1
jne 0x1000699f
mov edi, 0x80004005
jmp 0x1000670e
mov eax, dword [esi + 8]
call sym._wine_dbgstr_wn.constprop.0_1
mov dword [esp + 0xc], str.unrecognized_value_type__s_n
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 8], str.WshShell3_RegWrite
mov dword [esp + 4], 0x1000c02c
mov dword [esp], eax
call sym._wine_dbg_log.constprop.1_1
jmp 0x10006995