Function at 0x4179f0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x4ae214]
mov edx, dword [eax + 0xc]
push ebx
push esi
push edi
xor edi, edi
mov ecx, 0x4ae214
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], edi
call edx
add eax, 0x10
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
push eax
call fcn.004180a0
test eax, eax
js 0x417a4d
mov ecx, dword [ebp - 8]
push ecx
lea ecx, [ebp - 0xc]
call fcn.00405690
push eax
lea ecx, [ebp - 0x10]
call fcn.00406470
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x417a82
lea ecx, [ebp - 8]
push ecx
call fcn.00417e00
test eax, eax
js 0x417a8e
mov edx, dword [ebp - 8]
push edx
lea ecx, [ebp - 0xc]
call fcn.00405690
push eax
lea ecx, [ebp - 0x10]
call fcn.00406470
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417a8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 8]
push ecx
lea ecx, [ebp - 4]
call fcn.00405690
mov eax, dword [ebp - 4]
mov esi, dword [eax - 0xc]
cmp esi, edi
jge 0x417aae
push 0x80070057
call fcn.0040b800
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or edx, ecx
jge 0x417acb
push esi
lea ecx, [ebp - 4]
call fcn.00406eb0
mov eax, dword [ebp - 4]
lea edx, [esi + 1]
push edx
push eax
call dword [sym.imp.MSVCR100.dll__wcslwr_s]
mov eax, dword [ebp - 4]
add esp, 8
cmp esi, dword [eax - 8]
jg 0x417aa4
mov dword [eax - 0xc], esi
mov ecx, dword [ebp - 4]
xor eax, eax
lea edx, [ebp - 4]
mov word [ecx + esi*2], ax
push edx
mov ecx, edx
call fcn.00406470
lea ebx, [ebp - 4]
call fcn.00406260
mov ebx, eax
call fcn.004062e0
push eax
lea ecx, [ebp - 4]
call fcn.00406470
mov eax, dword [0x4ae214]
mov edx, dword [eax + 0xc]
xor ebx, ebx
mov ecx, 0x4ae214
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
call edx
mov edi, str.Software_baiduBaiduBrowser
shr edi, 0x10
lea esi, [eax + 0x10]
mov dword [ebp - 0xc], esi
cmp edi, ebx
jne 0x417ba2
mov eax, str.Software_baiduBaiduBrowser
movzx ebx, ax
push 0
push ebx
call fcn.0040b110
add esp, 8
test eax, eax
je 0x417b5d
push ebx
push eax
lea ecx, [ebp - 0xc]
call fcn.00406e10
mov esi, dword [ebp - 0xc]
xor ebx, ebx
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x417b70
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x417b81
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x1c]
push ecx
push 0x2001f
push ebx
push esi
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x417bb6
mov dword [ebp - 0x1c], ebx
xor eax, eax
jmp 0x417bbb
push 0x1b
push str.Software_baiduBaiduBrowser
lea ecx, [ebp - 0xc]
call fcn.004069f0
mov esi, dword [ebp - 0xc]
jmp 0x417b5f
mov eax, 1
cmp eax, ebx
lea eax, [esi - 0x10]
sete bl
lea edx, [eax + 0xc]
or ecx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417bdc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x417cb2
mov edx, dword [0x4ae214]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ae214
call eax
xor ebx, ebx
lea esi, [eax + 0x10]
mov dword [ebp - 0xc], esi
cmp edi, ebx
jne 0x417c22
mov ecx, str.Software_baiduBaiduBrowser
movzx edi, cx
push ebx
push edi
call fcn.0040b110
add esp, 8
cmp eax, ebx
je 0x417c34
push edi
push eax
lea ecx, [ebp - 0xc]
call fcn.00406e10
jmp 0x417c31
push 0x1b
push str.Software_baiduBaiduBrowser
lea ecx, [ebp - 0xc]
call fcn.004069f0
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x417c45
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x417c56
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 0x1c]
push eax
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push esi
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x417c7e
mov dword [ebp - 0x1c], ebx
xor eax, eax
jmp 0x417c83
mov eax, 1
cmp eax, ebx
lea eax, [esi - 0x10]
sete bl
lea ecx, [eax + 0xc]
or edx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417ca4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x417cb2
mov edi, 0x80004005
jmp 0x417d5c
mov edx, dword [0x4ae214]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ae214
call eax
mov ecx, str.datamovebrowser
lea esi, [eax + 0x10]
mov dword [ebp - 0xc], esi
test ecx, 0xffff0000
jne 0x417cf5
mov edx, ecx
movzx edi, dx
push 0
push edi
call fcn.0040b110
add esp, 8
test eax, eax
je 0x417d07
push edi
push eax
lea ecx, [ebp - 0xc]
call fcn.00406e10
jmp 0x417d04
push 0xf
push str.datamovebrowser
lea ecx, [ebp - 0xc]
call fcn.004069f0
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax - 0xc]
test edx, edx
jne 0x417d18
xor eax, eax
jmp 0x417d2d
add ecx, ecx
push ecx
push eax
push 1
push 0
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
neg eax
sbb eax, eax
inc eax
test eax, eax
lea eax, [esi - 0x10]
sete bl
lea edx, [eax + 0xc]
or ecx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417d4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x417d59
mov dword [ebp - 0x14], reloc.NETAPI32.dll_NetApiBufferFree
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
xor esi, esi
cmp ecx, esi
je 0x417d71
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x417d87
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp ecx, esi
je 0x417d98
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
cmp eax, esi
je 0x417da6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417dc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, reloc.NETAPI32.dll_NetApiBufferFree
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417de4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret