Function at 0x408220
Capabilities:
Accept command line arguments
Copy file
Delete directory
Delete file
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10d8
call fcn.0040f950
mov eax, dword [0x4241dc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x824], ax
lea eax, [ebp - 0x822]
push eax
mov byte [ebp - 0x10a4], 0
xor bl, bl
call fcn.0040ffd0
add esp, 0xc
push 0x41a284
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.SetDefaultDllDirectories
push 0x41a3e4
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x408290
push 0x800
call eax
lea ecx, [ebp - 0x10d8]
call fcn.00402650
call fcn.004077b0
push 0
call esi
mov dword [ebp - 0x1098], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x10bc]
call fcn.00401070
lea eax, [ebp - 0x10a0]
push eax
lea ecx, [ebp - 0x10bc]
call fcn.00402110
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push 0x208
mov edi, eax
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0040ffd0
mov esi, 1
add esp, 0xc
cmp dword [ebp - 0x10a0], esi
jle 0x408348
lea ebx, [ebx]
push dword [edi + esi*4]
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.0040f334
mov ecx, dword [ebp - 0x10a0]
add esp, 0xc
lea eax, [ecx - 1]
cmp esi, eax
jge 0x408343
push 0x41aa20
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.0040f334
mov ecx, dword [ebp - 0x10a0]
add esp, 0xc
inc esi
cmp esi, ecx
jl 0x408300
lea eax, [ebp - 0x20c]
push 0x41aa24
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
jne 0x4083f4
lea eax, [ebp - 0x20c]
push str._Embedding
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
jne 0x4083f4
lea eax, [ebp - 0x20c]
push str._uninstall
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
jne 0x4083f4
lea eax, [ebp - 0x20c]
push str._check
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
jne 0x4083f4
lea eax, [ebp - 0x20c]
push str._update
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
jne 0x4083f4
lea eax, [ebp - 0x20c]
push str._maintain
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
jne 0x4083f4
lea eax, [ebp - 0x20c]
push str._refreshIEElevationPolicies
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
je 0x4083fb
mov byte [ebp - 0x10a4], 1
lea eax, [ebp - 0x20c]
push str._relaunched
push eax
call fcn.0040f62e
add esp, 8
test eax, eax
push 0x104
movzx ecx, bl
lea eax, [ebp - 0xc34]
mov edx, 1
push eax
cmovne ecx, edx
push 0
mov byte [ebp - 0x1090], cl
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0xc34]
push eax
lea eax, [ebp - 0xa2c]
push 0x104
push eax
call fcn.0040f3a0
lea eax, [ebp - 0xa2c]
push 0x5c
push eax
call fcn.0040f588
add esp, 0x14
test eax, eax
je 0x408468
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0xa2c]
push eax
call fcn.00406510
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
add esp, 4
test al, al
jne 0x4084cc
push 0x104
lea eax, [ebp - 0x1044]
push eax
call esi
lea eax, [ebp - 0x1044]
push eax
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0040f3a0
push str.MacromedTemp
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0040f334
lea eax, [ebp - 0x414]
push eax
call fcn.004035d0
add esp, 0x1c
lea eax, [ebp - 0xa2c]
push eax
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0040f3a0
push str..dll
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0040f334
add esp, 0x18
lea eax, [ebp - 0x108c]
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x408607
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 0x10a4]
lea eax, [ebp - 0x61c]
push eax
xor esi, esi
call fcn.00405e60
add esp, 8
test al, al
jne 0x408546
mov esi, 0x6e2
jmp 0x408600
push 1
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0xc34]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40856a
mov esi, 0x6e0
jmp 0x408600
push 0
sub esp, 8
lea eax, [ebp - 0x20c]
mov ecx, esp
push eax
call fcn.00401070
sub esp, 8
lea eax, [ebp - 0x61c]
mov ecx, esp
push eax
call fcn.00401070
call fcn.00407100
add esp, 0x14
test al, al
mov ecx, 0x6e1
lea eax, [ebp - 0x61c]
cmove esi, ecx
push eax
lea ecx, [ebp - 0x1094]
call fcn.00401070
push 0
push 0x41a47c
lea eax, [ebp - 0x109c]
push eax
lea ecx, [ebp - 0x1094]
call fcn.00401ef0
lea ecx, [ebp - 0x109c]
call fcn.004010d0
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x1094]
call fcn.00402110
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea ecx, [ebp - 0x1094]
call fcn.004010d0
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push dword [ebp - 0x1090]
lea eax, [ebp - 0x824]
push eax
call fcn.004080c0
push 0x1c
call fcn.0040e59c
add esp, 0xc
test eax, eax
je 0x408632
mov ecx, eax
call fcn.00408830
mov ebx, eax
jmp 0x408634
xor ebx, ebx
push 0x104
lea eax, [ebp - 0xe3c]
push eax
call esi
lea eax, [ebp - 0xe3c]
push eax
lea ecx, [ebp - 0x10b4]
call fcn.00401070
lea eax, [ebp - 0x10b4]
push eax
lea ecx, [ebp - 0x10ac]
call fcn.00401000
sub esp, 8
mov ecx, esp
push str.Macromed
call fcn.00401070
push 0x5c
lea ecx, [ebp - 0x10ac]
call fcn.004014e0
sub esp, 8
mov ecx, esp
push str.Flash
call fcn.00401070
push 0x5c
lea ecx, [ebp - 0x10ac]
call fcn.004014e0
push 0x2ec
call fcn.0040e59c
add esp, 4
test eax, eax
je 0x4086ce
lea ecx, [ebp - 0x824]
push ecx
push dword [ebp - 0x10a4]
mov ecx, eax
push ebx
push dword [ebp - 0x1098]
call fcn.00402730
mov edi, eax
jmp 0x4086d0
xor edi, edi
lea eax, [ebp - 0x10b4]
push eax
lea ecx, [ebp - 0x1094]
call fcn.00401000
sub esp, 8
lea eax, [ebp - 0x1094]
mov ecx, esp
push eax
call fcn.00401000
lea ecx, [edi + 0x218]
call fcn.00401820
lea ecx, [ebp - 0x1094]
call fcn.004010d0
lea eax, [ebp - 0x10ac]
push eax
lea ecx, [ebp - 0x1094]
call fcn.00401000
sub esp, 8
lea eax, [ebp - 0x1094]
mov ecx, esp
push eax
call fcn.00401000
lea ecx, [edi + 0x228]
call fcn.00401820
lea ecx, [ebp - 0x1094]
call fcn.004010d0
lea eax, [ebp - 0x10c4]
push eax
mov ecx, edi
call fcn.00405e20
sub esp, 8
lea eax, [ebp - 0x10bc]
mov ecx, esp
push eax
call fcn.00401000
mov ecx, edi
call fcn.004037a0
mov dword [ebp - 0x1098], eax
lea eax, [ebp - 0x10cc]
push eax
mov ecx, edi
call fcn.00406070
mov esi, dword [ebx]
sub esp, 8
mov ecx, esp
push str.FlashInstall32.log
call fcn.00401070
push 0x5c
lea ecx, [ebp - 0x10c4]
call fcn.004014e0
sub esp, 8
mov ecx, esp
push eax
call fcn.00401000
mov ecx, ebx
call dword [esi + 0x1c]
mov ecx, ebx
call fcn.00408920
push ebx
call fcn.0040e610
add esp, 4
test edi, edi
je 0x4087ce
mov ecx, edi
call fcn.00402db0
push edi
call fcn.0040e610
add esp, 4
xor esi, esi
cmp dword [0x425004], esi
jle 0x4087f3
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, edi
mov eax, dword [0x425000]
push dword [eax + esi*4]
call edi
inc esi
cmp esi, dword [0x425004]
jl 0x4087e0
push dword [0x425000]
mov dword [0x425004], 0
call fcn.0040e610
add esp, 4
mov dword [0x425000], 0
push dword [ebp - 0x1098]
call dword [sym.imp.KERNEL32.dll_ExitProcess]