Function at 0x4ca7e0
Capabilities:
Check if file exists
Create process on windows
Get session user name
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8d4
mov eax, dword [0x5deba8]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dword [0x5e24a0], eax
call fcn.004ca2e0
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x220]
call fcn.0041d9b0
lea ecx, [ebp - 0x220]
call fcn.0041e310
movzx edx, al
test edx, edx
jne 0x4cae64
lea ecx, [ebp - 0x224]
call fcn.0041d970
push 0
push 0x22
lea ecx, [ebp - 0x220]
call fcn.0045faa0
cmp eax, 0xffffffff
je 0x4ca880
lea ecx, [ebp - 0x220]
call fcn.0041e2f0
sub eax, 2
push eax
push 1
lea eax, [ebp - 0x8a0]
push eax
lea ecx, [ebp - 0x220]
call fcn.0041dd00
push eax
lea ecx, [ebp - 0x224]
call fcn.0041dad0
lea ecx, [ebp - 0x8a0]
call fcn.0041dab0
jmp 0x4ca892
lea ecx, [ebp - 0x220]
push ecx
lea ecx, [ebp - 0x224]
call fcn.0041dad0
lea ecx, [ebp - 0x224]
call fcn.0041e1e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4ca8ed
push 0
push str..cdskin
lea ecx, [ebp - 0x224]
call fcn.0041dc30
cmp eax, 0xffffffff
je 0x4ca8ed
push 0x5e2598
push ecx
mov ecx, esp
mov dword [ebp - 0x8a4], esp
lea edx, [ebp - 0x224]
push edx
call fcn.0041d990
call fcn.004c9680
add esp, 8
mov byte [0x5e2588], 1
jmp 0x4cae59
push 0x59b36c
lea ecx, [ebp - 0x220]
call fcn.0041dbd0
test eax, eax
jne 0x4cadc8
mov byte [ebp - 0x229], 1
mov dword [ebp - 0x228], 0
movzx eax, byte [ebp - 0x229]
test eax, eax
je 0x4ca972
cmp dword [ebp - 0x228], 0xa
jge 0x4ca972
push 0
push 0x59b384
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
je 0x4ca95a
mov byte [ebp - 0x229], 1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4ca961
mov byte [ebp - 0x229], 0
mov ecx, dword [ebp - 0x228]
add ecx, 1
mov dword [ebp - 0x228], ecx
jmp 0x4ca916
cmp dword [ebp - 0x228], 0xa
jl 0x4ca9a6
mov dword [ebp - 0x8a8], 0
lea ecx, [ebp - 0x224]
call fcn.0041dab0
lea ecx, [ebp - 0x220]
call fcn.0041dab0
mov eax, dword [ebp - 0x8a8]
jmp 0x4cb09b
push 0x59b3a8
lea ecx, [ebp - 0x220]
call fcn.0041dbd0
test eax, eax
jne 0x4cadc3
mov edx, dword [0x59b3c0]
mov dword [ebp - 0x648], edx
push 0x204
push 0
lea eax, [ebp - 0x644]
push eax
call fcn.005533a0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x648]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, dword [0x59b3c4]
mov dword [ebp - 0x440], edx
push 0x204
push 0
lea eax, [ebp - 0x43c]
push eax
call fcn.005533a0
add esp, 0xc
lea ecx, [ebp - 0x440]
push ecx
call fcn.004011a0
add esp, 4
lea edx, [ebp - 0x440]
push edx
lea ecx, [ebp - 0x238]
call fcn.0041d9b0
push 0x59b3c8
push 1
lea eax, [ebp - 0x8b0]
push eax
lea ecx, [ebp - 0x238]
call fcn.0041dde0
mov ecx, eax
call fcn.0041dbd0
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x8a9], al
lea ecx, [ebp - 0x8b0]
call fcn.0041dab0
movzx ecx, byte [ebp - 0x8a9]
test ecx, ecx
je 0x4caab2
lea ecx, [ebp - 0x238]
call fcn.0041e2f0
sub eax, 1
push eax
lea edx, [ebp - 0x8b4]
push edx
lea ecx, [ebp - 0x238]
call fcn.0041de70
push eax
lea ecx, [ebp - 0x238]
call fcn.0041dad0
lea ecx, [ebp - 0x8b4]
call fcn.0041dab0
push 0x5c
lea ecx, [ebp - 0x238]
call fcn.0041dcb0
mov dword [ebp - 0x64c], eax
cmp dword [ebp - 0x64c], 0xffffffff
je 0x4caafe
mov eax, dword [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x8b8]
push ecx
lea ecx, [ebp - 0x238]
call fcn.0041de70
push eax
lea ecx, [ebp - 0x238]
call fcn.0041dad0
lea ecx, [ebp - 0x8b8]
call fcn.0041dab0
lea ecx, [ebp - 0x234]
call fcn.0041d970
lea edx, [ebp - 0x234]
push edx
call fcn.004c8f00
add esp, 4
movzx eax, al
test eax, eax
je 0x4cad82
lea ecx, [ebp - 0x65c]
call fcn.0041d970
lea ecx, [ebp - 0x658]
call fcn.0041d970
lea ecx, [ebp - 0x440]
push ecx
lea ecx, [ebp - 0x668]
call fcn.0041d9b0
push 0x59b3cc
lea ecx, [ebp - 0x668]
call fcn.0041db30
lea edx, [ebp - 0x440]
push edx
lea ecx, [ebp - 0x660]
call fcn.0041d9b0
push str.RectDock.dll
lea ecx, [ebp - 0x660]
call fcn.0041db30
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0x650]
call fcn.0041d9b0
push str.CircleDock.dll
lea ecx, [ebp - 0x650]
call fcn.0041db30
push 0x59b424
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp - 0x654]
push edx
call fcn.0041dfe0
add esp, 0xc
mov eax, dword [ebp - 0x654]
push eax
mov ecx, dword [ebp - 0x668]
push ecx
push str.copy___s_____s_
lea edx, [ebp - 0x65c]
push edx
call fcn.00423c30
add esp, 0x10
lea eax, [ebp - 0x658]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x8bc], esp
lea edx, [ebp - 0x65c]
push edx
call fcn.0041d990
call fcn.004c9480
add esp, 8
mov dword [ebp - 0x664], 0
lea ecx, [ebp - 0x654]
call fcn.0041e1e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4cac42
cmp dword [ebp - 0x664], 0x32
jge 0x4cac42
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x664]
add eax, 1
mov dword [ebp - 0x664], eax
jmp 0x4cac0a
cmp dword [ebp - 0x664], 0xa
jl 0x4cacd2
mov dword [ebp - 0x8c0], 0
lea ecx, [ebp - 0x654]
call fcn.0041dab0
lea ecx, [ebp - 0x650]
call fcn.0041dab0
lea ecx, [ebp - 0x660]
call fcn.0041dab0
lea ecx, [ebp - 0x668]
call fcn.0041dab0
lea ecx, [ebp - 0x658]
call fcn.0041dab0
lea ecx, [ebp - 0x65c]
call fcn.0041dab0
lea ecx, [ebp - 0x234]
call fcn.0041dab0
lea ecx, [ebp - 0x238]
call fcn.0041dab0
lea ecx, [ebp - 0x224]
call fcn.0041dab0
lea ecx, [ebp - 0x220]
call fcn.0041dab0
mov eax, dword [ebp - 0x8c0]
jmp 0x4cb09b
push 5
push 0x59b460
push str.Again
lea ecx, [ebp - 0x654]
call fcn.0041e1e0
push eax
push 0x59b470
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov dword [ebp - 0x8c8], 0
lea ecx, [ebp - 0x234]
call fcn.0041dab0
lea ecx, [ebp - 0x238]
call fcn.0041dab0
lea ecx, [ebp - 0x224]
call fcn.0041dab0
lea ecx, [ebp - 0x220]
call fcn.0041dab0
mov eax, dword [ebp - 0x8c8]
jmp 0x4cb09b
jmp 0x4cae59
mov ecx, dword [0x59b47c]
mov dword [ebp - 0x878], ecx
push 0x204
push 0
lea edx, [ebp - 0x874]
push edx
call fcn.005533a0
add esp, 0xc
lea eax, [ebp - 0x878]
push eax
call fcn.004011a0
add esp, 4
lea ecx, [ebp - 0x878]
push ecx
lea ecx, [ebp - 0x670]
call fcn.0041d9b0
push 0x59b480
lea edx, [ebp - 0x670]
push edx
lea eax, [ebp - 0x66c]
push eax
call fcn.0041dfe0
add esp, 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x8cc], esp
lea edx, [ebp - 0x66c]
push edx
call fcn.0041d990
call fcn.004cb0b0
add esp, 4
lea ecx, [ebp - 0x66c]
call fcn.0041dab0
lea ecx, [ebp - 0x670]
call fcn.0041dab0
lea ecx, [ebp - 0x224]
call fcn.0041dab0
mov dword [ebp - 0x214], 0x104
lea eax, [ebp - 0x214]
push eax
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
push str.CoolDockNew
lea edx, [ebp - 0x210]
push edx
call fcn.00554811
add esp, 8
mov dword [ebp - 0x218], 1
lea eax, [ebp - 0x210]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4caffd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x87c], eax
cmp dword [ebp - 4], 0
je 0x4caffd
cmp dword [ebp - 0x87c], 0xb7
jne 0x4caffd
movzx ecx, byte [0x5e2588]
test ecx, ecx
je 0x4cafdd
push 0x59b4a8
push 0
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 0
je 0x4caf68
mov dword [ebp - 0x890], 0
mov ecx, 0x5e2598
call fcn.0041e2f0
lea edx, [eax + eax + 2]
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x88c]
push eax
mov ecx, 0x5e2598
call fcn.0041e2d0
mov dword [ebp - 0x888], eax
lea ecx, [ebp - 0x890]
push ecx
push 0
push 0x4a
mov edx, dword [ebp - 0x884]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0xffffffffffffffff
mov ecx, 0x5e2598
call fcn.0041e330
push str.CoolDock_CircleDock
push 0
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x880], eax
cmp dword [ebp - 0x880], 0
je 0x4cafdd
mov dword [ebp - 0x89c], 0
mov ecx, 0x5e2598
call fcn.0041e2f0
lea eax, [eax + eax + 2]
mov dword [ebp - 0x898], eax
mov ecx, dword [ebp - 0x898]
push ecx
mov ecx, 0x5e2598
call fcn.0041e2d0
mov dword [ebp - 0x894], eax
lea edx, [ebp - 0x89c]
push edx
push 0
push 0x4a
mov eax, dword [ebp - 0x880]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0xffffffffffffffff
mov ecx, 0x5e2598
call fcn.0041e330
mov dword [ebp - 0x8d0], 0
lea ecx, [ebp - 0x220]
call fcn.0041dab0
mov eax, dword [ebp - 0x8d0]
jmp 0x4cb09b
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x21c], eax
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
push 0
push 0x5e2510
push 0x5e1b68
call sub.gdiplus.dll_GdiplusStartup
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
push 4
call fcn.004ccf70
add esp, 4
push 0
mov ecx, dword [ebp + 8]
push ecx
push 0
mov ecx, 0x5e24d4
call fcn.004ccfa0
mov dword [ebp - 0x21c], eax
push 0xa
call fcn.004cb2f0
add esp, 4
mov ecx, 0x5e24d4
call fcn.004cd160
call dword [sym.imp.ole32.dll_OleUninitialize]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x5e1b68]
push edx
call sub.gdiplus.dll_GdiplusShutdown
mov dword [ebp - 0x8d4], 0
lea ecx, [ebp - 0x220]
call fcn.0041dab0
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0055338c
mov esp, ebp
pop ebp
ret 0x10