Function at 0x40b085
Capabilities:
Check os version
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x212c
call fcn.0040cdd0
push ebx
push esi
push edi
xor esi, esi
mov ecx, 0x7ff
xor eax, eax
lea edi, [ebp - 0x212a]
mov word [ebp - 0x212c], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x46
xor eax, eax
pop ecx
lea edi, [ebp - 0x128]
mov dword [ebp - 0x12c], 0x11c
mov dword [ebp - 4], esi
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x10], 0xfff
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x40b372
cmp dword [ebp - 0x128], 6
jb 0x40b278
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 8]
push eax
push 1
push esi
push str.SoftwareMicrosoftWindowsShellAssociationsUrlAssociationshttpUserChoice
push 0x80000001
mov dword [ebp - 8], esi
call edi
cmp eax, esi
jne 0x40b372
lea ecx, [ebp - 4]
call fcn.0040b680
mov ecx, dword [ebp - 8]
cmp eax, esi
mov dword [ebp - 4], ecx
jne 0x40b372
lea eax, [ebp - 0x10]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push eax
lea eax, [ebp - 0x212c]
push eax
lea eax, [ebp - 8]
push eax
push esi
push str.Progid
push ecx
mov dword [ebp - 8], esi
call ebx
test eax, eax
jne 0x40b372
cmp dword [ebp - 4], esi
je 0x40b166
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], esi
mov eax, dword [0x4162cc]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x212c]
push eax
lea eax, [ebp - 0xc]
push str._s_shellopencommand
push eax
call fcn.00403493
add esp, 0xc
lea eax, [ebp - 8]
mov dword [ebp - 8], esi
push eax
push 1
push esi
push dword [ebp - 0xc]
push 0x80000000
call edi
cmp eax, esi
jne 0x40b1e9
lea ecx, [ebp - 4]
call fcn.0040b680
mov ecx, dword [ebp - 8]
cmp eax, esi
mov dword [ebp - 4], ecx
jne 0x40b1e9
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xfff
push eax
lea eax, [ebp - 0x212c]
push eax
lea eax, [ebp - 8]
push eax
push esi
push esi
push ecx
mov dword [ebp - 8], esi
call ebx
test eax, eax
jne 0x40b1e9
lea eax, [ebp - 0x212c]
push 0x5c
push eax
call dword [sym.imp.MSVCRT.dll_wcsrchr]
mov ebx, eax
pop ecx
cmp ebx, esi
pop ecx
jne 0x40b1f1
lea ecx, [ebp - 0xc]
jmp 0x40b36d
mov edi, dword [sym.imp.MSVCRT.dll_wcschr]
inc ebx
inc ebx
push 0x22
push ebx
mov dword [ebp - 8], ebx
call edi
pop ecx
cmp eax, esi
pop ecx
jne 0x40b212
push 0x20
push ebx
call edi
pop ecx
cmp eax, esi
pop ecx
je 0x40b215
mov word [eax], si
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x212c]
test eax, eax
jne 0x40b229
xor eax, eax
jmp 0x40b232
lea eax, [ebp - 0x212c]
push eax
call ebx
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x212c]
push ecx
push eax
mov ecx, edi
call fcn.004039b5
mov eax, dword [edi]
cmp word [eax], 0x22
jne 0x40b256
push 1
push esi
mov ecx, edi
call fcn.0040b804
cmp dword [ebp - 8], esi
jne 0x40b25f
xor eax, eax
jmp 0x40b264
push dword [ebp - 8]
call ebx
push dword [ebp - 8]
mov ecx, dword [ebp + 8]
push eax
call fcn.004039b5
lea ecx, [ebp - 0xc]
jmp 0x40b404
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 8]
push eax
push 1
push esi
mov ebx, 0x80000000
push str..htm
push ebx
mov dword [ebp - 8], esi
call edi
cmp eax, esi
jne 0x40b372
lea ecx, [ebp - 4]
call fcn.0040b680
mov ecx, dword [ebp - 8]
cmp eax, esi
mov dword [ebp - 4], ecx
jne 0x40b372
lea eax, [ebp - 0x10]
mov dword [ebp - 8], esi
push eax
lea eax, [ebp - 0x212c]
push eax
lea eax, [ebp - 8]
push eax
push esi
push esi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40b372
cmp dword [ebp - 4], esi
je 0x40b2e7
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], esi
mov eax, dword [0x4162cc]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x212c]
push eax
lea eax, [ebp - 0xc]
push str._s_shellopencommand
push eax
call fcn.00403493
add esp, 0xc
lea eax, [ebp - 8]
mov dword [ebp - 8], esi
push eax
push 1
push esi
push dword [ebp - 0xc]
push ebx
call edi
cmp eax, esi
jne 0x40b36a
lea ecx, [ebp - 4]
call fcn.0040b680
mov ecx, dword [ebp - 8]
cmp eax, esi
mov dword [ebp - 4], ecx
jne 0x40b36a
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xfff
push eax
lea eax, [ebp - 0x212c]
push eax
lea eax, [ebp - 8]
push eax
push esi
push esi
push ecx
mov dword [ebp - 8], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40b36a
lea eax, [ebp - 0x212c]
push 0x5c
push eax
call dword [sym.imp.MSVCRT.dll_wcsrchr]
mov ebx, eax
pop ecx
cmp ebx, esi
pop ecx
jne 0x40b382
lea ecx, [ebp - 0xc]
call fcn.00403948
lea ecx, [ebp - 4]
call fcn.0040b680
or eax, 0xffffffff
jmp 0x40b413
mov edi, dword [sym.imp.MSVCRT.dll_wcschr]
inc ebx
inc ebx
push 0x22
push ebx
mov dword [ebp - 8], ebx
call edi
pop ecx
cmp eax, esi
pop ecx
jne 0x40b3a3
push 0x20
push ebx
call edi
pop ecx
cmp eax, esi
pop ecx
je 0x40b3a6
mov word [eax], si
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x212c]
test eax, eax
jne 0x40b3ba
xor eax, eax
jmp 0x40b3c3
lea eax, [ebp - 0x212c]
push eax
call ebx
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x212c]
push ecx
push eax
mov ecx, edi
call fcn.004039b5
mov eax, dword [edi]
cmp word [eax], 0x22
jne 0x40b3e7
push 1
push esi
mov ecx, edi
call fcn.0040b804
cmp dword [ebp - 8], esi
jne 0x40b3f0
xor eax, eax
jmp 0x40b3f5
push dword [ebp - 8]
call ebx
push dword [ebp - 8]
mov ecx, dword [ebp + 8]
push eax
call fcn.004039b5
lea ecx, [ebp - 0xc]
call fcn.00403948
lea ecx, [ebp - 4]
call fcn.0040b680
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret