Function at 0x401000
Capabilities:
Check os version
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x180
mov eax, dword [0x46510c]
xor eax, ebp
mov dword [esp + 0x178], eax
lea esi, [esp + 0x60]
push 0x118
push 0
push esi
call fcn.00433e50
add esp, 0xc
mov dword [esi - 4], 0x11c
lea esi, [esp + 0x5c]
push esi
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
test eax, eax
je 0x401064
mov eax, dword [esp + 0x60]
cmp eax, 7
jae 0x401064
cmp eax, 6
jne 0x4011d8
cmp dword [esp + 0x64], 0
je 0x4011d8
xor edi, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
push 0xa
push 0x7d1
push edi
call dword [sym.imp.KERNEL32.DLL_FindResourceW]
test eax, eax
je 0x40117e
mov esi, eax
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LoadResource]
test eax, eax
je 0x4011c6
mov edi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.DLL_SizeofResource]
test eax, eax
je 0x40120d
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.DLL_LockResource]
mov ebx, eax
xorps xmm0, xmm0
lea eax, [esp + 0x40]
movaps xmmword [eax], xmm0
lea eax, [esp + 0x34]
lea edi, [esp + 0x5c]
mov ecx, edi
xor edx, edx
push eax
push ebx
push esi
call fcn.00401859
add esp, 0xc
lea ecx, [esp + 0x40]
mov edx, edi
call fcn.00401d12
mov ecx, edi
call fcn.00401680
lea eax, [esp + 0x40]
cmp dword [eax], 0
jne 0x40115f
lea edi, [esp + 0x5c]
mov dword [edi], 0x122
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
lea ecx, [esp + 0x34]
mov edx, edi
call fcn.004016b2
cmp byte [edi + 0x13], 0
jns 0x40112a
push dword [esp + 0x64]
call fcn.0042fd04
add esp, 4
lea edi, [esp + 0x5c]
xor edx, edx
inc edx
mov ecx, edi
lea eax, [esp + 0x34]
push eax
push ebx
push esi
call fcn.00401859
add esp, 0xc
lea esi, [esp + 0x40]
mov ecx, esi
mov edx, edi
call fcn.00401d12
mov ecx, edi
call fcn.00401680
cmp dword [esi], 0
je 0x40156e
lea ecx, [esp + 0x20]
lea edx, [esp + 0x40]
call fcn.00401d6a
lea ecx, [esp + 0x40]
call fcn.00401680
mov edi, dword [esp + 0x20]
jmp 0x401250
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea esi, [esp + 0x5c]
mov dword [esi], 0x10b
mov dword [esi + 4], eax
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
lea ecx, [esp + 0x34]
mov edx, esi
call fcn.004016b2
cmp byte [esi + 0x13], 0
jns 0x4011b7
push dword [esp + 0x64]
call fcn.0042fd04
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
xor edi, edi
jmp 0x401250
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea esi, [esp + 0x5c]
mov dword [esi], 0x111
jmp 0x40121d
mov dword [esp + 0x5c], 8
mov dword [esp + 0x60], 0x4000
push esi
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
xor eax, eax
push eax
push str.Opera_installer_67.0.3536.0.0
push str.This_Opera_installer_works_only_on_Windows_7_or_higher._r_nVisit_____www.opera.com_____to_download_compatible_version.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 3
jmp 0x401556
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea esi, [esp + 0x5c]
mov dword [esi], 0x117
mov dword [esi + 4], eax
xor edi, edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
lea ecx, [esp + 0x34]
mov edx, esi
call fcn.004016b2
cmp byte [esi + 0x13], 0
jns 0x401248
push dword [esp + 0x64]
call fcn.0042fd04
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
push 0x4552f8
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
test eax, eax
je 0x401269
call eax
mov esi, eax
jmp 0x40150e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea esi, [esp + 0x5c]
mov dword [esi], 0xb4
mov dword [esi + 4], eax
xor eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
lea ecx, [esp + 0x34]
mov edx, esi
call fcn.004016b2
cmp byte [esi + 0x13], 0
jns 0x4012a4
push dword [esp + 0x64]
call fcn.0042fd04
add esp, 4
push 0x70
call fcn.0042fcd4
add esp, 4
mov esi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], 0x80000038
mov dword [esp + 0x44], 0x30
push 0x60
push str.Fatal_error_upon_loading_installer_executable:_r_n
push eax
call fcn.00433350
add esp, 0xc
mov word [esi + 0x60], 0
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp], eax
cmp ebx, eax
je 0x4014ce
add ebx, 8
push 0xa
push 0xb
lea eax, [esp + 0x64]
mov esi, eax
push eax
mov dword [esp + 0x10], ebx
push dword [ebx - 8]
call fcn.0043f1b9
add esp, 0x10
lea ecx, [esp + 0x40]
push str.In_line
call fcn.0041843e
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
push esi
call fcn.004440a1
add esp, 4
cmp eax, 0x7ffffff0
jae 0x4015b0
mov ebx, eax
cmp eax, 5
jae 0x40134f
mov byte [esp + 0x13], bl
test ebx, ebx
lea esi, [esp + 8]
jne 0x40137b
jmp 0x40138e
lea edi, [ebx + 8]
and edi, 0xfffffff8
js 0x4015b9
lea eax, [edi + edi]
push eax
call fcn.0042fcd4
add esp, 4
mov esi, eax
mov dword [esp + 8], eax
or edi, 0x80000000
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov eax, ebx
add eax, ebx
push eax
lea eax, [esp + 0x60]
push eax
push esi
call fcn.00433350
add esp, 0xc
mov word [esi + ebx*2], 0
lea ecx, [esp + 8]
push 0x4551bc
call fcn.0041843e
mov ecx, dword [eax + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov ebx, 0
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
movzx eax, byte [esp + 0x1f]
test al, al
cmovs eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
cmovns edx, ecx
lea ecx, [esp + 0x40]
push eax
push edx
call fcn.0041827e
cmp byte [esp + 0x1f], bl
jns 0x4013f7
push dword [esp + 0x14]
call fcn.0042fd04
add esp, 4
mov ebx, dword [esp + 4]
lea esi, [ebx - 8]
cmp byte [esp + 0x13], 0
jns 0x401411
push dword [esp + 8]
call fcn.0042fd04
add esp, 4
push dword [esi + 4]
lea eax, [esp + 0x18]
mov edi, eax
push eax
call fcn.00419040
add esp, 8
movzx eax, byte [esp + 0x1f]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add ecx, edx
test al, al
lea eax, [esp + eax + 0x14]
cmovs eax, ecx
cmovns edx, edi
lea ecx, [esp + 0x40]
push eax
push edx
call fcn.00402234
movzx eax, byte [esi + 0x13]
test al, al
jns 0x401454
mov eax, dword [ebx + 4]
test eax, eax
je 0x40149b
push ebx
push 0x4551bc
lea edi, [esp + 0x10]
push edi
call 0x4015be
add esp, 0xc
movzx eax, byte [esp + 0x13]
test al, al
jns 0x40147c
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 8]
lea ecx, [esp + 0x40]
push eax
push edi
call fcn.0041827e
xor eax, eax
cmp byte [esp + 0x13], al
jns 0x40149b
push dword [esp + 8]
call fcn.0042fd04
add esp, 4
lea ecx, [esp + 0x40]
push 0x4551c0
call fcn.0041843e
cmp byte [esp + 0x1f], 0
jns 0x4014bc
push dword [esp + 0x14]
call fcn.0042fd04
add esp, 4
mov eax, 0x14
add ebx, eax
add esi, eax
cmp esi, dword [esp]
jne 0x4012f0
lea esi, [esp + 0x40]
mov ecx, esi
push str._r_n_r_nWhen_reporting_this_error__click_on_this_text_and_press_CtrlC_to_copy_it.
call fcn.0041843e
xor ebx, ebx
cmp byte [esi + 0xb], bl
jns 0x4014e9
mov esi, dword [esp + 0x40]
push ebx
push str.Opera_installer_67.0.3536.0.0
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [esp + 0x4b], bl
jns 0x401509
push dword [esp + 0x40]
call fcn.0042fd04
add esp, 4
mov esi, 2
lea ecx, [esp + 0x20]
call fcn.00401680
mov edi, dword [esp + 0x34]
test edi, edi
je 0x401556
mov eax, dword [esp + 0x38]
cmp eax, edi
je 0x401547
lea ebx, [eax - 0x14]
cmp byte [eax - 1], 0
jns 0x40153b
push dword [eax - 0xc]
call fcn.0042fd04
add esp, 4
cmp edi, ebx
mov eax, ebx
jne 0x401527
mov eax, dword [esp + 0x34]
jmp 0x401549
mov eax, edi
mov dword [esp + 0x38], edi
push eax
call fcn.0042fd04
add esp, 4
mov ecx, dword [esp + 0x178]
xor ecx, ebp
call fcn.0042fd3a
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea esi, [esp + 0x5c]
mov dword [esi], 0x126
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
lea ecx, [esp + 0x34]
mov edx, esi
call fcn.004016b2
cmp byte [esi + 0x13], 0
jns 0x4015a3
push dword [esp + 0x64]
call fcn.0042fd04
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
jmp 0x40116c
lea ecx, [esp + 8]
call fcn.00417a30
call fcn.0043f854
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
push dword [ebp + 0xc]
call fcn.004440a1
add esp, 4
mov ebx, eax
movzx eax, byte [esi + 0xb]
test al, al
mov dword [ebp - 0x10], eax
jns 0x4015f2
mov eax, dword [esi + 4]
lea esi, [eax + ebx]
cmp esi, 0x7ffffff0
jae 0x401673
cmp esi, 4
mov dword [ebp - 0x14], eax
ja 0x40160f
mov esi, dword [ebp + 8]
mov byte [esi + 0xb], bl
mov edi, esi
jmp 0x401638
add esi, 8
and esi, 0xfffffff8
js 0x40167b
lea eax, [esi + esi]
push eax
call fcn.0042fcd4
add esp, 4
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax], edi
or esi, 0x80000000
mov dword [eax + 8], esi
mov esi, eax
mov dword [eax + 4], ebx
test ebx, ebx
je 0x40164d
mov eax, ebx
add eax, ebx
push eax
push dword [ebp + 0xc]
push edi
call fcn.00433350
add esp, 0xc
cmp byte [ebp - 0x10], 0
mov word [edi + ebx*2], 0
mov eax, dword [ebp + 0x10]
jns 0x40165e
mov eax, dword [eax]
mov ecx, esi
push dword [ebp - 0x14]
push eax
call fcn.0041827e
mov eax, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
call fcn.00417a30
call fcn.0043f854