Function at 0x41a390
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bf95d
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
mov eax, dword [0x515e20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x511108], 0
jne 0x41a3d1
mov al, byte [0x517b44]
jmp 0x41a83c
push str.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0000000
lea ecx, [ebp - 0x1b4]
mov byte [0x511108], 0
call fcn.00401c40
push str.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
lea ecx, [ebp - 0x1bc]
mov dword [ebp - 4], 0
call fcn.00401c40
mov eax, dword [ebp - 0x1b4]
mov byte [ebp - 4], 1
mov ecx, dword [eax - 0xc]
mov eax, dword [ebp - 0x1bc]
sub ecx, dword [eax - 0xc]
lea eax, [ebp - 0x1a0]
push ecx
push eax
lea ecx, [ebp - 0x1b4]
call fcn.004078a0
mov esi, dword [ebp - 0x1a0]
or ebx, 0xffffffff
mov ecx, dword [esi - 0xc]
mov byte [ebp - 4], 2
test ecx, ecx
je 0x41a4fb
js 0x41a6ce
cmp word [esi], 0x30
jne 0x41a4fb
lea eax, [ecx - 1]
push eax
lea eax, [ebp - 0x1a8]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.004078a0
mov ecx, dword [eax]
lea edi, [esi - 0x10]
lea edx, [ecx - 0x10]
mov byte [ebp - 4], 3
cmp edx, edi
je 0x41a4cd
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x41a4b8
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x41a4b8
push edx
call fcn.00404f90
add esp, 4
mov dword [ebp - 0x1a4], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41a4ad
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x1a4]
lea esi, [eax + 0x10]
mov dword [ebp - 0x1a0], esi
jmp 0x41a4cd
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x1a0]
call fcn.00408ed0
mov esi, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x1a8]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a4f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi - 0xc]
test ecx, ecx
jne 0x41a440
mov eax, dword [0x517ca0]
test eax, eax
je 0x41a50b
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.SoftwareBrowserExten
lea ecx, [ebp - 0x1ac]
call fcn.00401c40
push str.sionsProxySettings_
push eax
lea eax, [ebp - 0x1a4]
push eax
mov byte [ebp - 4], 4
call fcn.00402ae0
lea ecx, [ebp - 0x1a0]
push ecx
push eax
lea eax, [ebp - 0x1a8]
push eax
mov byte [ebp - 4], 5
call fcn.00402a20
add esp, 0x18
push 0x517ca0
push 0x20019
push 0
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edx, dword [ebp - 0x1a8]
test eax, eax
setne byte [ebp - 0x199]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a58d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1a4]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a5b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1ac]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a5d3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x199], 0
je 0x41a6d8
mov ecx, dword [0x517280]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov edi, 0x12
idiv edi
cmp edx, 4
jne 0x41a7b3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x1ac], eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1a8], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebp - 0x1c4], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1d0], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1b0], eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1a4], 0
lea edi, [ebp - 0x197]
xor eax, eax
mov edx, dword [0x517280]
mov cl, dl
sub cl, al
mov ebx, 1
mov esi, 8
lea ebx, [ebx]
add edi, 7
inc ebx
dec esi
jne 0x41a6a0
mov eax, dword [ebp - 0x1a4]
inc eax
mov dword [ebp - 0x1a4], eax
cmp eax, 7
jl 0x41a686
mov esi, dword [ebp - 0x1a0]
or ebx, 0xffffffff
mov byte [ebp - 0x199], 0
jmp 0x41a7d2
push 0x80070057
call fcn.00403080
push str.UseLoc
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x1cc], 4
call fcn.00401c40
push str.alSettings
push eax
lea eax, [ebp - 0x1b8]
push eax
mov byte [ebp - 4], 6
call fcn.00402ae0
add esp, 0xc
lea ecx, [ebp - 0x1cc]
push ecx
lea ecx, [ebp - 0x1c0]
push ecx
lea ecx, [ebp - 0x1c8]
push ecx
push 0
push dword [eax]
push dword [0x517ca0]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [ebp - 0x1b8]
test eax, eax
setne byte [ebp - 0x199]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a76c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1b0]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a78f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x199], 0
je 0x41a7bc
call fcn.0041f210
test al, al
jne 0x41a7b3
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
mov byte [ebp - 0x199], 0
jmp 0x41a7d2
cmp dword [ebp - 0x1c0], 0
setne dl
mov byte [ebp - 0x199], dl
mov byte [0x517b44], dl
add esi, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a7ef
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41a812
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x1b4]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x41a836
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x199]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049e294
mov esp, ebp
pop ebp
ret