Function at 0x401540
Capabilities:
Delete file
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x184
mov eax, dword [0x453010]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x120]
push 0x110
push 0
push eax
call fcn.00409860
add esp, 0xc
mov dword [ebp - 0x12c], 0x11c
sub esp, 0x10
movdqa xmm0, xmmword [0x44cf90]
movdqu xmmword [esp], xmm0
mov esi, dword [sym.imp.KERNEL32.DLL_VerSetConditionMask]
call esi
push 3
push 1
push edx
push eax
call esi
push 3
push 0x20
push edx
push eax
call esi
mov dword [ebp - 0x128], 6
mov dword [ebp - 0x124], 1
mov word [ebp - 0x18], 0
lea esi, [ebp - 0x12c]
push edx
push eax
push 0x23
push esi
call dword [sym.imp.KERNEL32.DLL_VerifyVersionInfoW]
test eax, eax
je 0x4017a2
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
lea ebx, [ebp - 0x16c]
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x170], xmm0
push 0xa
push 0x7d1
push 0
call dword [sym.imp.KERNEL32.DLL_FindResourceW]
test eax, eax
je 0x40165a
mov esi, eax
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LoadResource]
test eax, eax
je 0x401648
mov edi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.DLL_SizeofResource]
test eax, eax
jne 0x401cb6
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x12c], 0x11c
jmp 0x40166a
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x12c], 0x116
jmp 0x40166a
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x12c], 0x110
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x11c], 0
lea ecx, [ebp - 0x160]
lea edx, [ebp - 0x12c]
call fcn.00402200
cmp byte [ebp - 0x119], 0
jns 0x4016b6
push dword [ebp - 0x124]
call fcn.00405d0c
add esp, 4
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x170], xmm0
xor eax, eax
push 0x44d49f
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
test eax, eax
je 0x4017f8
mov ecx, eax
call dword [section..00cfg]
call ecx
mov esi, eax
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x4016f5
push eax
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [ebp - 0x170], 0
cmp byte [ebp - 0x161], 0
js 0x401762
je 0x401746
push ebx
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
cmp byte [ebp - 0x161], 0
jns 0x401746
mov eax, dword [ebp - 0x16c]
mov word [eax], 0
mov dword [ebp - 0x168], 0
cmp byte [ebp - 0x161], 0
jns 0x401746
push dword [ebp - 0x16c]
call fcn.00405d0c
add esp, 4
mov edi, dword [ebp - 0x160]
test edi, edi
je 0x4017e1
mov eax, dword [ebp - 0x15c]
cmp eax, edi
je 0x4017d8
mov ebx, eax
jmp 0x401791
cmp dword [ebp - 0x168], 0
je 0x401738
mov ebx, dword [ebp - 0x16c]
jmp 0x40170a
push dword [eax - 0xc]
call fcn.00405d0c
add esp, 4
mov eax, ebx
cmp ebx, edi
je 0x4017d8
add ebx, 0xffffffec
je 0x4018fc
cmp byte [eax - 1], 0
jns 0x40178b
jmp 0x401780
mov dword [ebp - 0x12c], 8
mov dword [ebp - 0x128], 0x4000
push esi
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
push 0x44cf28
push str.This_Opera_installer_works_only_on_Windows_7_or_higher._r_nVisit_____www.opera.com_____to_download_compatible_version.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 3
jmp 0x4017e1
push edi
call fcn.00405d0c
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00406639
mov eax, esi
add esp, 0x184
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x12c], 0xa9
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x11c], 0
lea ecx, [ebp - 0x160]
lea esi, [ebp - 0x12c]
mov edx, esi
call fcn.00402200
cmp byte [ebp - 0x119], 0
jns 0x401856
push dword [ebp - 0x124]
call fcn.00405d0c
add esp, 4
mov dword [ebp - 0x17c], 0xffffffff
mov dword [ebp - 0x178], 0xffffffff
mov dword [ebp - 0x174], 0xffffffff
lea ecx, [ebp - 0x17c]
push str.Fatal_error_upon_loading_installer_executable:_r_n
call fcn.0042bea0
mov edi, dword [ebp - 0x160]
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x190], eax
cmp edi, eax
je 0x4018a2
add edi, 8
jmp 0x401a4c
lea esi, [ebp - 0x17c]
mov ecx, esi
push 0x4e
push 0x44d118
call fcn.00405770
cmp byte [ebp - 0x171], 0
jns 0x4018c5
mov esi, dword [ebp - 0x17c]
push 0
push 0x44cf28
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [ebp - 0x171], 0
lea ebx, [ebp - 0x16c]
jns 0x4018f2
push dword [ebp - 0x17c]
call fcn.00405d0c
add esp, 4
mov esi, 2
jmp 0x4016e4
push 0x44d2cd
push 0x44d2ee
push 0x44
push 0x44d1ef
push 0x44d22c
call fcn.00444080
mov edx, ecx
and edx, 0x7f
test cl, cl
cmovs edx, eax
add edx, 0xfffffffe
lea ecx, [ebp - 0x188]
lea eax, [ebp - 0x145]
push eax
push edx
push 0
push esi
call fcn.00405330
mov esi, dword [ebp - 0x18c]
cmp byte [ebp - 0x149], 0
jns 0x401970
push dword [ebp - 0x154]
call fcn.00405d0c
add esp, 4
jmp 0x401970
lea ecx, [ebp - 0x188]
push str._Error_cannot_be_retrieved_
call fcn.0042c3b0
movzx eax, byte [ebp - 0x17d]
test al, al
js 0x401990
and eax, 0x7f
lea edx, [ebp - 0x188]
jmp 0x40199c
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x184]
add eax, edx
lea ecx, [ebp - 0x17c]
push eax
push edx
call fcn.00402060
movzx eax, byte [esi + 0x13]
test al, al
jns 0x4019b6
mov eax, dword [edi + 4]
test eax, eax
je 0x401a0b
push edi
push 0x44d10e
push ebx
call fcn.0042bf70
add esp, 0xc
movzx eax, byte [ebp - 0x121]
test al, al
js 0x4019db
and eax, 0x7f
mov edx, ebx
jmp 0x4019e7
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x12c]
lea ecx, [ebp - 0x17c]
push eax
push edx
call fcn.00405770
cmp byte [ebp - 0x121], 0
jns 0x401a0b
push dword [ebp - 0x12c]
call fcn.00405d0c
add esp, 4
lea ecx, [ebp - 0x17c]
push 2
push 0x44d112
call fcn.00405770
cmp byte [ebp - 0x17d], 0
jns 0x401a34
push dword [ebp - 0x188]
call fcn.00405d0c
add esp, 4
add edi, 0x14
add esi, 0x14
cmp esi, dword [ebp - 0x190]
lea esi, [ebp - 0x12c]
je 0x4018a2
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x144], xmm0
mov dword [ebp - 0x132], 0xffffffff
mov dword [ebp - 0x136], 0xffffffff
push 0xa
push 0xb
lea ebx, [ebp - 0x144]
push ebx
push dword [edi - 8]
call fcn.004161cb
add esp, 0x10
lea ecx, [ebp - 0x17c]
push 8
push str.In_line
call fcn.00405770
lea ecx, [ebp - 0x154]
push ebx
call fcn.0042bea0
lea ecx, [ebp - 0x154]
push 1
push 0x44d10e
call fcn.00405770
movq xmm0, qword [eax]
movq qword [ebp - 0x12c], xmm0
mov ecx, dword [eax + 8]
mov dword [ebp - 0x124], ecx
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
movzx eax, byte [ebp - 0x121]
mov edx, eax
and edx, 0x7f
test al, al
cmovs edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmovns eax, esi
lea ecx, [ebp - 0x17c]
push edx
push eax
call fcn.00405770
cmp byte [ebp - 0x121], 0
jns 0x401b1d
push dword [ebp - 0x12c]
call fcn.00405d0c
add esp, 4
cmp byte [ebp - 0x149], 0
jns 0x401b34
push dword [ebp - 0x154]
call fcn.00405d0c
add esp, 4
lea esi, [edi - 8]
mov dword [ebp - 0x188], 0xffffffff
mov dword [ebp - 0x184], 0xffffffff
mov dword [ebp - 0x180], 0xffffffff
mov eax, dword [esi + 4]
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x3c], xmm0
movdqu xmmword [ebp - 0x4c], xmm0
movdqu xmmword [ebp - 0x5c], xmm0
movdqu xmmword [ebp - 0x6c], xmm0
movdqu xmmword [ebp - 0x7c], xmm0
movdqu xmmword [ebp - 0x8c], xmm0
movdqu xmmword [ebp - 0x9c], xmm0
movdqu xmmword [ebp - 0xac], xmm0
movdqu xmmword [ebp - 0xbc], xmm0
movdqu xmmword [ebp - 0xcc], xmm0
movdqu xmmword [ebp - 0xdc], xmm0
movdqu xmmword [ebp - 0xec], xmm0
movdqu xmmword [ebp - 0xfc], xmm0
movdqu xmmword [ebp - 0x10c], xmm0
movdqu xmmword [ebp - 0x11c], xmm0
movdqu xmmword [ebp - 0x12c], xmm0
push 0
push 0x100
lea ebx, [ebp - 0x12c]
push ebx
push 0x409
push eax
push 0
push 0x1200
call dword [sym.imp.KERNEL32.DLL_FormatMessageA]
test eax, eax
je 0x401960
mov dword [ebp - 0x18c], esi
mov dword [ebp - 0x154], 0xffffffff
mov dword [ebp - 0x150], 0xffffffff
mov dword [ebp - 0x14c], 0xffffffff
lea esi, [ebp - 0x154]
mov ecx, esi
push ebx
call fcn.0042c3b0
movzx ecx, byte [ebp - 0x149]
mov edx, ecx
and edx, 0x7e
test cl, cl
mov eax, dword [ebp - 0x150]
cmovs edx, eax
cmp edx, 2
jae 0x401917
test cl, cl
js 0x401c6d
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x180], eax
movq xmm0, qword [ebp - 0x154]
movq qword [ebp - 0x188], xmm0
jmp 0x40193a
lea ecx, [ebp - 0x188]
push eax
push dword [ebp - 0x154]
call fcn.00405110
jmp 0x40193a
cmp dword [ebp - 0x124], 0
je 0x401d94
mov ebx, dword [ebp - 0x128]
jmp 0x401d66
mov eax, dword [ebp - 0x128]
mov word [eax], 0
mov dword [ebp - 0x124], 0
jmp 0x401d3c
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.DLL_LockResource]
mov edi, eax
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x144], xmm0
lea eax, [ebp - 0x160]
lea ecx, [ebp - 0x12c]
xor edx, edx
push eax
push edi
push esi
call fcn.00402430
add esp, 0xc
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x401cf7
push eax
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x12c], 0
lea ebx, [ebp - 0x128]
lea ecx, [ebp - 0x140]
push ebx
call fcn.0042c360
cmp byte [ebp - 0x11d], 0
js 0x401c9c
mov word [ebp - 0x128], 0
mov byte [ebp - 0x11d], 0
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x401d4d
push eax
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [ebp - 0x12c], 0
cmp byte [ebp - 0x11d], 0
js 0x401c84
je 0x401da2
push ebx
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
cmp byte [ebp - 0x11d], 0
jns 0x401da2
mov eax, dword [ebp - 0x128]
mov word [eax], 0
mov dword [ebp - 0x124], 0
cmp byte [ebp - 0x11d], 0
jns 0x401da2
push dword [ebp - 0x128]
call fcn.00405d0c
add esp, 4
lea ebx, [ebp - 0x140]
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x401eb8
mov dword [ebp - 0x170], eax
cmp byte [ebp - 0x135], 0
js 0x401e60
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x16c]
mov dword [ecx + 8], eax
movq xmm0, qword [ebx]
movq qword [ecx], xmm0
mov word [ebp - 0x140], 0
mov byte [ebp - 0x135], 0
mov dword [ebp - 0x144], 0
cmp byte [ebp - 0x135], 0
js 0x401e4f
je 0x401e3e
push ebx
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
cmp byte [ebp - 0x135], 0
jns 0x401e3e
mov eax, dword [ebp - 0x140]
mov word [eax], 0
mov dword [ebp - 0x13c], 0
cmp byte [ebp - 0x135], 0
jns 0x401e3e
push dword [ebp - 0x140]
call fcn.00405d0c
add esp, 4
mov eax, dword [ebp - 0x170]
lea ebx, [ebp - 0x16c]
jmp 0x4016c4
cmp dword [ebp - 0x13c], 0
je 0x401e30
mov ebx, dword [ebp - 0x140]
jmp 0x401e02
lea ecx, [ebp - 0x16c]
push dword [ebp - 0x13c]
push dword [ebp - 0x140]
call fcn.00405680
cmp byte [ebp - 0x135], 0
jns 0x401ddd
mov eax, dword [ebp - 0x140]
mov word [eax], 0
mov dword [ebp - 0x13c], 0
jmp 0x401ded
mov eax, dword [ebp - 0x128]
mov word [eax], 0
mov dword [ebp - 0x124], 0
jmp 0x401f68
mov dword [ebp - 0x12c], 0x127
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x128], xmm0
lea ecx, [ebp - 0x160]
lea edx, [ebp - 0x12c]
call fcn.00402200
cmp byte [ebp - 0x119], 0
jns 0x401ef6
push dword [ebp - 0x124]
call fcn.00405d0c
add esp, 4
lea ecx, [ebp - 0x12c]
mov edx, 1
lea eax, [ebp - 0x160]
push eax
push edi
push esi
call fcn.00402430
add esp, 0xc
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x401f23
push eax
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x12c], 0
lea esi, [ebp - 0x128]
lea ecx, [ebp - 0x140]
push esi
call fcn.0042c360
cmp byte [ebp - 0x11d], 0
js 0x401e9e
mov word [ebp - 0x128], 0
mov byte [ebp - 0x11d], 0
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x401f79
push eax
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [ebp - 0x12c], 0
cmp byte [ebp - 0x11d], 0
js 0x402040
je 0x401fce
push esi
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
cmp byte [ebp - 0x11d], 0
jns 0x401fce
mov eax, dword [ebp - 0x128]
mov word [eax], 0
mov dword [ebp - 0x124], 0
cmp byte [ebp - 0x11d], 0
jns 0x401fce
push dword [ebp - 0x128]
call fcn.00405d0c
add esp, 4
mov eax, dword [ebp - 0x144]
test eax, eax
jne 0x401db6
mov dword [ebp - 0x12c], 0x12b
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x128], xmm0
lea ecx, [ebp - 0x160]
lea edx, [ebp - 0x12c]
call fcn.00402200
cmp byte [ebp - 0x119], 0
jns 0x40201a
push dword [ebp - 0x124]
call fcn.00405d0c
add esp, 4
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x170], xmm0
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x401ded
push eax
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
jmp 0x401ded
cmp dword [ebp - 0x124], 0
je 0x401fc0
mov esi, dword [ebp - 0x128]
jmp 0x401f92