Function at 0x403460
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x495e7a
mov eax, dword fs:[0]
push eax
sub esp, 0x354
mov eax, dword [0x4bc040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x2e0]
xor eax, eax
mov dword [ebp - 0x318], edi
mov dword [ebp - 0x250], eax
push 5
push str.win64
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], 7
mov word [ebp - 0x2e0], ax
call fcn.004015e0
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2b4], 7
mov word [ebp - 0x2c8], ax
push 0x12
push str.Creative_Cloud.exe
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 1
call fcn.004015e0
xor eax, eax
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], 7
mov word [ebp - 0x2b0], ax
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 2
call fcn.0040dc70
push 3
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af100
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
push ecx
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2b0]
call fcn.0040de50
mov byte [ebp - 4], 2
add esp, 4
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4035bf
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4035b5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059b0
push edx
push ecx
call fcn.00475cec
add esp, 8
push ecx
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x2b0]
call fcn.0040de50
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [ebp - 0x2b0]
add esp, 4
cmp dword [ebp - 0x29c], 8
cmovae eax, dword [ebp - 0x2b0]
push eax
call esi
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x403726
push 0
push 0x26
lea eax, [ebp - 0x218]
push eax
push 0
call edi
test eax, eax
je 0x403654
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403620
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2b0]
call fcn.004015e0
push 0x1b
push str.AdobeAdobe_Creative_Cloud
lea ecx, [ebp - 0x2b0]
call fcn.00405f60
push 3
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af100
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
push ecx
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2b0]
call fcn.0040de50
mov byte [ebp - 4], 2
add esp, 4
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4036e0
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4036d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059b5
push edx
push ecx
call fcn.00475cec
add esp, 8
push ecx
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x2b0]
call fcn.0040de50
add esp, 4
lea eax, [ebp - 0x2b0]
cmp dword [ebp - 0x29c], 8
cmovae eax, dword [ebp - 0x2b0]
push eax
call esi
test eax, eax
je 0x404906
push 5
push str.win32
lea ecx, [ebp - 0x2e0]
call fcn.004015e0
push ecx
lea edx, [ebp - 0x30c]
lea ecx, [ebp - 0x2b0]
call fcn.0040e090
xor eax, eax
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 7
mov word [ebp - 0x268], ax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x30c]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 8
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 6
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 5
call fcn.0040fa60
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x280]
call fcn.00405bf0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x308]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 8
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
call fcn.0040fa60
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2fc]
xor eax, eax
mov dword [ebp - 0x2ec], 0
mov word [ebp - 0x2fc], ax
mov eax, dword [ebp - 0x270]
inc eax
mov dword [ebp - 0x2e8], 7
push eax
mov dword [ebp - 0x250], 1
call fcn.00405de0
cmp dword [ebp - 0x26c], 8
lea eax, [ebp - 0x280]
push dword [ebp - 0x270]
cmovae eax, dword [ebp - 0x280]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
push 1
push 0x4af114
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
cmp dword [ebp - 0x254], 8
lea eax, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x230], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x280]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x230]
push eax
movq qword [ebp - 0x220], xmm0
call fcn.00405b60
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x40393d
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403933
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059ba
push edx
push ecx
call fcn.00475cec
add esp, 8
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x2e8]
cmp edx, 8
jb 0x403981
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403977
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059ba
push edx
push ecx
call fcn.00475cec
add esp, 8
mov eax, dword [ebp - 0x304]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0xa
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
call fcn.0040fa60
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x2fc]
xor eax, eax
mov dword [ebp - 0x2ec], 0
mov word [ebp - 0x2fc], ax
mov eax, dword [ebp - 0x270]
inc eax
mov dword [ebp - 0x2e8], 7
push eax
mov dword [ebp - 0x250], 6
call fcn.00405de0
cmp dword [ebp - 0x26c], 8
lea eax, [ebp - 0x280]
push dword [ebp - 0x270]
cmovae eax, dword [ebp - 0x280]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
push 1
push 0x4af114
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
cmp dword [ebp - 0x254], 8
lea eax, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x230], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x280]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x230]
push eax
movq qword [ebp - 0x220], xmm0
call fcn.00405b60
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x403af2
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403ae8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059bf
push edx
push ecx
call fcn.00475cec
add esp, 8
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x2e8]
cmp edx, 8
jb 0x403b36
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403b2c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059bf
push edx
push ecx
call fcn.00475cec
add esp, 8
lea eax, [ebp - 0x280]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00405bf0
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x300]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0xd
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
call fcn.0040fa60
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2fc]
xor eax, eax
mov dword [ebp - 0x2ec], 0
mov word [ebp - 0x2fc], ax
mov eax, dword [ebp - 0x23c]
inc eax
mov dword [ebp - 0x2e8], 7
push eax
mov dword [ebp - 0x250], 0x1a
call fcn.00405de0
cmp dword [ebp - 0x238], 8
lea eax, [ebp - 0x24c]
push dword [ebp - 0x23c]
cmovae eax, dword [ebp - 0x24c]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
push 1
push 0x4af114
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
cmp dword [ebp - 0x254], 8
lea eax, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x230], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x24c]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x230]
push eax
movq qword [ebp - 0x220], xmm0
call fcn.00405b60
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x403cbd
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403cb3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059c4
push edx
push ecx
call fcn.00475cec
add esp, 8
mov byte [ebp - 4], 0xc
mov eax, 0x2a
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x234], eax
cmp edx, 8
jb 0x403d0c
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403d02
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059c4
push edx
push ecx
call fcn.00475cec
add esp, 8
mov dword [ebp - 0x250], 0
xor eax, eax
mov byte [ebp - 4], 0xf
push eax
push 0x4aeee0
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x314]
push 0xb
xor eax, eax
mov dword [ebp - 0x304], 0
push str.ProductInfo
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
lea eax, [ebp - 0x250]
mov byte [ebp - 4], 0x11
push eax
push ecx
mov ecx, dword [ebp + 0x10]
mov eax, esp
mov ecx, dword [ecx]
mov dword [eax], ecx
test ecx, ecx
je 0x403d9a
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov edi, dword [ebp - 0x318]
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x314]
mov ecx, edi
push eax
call fcn.00407690
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x403df9
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403def
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059c9
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x403e5a
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403e50
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059c9
push edx
push ecx
call fcn.00475cec
add esp, 8
push 4
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af118
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x314]
push 7
xor eax, eax
mov dword [ebp - 0x304], 0
push 0x4aefb8
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
push ecx
mov eax, esp
mov byte [ebp - 4], 0x13
mov esi, dword [ebp - 0x250]
mov dword [eax], esi
test esi, esi
je 0x403ed5
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x403f2e
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403f24
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059ce
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x403f8f
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403f85
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059ce
push edx
push ecx
call fcn.00475cec
add esp, 8
push 0xc
xor eax, eax
mov dword [ebp - 0x220], 0
push str.CodexVersion
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x14
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x403fd1
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x280]
mov ecx, edi
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x40402a
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404020
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059d3
push edx
push ecx
call fcn.00475cec
add esp, 8
push 8
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4aefe4
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x15
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x40406c
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x2e0]
mov ecx, edi
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4040c5
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4040bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059d8
push edx
push ecx
call fcn.00475cec
add esp, 8
push 3
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af124
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x314]
push 0xd
xor eax, eax
mov dword [ebp - 0x304], 0
push str.InstallerType
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
mov byte [ebp - 4], 0x17
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x40413a
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x404193
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404189
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059dd
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x4041f4
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4041ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059dd
push edx
push ecx
call fcn.00475cec
add esp, 8
push 4
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4aef18
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x314]
push 0x10
xor eax, eax
mov dword [ebp - 0x304], 0
push str.IsVisibleProduct
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
mov byte [ebp - 4], 0x19
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x404269
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x4042c2
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4042b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059e2
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x404323
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404319
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059e2
push edx
push ecx
call fcn.00475cec
add esp, 8
push 5
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4aef94
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x314]
push 0xc
xor eax, eax
mov dword [ebp - 0x304], 0
push str.IsUWPProduct
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
mov byte [ebp - 4], 0x1b
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x404398
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x4043f1
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4043e7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059e7
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x404452
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404448
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059e7
push edx
push ecx
call fcn.00475cec
add esp, 8
push 0xc
xor eax, eax
mov dword [ebp - 0x220], 0
push str.LaunchString
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x1c
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x404494
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x2b0]
mov ecx, edi
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4044ed
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4044e3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059ec
push edx
push ecx
call fcn.00475cec
add esp, 8
push 3
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af12c
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x314]
push 0xf
xor eax, eax
mov dword [ebp - 0x304], 0
push str.InstallLanguage
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
mov byte [ebp - 4], 0x1e
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x404562
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x4045bb
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4045b1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059f1
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x40461c
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404612
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059f1
push edx
push ecx
call fcn.00475cec
add esp, 8
push 0x16
xor eax, eax
mov dword [ebp - 0x220], 0
push str.Creative_Cloud_Desktop
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x314]
push 0xb
xor eax, eax
mov dword [ebp - 0x304], 0
push str.DisplayName
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
call fcn.004015e0
mov byte [ebp - 4], 0x20
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x404691
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x300]
cmp edx, 8
jb 0x4046ea
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4046e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059f6
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
mov word [ebp - 0x314], ax
cmp edx, 8
jb 0x40474b
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404741
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059f6
push edx
push ecx
call fcn.00475cec
add esp, 8
push 0xc
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af0b0
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
mov byte [ebp - 4], 0x21
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x40478d
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x24c]
mov ecx, edi
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4047e6
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4047dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4059fb
push edx
push ecx
call fcn.00475cec
add esp, 8
mov byte [ebp - 4], 0xc
test esi, esi
je 0x4047f4
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x404838
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40482e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a00
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
cmp edx, 8
jb 0x404899
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40488f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a00
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x254]
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
cmp edx, 8
jb 0x4048fa
mov ecx, dword [ebp - 0x268]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4048f0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a00
push edx
push ecx
call fcn.00475cec
add esp, 8
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push 0x19
push str.Adobe_Desktop_Service.exe
lea ecx, [ebp - 0x2c8]
call fcn.004015e0
xor eax, eax
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 7
mov word [ebp - 0x298], ax
lea ecx, [ebp - 0x298]
mov byte [ebp - 4], 0x22
call fcn.0040da90
test al, al
je 0x40495a
push 0x15
push str.Adobe_Desktop_Common
lea ecx, [ebp - 0x298]
call fcn.00405f60
push 3
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af198
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
push ecx
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x298]
call fcn.0040de50
mov byte [ebp - 4], 0x22
add esp, 4
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4049e6
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4049dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a05
push edx
push ecx
call fcn.00475cec
add esp, 8
push ecx
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x298]
call fcn.0040de50
add esp, 4
lea eax, [ebp - 0x298]
cmp dword [ebp - 0x284], 8
cmovae eax, dword [ebp - 0x298]
push eax
call esi
test eax, eax
jne 0x404b3b
push eax
push 0x2b
lea eax, [ebp - 0x218]
push eax
push 0
call edi
test eax, eax
je 0x404a69
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404a35
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x298]
call fcn.004015e0
push 0x1b
push str.AdobeAdobe_Desktop_Common
lea ecx, [ebp - 0x298]
call fcn.00405f60
push 3
xor eax, eax
mov dword [ebp - 0x220], 0
push 0x4af198
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.004015e0
push ecx
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x298]
call fcn.0040de50
mov byte [ebp - 4], 0x22
add esp, 4
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x404af5
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404aeb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a0a
push edx
push ecx
call fcn.00475cec
add esp, 8
push ecx
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x298]
call fcn.0040de50
add esp, 4
lea eax, [ebp - 0x298]
cmp dword [ebp - 0x284], 8
cmovae eax, dword [ebp - 0x298]
push eax
call esi
test eax, eax
je 0x405967
push 5
push str.win32
lea ecx, [ebp - 0x2e0]
call fcn.004015e0
push ecx
lea edx, [ebp - 0x30c]
lea ecx, [ebp - 0x298]
call fcn.0040e090
xor eax, eax
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 7
mov word [ebp - 0x268], ax
mov byte [ebp - 4], 0x25
mov eax, dword [ebp - 0x30c]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 8
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x26
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x25
call fcn.0040fa60
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x280]
call fcn.00405bf0
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x308]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x28
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
call fcn.0040fa60
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x2fc]
mov esi, dword [ebp - 0x234]
xor eax, eax
mov word [ebp - 0x2fc], ax
or esi, 0x40
mov eax, dword [ebp - 0x270]
inc eax
mov dword [ebp - 0x2ec], 0
push eax
mov dword [ebp - 0x2e8], 7
mov dword [ebp - 0x250], esi
call fcn.00405de0
cmp dword [ebp - 0x26c], 8
lea eax, [ebp - 0x280]
push dword [ebp - 0x270]
cmovae eax, dword [ebp - 0x280]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
push 1
push 0x4af114
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
cmp dword [ebp - 0x254], 8
lea eax, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
xor ecx, ecx
or esi, 0x80
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x24c], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x280]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x24c]
push eax
movq qword [ebp - 0x23c], xmm0
call fcn.00405b60
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x404d5d
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404d53
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a0f
push edx
push ecx
call fcn.00475cec
add esp, 8
and esi, 0xffffffbf
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x234], esi
cmp edx, 8
jb 0x404daa
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404da0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a0f
push edx
push ecx
call fcn.00475cec
add esp, 8
mov eax, dword [ebp - 0x304]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x2a
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
call fcn.0040fa60
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x2fc]
mov esi, dword [ebp - 0x234]
xor eax, eax
mov word [ebp - 0x2fc], ax
or esi, 0x100
mov eax, dword [ebp - 0x270]
inc eax
mov dword [ebp - 0x2ec], 0
push eax
mov dword [ebp - 0x2e8], 7
mov dword [ebp - 0x250], esi
call fcn.00405de0
cmp dword [ebp - 0x26c], 8
lea eax, [ebp - 0x280]
push dword [ebp - 0x270]
cmovae eax, dword [ebp - 0x280]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
push 1
push 0x4af114
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
cmp dword [ebp - 0x254], 8
lea eax, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
xor ecx, ecx
or esi, 0x200
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x24c], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x280]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x24c]
push eax
movq qword [ebp - 0x23c], xmm0
call fcn.00405b60
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x404f29
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f1f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a14
push edx
push ecx
call fcn.00475cec
add esp, 8
and esi, 0xfffffeff
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x234], esi
cmp edx, 8
jb 0x404f79
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f6f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a14
push edx
push ecx
call fcn.00475cec
add esp, 8
lea eax, [ebp - 0x280]
push eax
lea ecx, [ebp - 0x230]
call fcn.00405bf0
mov byte [ebp - 4], 0x2c
mov eax, dword [ebp - 0x300]
cdq
push 0xb0
mov edi, eax
mov esi, edx
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.00478880
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.004106e0
push esi
push edi
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x2d
call fcn.00410830
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0xc0]
call fcn.004143f0
lea ecx, [ebp - 0xc0]
call fcn.0040fa60
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x2fc]
xor eax, eax
mov dword [ebp - 0x2ec], 0
mov word [ebp - 0x2fc], ax
mov eax, dword [ebp - 0x234]
or eax, 0x400
mov dword [ebp - 0x2e8], 7
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x220]
inc eax
push eax
call fcn.00405de0
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push dword [ebp - 0x220]
cmovae eax, dword [ebp - 0x230]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
push 1
push 0x4af114
lea ecx, [ebp - 0x2fc]
call fcn.00405f60
cmp dword [ebp - 0x254], 8
lea eax, [ebp - 0x268]
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x2fc]
push eax
call fcn.00405f60
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x24c], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x230]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x24c]
push eax
movq qword [ebp - 0x23c], xmm0
call fcn.00405b60
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x405107
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4050fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a19
push edx
push ecx
call fcn.00475cec
add esp, 8
mov byte [ebp - 4], 0x2c
mov edx, dword [ebp - 0x2e8]
cmp edx, 8
jb 0x40514b
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405141
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a19
push edx
push ecx
call fcn.00475cec
add esp, 8
mov dword [ebp - 0x234], 0
xor eax, eax
mov byte [ebp - 4], 0x2f
push eax
push 0x4aeee0
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015e0
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x24c]
push 0xb
xor eax, eax
mov dword [ebp - 0x23c], 0
push str.ProductInfo
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
call fcn.004015e0
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 0x31
push eax
push ecx
mov ecx, dword [ebp + 0x10]
mov eax, esp
mov ecx, dword [ecx]
mov dword [eax], ecx
test ecx, ecx
je 0x4051d9
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov edi, dword [ebp - 0x318]
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0x24c]
mov ecx, edi
push eax
call fcn.00407690
mov byte [ebp - 4], 0x30
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x405238
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40522e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a1e
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
cmp edx, 8
jb 0x405299
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40528f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a1e
push edx
push ecx
call fcn.00475cec
add esp, 8
push 7
xor eax, eax
mov dword [ebp - 0x2ec], 0
push str.KCCCADS
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015e0
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x24c]
push 7
xor eax, eax
mov dword [ebp - 0x23c], 0
push 0x4aefb8
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
call fcn.004015e0
push ecx
mov eax, esp
mov byte [ebp - 4], 0x33
mov esi, dword [ebp - 0x234]
mov dword [eax], esi
test esi, esi
je 0x405314
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x2fc]
mov ecx, edi
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x32
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x40536d
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405363
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a23
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
cmp edx, 8
jb 0x4053ce
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4053c4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a23
push edx
push ecx
call fcn.00475cec
add esp, 8
push 0xc
xor eax, eax
mov dword [ebp - 0x2ec], 0
push str.CodexVersion
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015e0
mov byte [ebp - 4], 0x34
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x405410
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x280]
mov ecx, edi
push eax
lea eax, [ebp - 0x2fc]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x2e8]
cmp edx, 8
jb 0x405469
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40545f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a28
push edx
push ecx
call fcn.00475cec
add esp, 8
push 8
xor eax, eax
mov dword [ebp - 0x2ec], 0
push 0x4aefe4
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015e0
mov byte [ebp - 4], 0x35
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x4054ab
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x2e0]
mov ecx, edi
push eax
lea eax, [ebp - 0x2fc]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x2e8]
cmp edx, 8
jb 0x405504
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4054fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a2d
push edx
push ecx
call fcn.00475cec
add esp, 8
push 3
xor eax, eax
mov dword [ebp - 0x2ec], 0
push 0x4af124
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015e0
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x24c]
push 0xd
xor eax, eax
mov dword [ebp - 0x23c], 0
push str.InstallerType
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
call fcn.004015e0
mov byte [ebp - 4], 0x37
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x405579
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x2fc]
mov ecx, edi
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x36
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x4055d2
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4055c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a32
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
cmp edx, 8
jb 0x405633
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405629
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a32
push edx
push ecx
call fcn.00475cec
add esp, 8
push 5
xor eax, eax
mov dword [ebp - 0x2ec], 0
push 0x4aef94
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015e0
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x24c]
push 0x10
xor eax, eax
mov dword [ebp - 0x23c], 0
push str.IsVisibleProduct
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
call fcn.004015e0
mov byte [ebp - 4], 0x39
push ecx
mov eax, esp
mov dword [eax], esi
test esi, esi
je 0x4056a8
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp - 0x2fc]
mov ecx, edi
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00407ac0
mov byte [ebp - 4], 0x38
mov edx, dword [ebp - 0x238]
cmp edx, 8
jb 0x405701
mov ecx, dword [ebp - 0x24c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4056f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a37
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
cmp edx, 8
jb 0x405762
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405758
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405a37
push edx
push ecx
call fcn.00475cec
add esp, 8
xor eax, eax
mov dword [ebp - 0x2ec], 0
push 0x4aef94
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2e8], 7
mov word [ebp - 0x2fc], ax
call fcn.004015b0
push str.IsUWPProduct
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0x3a
call fcn.00401560
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 0x3b
mov ecx, esp
push eax
call fcn.00405b40
lea eax, [ebp - 0x2fc]
mov ecx, edi
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00407ac0
lea ecx, [ebp - 0x24c]
call fcn.00401500
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x2f
call fcn.00401500
push str.LaunchString
lea ecx, [ebp - 0x314]
call fcn.00401560
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 0x3c
mov ecx, esp
push eax
call fcn.00405b40
lea eax, [ebp - 0x298]
mov ecx, edi
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.00407ac0
lea ecx, [ebp - 0x314]
mov byte [ebp - 4], 0x2f
call fcn.00401500
push 0x4af12c
lea ecx, [ebp - 0x330]
call fcn.00401560
push str.InstallLanguage
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x3d
call fcn.00401560
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 0x3e
mov ecx, esp
push eax
call fcn.00405b40
lea eax, [ebp - 0x330]
mov ecx, edi
push eax
lea eax, [ebp - 0x2fc]
push eax
call fcn.00407ac0
lea ecx, [ebp - 0x2fc]
call fcn.00401500
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 0x2f
call fcn.00401500
push str.Adobe_Desktop_Service
lea ecx, [ebp - 0x348]
call fcn.00401560
mov byte [ebp - 4], 0x3f
push str.DisplayName
lea ecx, [ebp - 0x330]
call fcn.00401560
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 0x40
mov ecx, esp
push eax
call fcn.00405b40
lea eax, [ebp - 0x348]
mov ecx, edi
push eax
lea eax, [ebp - 0x330]
push eax
call fcn.00407ac0
lea ecx, [ebp - 0x330]
call fcn.00401500
lea ecx, [ebp - 0x348]
mov byte [ebp - 4], 0x2f
call fcn.00401500
push 0x4af0b0
lea ecx, [ebp - 0x360]
call fcn.00401560
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 0x41
mov ecx, esp
push eax
call fcn.00405b40
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
lea eax, [ebp - 0x360]
push eax
call fcn.00407ac0
lea ecx, [ebp - 0x360]
call fcn.00401500
lea ecx, [ebp - 0x234]
call fcn.004014f0
lea ecx, [ebp - 0x230]
call fcn.00401500
lea ecx, [ebp - 0x280]
call fcn.00401500
lea ecx, [ebp - 0x268]
call fcn.00401500
lea ecx, [ebp - 0x298]
call fcn.00401500
lea ecx, [ebp - 0x2b0]
call fcn.00401500
lea ecx, [ebp - 0x2c8]
call fcn.00401500
lea ecx, [ebp - 0x2e0]
call fcn.00401500
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00475cfa
mov esp, ebp
pop ebp
ret 0xc
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
call fcn.0047b37a
int3