Function at 0x4170c4
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x198]
sub esp, 0x218
mov eax, dword [0x4809a0]
xor eax, ebp
mov dword [ebp + 0x194], eax
push ebx
push esi
xor ebx, ebx
push 0x206
lea eax, [ebp - 0x72]
push ebx
push eax
mov word [ebp - 0x74], bx
call fcn.0043b850
add esp, 0xc
cmp dword [edi + 0x18], 8
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
lea esi, [edi + 4]
jb 0x41710f
mov eax, dword [esi]
jmp 0x417111
mov eax, esi
lea ecx, [ebp - 0x78]
push ecx
push 0x20019
push ebx
push eax
mov ebx, SysReAllocString
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
xor ecx, ecx
cmp eax, ecx
mov dword [edi + 0x54], eax
je 0x41729a
cmp dword [edi + 0x18], 8
jb 0x41713f
mov eax, dword [esi]
jmp 0x417141
mov eax, esi
push ecx
lea edx, [ebp - 0x78]
push edx
push ecx
push 0xf003f
push ecx
push ecx
push ecx
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
mov dword [edi + 0x54], eax
jne 0x4172c8
cmp dword [edi + 0x18], 8
jb 0x41716a
mov esi, dword [esi]
push esi
push str.URL:_s_Protocol
lea eax, [ebp - 0x74]
push 0x104
push eax
call fcn.0043c4a7
lea eax, [ebp - 0x74]
push eax
call fcn.00438f78
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
add esp, 0x14
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x74]
push eax
push 1
push 0
mov ebx, 0x464fb4
push ebx
push dword [ebp - 0x78]
call esi
test eax, eax
mov dword [edi + 0x54], eax
jne 0x4172c8
push 4
push 0x464fda
push 1
push eax
push str.URL_Protocol
push dword [ebp - 0x78]
call esi
test eax, eax
mov dword [edi + 0x54], eax
jne 0x4172c8
lea eax, [ebp - 0x80]
push eax
push str.DefaultIcon
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
mov dword [edi + 0x54], eax
jne 0x4172c8
cmp dword [edi + 0x50], 8
jb 0x4171fa
mov eax, dword [edi + 0x3c]
jmp 0x4171fd
lea eax, [edi + 0x3c]
push eax
push 0x468d64
lea eax, [ebp - 0x74]
push 0x104
push eax
call fcn.0043c4a7
lea eax, [ebp - 0x74]
push eax
call fcn.00438f78
add esp, 0x14
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x74]
push eax
push 1
push 0
push ebx
push dword [ebp - 0x80]
call esi
test eax, eax
mov dword [edi + 0x54], eax
jne 0x4172c8
lea eax, [ebp - 0x7c]
push eax
push str.ShellOpencommand
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
mov dword [edi + 0x54], eax
jne 0x4172c8
cmp dword [edi + 0x50], 8
jb 0x41725f
mov eax, dword [edi + 0x3c]
jmp 0x417262
lea eax, [edi + 0x3c]
push eax
push str.__s___url____1_
lea eax, [ebp - 0x74]
push 0x104
push eax
call fcn.0043c4a7
lea eax, [ebp - 0x74]
push eax
call fcn.00438f78
add esp, 0x14
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x74]
push eax
push 1
push 0
push ebx
push dword [ebp - 0x7c]
call esi
mov dword [edi + 0x54], eax
jmp 0x4172c8
or dword [edi + 0x54], 0xffffffff
cmp dword [edi + 0x18], 8
jb 0x4172a6
mov esi, dword [esi]
push esi
push str._s_Key_is_already_present.
lea eax, [ebp - 0x74]
push 0x104
push eax
call fcn.0043c4a7
add esp, 0x10
lea esi, [edi + 0x58]
lea eax, [ebp - 0x74]
call fcn.0040336d
xor ebx, ebx
cmp dword [edi + 0x54], ebx
je 0x4172d6
mov eax, edi
call fcn.00417047
cmp dword [ebp - 0x7c], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x4172e9
push dword [ebp - 0x7c]
call esi
mov dword [ebp - 0x7c], ebx
cmp dword [ebp - 0x80], ebx
je 0x4172f6
push dword [ebp - 0x80]
call esi
mov dword [ebp - 0x80], ebx
cmp dword [ebp - 0x78], ebx
je 0x417300
push dword [ebp - 0x78]
call esi
mov ecx, dword [ebp + 0x194]
mov eax, dword [edi + 0x54]
pop esi
xor ecx, ebp
pop ebx
call fcn.0043879b
add ebp, 0x198
leave
ret