Function at 0x404050
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x630
mov eax, dword [0x416174]
xor eax, esp
mov dword [esp + 0x62c], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
lea ecx, [esp + 0x10]
push ecx
push str..ctid
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], 0
call fcn.00403980
add esp, 8
test eax, eax
je 0x4040d2
mov esi, dword [esp + 0x10]
cmp esi, 0x103
jle 0x4040a6
mov esi, 0x103
mov dword [esp + 0x10], esi
push esi
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00408cc0
add esp, 0xc
lea eax, [esp + 0x20]
push 0xa
push eax
mov byte [esp + esi + 0x28], 0
call fcn.00404c10
add esp, 8
test eax, eax
je 0x4040d9
mov byte [eax], 0
jmp 0x4040d9
or dword [0x417b54], 8
mov edi, 1
cmp dword [ebp + 8], edi
jle 0x4044d6
mov ecx, dword [esp + 0x1c]
add ecx, 0xc
mov dword [esp + 0x18], 3
mov dword [esp + 0xc], 2
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + edi*4]
mov ecx, str._search_name
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404130
test dl, dl
je 0x40412c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404130
add eax, 2
add ecx, 2
test dl, dl
jne 0x404110
xor eax, eax
jmp 0x404135
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404168
mov eax, dword [esp + 0xc]
cmp eax, dword [ebp + 8]
jge 0x404168
mov ecx, dword [esp + 0x1c]
mov eax, 1
add dword [esp + 0xc], eax
add dword [esp + 0x18], eax
add edi, eax
mov edx, dword [ecx + edi*4]
add dword [esp + 0x14], 4
mov dword [0x417090], edx
jmp 0x4044b9
mov ecx, str._pair_key
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404190
test dl, dl
je 0x40418c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404190
add eax, 2
add ecx, 2
test dl, dl
jne 0x404170
xor eax, eax
jmp 0x404195
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4041c8
mov eax, dword [esp + 0xc]
cmp eax, dword [ebp + 8]
jge 0x4041c8
mov ecx, dword [esp + 0x1c]
mov eax, 1
add dword [esp + 0xc], eax
add dword [esp + 0x18], eax
add edi, eax
mov edx, dword [ecx + edi*4]
add dword [esp + 0x14], 4
mov dword [0x417b44], edx
jmp 0x4044b9
mov ecx, str._show_start_page
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4041f0
test dl, dl
je 0x4041ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4041f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4041d0
xor eax, eax
jmp 0x4041f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404205
mov byte [0x417b48], 1
jmp 0x4044b9
mov ecx, str._fix404s
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404230
test dl, dl
je 0x40422c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404230
add eax, 2
add ecx, 2
test dl, dl
jne 0x404210
xor eax, eax
jmp 0x404235
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404245
mov byte [0x417b49], 1
jmp 0x4044b9
mov ecx, str._open_thank_you_page
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404270
test dl, dl
je 0x40426c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404270
add eax, 2
add ecx, 2
test dl, dl
jne 0x404250
xor eax, eax
jmp 0x404275
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404285
mov byte [0x417b4b], 1
jmp 0x4044b9
mov ecx, str._open_uninstall_page
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4042b0
test dl, dl
je 0x4042ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4042b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404290
xor eax, eax
jmp 0x4042b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4042c5
mov byte [0x417b4a], 1
jmp 0x4044b9
mov ecx, str._open_welcome
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4042f0
test dl, dl
je 0x4042ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4042f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4042d0
xor eax, eax
jmp 0x4042f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404305
mov byte [0x417b4b], 1
jmp 0x4044b9
mov ecx, str._open_welcome_dialog
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404330
test dl, dl
je 0x40432c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404330
add eax, 2
add ecx, 2
test dl, dl
jne 0x404310
xor eax, eax
jmp 0x404335
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404345
mov byte [0x417b4c], 1
jmp 0x4044b9
mov ecx, str._set_default_search
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404370
test dl, dl
je 0x40436c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404370
add eax, 2
add ecx, 2
test dl, dl
jne 0x404350
xor eax, eax
jmp 0x404375
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404385
mov byte [0x417b4d], 1
jmp 0x4044b9
mov ecx, str._launch_app
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4043b0
test dl, dl
je 0x4043ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4043b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404390
xor eax, eax
jmp 0x4043b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4043f2
mov eax, dword [ebp + 8]
cmp dword [esp + 0x18], eax
jge 0x4043f2
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + edi*4 + 4]
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
push edx
call fcn.00403f80
mov eax, 2
add dword [esp + 0x10], eax
add dword [esp + 0x1c], eax
add esp, 4
add edi, eax
add dword [esp + 0x14], 8
jmp 0x4044b9
mov ecx, 0x41480c
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404420
test dl, dl
je 0x40441c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404420
add eax, 2
add ecx, 2
test dl, dl
jne 0x404400
xor eax, eax
jmp 0x404425
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404435
mov byte [0x417b4e], 1
jmp 0x4044b9
mov ecx, 0x414810
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404460
test dl, dl
je 0x40445c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404460
add eax, 2
add ecx, 2
test dl, dl
jne 0x404440
xor eax, eax
jmp 0x404465
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404472
mov byte [0x417b4f], 1
jmp 0x4044b9
mov ecx, str._chrome
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4044a0
test dl, dl
je 0x40449c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4044a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404480
xor eax, eax
jmp 0x4044a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4044b2
mov byte [0x417b50], 1
jmp 0x4044b9
or dword [0x417b54], 1
add dword [esp + 0x14], 4
mov eax, 1
add dword [esp + 0xc], eax
add dword [esp + 0x18], eax
add edi, eax
cmp edi, dword [ebp + 8]
jl 0x404102
cmp byte [0x417b4e], 0
je 0x4045d1
lea ecx, [esp + 0x10]
push ecx
push 0x41481c
call fcn.00403980
mov esi, eax
add esp, 8
test esi, esi
je 0x4045ca
cmp dword [0x417b44], 0
je 0x4045b4
push str.SoftwareConduitInstallationGlobalKeys
lea edx, [esp + 0x12c]
push 0x104
push edx
call fcn.00404cce
add esp, 0xc
push 0
lea eax, [esp + 0x20]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea ecx, [esp + 0x144]
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x40455d
or dword [0x417b54], 0x4000
jmp 0x4045b4
mov edx, dword [0x417b44]
push edx
push str._PairingKey_:__s_
lea eax, [esp + 0x238]
push 0x400
push eax
call fcn.00404cce
add esp, 0x10
push eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x234]
push ecx
push 1
push 0
lea edx, [esp + 0x30]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x4045a9
or dword [0x417b54], 0x8000
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x10]
push edx
mov edx, esi
mov ecx, str.ietb
call fcn.00403be0
add esp, 4
jmp 0x4045d1
or dword [0x417b54], 2
cmp byte [0x417b4f], 0
je 0x40460d
lea eax, [esp + 0x10]
push eax
push 0x414868
call fcn.00403980
add esp, 8
test eax, eax
je 0x404606
mov ecx, dword [esp + 0x10]
push ecx
mov edx, eax
mov ecx, 0x41486c
call fcn.00403be0
add esp, 4
jmp 0x40460d
or dword [0x417b54], 4
cmp byte [0x417b50], 0
je 0x404640
lea edx, [esp + 0x10]
push edx
push str..crx
call fcn.00403980
add esp, 8
test eax, eax
je 0x404659
mov ecx, dword [esp + 0x10]
push ecx
mov edx, eax
mov ecx, str.crtb
call fcn.00403be0
add esp, 4
mov eax, dword [0x417b54]
pop edi
pop esi
mov ecx, dword [esp + 0x62c]
xor ecx, esp
call fcn.0040467c
mov esp, ebp
pop ebp
ret
mov eax, dword [0x417b54]
mov ecx, dword [esp + 0x634]
pop edi
or eax, 0x10000
pop esi
xor ecx, esp
mov dword [0x417b54], eax
call fcn.0040467c
mov esp, ebp
pop ebp
ret