Function at 0x4012d0
Capabilities:
Enumerate processes
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x407040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
mov dword [ebp - 0x248], esi
cmp esi, 0xffffffff
jne 0x401332
mov edx, str.Failed_to_create_process_snapshot._n
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.00401bd0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00402b41
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
lea eax, [ebp - 0x238]
mov dword [ebp - 0x238], 0x22c
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
jne 0x40135c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, str.Failed_to_retrieve_process_information._n
jmp 0x401314
xorps xmm0, xmm0
lea edi, [ebp - 0x214]
mov edx, 0xa
movaps xmmword [ebp - 0x270], xmm0
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x401374
sub edi, ecx
sar edi, 1
cmp edi, 0x7ffffffe
ja 0x40157d
cmp edi, 7
ja 0x4013df
lea esi, [edi + edi]
mov dword [ebp - 0x260], edi
push esi
lea eax, [ebp - 0x214]
mov dword [ebp - 0x25c], 7
push eax
lea eax, [ebp - 0x270]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x270], ax
mov esi, dword [ebp - 0x25c]
mov edi, dword [ebp - 0x260]
mov edx, dword [ebp - 0x270]
jmp 0x40149b
mov esi, edi
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x401400
mov esi, 0x7ffffffe
mov eax, 0x7fffffff
mov dword [ebp - 0x240], esi
add eax, eax
jmp 0x401423
cmp esi, 0xa
cmovb esi, edx
mov dword [ebp - 0x240], esi
lea eax, [esi + 1]
cmp eax, 0x7fffffff
ja 0x401582
add eax, eax
cmp eax, 0x1000
jb 0x40144c
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x401582
push ecx
call fcn.00402b4f
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x401553
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x40145d
test eax, eax
je 0x40145b
push eax
call fcn.00402b4f
add esp, 4
jmp 0x40145d
xor eax, eax
mov dword [ebp - 0x25c], esi
lea ecx, [ebp - 0x214]
lea esi, [edi + edi]
mov dword [ebp - 0x244], eax
push esi
push ecx
push eax
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x260], edi
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp - 0x244]
add esp, 0xc
xor eax, eax
mov word [esi + edx], ax
mov esi, dword [ebp - 0x240]
cmp esi, 7
lea ecx, [ebp - 0x270]
cmova ecx, edx
cmp edi, 9
jne 0x4014e0
mov eax, str.opera.exe
sub ecx, eax
mov dword [ebp - 0x240], ecx
nop dword [eax]
mov cx, word [ecx + eax]
cmp cx, word [eax]
jne 0x4014e0
mov ecx, dword [ebp - 0x240]
add eax, 2
sub edi, 1
jne 0x4014c0
mov byte [ebp - 0x239], 1
jmp 0x4014e7
mov byte [ebp - 0x239], 0
cmp esi, 7
jbe 0x401517
lea esi, [esi*2 + 2]
mov eax, edx
cmp esi, 0x1000
jb 0x40150d
mov edx, dword [eax - 4]
add esi, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401553
push esi
push edx
call fcn.00402dd0
add esp, 8
cmp byte [ebp - 0x239], 0
jne 0x401559
mov esi, dword [ebp - 0x248]
lea eax, [ebp - 0x238]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x40135c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.OperaGX_is_not_running._Continuing_with_program..._n
jmp 0x40131a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push dword [ebp - 0x248]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.OperaGX_is_running._Exiting_program._n
call fcn.00401bd0
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
call fcn.00401190
call fcn.004010f0
int3