Function at 0x4021d0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe64
mov eax, dword [0x59de30]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push str.Thread_PerformSelfUpdate_...
push 0
push 4
push str.AGSService
push dword [0x5aecc0]
call fcn.0044d8e0
push 0x44
lea eax, [ebp - 0xe60]
push 0
push eax
call fcn.004de2a0
push 0x1ff
xorps xmm0, xmm0
lea eax, [ebp - 0x607]
push 0
push eax
mov dword [ebp - 0xe60], 0x44
movq qword [ebp - 0xe18], xmm0
movq qword [ebp - 0xe10], xmm0
mov byte [ebp - 0x608], 0
call fcn.004de2a0
push 0x1ff
lea eax, [ebp - 0x207]
push 0
push eax
mov byte [ebp - 0x208], 0
call fcn.004de2a0
push 0x1ff
lea eax, [ebp - 0x407]
push 0
push eax
mov byte [ebp - 0x408], 0
call fcn.004de2a0
add esp, 0x44
lea eax, [ebp - 0x608]
push 1
push eax
call fcn.004050f0
add esp, 8
mov ecx, 0x104
lea eax, [ebp - 0x608]
jmp 0x4022a0
cmp byte [eax], 0
mov esi, 0x104
je 0x4022b0
inc eax
dec ecx
jne 0x4022a0
jmp 0x4022d0
test ecx, ecx
je 0x4022d0
push ecx
push str.AdobeGCClient_agshelper.exe
mov eax, esi
sub eax, ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x608]
sub edx, eax
add ecx, eax
call fcn.004042f0
lea eax, [ebp - 0x408]
push 1
push eax
call fcn.004050f0
add esp, 8
mov ecx, esi
lea eax, [ebp - 0x408]
lea esp, [esp]
cmp byte [eax], 0
je 0x4022fb
inc eax
dec ecx
jne 0x4022f0
jmp 0x40231b
test ecx, ecx
je 0x40231b
push ecx
push str.AdobeGCClient
mov eax, esi
sub eax, ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x408]
sub edx, eax
add ecx, eax
call fcn.004042f0
push 1
push 0x57d8d4
lea eax, [ebp - 0x208]
push 0x104
push eax
call fcn.004dd247
add esp, 0x10
mov ecx, esi
lea eax, [ebp - 0x208]
mov edi, edi
cmp byte [eax], 0
je 0x40234b
inc eax
dec ecx
jne 0x402340
jmp 0x40236d
test ecx, ecx
je 0x40236d
push ecx
mov eax, esi
sub eax, ecx
lea ecx, [ebp - 0x608]
push ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x208]
sub edx, eax
add ecx, eax
call fcn.004042f0
mov ecx, esi
lea eax, [ebp - 0x208]
cmp byte [eax], 0
je 0x402380
inc eax
dec ecx
jne 0x402375
jmp 0x4023a0
test ecx, ecx
je 0x4023a0
push ecx
push 0x57d8d4
mov eax, esi
sub eax, ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x208]
sub edx, eax
add ecx, eax
call fcn.004042f0
mov ecx, esi
lea eax, [ebp - 0x208]
cmp byte [eax], 0
je 0x4023b3
inc eax
dec ecx
jne 0x4023a8
jmp 0x4023d3
test ecx, ecx
je 0x4023d3
push ecx
push 0x57d8d8
mov eax, esi
sub eax, ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x208]
sub edx, eax
add ecx, eax
call fcn.004042f0
mov ecx, esi
lea eax, [ebp - 0x208]
jmp 0x4023e0
cmp byte [eax], 0
je 0x4023eb
inc eax
dec ecx
jne 0x4023e0
jmp 0x40240b
test ecx, ecx
je 0x40240b
push ecx
push 0x57d8d4
mov eax, esi
sub eax, ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x208]
sub edx, eax
add ecx, eax
call fcn.004042f0
mov ecx, esi
lea eax, [ebp - 0x208]
cmp byte [eax], 0
je 0x40241e
inc eax
dec ecx
jne 0x402413
jmp 0x402440
test ecx, ecx
je 0x402440
push ecx
mov eax, esi
sub eax, ecx
lea ecx, [ebp - 0x408]
push ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x208]
sub edx, eax
add ecx, eax
call fcn.004042f0
mov ecx, esi
lea eax, [ebp - 0x208]
cmp byte [eax], 0
je 0x402453
inc eax
dec ecx
jne 0x402448
jmp 0x402473
test ecx, ecx
je 0x402473
push ecx
push str._temp
mov eax, esi
sub eax, ecx
push ecx
mov edx, esi
lea ecx, [ebp - 0x208]
sub edx, eax
add ecx, eax
call fcn.004042f0
mov ecx, esi
lea eax, [ebp - 0x208]
jmp 0x402480
cmp byte [eax], 0
je 0x40248b
inc eax
dec ecx
jne 0x402480
jmp 0x4024ab
test ecx, ecx
je 0x4024ab
push ecx
mov eax, esi
sub eax, ecx
push 0x57d8d4
push ecx
sub esi, eax
lea ecx, [ebp - 0x208]
add ecx, eax
mov edx, esi
call fcn.004042f0
xor eax, eax
push 0x3fe
push eax
mov word [ebp - 0xe08], ax
lea eax, [ebp - 0xe06]
push eax
call fcn.004de2a0
xor eax, eax
push 0x3fe
push eax
mov word [ebp - 0xa08], ax
lea eax, [ebp - 0xa06]
push eax
call fcn.004de2a0
lea ecx, [ebp - 0x208]
add esp, 0x18
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4024f0
sub ecx, edx
push ecx
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0xe08]
push eax
call fcn.004db27a
lea ecx, [ebp - 0x408]
add esp, 0xc
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402520
sub ecx, edx
push ecx
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0xa08]
push eax
call fcn.004db27a
add esp, 0xc
lea eax, [ebp - 0xe18]
push eax
lea eax, [ebp - 0xe60]
push eax
lea eax, [ebp - 0xa08]
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0xe08]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x402587
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x208]
push eax
push str.Launch_Failed__s_d
jmp 0x40259a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x208]
push eax
push str.Launched__s_d
push 0
push 4
push str.AGSService
push dword [0x5aecc0]
call fcn.0044d8e0
mov ecx, dword [ebp - 4]
add esp, 0x1c
xor ecx, ebp
pop esi
call fcn.004da4c1
mov esp, ebp
pop ebp
ret