Function at 0x40e7fc
Capabilities:
Check if file exists
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x998
mov ebx, dword [ebp + 8]
mov eax, dword [0x6f4e3c]
xor eax, ebp
mov dword [esp + 0x990], eax
call fcn.00436db0
mov ecx, eax
push 0x19b
push 0x1c
call fcn.004374f6
mov eax, str.install_archive
lea esi, [esp + 0xa8]
mov dword [esi], eax
push eax
call fcn.0061fdf0
add esp, 4
mov dword [esi + 4], eax
lea edi, [esp + 0x9c]
mov ecx, ebx
push esi
push edi
call fcn.0046bf10
movzx eax, byte [edi + 0xb]
test al, al
jns 0x40dd5d
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov ecx, esi
push eax
push edi
call fcn.0046ed80
push esi
call fcn.00482720
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.0046ee40
call fcn.00436db0
test bl, bl
je 0x40deef
mov edi, 0x1c
mov ecx, eax
push 0x19b
push edi
call fcn.004374f6
xor eax, eax
lea ebx, [esp + 0x90]
mov dword [ebx + 4], eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
push ebx
call fcn.00438fec
add esp, 4
call fcn.00436db0
mov ecx, eax
push 0x19c
push edi
call fcn.004374f6
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x40ddd2
mov eax, dword [esp + 0x94]
test eax, eax
je 0x40defa
call fcn.004175be
lea edi, [esp + 0x84]
mov ecx, eax
push edi
call fcn.00417e5c
call fcn.00436db0
mov ecx, eax
push 0x19d
push 0x1c
call fcn.004374f6
push edi
call fcn.0043a5d1
add esp, 4
test al, al
je 0x40df0a
lea edi, [esp + 0x78]
mov ecx, edi
call fcn.0046ed20
call fcn.00436db0
mov ecx, eax
push 0x19e
push 0x1c
call fcn.004374f6
push edi
push 7
call fcn.00476650
add esp, 8
test al, al
je 0x40df1a
push 0x1f4
push edi
call fcn.0043a2b4
add esp, 8
test al, al
je 0x40df1a
call fcn.004175be
lea edi, [esp + 0x6c]
mov ecx, eax
push edi
call fcn.004185de
movzx eax, byte [edi + 0xb]
test al, al
jns 0x40de7a
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x60]
mov dword [esp + 4], ecx
push eax
push edi
call fcn.0046ed80
lea edi, [esp + 0x8c8]
push 0xc8
push 0
push edi
call fcn.006030b0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
sub ecx, eax
push ecx
push str.dif__d
push 0xffffffffffffffff
push 0x64
push edi
call fcn.00401af6
add esp, 0x14
cmp word [edi], 0
mov dword [esp + 8], ebx
je 0x40df96
xor ecx, ecx
lea eax, [ecx + 1]
cmp word [esp + ecx*2 + 0x8ca], 0
mov ecx, eax
jne 0x40deda
jmp 0x40df98
mov ecx, eax
call fcn.004374ec
mov ebx, eax
jmp 0x40df63
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
mov ebx, eax
jmp 0x40df4a
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
mov ebx, eax
jmp 0x40df31
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
mov ebx, eax
lea ecx, [esp + 0x78]
call fcn.0046ee40
cmp byte [esp + 0x8f], 0
jns 0x40df4a
push dword [esp + 0x84]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x9b], 0
jns 0x40df63
push dword [esp + 0x90]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0xa7], 0
jns 0x40df7c
push dword [esp + 0x9c]
call fcn.00517bd6
add esp, 4
mov ecx, dword [esp + 0x990]
xor ecx, ebp
call fcn.00517c1a
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
xor eax, eax
lea ebx, [esp + 0x60]
mov ecx, ebx
push eax
push edi
push esi
call fcn.0046fbd0
mov ecx, ebx
push esi
call fcn.0046ee80
mov ecx, esi
call fcn.0046ee40
push ebx
call fcn.004714a0
add esp, 4
call fcn.00436db0
mov ecx, eax
push 0x19f
push 0x1c
call fcn.004374f6
push ebx
call fcn.00482720
add esp, 4
test al, al
jne 0x40e011
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
test eax, eax
je 0x40e011
mov ebx, eax
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov dword [esp], 0
mov dword [esp + 0x58], eax
lea edi, [esp + 0x84]
jmp 0x40e5c9
call fcn.00436db0
mov ecx, eax
push 0x1a0
push 0x1c
call fcn.004374f6
xor edx, edx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edx
lea eax, [esp + 0x50]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
lea ecx, [esp + 0x9c]
push eax
push esi
lea eax, [esp + 0x68]
push eax
push edx
push ecx
call fcn.0040240c
add esp, 0x14
mov ebx, 0
test eax, eax
je 0x40e096
mov edi, eax
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
mov ebx, eax
call fcn.00436db0
movzx ecx, di
movzx edx, word [0x70bd94]
shl edx, 0x10
or edx, ecx
mov ecx, eax
push edx
push 0x1e
call fcn.004374f6
lea edi, [esp + 0x50]
mov ecx, edi
call fcn.00403fbe
lea ecx, [esp + 0xa8]
call fcn.00403fbe
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi], eax
mov dword [esp], 0
mov dword [edi + 8], eax
test ebx, ebx
lea edi, [esp + 0x84]
jne 0x40e5c9
lea edi, [esp + 0xa8]
call fcn.00436db0
mov ecx, eax
push 0x1a1
push 0x1c
call fcn.004374f6
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb0], eax
movzx ebx, byte [esp + 0x6b]
test bl, bl
cmovs ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x60]
cmovns ecx, eax
lea eax, [ebx + 1]
cmp eax, 0x7ffffff0
jae 0x40e7eb
cmp eax, 5
jae 0x40e135
mov byte [esp + 0xb3], bl
test ebx, ebx
jne 0x40e170
jmp 0x40e17e
mov dword [esp], ecx
lea edi, [ebx + 9]
and edi, 0xfffffff8
js 0x40e7f7
lea eax, [edi + edi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esp + 0xa8], eax
or edi, 0x80000000
mov dword [esp + 0xb0], edi
mov edi, eax
mov dword [esp + 0xac], ebx
mov ecx, dword [esp]
lea eax, [ebx + ebx]
push eax
push ecx
push edi
call fcn.006025b0
add esp, 0xc
mov word [edi + ebx*2], 0
lea ebx, [esp + 0xa8]
mov ecx, ebx
push 1
push 0x6391f0
call fcn.00468fc8
mov ecx, ebx
push str.chrome.diff
call fcn.00469188
mov ecx, dword [eax + 8]
mov dword [esp + 0x48], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x40], xmm0
xor edi, edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax], edi
cmp byte [ebx + 0xb], 0
jns 0x40e1d5
push dword [esp + 0xa8]
call fcn.00517bd6
add esp, 4
movzx ebx, byte [esp + 0x6b]
test bl, bl
cmovs ebx, dword [esp + 0x64]
mov dword [esp + 0xac], edi
mov eax, dword [esp + 4]
cmovs eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 0xa8], edi
mov dword [esp + 0xb0], edi
lea eax, [ebx + 1]
cmp eax, 0x7ffffff0
jae 0x40e7eb
cmp eax, 5
lea edi, [esp + 0xa8]
jae 0x40e22a
mov byte [esp + 0xb3], bl
test ebx, ebx
jne 0x40e25f
jmp 0x40e270
lea edi, [ebx + 9]
and edi, 0xfffffff8
js 0x40e7f7
lea eax, [edi + edi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esp + 0xa8], eax
or edi, 0x80000000
mov dword [esp + 0xb0], edi
mov edi, eax
mov dword [esp + 0xac], ebx
lea eax, [ebx + ebx]
push eax
push dword [esp + 8]
push edi
call fcn.006025b0
add esp, 0xc
mov word [edi + ebx*2], 0
lea edi, [esp + 0xa8]
mov ecx, edi
push 1
push 0x6391f0
call fcn.00468fc8
mov ecx, edi
push str.chrome.ext.diff
call fcn.00469188
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov cl, byte [eax + 0xb]
mov byte [esp + 4], cl
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
cmp byte [edi + 0xb], 0
jns 0x40e2c3
push dword [esp + 0xa8]
call fcn.00517bd6
add esp, 4
call fcn.004175be
lea edi, [esp + 0x34]
mov ecx, eax
push edi
call fcn.0041760e
lea ebx, [esp + 0x28]
mov ecx, ebx
push edi
call fcn.00468aa8
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x40e2f0
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x10]
mov ecx, edi
push eax
push ebx
call fcn.0046ed80
movzx eax, byte [esp + 0x9b]
test al, al
jns 0x40e319
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
jmp 0x40e320
lea edx, [esp + 0x90]
lea ebx, [esp + 0x1c]
mov ecx, edi
push eax
push edx
push ebx
call fcn.0046fbd0
cmp word [str.Installer], 0
je 0x40e34c
xor ecx, ecx
lea eax, [ecx + 1]
cmp word [ecx + ecx + 0x64977c], 0
mov ecx, eax
jne 0x40e33a
jmp 0x40e34e
xor eax, eax
lea ecx, [esp + 0x1c]
push eax
push str.Installer
lea edi, [esp + 0xb0]
push edi
call fcn.0046fbd0
lea ebx, [esp + 0x28]
mov ecx, ebx
push edi
call fcn.00468c2e
mov ecx, edi
call fcn.0046ee40
lea ecx, [esp + 0x1c]
call fcn.0046ee40
lea ecx, [esp + 0x10]
call fcn.0046ee40
lea ecx, [esp + 0x1c]
push ebx
call fcn.00468aa8
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x40e3a4
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x10]
push eax
push ebx
call fcn.0046ed80
cmp word [str.chrome.7z], 0
je 0x40e3cd
xor ecx, ecx
lea eax, [ecx + 1]
cmp word [ecx + ecx + 0x648f46], 0
mov ecx, eax
jne 0x40e3bb
jmp 0x40e3cf
xor eax, eax
lea ebx, [esp + 0x10]
mov ecx, ebx
push eax
push str.chrome.7z
lea edi, [esp + 0xb0]
push edi
call fcn.0046fbd0
lea ecx, [esp + 0x28]
mov dword [esp], ecx
push edi
call fcn.00468c2e
mov ecx, edi
call fcn.0046ee40
mov ecx, ebx
call fcn.0046ee40
movzx eax, byte [esp + 0x27]
test al, al
lea edx, [esp + 0x1c]
jns 0x40e418
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x10]
push eax
push edx
call fcn.0046ed80
cmp word [str.chrome.ext.7z], 0
je 0x40e441
xor ecx, ecx
lea eax, [ecx + 1]
cmp word [ecx + ecx + 0x648f72], 0
mov ecx, eax
jne 0x40e42f
jmp 0x40e443
xor eax, eax
lea edi, [esp + 0x10]
mov ecx, edi
push eax
push str.chrome.ext.7z
lea ebx, [esp + 0xb0]
push ebx
call fcn.0046fbd0
lea ecx, [esp + 0x1c]
push ebx
call fcn.00468c2e
mov ecx, ebx
call fcn.0046ee40
mov ecx, edi
call fcn.0046ee40
push 0xc8
push 0
push ebx
call fcn.006030b0
add esp, 0xc
cmp byte [esp + 0x3f], 0
lea edx, [esp + 0x34]
jns 0x40e493
mov edx, dword [esp + 0x34]
cmp byte [esp + 0x4b], 0
lea edi, [esp + 0x84]
jns 0x40e4a7
mov eax, dword [esp + 0x40]
jmp 0x40e4ab
lea eax, [esp + 0x40]
cmp byte [esp + 0x33], 0
jns 0x40e4b9
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
sub esp, 0x18
lea ebx, [esp + 0xc0]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call 0x40e7fc
mov byte [esp], al
lea ecx, [esp + 0x50]
push ebx
call fcn.0046930c
xor ebx, ebx
cmp byte [esp], 0
jne 0x40e4fe
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
mov ebx, eax
cmp byte [esp + 0x27], 0
jns 0x40e511
push dword [esp + 0x1c]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x33], 0
jns 0x40e524
push dword [esp + 0x28]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x3f], 0
jns 0x40e537
push dword [esp + 0x34]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 4], 0
jns 0x40e54a
push dword [esp + 0xc]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x4b], 0
jns 0x40e55d
push dword [esp + 0x40]
call fcn.00517bd6
add esp, 4
test ebx, ebx
je 0x40e56a
mov dword [esp], 0
jmp 0x40e5c9
call fcn.00436db0
mov ecx, eax
push 0x1a2
push 0x1c
call fcn.004374f6
cmp byte [esp + 0x9b], 0
jns 0x40e590
mov eax, dword [esp + 0x90]
jmp 0x40e597
lea eax, [esp + 0x90]
lea ecx, [esp + 0x50]
cmp byte [esp + 0x5b], 0
jns 0x40e5a6
mov ecx, dword [esp + 0x50]
push eax
push ecx
call fcn.00438124
add esp, 8
mov cl, 1
mov dword [esp], ecx
xor ebx, ebx
test eax, eax
jg 0x40e5c9
call fcn.00436db0
mov ecx, eax
call fcn.004374ec
mov ebx, eax
movzx eax, byte [esp + 0x77]
test al, al
jns 0x40e5dc
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
jmp 0x40e5e0
lea edx, [esp + 0x6c]
mov ecx, esi
push eax
push edx
call fcn.0046ed80
push esi
call fcn.00482020
add esp, 4
mov ecx, esi
call fcn.0046ee40
cmp byte [esp], 0
je 0x40e6d9
movzx eax, byte [esp + 0x5b]
test al, al
jns 0x40e610
mov eax, dword [esp + 0x54]
test eax, eax
je 0x40e6d9
movzx eax, byte [esp + 0x8f]
test al, al
jns 0x40e632
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov ecx, esi
push eax
push edi
call fcn.0046ed80
movzx eax, byte [esp + 0x5b]
test al, al
jns 0x40e64e
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
jmp 0x40e652
lea edx, [esp + 0x50]
lea edi, [esp + 0x40]
mov ecx, esi
push eax
push edx
push edi
call fcn.0046fbd0
mov ecx, esi
push edi
call fcn.0046ee80
mov ecx, edi
call fcn.0046ee40
push esi
call fcn.00482020
add esp, 4
call fcn.004175be
lea edi, [esp + 0x34]
mov ecx, eax
push 0
push edi
call fcn.004182fa
movzx eax, byte [edi + 0xb]
test al, al
jns 0x40e69b
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x40]
push eax
push edi
call fcn.0046ed80
cmp byte [esp + 0x3f], 0
jns 0x40e6b9
push dword [esp + 0x34]
call fcn.00517bd6
add esp, 4
lea edi, [esp + 0x40]
push edi
call fcn.00482020
add esp, 4
mov ecx, edi
call fcn.0046ee40
lea ecx, [esp + 0xa8]
call fcn.0046ee40
movzx eax, byte [esp + 0x5b]
mov ecx, eax
test al, al
jns 0x40e6e8
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x40e7b6
push 0x820
push 0
push esi
call fcn.006030b0
add esp, 0xc
call fcn.004175be
lea edi, [esp + 0x50]
lea edx, [esp + 0x40]
mov ecx, eax
push edi
push edx
call fcn.004184d6
cmp byte [esp + 0x9b], 0
jns 0x40e72b
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
cmp byte [esp + 0x5b], 0
jns 0x40e736
mov edi, dword [esp + 0x50]
mov dword [esp], edi
lea edi, [esp + 0x34]
mov ecx, dword [ebp + 8]
push edi
call fcn.0046cdd0
cmp byte [edi + 0xb], 0
jns 0x40e750
mov edi, dword [esp + 0x34]
cmp byte [esp + 0x4b], 0
lea eax, [esp + 0x40]
jns 0x40e75f
mov eax, dword [esp + 0x40]
push dword [esp + 8]
push dword [esp + 4]
push edi
push eax
push str.__s___s___diffupdatesecondproc___installer_version_s____installed_version_s
push 0xffffffffffffffff
push 0x410
push esi
call fcn.00401af6
add esp, 0x20
cmp byte [esp + 0x3f], 0
jns 0x40e791
push dword [esp + 0x34]
call fcn.00517bd6
add esp, 4
push 0x7530
push esi
call fcn.00437d75
add esp, 8
cmp byte [esp + 0x4b], 0
jns 0x40e7b2
push dword [esp + 0x40]
call fcn.00517bd6
add esp, 4
mov al, byte [esp + 0x5b]
test al, al
jns 0x40e7c6
push dword [esp + 0x50]
call fcn.00517bd6
add esp, 4
lea ecx, [esp + 0x60]
call fcn.0046ee40
cmp byte [esp + 0x77], 0
jns 0x40df28
push dword [esp + 0x6c]
call fcn.00517bd6
add esp, 4
jmp 0x40df28
lea ecx, [esp + 0xa8]
call fcn.00467d64
call fcn.0061842c
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov ebx, dword [ebp + 0x18]
mov eax, dword [0x6f4e3c]
xor eax, ebp
mov dword [esp + 0x88], eax
xor esi, esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x80], esi
call fcn.00411d12
mov ecx, eax
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.00412016
test eax, eax
je 0x40e857
mov edi, eax
lea eax, [esp + 0x68]
mov dword [eax + 4], esi
mov dword [eax], esi
mov dword [esp + 4], eax
mov dword [eax + 8], esi
jmp 0x40e882
call fcn.00411d12
mov ecx, eax
push ebx
call fcn.004128f0
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], esi
test eax, eax
je 0x40ea76
mov edi, eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.004175be
lea esi, [esp + 0x5c]
mov ecx, eax
push esi
call fcn.004185de
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
movzx ebx, byte [esi + 0xb]
test bl, bl
jns 0x40e8b1
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
lea eax, [ebx + 0xd]
cmp eax, 0x7ffffff0
jae 0x40ee96
cmp eax, 4
mov dword [esp + 8], edi
ja 0x40e8d1
lea edi, [esp + 0x50]
mov byte [edi + 0xb], bl
jmp 0x40e909
mov dword [esp + 0xc], esi
lea esi, [ebx + 0x15]
and esi, 0xfffffff8
js 0x40ee9f
lea eax, [esi + esi]
push eax
call fcn.00517b56
add esp, 4
mov edi, eax
mov dword [esp + 0x50], eax
or esi, 0x80000000
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], ebx
test ebx, ebx
mov esi, dword [esp + 0xc]
je 0x40e917
lea eax, [ebx + ebx]
push eax
push esi
push edi
call fcn.006025b0
add esp, 0xc
mov word [edi + ebx*2], 0
lea ecx, [esp + 0x50]
push 0xd
push str._new_core.zip
call fcn.00468fc8
cmp byte [esp + 0x73], 0
js 0x40e94c
mov word [esp + 0x68], 0
mov byte [esp + 0x73], 0
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 4]
jmp 0x40e982
mov eax, dword [esp + 0x68]
mov word [eax], 0
mov dword [esp + 0x6c], 0
cmp byte [esp + 0x73], 0
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 4]
jns 0x40e982
push dword [esp + 0x68]
call fcn.00517bd6
add esp, 4
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x58]
mov dword [ebx + 8], eax
movsd xmm0, qword [esp + 0x50]
movsd qword [ebx], xmm0
lea ebx, [esp + 0x50]
mov ecx, ebx
push edi
call fcn.00401a6c
lea edi, [esp + 0x40]
mov ecx, edi
push esi
call fcn.00401a6c
lea eax, [esp + 0x68]
push eax
push ebx
mov ebx, edi
push edi
call fcn.0041332f
add esp, 0xc
mov edi, eax
cmp byte [ebx + 0xb], 0
jns 0x40e9d0
push dword [esp + 0x40]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x5b], 0
jns 0x40e9e3
push dword [esp + 0x50]
call fcn.00517bd6
add esp, 4
test edi, edi
mov esi, dword [esp + 8]
jne 0x40ea58
xor esi, esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
lea edi, [esp + 0x30]
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00401a6c
push ebx
lea eax, [esp + 0x54]
push eax
push edi
push esi
lea eax, [esp + 0x78]
push eax
call fcn.0040240c
add esp, 0x14
mov esi, eax
cmp byte [edi + 0xb], 0
jns 0x40ea3c
push dword [esp + 0x30]
call fcn.00517bd6
add esp, 4
xor eax, eax
test esi, esi
setne al
lea esi, [eax + eax*4]
lea ecx, [esp + 0x40]
call fcn.00403fbe
lea ecx, [esp + 0x50]
call fcn.00403fbe
cmp byte [esp + 0x67], 0
jns 0x40ea6b
push dword [esp + 0x5c]
call fcn.00517bd6
add esp, 4
test esi, esi
mov ebx, dword [ebp + 0x18]
jne 0x40ee51
call fcn.004175be
lea edi, [esp + 0x5c]
mov ecx, eax
push 1
push edi
call fcn.004182fa
xor eax, eax
lea esi, [esp + 0x50]
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
push esi
push edi
call fcn.0043800e
add esp, 8
mov edi, eax
test eax, eax
je 0x40ee17
mov dword [esp + 8], edi
mov edi, dword [ebp + 0x1c]
cmp byte [esp + 0x5b], 0
jns 0x40eabd
mov esi, dword [esp + 0x50]
push 0xffffffffffffffff
push esi
push 0x64
push edi
call fcn.00620e3e
add esp, 0x10
call fcn.004175be
lea esi, [esp + 0x30]
mov ecx, esi
push edi
call fcn.00401a6c
lea edi, [esp + 0x20]
mov ecx, edi
push ebx
call fcn.00401a6c
lea ebx, [esp + 0x40]
push esi
push edi
push ebx
call fcn.00418416
add esp, 0xc
cmp byte [esp + 0x83], 0
js 0x40eb12
mov word [esp + 0x78], 0
mov byte [esp + 0x83], 0
jmp 0x40eb44
mov eax, dword [esp + 0x78]
mov word [eax], 0
mov dword [esp + 0x7c], 0
cmp byte [esp + 0x83], 0
jns 0x40eb44
push dword [esp + 0x78]
call fcn.00517bd6
add esp, 4
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x78], xmm0
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
cmp byte [esp + 0x2b], 0
jns 0x40eb7c
push dword [esp + 0x20]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x3b], 0
jns 0x40eb8f
push dword [esp + 0x30]
call fcn.00517bd6
add esp, 4
lea edi, [esp + 0x78]
movzx eax, byte [edi + 0xb]
mov edx, edi
test al, al
jns 0x40eba5
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov ecx, ebx
push eax
push edx
call fcn.0046ed80
push ebx
call fcn.004714a0
add esp, 4
mov ecx, ebx
call fcn.0046ee40
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
movzx ebx, byte [esp + 0x83]
test bl, bl
jns 0x40ebe0
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
lea ecx, [ebx + 1]
cmp ecx, 0x7ffffff0
lea eax, [esp + 0x30]
jae 0x40eea4
cmp ecx, 5
jae 0x40ec02
mov byte [esp + 0x3b], bl
test ebx, ebx
jne 0x40ec2c
jmp 0x40ec3e
lea esi, [ebx + 9]
and esi, 0xfffffff8
js 0x40ee9f
lea eax, [esi + esi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esp + 0x30], eax
or esi, 0x80000000
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
lea ecx, [ebx + ebx]
push ecx
push edi
push eax
mov esi, eax
call fcn.006025b0
mov eax, esi
add esp, 0xc
mov word [eax + ebx*2], 0
lea edi, [esp + 0x30]
mov ecx, edi
push 1
push 0x6391f0
call fcn.00468fc8
mov ecx, edi
push str.chrome.7z
call fcn.00469188
mov ecx, dword [eax + 8]
mov dword [esp + 0x48], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x40], xmm0
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax], ecx
cmp byte [edi + 0xb], 0
jns 0x40ec8f
push dword [esp + 0x30]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x73], 0
mov edi, dword [esp + 8]
lea esi, [esp + 0x40]
jns 0x40eca4
mov eax, dword [esp + 0x68]
jmp 0x40eca8
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40eccd
cmp byte [esp + 0x4b], 0
mov eax, esi
jns 0x40ecc0
mov eax, dword [esp + 0x40]
cmp byte [esp + 0x73], 0
jns 0x40ed16
mov ecx, dword [esp + 0x68]
jmp 0x40ed1a
call fcn.00411d12
xor ecx, ecx
lea esi, [esp + 0x78]
movzx ebx, byte [esi + 0xb]
test bl, bl
cmovs ebx, dword [esi + 4]
mov dword [esp + 0x14], ecx
cmovs esi, dword [esi]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
lea ecx, [ebx + 1]
cmp ecx, 0x7ffffff0
jae 0x40eead
cmp ecx, 5
mov dword [esp + 4], eax
jae 0x40ed29
lea eax, [esp + 0x10]
mov byte [eax + 0xb], bl
test ebx, ebx
jne 0x40ed57
jmp 0x40ed69
lea ecx, [esp + 0x68]
push 3
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x40ee05
lea edi, [ebx + 9]
and edi, 0xfffffff8
js 0x40ee9f
lea eax, [edi + edi]
push eax
call fcn.00517b56
add esp, 4
mov dword [esp + 0x10], eax
or edi, 0x80000000
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 8]
lea ecx, [ebx + ebx]
push ecx
push esi
push eax
mov esi, eax
call fcn.006025b0
mov eax, esi
add esp, 0xc
mov word [eax + ebx*2], 0
lea ebx, [esp + 0x10]
mov ecx, ebx
push 1
push 0x6391f0
call fcn.00468fc8
mov ecx, ebx
push str.chrome.7z
call fcn.00469188
mov ecx, dword [eax + 8]
mov dword [esp + 0x28], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x20], xmm0
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
movzx eax, byte [esp + 0x2b]
test al, al
lea edx, [esp + 0x20]
jns 0x40edbd
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
lea esi, [esp + 0x30]
mov ecx, esi
push eax
push edx
call fcn.0046ed80
mov ecx, dword [esp + 4]
push esi
call fcn.00412042
mov ecx, esi
call fcn.0046ee40
cmp byte [esp + 0x2b], 0
lea esi, [esp + 0x40]
jns 0x40edf2
push dword [esp + 0x20]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x1b], 0
jns 0x40ee05
push dword [esp + 0x10]
call fcn.00517bd6
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x40ee17
push dword [esp + 0x40]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x5b], 0
jns 0x40ee2a
push dword [esp + 0x50]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x67], 0
jns 0x40ee3d
push dword [esp + 0x5c]
call fcn.00517bd6
add esp, 4
test edi, edi
je 0x40ee51
call fcn.0040f010
mov ecx, eax
call fcn.0040fb14
mov bl, 1
jmp 0x40ee53
xor ebx, ebx
cmp byte [esp + 0x73], 0
jns 0x40ee66
push dword [esp + 0x68]
call fcn.00517bd6
add esp, 4
cmp byte [esp + 0x83], 0
jns 0x40ee7c
push dword [esp + 0x78]
call fcn.00517bd6
add esp, 4
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.00517c1a
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
lea ecx, [esp + 0x50]
call fcn.00467d64
call fcn.0061842c
lea ecx, [esp + 0x30]
call fcn.00467d64
lea ecx, [esp + 0x10]
call fcn.00467d64
int3