Function at 0x416710
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa8
mov esi, dword [ebp + 8]
mov eax, dword [0x587040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x58cdec]
test ecx, ecx
jne 0x41673f
call fcn.0042a560
mov ecx, eax
mov dword [0x58cdec], eax
mov bh, byte [ebp + 0x10]
push 0x1201bf
push 1
push esi
call fcn.0042a800
mov bl, al
mov ecx, dword [0x58cdec]
test ecx, ecx
jne 0x416767
call fcn.0042a560
mov ecx, eax
mov dword [0x58cdec], eax
movzx eax, bl
movzx edx, bh
push eax
push edx
call fcn.0042b310
test al, al
je 0x4168a5
push 0
call fcn.00417350
add esp, 4
test al, al
je 0x416888
xor ebx, ebx
dec ebx
lea edi, [ebp - 0x38]
mov dword [edi + 0x24], ebx
mov dword [edi + 0x20], ebx
pcmpeqd xmm0, xmm0
movdqu xmmword [edi + 0x10], xmm0
movdqu xmmword [edi], xmm0
mov ecx, edi
push 0
call fcn.0046d140
mov esi, str.newautoupdater
push esi
call fcn.00507c20
add esp, 4
mov ecx, edi
push dword [ebp + 0x14]
push eax
push esi
call fcn.0046e140
lea esi, [ebp - 0x44]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov ecx, esi
call fcn.004b95a0
push esi
push 1
call fcn.00460330
add esp, 8
test al, al
je 0x416878
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x78], xmm0
movdqu xmmword [ebp - 0x58], xmm0
movdqu xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x80], 0x3c
mov dword [ebp - 0x7c], 0x40
mov dword [ebp - 0x74], str.runas
cmp byte [ebp - 0x39], 0
jns 0x416827
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x70], esi
lea esi, [ebp - 0x8c]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea ecx, [ebp - 0x38]
push esi
call fcn.0046e9d0
cmp byte [esi + 0xb], 0
jns 0x41684d
mov esi, dword [ebp - 0x8c]
lea eax, [ebp - 0x80]
mov dword [eax + 0x14], esi
mov dword [eax + 0x1c], 5
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
cmp byte [ebp - 0x81], 0
jns 0x416878
push dword [ebp - 0x8c]
call fcn.004ec97e
add esp, 4
lea ecx, [ebp - 0x44]
call fcn.004b9720
lea ecx, [ebp - 0x38]
call fcn.0046d4c0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ecef0
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebp - 0x38]
mov byte [eax + 0xb], bl
jmp 0x4168ed
call fcn.0041ef20
test eax, eax
je 0x416d1f
mov edi, eax
push eax
call fcn.00507c20
add esp, 4
cmp eax, 0x7ffffff8
jae 0x416d26
mov ebx, eax
cmp eax, 0xa
jbe 0x41689d
mov esi, ebx
or esi, 7
inc esi
push esi
call fcn.004ec94e
add esp, 4
mov dword [ebp - 0x38], eax
or esi, 0x80000000
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ebx
lea esi, [eax + ebx]
cmp eax, edi
seta cl
cmp esi, edi
setbe dl
or dl, cl
je 0x416d2e
test ebx, ebx
je 0x416911
push ebx
push edi
push eax
call fcn.004f03c0
add esp, 0xc
mov byte [esi], 0
lea edi, [ebp - 0x38]
mov ecx, edi
push 0x13
push str._autoupdate.version
call fcn.004a25f0
mov ecx, dword [eax + 8]
mov dword [ebp - 0x78], ecx
movq xmm0, qword [eax]
movq qword [ebp - 0x80], xmm0
pxor xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 8], 0
cmp byte [edi + 0xb], 0
jns 0x416954
push dword [ebp - 0x38]
call fcn.004ec97e
add esp, 4
xor ebx, ebx
dec ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov esi, str.files_list
push esi
call fcn.00507e54
add esp, 4
mov ecx, dword [ebp + 0x14]
push eax
push esi
push edi
call fcn.004bab10
lea esi, [ebp - 0x44]
pxor xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
push esi
push edi
call fcn.00461040
add esp, 8
test al, al
je 0x416b6c
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
movsx eax, byte [ebp - 0x39]
test eax, eax
cmovs eax, dword [ebp - 0x40]
cmovs esi, dword [ebp - 0x44]
test eax, eax
js 0x416d10
sete cl
test esi, esi
setne dl
or dl, cl
je 0x416d09
lea edi, [ebp - 0x8c]
push 1
push 0
push 2
push 0x5662c6
push eax
push esi
push edi
call fcn.004b0180
add esp, 0x1c
mov esi, dword [edi]
cmp esi, dword [edi + 4]
je 0x416b23
mov edi, dword [ebp + 0xc]
mov esi, str.opera_autoupdate.exe
push esi
call fcn.00507c20
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x98]
mov ecx, edi
push ebx
push esi
push eax
call fcn.0046c490
lea esi, [ebp - 0xa4]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0xa8], ebx
push ebx
mov eax, str.opera_autoupdate.exe
push eax
push esi
call fcn.0046c490
lea edi, [ebp - 0x98]
push edi
push esi
call fcn.0053a180
add esp, 8
mov ebx, eax
mov ecx, esi
call fcn.004b9720
mov ecx, edi
call fcn.004b9720
test bl, bl
je 0x416b1d
lea ecx, [ebp - 0x80]
movsx eax, byte [ecx + 0xb]
test eax, eax
cmovs eax, dword [ecx + 4]
mov edx, dword [ecx]
cmovns edx, ecx
test eax, eax
js 0x416d10
sete cl
test edx, edx
setne ch
or ch, cl
je 0x416d09
mov ecx, dword [ebp + 0xc]
push eax
push edx
lea eax, [ebp - 0x98]
push eax
call fcn.0046c490
movsx eax, byte [ebp - 0x75]
test eax, eax
cmovs eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
lea ecx, [ebp - 0x80]
cmovns edx, ecx
test eax, eax
js 0x416d10
sete cl
test edx, edx
setne ch
or ch, cl
je 0x416d09
mov ecx, dword [ebp + 0x14]
push eax
push edx
lea edi, [ebp - 0xa4]
push edi
call fcn.0046c490
lea esi, [ebp - 0x98]
push esi
push edi
call fcn.0053a180
add esp, 8
mov ecx, edi
call fcn.004b9720
mov ecx, esi
call fcn.004b9720
mov ebx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xb4], eax
cmp ebx, eax
jne 0x416cb1
push dword [ebp + 0x14]
call fcn.0045e550
add esp, 4
mov esi, dword [ebp - 0x8c]
test esi, esi
je 0x416b6c
mov edi, dword [ebp - 0x88]
mov eax, esi
cmp edi, esi
je 0x416b5d
add edi, 0xfffffff4
test edi, edi
je 0x416d35
cmp byte [edi + 0xb], 0
jns 0x416b4e
push dword [edi]
call fcn.004ec97e
add esp, 4
lea eax, [edi - 0xc]
cmp edi, esi
mov edi, eax
jne 0x416b36
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x88], esi
push eax
call fcn.004ec97e
add esp, 4
cmp byte [ebp - 0x39], 0
jns 0x416b7d
push dword [ebp - 0x44]
call fcn.004ec97e
add esp, 4
lea ecx, [ebp - 0x38]
call fcn.004b9720
cmp byte [ebp - 0x75], 0
jns 0x416888
push dword [ebp - 0x80]
call fcn.004ec97e
add esp, 4
jmp 0x416888
push dword [ebp - 0xac]
push eax
push dword [ebx]
call fcn.004eed3d
mov edx, edi
add esp, 0xc
test eax, eax
je 0x416ca2
test dl, dl
mov ecx, dword [ebx]
mov eax, ebx
mov dword [ebp - 0xb0], ecx
cmovs eax, ecx
test esi, esi
js 0x416d10
sete cl
test eax, eax
setne dl
or dl, cl
je 0x416d09
cmp esi, dword [ebp - 0xa8]
mov edx, edi
jne 0x416c09
push dword [ebp - 0xa8]
push str.opera_autoupdate.exe
push eax
call fcn.004eed3d
mov edx, edi
add esp, 0xc
test eax, eax
je 0x416ca2
mov eax, ebx
test dl, dl
jns 0x416c25
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
mov edx, ecx
test ecx, ecx
js 0x416d10
test edx, edx
sete cl
test eax, eax
mov esi, edx
setne dl
or dl, cl
je 0x416d09
mov ecx, dword [ebp + 0xc]
push esi
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.0046c490
movsx eax, byte [ebx + 0xb]
mov esi, ebx
test eax, eax
mov ecx, dword [ebp + 0x14]
jns 0x416c64
mov eax, dword [ebx + 4]
test eax, eax
js 0x416d10
mov esi, dword [ebx]
test eax, eax
sete dh
test esi, esi
setne dl
or dl, dh
je 0x416d09
push eax
push esi
lea edi, [ebp - 0xa4]
push edi
call fcn.0046c490
lea esi, [ebp - 0x98]
push esi
push edi
call fcn.0053a180
add esp, 8
mov ecx, edi
call fcn.004b9720
mov ecx, esi
call fcn.004b9720
add ebx, 0xc
cmp ebx, dword [ebp - 0xb4]
je 0x416b12
movzx edx, byte [ebx + 0xb]
test dl, dl
mov eax, dword [ebx + 4]
mov esi, edx
mov dword [ebp - 0xac], eax
cmovs esi, eax
movsx ecx, byte [ebp - 0x75]
mov eax, ecx
test ecx, ecx
jns 0x416cd2
mov eax, dword [ebp - 0x7c]
cmp esi, eax
mov edi, edx
jne 0x416bba
lea eax, [ebp - 0x80]
test cl, cl
jns 0x416ce6
mov eax, dword [ebp - 0x80]
test dl, dl
js 0x416b9f
test edx, edx
je 0x416ca2
xor ecx, ecx
mov dl, byte [ebx + ecx]
cmp dl, byte [eax + ecx]
mov edx, edi
jne 0x416bba
inc ecx
cmp edx, ecx
jne 0x416cf4
jmp 0x416ca2
push str....._third_partylibc_srcinclude_string_view:320:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
jmp 0x416d15
push str....._third_partylibc_srcinclude_string_view:318:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
push 0x565ab5
call fcn.0051c8d0
push str....._third_partylibc_srcinclude_string:973:_assertion___s___nullptr_failed:_basic_string_const_char__detected_nullptr_n
jmp 0x416d15
lea ecx, [ebp - 0x38]
call fcn.0051bd70
push str....._third_partylibc_srcinclude__stringchar_traits.h:145:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
jmp 0x416d15
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
jmp 0x416d15