Function at 0x423540
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov edi, ecx
mov esi, dword [ebp + 8]
mov eax, dword [0x540010]
xor eax, ebp
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
call fcn.004d92f0
add eax, 0xfffffffc
cmp eax, 2
ja 0x4236d1
mov ebx, dword [edi + 0x68]
lea eax, [ebx + 0x40]
cmp byte [ebx + 0x4b], 0
js 0x4235ea
je 0x4238f8
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 1
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jae 0x4236af
test eax, eax
je 0x423ca5
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x10]
movsd qword [eax], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
add eax, 0x10
jmp 0x4236bb
mov edx, dword [ebx + 0x44]
test edx, edx
je 0x4238f8
lea ecx, [esp + 0x10]
push edx
push dword [eax]
call fcn.00477e60
jmp 0x42359d
mov edx, dword [eax + 0x38]
test edx, edx
je 0x42371e
lea ecx, [esp + 0x10]
push edx
push dword [eax + 0x34]
call fcn.00477e60
jmp 0x42363e
mov eax, dword [edi + 0x68]
cmp byte [eax + 0x3f], 0
js 0x423603
je 0x42371e
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax + 0x34]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 3
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jae 0x423684
test eax, eax
je 0x423ca5
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x10]
movsd qword [eax], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
add eax, 0x10
jmp 0x423690
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.00429ac0
mov dword [esi + 4], eax
cmp byte [esp + 0x1b], 0
jns 0x42377d
push dword [esp + 0x10]
call fcn.004dfb35
add esp, 4
jmp 0x42377d
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.00429ac0
mov dword [esi + 4], eax
cmp byte [esp + 0x1b], 0
jns 0x4236d1
push dword [esp + 0x10]
call fcn.004dfb35
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x42377d
cmp eax, 2
je 0x42361d
cmp eax, 1
jne 0x423778
mov eax, dword [edi + 0x68]
cmp byte [eax + 0x27], 0
js 0x42370a
je 0x423745
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax + 0x1c]
jmp 0x423638
mov edx, dword [eax + 0x20]
test edx, edx
je 0x423745
lea ecx, [esp + 0x10]
push edx
push dword [eax + 0x1c]
jmp 0x423616
lea ebx, [esp + 0x10]
mov ecx, ebx
push 0x380
push str.GetDownloadUrlsFromBrandConfig
push 2
call fcn.00455190
lea ecx, [esp + 0x4c]
push 0x5230a1
push str.Setup_url_x32_empty_
jmp 0x42376a
lea ebx, [esp + 0x10]
mov ecx, ebx
push 0x379
push str.GetDownloadUrlsFromBrandConfig
push 2
call fcn.00455190
lea ecx, [esp + 0x4c]
push 0x52308c
push str.Setup_url_x64_empty_
call fcn.004147c0
mov ecx, ebx
call fcn.004553c0
jmp 0x42377d
call fcn.0050fe40
mov eax, dword [edi + 0x68]
add eax, 0x10
mov ecx, edi
push eax
call fcn.004231c0
test al, al
je 0x423829
mov eax, dword [edi + 0x68]
cmp byte [eax + 0x1b], 0
js 0x4237f6
add eax, 0x10
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 3
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jae 0x423807
test eax, eax
je 0x423ca5
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x10]
movsd qword [eax], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
add eax, 0x10
jmp 0x423813
lea ecx, [esp + 0x10]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00477e60
jmp 0x4237b0
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.00429ac0
mov dword [esi + 4], eax
cmp byte [esp + 0x1b], 0
jns 0x423829
push dword [esp + 0x10]
call fcn.004dfb35
ret
or eax, dword [eax]
add esp, 4
mov eax, dword [edi + 0x68]
cmp byte [eax + 0xf], 0
js 0x42388c
add eax, 4
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x1c], 3
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jae 0x42389d
test eax, eax
je 0x423ca5
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x10]
movsd qword [eax], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
add eax, 0x10
jmp 0x4238a9
lea ecx, [esp + 0x10]
push dword [eax + 8]
push dword [eax + 4]
call fcn.00477e60
jmp 0x423846
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.00429ac0
mov dword [esi + 4], eax
cmp byte [esp + 0x1b], 0
jns 0x4238c2
push dword [esp + 0x10]
call fcn.004dfb35
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, eax
sub edx, ecx
cmp edx, 0x10
jne 0x4238dc
cmp ecx, eax
je 0x423c9e
mov dword [ecx + 0xc], 6
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.004e0685
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [ebx + 0x50]
jmp 0x423962
push 0x30
call fcn.004dfb05
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 0x80000030
mov dword [esp + 0x14], 0x2d
cmp eax, str.https:__download.cdn.yandex.net_browser_win7_
ja 0x42392c
lea ecx, [eax + 0x2d]
cmp ecx, str.https:__download.cdn.yandex.net_browser_win7_
ja 0x423c97
movups xmm0, xmmword [0x523a1d]
movups xmmword [eax + 0x1d], xmm0
movups xmm0, xmmword [0x523a10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.https:__download.cdn.yandex.net_browser_win7_]
movups xmmword [eax], xmm0
mov byte [eax + 0x2d], 0
mov cl, byte [ebx + 0x57]
movzx eax, cl
mov dword [esp + 4], eax
test cl, cl
js 0x4238f3
mov eax, dword [esp + 4]
test eax, eax
mov dword [esp + 8], edi
je 0x4239ba
test cl, cl
jns 0x423975
mov eax, dword [ebx + 0x50]
mov dword [esp + 4], eax
xor eax, eax
dec eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 4]
lea edx, [eax + 1]
cmp edx, 0x7ffffff8
jae 0x423cb4
cmp edx, 0xa
ja 0x423b17
xorps xmm0, xmm0
lea eax, [esp + 0x68]
movsd qword [eax], xmm0
mov dword [eax + 8], 0
mov byte [eax + 0xb], dl
jmp 0x423b43
push str.yandex
call fcn.004fb1c0
add esp, 4
cmp eax, 0x7ffffff8
jae 0x423cbd
mov ebx, eax
cmp eax, 0xa
jbe 0x4239fc
mov edi, ebx
or edi, 7
inc edi
push edi
call fcn.004dfb05
add esp, 4
mov dword [esp + 0x58], eax
or edi, 0x80000000
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
jmp 0x423a03
lea eax, [esp + 0x58]
mov byte [eax + 0xb], bl
lea edi, [eax + ebx]
cmp eax, str.yandex
ja 0x423a19
cmp edi, str.yandex
ja 0x423c97
test ebx, ebx
je 0x423a2c
push ebx
push str.yandex
push eax
call fcn.004e3510
add esp, 0xc
mov byte [edi], 0
movzx eax, byte [esp + 0x63]
test al, al
js 0x423a81
mov edx, 0xa
cmp eax, 0xa
je 0x423a99
lea ecx, [esp + 0x58]
lea edx, [ecx + eax]
cmp edx, 0x523a2e
ja 0x423a61
lea edi, [ecx + eax]
inc edi
cmp edi, 0x523a2e
ja 0x423c97
mov byte [edx], 0x2f
inc eax
cmp byte [esp + 0x63], 0
js 0x423a7b
mov edx, eax
and dl, 0x7f
mov byte [esp + 0x63], dl
mov byte [ecx + eax], 0
jmp 0x423ab1
mov dword [esp + 0x5c], eax
jmp 0x423a75
mov edx, 0x7fffffff
and edx, dword [esp + 0x60]
dec edx
mov eax, dword [esp + 0x5c]
cmp edx, eax
je 0x423a99
mov ecx, dword [esp + 0x58]
jmp 0x423a46
xor eax, eax
inc eax
lea ecx, [esp + 0x58]
push 0x523a2e
push eax
push 0
push edx
push edx
push eax
push edx
call fcn.00477c80
mov eax, dword [esp + 0x60]
lea edi, [esp + 0x68]
mov dword [edi + 8], eax
movsd xmm0, qword [esp + 0x58]
movsd qword [edi], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x58], xmm0
movzx eax, byte [edi + 0xb]
test al, al
cmovs eax, dword [edi + 4]
mov dword [esp + 0x60], 0
mov edx, dword [edi]
cmovns edx, edi
lea ecx, [esp + 0x10]
push eax
push edx
call fcn.00478310
cmp byte [edi + 0xb], 0
jns 0x423b03
push dword [esp + 0x68]
call fcn.004dfb35
add esp, 4
cmp byte [esp + 0x63], 0
jns 0x423bbf
push dword [esp + 0x58]
jmp 0x423bb7
mov edi, edx
or edi, 7
inc edi
push edi
mov dword [esp + 0x10], edx
call fcn.004dfb05
add esp, 4
or edi, 0x80000000
mov dword [esp + 0x70], edi
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x6c], ecx
mov cl, byte [ebx + 0x57]
add ebx, 0x4c
test cl, cl
jns 0x423b4c
mov ebx, dword [ebx]
mov ecx, dword [esp + 4]
lea edi, [eax + ecx]
cmp ebx, eax
jb 0x423b5f
cmp edi, ebx
ja 0x423c97
cmp dword [esp + 4], 0
je 0x423b74
push dword [esp + 4]
push ebx
push eax
call fcn.004e3510
add esp, 0xc
cmp edi, 0x523a2e
ja 0x423b8a
lea eax, [edi + 1]
cmp eax, 0x523a2e
ja 0x423c97
mov word [edi], 0x2f
lea edi, [esp + 0x68]
movzx eax, byte [edi + 0xb]
test al, al
cmovs eax, dword [edi + 4]
mov edx, dword [edi]
cmovns edx, edi
lea ecx, [esp + 0x10]
push eax
push edx
call fcn.00478310
cmp byte [edi + 0xb], 0
jns 0x423bbf
push dword [esp + 0x68]
call fcn.004dfb35
add esp, 4
movzx eax, byte [esp + 0x1b]
test al, al
js 0x423c1b
mov edx, 0xa
cmp al, 0xb
jb 0x423c32
lea ecx, [esp + eax]
add ecx, 0x10
cmp ecx, str.browser_setup.arc
mov edi, dword [esp + 8]
ja 0x423bf5
lea edx, [esp + eax]
add edx, 0x21
cmp edx, str.browser_setup.arc
ja 0x423c97
movups xmm0, xmmword [str.browser_setup.arc]
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0x63
add eax, 0x11
mov edx, eax
and dl, 0x7f
lea ecx, [esp + 0x10]
mov byte [ecx + 0xb], dl
mov byte [ecx + eax], 0
jmp 0x42359d
mov edx, 0x7fffffff
and edx, dword [esp + 0x18]
dec edx
mov eax, dword [esp + 0x14]
mov ecx, edx
sub ecx, eax
cmp ecx, 0x11
jae 0x423c58
mov edi, eax
sub edi, edx
add edi, 0x11
lea ecx, [esp + 0x10]
push str.browser_setup.arc
push 0x11
push 0
push eax
push eax
push edi
push edx
call fcn.00477c80
mov edi, dword [esp + 8]
jmp 0x42359d
mov ecx, dword [esp + 0x10]
lea edx, [ecx + eax]
cmp edx, str.browser_setup.arc
mov edi, dword [esp + 8]
ja 0x423c7d
mov ebx, edi
lea edi, [ecx + eax]
add edi, 0x11
cmp edi, str.browser_setup.arc
mov edi, ebx
ja 0x423c97
movups xmm0, xmmword [str.browser_setup.arc]
movups xmmword [edx], xmm0
mov byte [edx + 0x10], 0x63
add eax, 0x11
mov dword [esp + 0x14], eax
jmp 0x423c12
push str....._third_partylibc_srcinclude__stringchar_traits.h:245:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
jmp 0x423caa
push str....._third_partylibc_srcinclude_vector:613:_assertion__empty___failed:_front___called_on_an_empty_vector_n
jmp 0x423caa
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x521354
call fcn.0044d640
lea ecx, [esp + 0x68]
call fcn.004147a0
lea ecx, [esp + 0x58]
call fcn.004147a0
int3