Function at 0x41c610
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x497077
mov eax, dword fs:[0]
push eax
sub esp, 0x214
mov eax, dword [0x4ba110]
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
lea eax, [ebp - 0x1e8]
mov esi, ecx
push eax
mov dword [ebp - 0x1ec], esi
mov dword [ebp - 0x1e8], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, 1
sete cl
cmp dword [ebp - 0x1e4], 6
mov byte [ebp - 0xcc], cl
jne 0x41c87a
cmp dword [ebp - 0x1e0], 2
jl 0x41c87a
push 0x30
xor edx, edx
mov ebx, 7
xor edi, edi
push str.Wow6432NodeMicrosoftWindowsCurrentVersionRun
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], edi
mov word [ebp - 0x2c], dx
call fcn.0040b930
mov dword [ebp - 4], edi
push 8
xor eax, eax
push str.SOFTWARE
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], edi
mov word [ebp - 0x48], ax
call fcn.0040b930
lea ecx, [ebp - 0x48]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x2c]
lea edi, [ebp - 0x220]
mov byte [ebp - 4], 1
call fcn.00410920
cmp dword [ebp - 0x34], 8
jb 0x41c6f0
mov edx, dword [ebp - 0x48]
push edx
call fcn.00473515
add esp, 4
xor edi, edi
xor eax, eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], edi
mov word [ebp - 0x48], ax
mov byte [ebp - 4], 4
cmp dword [ebp - 0x18], 8
jb 0x41c714
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00473515
add esp, 4
push 0xa
xor edx, edx
xor eax, eax
push str.BrowserUid
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], edi
mov word [ebp - 0x2c], dx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x98], edi
mov word [ebp - 0xa8], ax
call fcn.0040b930
mov byte [ebp - 4], 5
mov edx, dword [esi]
mov edx, dword [edx + 0x24]
lea eax, [ebp - 0x64]
push eax
mov ecx, esi
call edx
push eax
lea eax, [ebp - 0x80]
push 0x4a9628
push eax
mov byte [ebp - 4], 6
call fcn.0040cd00
add esp, 0xc
push str.____startup
push eax
lea ecx, [ebp - 0xc4]
push ecx
mov byte [ebp - 4], bl
call fcn.0040ce40
add esp, 0xc
push edi
push 1
push edi
lea edx, [ebp - 0xa8]
push edx
mov edx, eax
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 8
call fcn.00410d90
mov esi, 8
cmp dword [ebp - 0xb0], esi
jb 0x41c7be
mov eax, dword [ebp - 0xc4]
push eax
call fcn.00473515
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xb4], edi
mov word [ebp - 0xc4], cx
cmp dword [ebp - 0x6c], esi
jb 0x41c7e4
mov edx, dword [ebp - 0x80]
push edx
call fcn.00473515
add esp, 4
xor eax, eax
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], edi
mov word [ebp - 0x80], ax
cmp dword [ebp - 0x50], esi
jb 0x41c801
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.00473515
add esp, 4
xor edx, edx
mov byte [ebp - 4], 4
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x54], edi
mov word [ebp - 0x64], dx
cmp dword [ebp - 0x94], esi
jb 0x41c828
mov eax, dword [ebp - 0xa8]
push eax
call fcn.00473515
add esp, 4
cmp byte [ebp - 0x20c], 0
je 0x41c858
mov esi, dword [ebp - 0x208]
cmp esi, dword [ebp - 0x204]
je 0x41c858
nop
lea ecx, [ebp - 0x220]
mov edx, esi
call fcn.00410b80
add esi, 0x40
cmp esi, dword [ebp - 0x204]
jne 0x41c840
mov cl, byte [ebp - 0x20c]
lea esi, [ebp - 0x220]
mov byte [ebp - 0x1ed], cl
call fcn.00410b20
mov esi, dword [ebp - 0x1ec]
jmp 0x41ca46
push 0x24
xor edx, edx
mov ebx, 7
xor edi, edi
push str.MicrosoftWindowsCurrentVersionRun
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], edi
mov word [ebp - 0x48], dx
call fcn.0040b930
mov dword [ebp - 4], 9
push 8
xor eax, eax
push str.Software
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], edi
mov word [ebp - 0x2c], ax
call fcn.0040b930
lea ecx, [ebp - 0x2c]
push ecx
push SysReAllocString
lea ecx, [ebp - 0x48]
lea edi, [ebp - 0x8c]
mov byte [ebp - 4], 0xa
call fcn.00410920
mov edi, 8
cmp dword [ebp - 0x18], edi
jb 0x41c8ef
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00473515
add esp, 4
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x2c], cx
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x34], edi
jb 0x41c914
mov edx, dword [ebp - 0x48]
push edx
call fcn.00473515
add esp, 4
xor eax, eax
xor ecx, ecx
push 0xa
mov word [ebp - 0x48], cx
xor edx, edx
push str.BrowserUid
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x98], eax
mov word [ebp - 0xa8], dx
call fcn.0040b930
mov byte [ebp - 4], 0xe
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
lea ecx, [ebp - 0x64]
push ecx
mov ecx, esi
call edx
push 0
push 1
push 0
lea ecx, [ebp - 0xa8]
push ecx
mov edx, eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xf
call fcn.00410d90
cmp dword [ebp - 0x50], edi
jb 0x41c987
mov edx, dword [ebp - 0x64]
push edx
call fcn.00473515
add esp, 4
mov dword [ebp - 0x50], ebx
xor ebx, ebx
xor eax, eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x54], ebx
mov word [ebp - 0x64], ax
cmp dword [ebp - 0x94], edi
jb 0x41c9b0
mov ecx, dword [ebp - 0xa8]
push ecx
call fcn.00473515
add esp, 4
cmp byte [ebp - 0x78], bl
je 0x41c9d7
mov ebx, dword [ebp - 0x74]
cmp ebx, dword [ebp - 0x70]
je 0x41c9d5
lea ecx, [ecx]
lea ecx, [ebp - 0x8c]
mov edx, ebx
call fcn.00410b80
add ebx, 0x40
cmp ebx, dword [ebp - 0x70]
jne 0x41c9c0
xor ebx, ebx
mov eax, dword [ebp - 0x8c]
mov dl, byte [ebp - 0x78]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 0x1ed], dl
cmp eax, ebx
je 0x41c9fb
push eax
call edi
xor eax, eax
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x88], ebx
cmp ecx, ebx
je 0x41ca36
mov eax, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x70]
push eax
mov eax, ecx
call fcn.00417680
mov ecx, dword [ebp - 0x74]
add esp, 4
push ecx
call fcn.00473515
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x1ec]
add esp, 4
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
cmp eax, ebx
je 0x41ca46
push eax
call edi
cmp byte [ebp - 0x1ed], 0
mov edx, dword [0x4bb674]
mov dword [ebp - 0x1ec], edx
je 0x41cb0f
mov ebx, 0x10
mov dword [ebp - 4], ebx
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
lea ecx, [ebp - 0x64]
push ecx
mov ecx, esi
call edx
mov esi, 8
mov byte [ebp - 4], 0x11
cmp dword [eax + 0x14], esi
jb 0x41ca84
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1ec]
push str.write_HKEY_CURRENT_USERSoftware...Run__n_BrowserUid___s_success_n
push eax
call fcn.004011c0
add esp, 0xc
mov byte [ebp - 4], bl
cmp dword [ebp - 0x50], esi
jb 0x41caad
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.00473515
add esp, 4
push 0x170
push ecx
mov ecx, esp
mov dword [ebp - 0x1f8], esp
push str.CBrowserInstallerImp::SetOnStartUpRun
call fcn.00401ef0
mov byte [ebp - 4], 0x12
mov ecx, dword [0x4bd588]
test ecx, ecx
jne 0x41cbb7
push 0x1c
call fcn.004740ea
add esp, 4
mov dword [ebp - 0x1f4], eax
mov byte [ebp - 4], 0x13
test eax, eax
je 0x41cb04
mov ebx, eax
call fcn.00401c10
mov ebx, 0x10
mov byte [ebp - 4], 0x12
jmp 0x41cbaf
xor eax, eax
mov byte [ebp - 4], 0x12
jmp 0x41cbaf
mov ebx, 0x14
mov dword [ebp - 4], ebx
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
lea ecx, [ebp - 0x64]
push ecx
mov ecx, esi
call edx
mov esi, 8
mov byte [ebp - 4], 0x15
cmp dword [eax + 0x14], esi
jb 0x41cb34
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1ec]
push str.write_HKEY_CURRENT_USERSoftware...Run__n_BrowserUid___s_failed_n
push eax
call fcn.004011c0
add esp, 0xc
mov byte [ebp - 4], bl
cmp dword [ebp - 0x50], esi
jb 0x41cb5d
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.00473515
add esp, 4
push 0x172
push ecx
mov ecx, esp
mov dword [ebp - 0x1f4], esp
push str.CBrowserInstallerImp::SetOnStartUpRun
call fcn.00401ef0
mov byte [ebp - 4], 0x16
mov ecx, dword [0x4bd588]
test ecx, ecx
jne 0x41cbb7
push 0x1c
call fcn.004740ea
add esp, 4
mov dword [ebp - 0x1f8], eax
mov byte [ebp - 4], 0x17
test eax, eax
je 0x41cba9
mov ebx, eax
call fcn.00401c10
mov ebx, 0x14
jmp 0x41cbab
xor eax, eax
mov byte [ebp - 4], 0x16
mov ecx, eax
mov dword [0x4bd588], ecx
lea edx, [ebp - 0x1ec]
push edx
mov byte [ebp - 4], bl
call fcn.00401d00
mov eax, dword [ebp - 0x1ec]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x4bb670]
je 0x41cbee
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41cbee
push esi
call fcn.00473f58
add esp, 4
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.0047421a
mov esp, ebp
pop ebp
ret