Function at 0x412cd0
Capabilities:
Check if file exists
Create process on windows
Get file attributes

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d1b06
push eax
mov dword fs:[0], esp
sub esp, 0x364
push ebx
push ebp
mov ebp, ecx
push esi
test ebp, ebp
push edi
jne 0x412cf9
xor eax, eax
jmp 0x412cfc
mov eax, dword [ebp + 0x1c]
push 0xe801
push 0x50008200
lea ecx, [ebp + 0x17c8]
push ebp
mov dword [ebp + 0xcc], eax
call fcn.004cf360
mov ecx, ebp
call fcn.004135f0
lea esi, [ebp + 0x1724]
mov ecx, esi
call fcn.0041cfc0
push 0
push str.CX_JPEGTrans.apl
mov ecx, esi
call fcn.0041e7e0
test eax, eax
je 0x412d4d
mov edi, dword [sym.imp.USER32.dll_RemoveMenu]
mov dword [eax + 0x10], 1
jmp 0x412d63
mov eax, dword [ebp + 0x17bc]
mov edi, dword [sym.imp.USER32.dll_RemoveMenu]
push 0
push 0x5012
push eax
call edi
push 0
push str.CX_EMail.apl
mov ecx, esi
call fcn.0041e7e0
test eax, eax
jne 0x412d84
mov ecx, dword [ebp + 0x17bc]
push eax
push 0x5027
push ecx
call edi
push 0
push str.CX_SendPix.apl
mov ecx, esi
call fcn.0041e7e0
test eax, eax
jne 0x412da5
mov edx, dword [ebp + 0x17bc]
push eax
push 0x5026
push edx
call edi
push 1
push str.CX_ContactSheet.apl
mov ecx, esi
call fcn.0041e7e0
test eax, eax
jne 0x412dc6
push eax
mov eax, dword [ebp + 0x17bc]
push 0x5028
push eax
call edi
lea eax, [ebp + 0x17b8]
test eax, eax
jne 0x412dd4
xor ecx, ecx
jmp 0x412dd7
mov ecx, dword [eax + 4]
lea edx, [ebp + 0x2ba0]
lea eax, [ebp + 0x1910]
push edx
push eax
push 4
push ecx
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
mov ecx, esi
call fcn.0041d1a0
lea esi, [ebp + 0x2b8c]
push 0x64
push esi
push ebp
lea ecx, [ebp + 0x27d4]
call fcn.0044eee0
mov ecx, ebp
call fcn.00413460
push 0xf000
mov ecx, ebp
call fcn.004cc96e
lea edi, [ebp + 0x2548]
push 0x67
push esi
push ebp
mov ecx, edi
call fcn.004344c0
mov eax, dword [ebp + 0x25ac]
mov ecx, edi
or eax, 0x2024
push eax
call fcn.004cf25c
push 0xf000
mov ecx, edi
call fcn.004c818f
push 0
push 0xe81c
push edi
mov ecx, ebp
call fcn.004cca03
lea eax, [ebp + 0x263c]
test eax, eax
je 0x412e6a
mov eax, dword [eax + 0x1c]
lea edi, [ebp + 0x2858]
push 0x68
push esi
push ebp
mov ecx, edi
mov dword [ebp + 0xd4], eax
call fcn.00450a80
mov eax, dword [ebp + 0x28bc]
mov ecx, edi
or al, 0x24
push eax
call fcn.004cf25c
push 0xf000
mov ecx, edi
call fcn.004c818f
push 0
push 0xe81c
push edi
mov ecx, ebp
call fcn.004cca03
lea edi, [ebp + 0x1a54]
push 0x69
push esi
push ebp
mov ecx, edi
call fcn.0042b0e0
mov eax, dword [ebp + 0x28bc]
mov ecx, edi
or al, 0x24
push eax
call fcn.004cf25c
push 0xf000
mov ecx, edi
call fcn.004c818f
push 0
push 0xe81e
push edi
mov ecx, ebp
call fcn.004cca03
lea edi, [ebp + 0x2690]
push 0x66
push esi
push ebp
mov ecx, edi
call fcn.00428360
mov eax, dword [ebp + 0x26f4]
mov ecx, edi
or al, 0x24
push eax
call fcn.004cf25c
push 0xf000
mov ecx, edi
call fcn.004c818f
push 0
push 0xe81e
push edi
mov ecx, ebp
call fcn.004cca03
lea eax, [ebp + 0x2780]
test eax, eax
je 0x412f31
mov eax, dword [eax + 0x1c]
lea ebx, [ebp + 0x2958]
push 0x6b
push esi
push ebp
mov ecx, ebx
mov dword [ebp + 0xd8], eax
call fcn.0044c750
mov eax, dword [ebp + 0x29bc]
mov ecx, ebx
or al, 0x24
push eax
call fcn.004cf25c
push 0xf000
mov ecx, ebx
call fcn.004c818f
xor esi, esi
mov ecx, ebp
push esi
push 0xe81e
push ebx
call fcn.004cca03
push 1
push 1
push ebx
mov ecx, ebp
call fcn.004cba91
lea edi, [ebp + 0x2a94]
push 0x6a
push 0x50000000
push ebp
mov ecx, edi
call fcn.00405350
mov eax, dword [ebp + 0x2af8]
mov ecx, edi
or al, 0x20
push eax
call fcn.004cf25c
push 0xa000
mov ecx, edi
call fcn.004c818f
mov ecx, 0x4f5da8
call fcn.0046fa70
test eax, eax
je 0x412fc4
push 1
push esi
jmp 0x412fd6
push esi
push 0xe81e
push edi
mov ecx, ebp
call fcn.004cca03
push 1
push 1
push edi
mov ecx, ebp
call fcn.004cba91
push ebp
lea ecx, [ebp + 0x1b88]
call fcn.0042baf0
lea eax, [ebp + 0x1bc4]
cmp eax, esi
jne 0x412ff8
xor eax, eax
jmp 0x412ffb
mov eax, dword [eax + 0x1c]
mov dword [ebp + 0xd0], eax
lea eax, [ebp + 0x17c8]
push 0x65
push eax
lea eax, [esp + 0x60]
lea ecx, [ebp + 0x2b50]
push eax
push 0x40000000
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
call fcn.004bbece
lea edi, [ebp + 0x1844]
mov ecx, edi
call fcn.00480dd0
push str.Buttons
push str.SoftwareACD_SystemsACDSee
mov ecx, edi
call fcn.004805f0
lea edi, [ebp + 0x1910]
push esi
push edi
push esi
lea ecx, [ebp + 0x1724]
call fcn.0041d1a0
push str.CmdExtButtons
push str.SoftwareACD_SystemsACDSee
mov ecx, edi
call fcn.004805f0
push str._Current_
mov ecx, ebp
call fcn.00418ce0
test eax, eax
jne 0x413136
mov cl, byte [0x4f55a8]
lea edi, [esp + 0x69]
mov byte [esp + 0x68], cl
mov ecx, 0x40
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4f5e08]
lea edx, [esp + 0x68]
push 0x104
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x68]
push ecx
call fcn.00471a00
add esp, 4
mov byte [eax], 0
lea edx, [esp + 0x68]
lea eax, [esp + 0x270]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x270]
push str.DefaultLayout.reg
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x270]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x413136
mov ecx, dword [ebp + 0xcc]
lea eax, [esp + 0x68]
push esi
push eax
push str._s_DefaultLayout.reg
push str.regedit.exe
push str.open
push ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x4edcb8
mov ecx, ebp
call fcn.00418ce0
push 0x80
mov dword [esp + 0x38], vtable.Table_char_.0
call fcn.004bd49b
mov edi, 0x1f
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 0x40
push 0x80
mov dword [esp + 0x384], esi
mov dword [esp + 0x20], vtable.Table_char_.0
call fcn.004bd49b
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], 0x40
mov ecx, dword [0x4f5e14]
lea edx, [esp + 0x34]
push edx
push str.PaneExtList
mov byte [esp + 0x384], 1
mov dword [esp + 0x30], esi
call fcn.00470490
mov ecx, dword [0x4f568c]
xor eax, eax
cmp ecx, esi
mov dword [esp + 0x10], eax
jle 0x413356
cmp eax, ecx
jge 0x4131e1
cmp eax, esi
jl 0x4131e1
mov ecx, dword [0x4f5688]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x14], ecx
jmp 0x4131e7
mov dword [esp + 0x14], esi
mov ecx, esi
test byte [ecx + 0x10e], 2
je 0x413343
add ecx, 4
push ecx
call fcn.00471a00
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x54], esi
je 0x41328e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x41327a
mov ecx, dword [esp + 0x2c]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004bd49b
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x54], eax
lea ecx, [ecx*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd4c4
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
add esp, 8
add eax, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
xor edi, edi
test eax, eax
jle 0x4132c6
cmp edi, eax
jge 0x4132a9
test edi, edi
jl 0x4132a9
mov edx, dword [esp + 0x38]
mov eax, dword [edx + edi*4]
jmp 0x4132ab
xor eax, eax
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4132c2
mov eax, dword [esp + 0x3c]
inc edi
cmp edi, eax
jl 0x41329c
jmp 0x4132c6
mov eax, dword [esp + 0x3c]
cmp edi, eax
jne 0x41333d
mov eax, dword [esp + 0x14]
push 0
push eax
mov ecx, ebx
call fcn.0044cc80
mov esi, eax
mov ecx, ebx
push esi
call fcn.0044cb90
mov cl, byte [0x4f55a8]
xor eax, eax
mov byte [esp + 0x16c], cl
mov ecx, 0x40
lea edi, [esp + 0x16d]
lea edx, [esp + 0x16c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push esi
push edx
mov ecx, ebx
stosb byte es:[edi], al
call fcn.0044ce40
mov ecx, dword [0x4f5e14]
lea eax, [esp + 0x16c]
push eax
push str.PaneExtActiveTab
call fcn.00470360
push 1
push 1
push ebx
mov ecx, ebp
call fcn.004cba91
mov byte [ebp + 0xc9], 1
mov eax, dword [esp + 0x10]
xor esi, esi
mov ecx, dword [0x4f568c]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4131ce
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [0x4f5e14]
push str.PaneExtList
call fcn.00470390
push str.PX_ACDWebServices.apl_0
mov ecx, ebx
call fcn.0044cd10
cmp eax, 0xffffffff
jne 0x41338f
mov edx, dword [ebp + 0x17bc]
push esi
push 0x502b
push edx
call dword [sym.imp.USER32.dll_RemoveMenu]
mov eax, dword [esp + 0x28]
mov ebx, vtable.Table_char_.0
cmp eax, esi
mov byte [esp + 0x37c], 0
mov dword [esp + 0x18], ebx
je 0x4133d7
mov eax, dword [esp + 0x20]
xor edi, edi
cmp eax, esi
jle 0x4133d7
cmp edi, eax
jge 0x4133c3
cmp edi, esi
jl 0x4133c3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*4]
jmp 0x4133c5
xor eax, eax
push eax
call fcn.004bd4c4
mov eax, dword [esp + 0x24]
add esp, 4
inc edi
cmp edi, eax
jl 0x4133b6
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004bd4c4
mov eax, dword [esp + 0x48]
add esp, 4
cmp eax, esi
mov dword [esp + 0x37c], 0xffffffff
mov dword [esp + 0x34], ebx
je 0x41342a
mov eax, dword [esp + 0x3c]
xor edi, edi
cmp eax, esi
jle 0x41342a
cmp edi, eax
jge 0x413416
cmp edi, esi
jl 0x413416
mov edx, dword [esp + 0x38]
mov eax, dword [edx + edi*4]
jmp 0x413418
xor eax, eax
push eax
call fcn.004bd4c4
mov eax, dword [esp + 0x40]
add esp, 4
inc edi
cmp edi, eax
jl 0x413409
mov eax, dword [esp + 0x38]
push eax
call fcn.004bd4c4
mov ecx, dword [esp + 0x378]
add esp, 4
mov eax, 1
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x370
ret