Function at 0x1016d02f
Capabilities:
Set registry value

Disassembly:
sub esp, 0x134
mov eax, dword [0x1023904c]
xor eax, esp
mov dword [esp + 0x130], eax
or dword [esp], 0xffffffff
or dword [esp + 8], 0xffffffff
or dword [esp + 4], 0xffffffff
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x148]
mov ebp, str.TypeLib
push ebp
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.kernel32.dll_lstrcpyA]
mov ebx, 0x1024046c
push ebx
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.kernel32.dll_lstrcatA]
push ebp
mov ebp, dword [sym.imp.kernel32.dll_lstrlenA]
call ebp
mov esi, 0x100
push ebx
sub esi, eax
call ebp
sub esi, eax
push esi
push ebx
call ebp
push str.TypeLib
mov esi, eax
call ebp
lea ecx, [esp + 0x44]
add ecx, eax
add ecx, esi
push ecx
lea eax, [edi + 0x18]
push eax
call fcn.1015692e
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x44]
push eax
push SysReAllocString
call fcn.1015692e
mov esi, eax
test esi, esi
je 0x1016d0d4
mov dword [esp + 0x14], ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x1016d122
movzx eax, word [edi + 0x2e]
push eax
movzx eax, word [edi + 0x2c]
push eax
lea eax, [esp + 0x28]
push 0x1014cbc0
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x1c]
call fcn.1015692e
mov esi, eax
test esi, esi
je 0x1016d16a
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0xffffffff
je 0x1016d12f
push dword [esp + 0x10]
call ebx
cmp dword [esp + 0x18], 0xffffffff
je 0x1016d13c
push dword [esp + 0x18]
call ebx
cmp dword [esp + 0x14], 0xffffffff
je 0x1016d149
push dword [esp + 0x14]
call ebx
push esi
call fcn.100bb880
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10001e57
add esp, 0x134
ret 4
push dword [edi]
call ebp
mov ebp, dword [sym.imp.ADVAPI32.dll_RegSetValueA]
push eax
push dword [edi]
push 1
push 0
push dword [esp + 0x20]
call ebp
mov esi, eax
test esi, esi
jne 0x1016d122
push dword [edi + 8]
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
push dword [edi + 8]
push 1
push str.HelpDir
push dword [esp + 0x20]
call ebp
mov esi, eax
test esi, esi
jne 0x1016d122
movzx eax, word [edi + 0x30]
push eax
lea eax, [esp + 0x44]
push 0x1014dc98
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
lea eax, [esp + 0x44]
push eax
push 1
push str.Flags
push dword [esp + 0x20]
call ebp
mov esi, eax
test esi, esi
jne 0x1016d122
push dword [edi + 0x28]
lea eax, [esp + 0x44]
push 0x1014dc98
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x18]
call fcn.1015692e
mov esi, eax
test esi, esi
je 0x1016d22f
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x1016d122
push dword [edi + 4]
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
push dword [edi + 4]
push 1
push str.win32
push dword [esp + 0x28]
call ebp
mov esi, eax
test esi, esi
jne 0x1016d122
push dword [esp + 0x18]
call ebx
or dword [esp + 0x18], 0xffffffff
mov esi, eax
test esi, esi
jne 0x1016d122
push dword [esp + 0x10]
call ebx
or dword [esp + 0x10], 0xffffffff
mov esi, eax
test esi, esi
jne 0x1016d12f
push dword [esp + 0x14]
call ebx
or dword [esp + 0x14], 0xffffffff
mov esi, eax
test esi, esi
je 0x1016d14f
jmp 0x1016d122