Function at 0x404eb0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1374
call fcn.004181c0
mov eax, dword [0x42e460]
xor eax, esp
mov dword [esp + 0x1370], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push edi
mov edi, dword [ebp + 8]
push 0
push 0
push 0x100
mov dword [esp + 0x38], eax
lea eax, [esp + 0x184]
push eax
push 0xffffffffffffffff
push str.1.0.29
push 0
push 0
call esi
cmp byte [esp + 0x178], 0
jne 0x404f0d
xor ecx, ecx
jmp 0x404f20
lea ecx, [esp + 0x178]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404f17
sub ecx, edx
push ecx
lea eax, [esp + 0x17c]
mov ecx, 0x431b98
push eax
call fcn.00401b50
cmp byte [str.utm_sourceoffergatecpinewutm_campaign6utm_mediummlutm_site2204utm_clickidNV8oSmvMu9YijbX5utm_experimentexprelease_1.0.58_previousutm_ntbpack9landing14dld_br2], 0
jne 0x404f40
xor ecx, ecx
jmp 0x404f51
mov ecx, str.utm_sourceoffergatecpinewutm_campaign6utm_mediummlutm_site2204utm_clickidNV8oSmvMu9YijbX5utm_experimentexprelease_1.0.58_previousutm_ntbpack9landing14dld_br2
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404f48
sub ecx, edx
push ecx
push str.utm_sourceoffergatecpinewutm_campaign6utm_mediummlutm_site2204utm_clickidNV8oSmvMu9YijbX5utm_experimentexprelease_1.0.58_previousutm_ntbpack9landing14dld_br2
mov ecx, 0x431bb0
call fcn.00401b50
call fcn.00409710
push 4
push str.etab
lea ecx, [esp + 0x38]
mov byte [esp + 0x16], 1
mov byte [esp + 0x17], 1
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
call fcn.00401b50
mov edx, 0x430310
lea ecx, [esp + 0x30]
call fcn.00407ee0
push 0xa
push str.mi7_search
lea ecx, [esp + 0x38]
mov byte [0x430312], al
call fcn.00401b50
lea edx, [esp + 0xe]
lea ecx, [esp + 0x30]
call fcn.00407ee0
push 0xd
push str.mi7_startpage
lea ecx, [esp + 0x38]
mov bl, al
call fcn.00401b50
lea edx, [esp + 0xf]
lea ecx, [esp + 0x30]
call fcn.00407ee0
or al, bl
mov byte [0x430313], al
mov al, byte [esp + 0xf]
or al, byte [esp + 0xe]
mov byte [0x430311], al
call fcn.00404c90
test al, al
jne 0x405006
call fcn.00404b60
cmp dword [0x431ae4], 8
lea ecx, [esp + 0x278]
push 0
push 0
push 0x100
push ecx
push 0xffffffffffffffff
mov eax, 0x431ad0
cmovae eax, dword [0x431ad0]
push eax
push 0
push 0
call esi
cmp byte [esp + 0x278], 0
jne 0x405041
xor ecx, ecx
jmp 0x405059
lea ecx, [esp + 0x278]
lea edx, [ecx + 1]
jmp 0x405050
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405050
sub ecx, edx
push ecx
lea eax, [esp + 0x27c]
mov ecx, 0x431bc8
push eax
call fcn.00401b50
push ecx
push dword [esp + 0x30]
call fcn.004022e0
push str.update
call fcn.00402ae0
test al, al
lea eax, [esp + 0x378]
push 0x1000
setne bl
push 0
push eax
mov byte [0x432ff0], bl
call fcn.004181f0
add esp, 0xc
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
test bl, bl
jne 0x4051a9
call fcn.004047e0
lea eax, [esp + 0x378]
xor edx, edx
push eax
push 0
xor ecx, ecx
call fcn.0040e380
lea ecx, [esp + 0x380]
add esp, 8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4050e4
sub ecx, edx
je 0x4051a9
mov byte [esp + 0x60], al
xor eax, eax
cmp byte [esp + 0x378], al
mov dword [esp + 0x74], 0xf
cmove ecx, eax
mov dword [esp + 0x70], 0
push ecx
lea eax, [esp + 0x37c]
push eax
lea ecx, [esp + 0x68]
call fcn.00401b50
cmp dword [esp + 0x74], 0x10
lea eax, [esp + 0x78]
lea ecx, [esp + 0x60]
cmovae ecx, dword [esp + 0x60]
push eax
call fcn.00410340
add esp, 4
test eax, eax
je 0x405196
cmp dword [eax], 0
jne 0x405196
lea ecx, [eax + 8]
mov edx, str.easy_install
call fcn.00410ed0
test eax, eax
je 0x405196
cmp dword [eax], 2
jne 0x405196
push dword [eax + 8]
lea ecx, [esp + 0x4c]
call fcn.00407280
mov edx, 0x42a430
lea ecx, [esp + 0x48]
call fcn.00407550
test al, al
jne 0x40518f
mov edx, str.TRUE
lea ecx, [esp + 0x48]
call fcn.00407550
test al, al
je 0x405196
mov byte [0x432fd9], 1
cmp dword [esp + 0x74], 0x10
jb 0x4051a9
push dword [esp + 0x60]
call fcn.00411307
add esp, 4
push str.silent
call fcn.00402ae0
test al, al
je 0x4051d9
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0x4057b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x432fd4], eax
jmp 0x40527b
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x64
push 0x432f08
push 0x67
push edi
call esi
push 0x64
push 0x432e40
push 0x6d
push edi
call esi
mov ecx, edi
call fcn.00405340
mov edx, dword [ebp + 0x14]
mov ecx, edi
call fcn.004053d0
test eax, eax
je 0x4052de
push 0x6d
push edi
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x18]
push 0
push eax
call esi
test eax, eax
je 0x405276
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x30]
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x405265
lea eax, [esp + 0x10]
push eax
call edi
lea eax, [esp + 0x10]
push eax
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x1c]
push eax
call esi
test eax, eax
jne 0x405240
mov eax, dword [0x432fd4]
test eax, eax
je 0x40529e
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [0x432fd4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x432fd4], 0
mov ecx, dword [0x4331a4]
test ecx, ecx
je 0x4052ae
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x4331ac]
test ecx, ecx
je 0x4052be
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x4331a8]
test ecx, ecx
je 0x4052ce
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x4331a0]
test ecx, ecx
je 0x4052de
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [esp + 0x5c], 0x10
jb 0x4052f1
push dword [esp + 0x48]
call fcn.00411307
add esp, 4
cmp dword [esp + 0x44], 0x10
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
jb 0x405319
push dword [esp + 0x30]
call fcn.00411307
add esp, 4
mov ecx, dword [esp + 0x137c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004112f8
mov esp, ebp
pop ebp
ret 0x10