Function at 0x40f860
Capabilities:
Check mutex on windows
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x518
mov eax, dword [0x555c24]
xor eax, esp
mov dword [esp + 0x514], eax
push esi
push edi
mov edi, dword [ebp + 8]
push str.KicaPMSvc
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x5600e0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40f8c4
push dword [0x5600e0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x514]
xor ecx, esp
call fcn.004b8b56
mov esp, ebp
pop ebp
ret 0x10
push 0x100
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.004bd7d0
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.0040e790
push 0x400
lea eax, [esp + 0x11c]
push 0
push eax
call fcn.004bd7d0
add esp, 0xc
lea eax, [esp + 0x118]
push 0
push eax
call fcn.004c860c
add esp, 8
cmp eax, 0xffffffff
je 0x40fd79
sub esp, 0x18
mov dword [esp + 0x2c], 0
mov edx, esp
xorps xmm0, xmm0
movq qword [esp + 0x24], xmm0
mov dword [edx + 0x14], 0xf
mov dword [edx + 0x10], 0
cmp dword [edx + 0x14], 0x10
jb 0x40f941
mov eax, dword [edx]
jmp 0x40f943
mov eax, edx
mov byte [eax], 0
cmp byte [esp + 0x130], 0
jne 0x40f954
xor ecx, ecx
jmp 0x40f969
lea ecx, [esp + 0x130]
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f960
sub ecx, esi
push ecx
lea eax, [esp + 0x134]
mov ecx, edx
push eax
call fcn.00401fb0
lea ecx, [esp + 0x24]
call fcn.004014e0
push 0x5c
push 0
push 0x560598
call fcn.004bd7d0
sub esp, 0xc
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40f9ad
mov eax, dword [ecx]
jmp 0x40f9af
mov eax, ecx
push 0x10
push str.TRAY_ICON_ENABLE
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40f9db
mov eax, dword [ecx]
jmp 0x40f9dd
mov eax, ecx
push 0xf
push str.LocalHostClient
mov byte [eax], 0
call fcn.00401fb0
push 0
lea ecx, [esp + 0x40]
call fcn.00401860
sub esp, 0x18
mov byte [0x560598], al
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fa19
mov eax, dword [ecx]
jmp 0x40fa1b
mov eax, ecx
push 0x11
push str.OUTPUTDEBUGSTRING
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fa47
mov eax, dword [ecx]
jmp 0x40fa49
mov eax, ecx
push 0xf
push str.LocalHostClient
mov byte [eax], 0
call fcn.00401fb0
push 0
lea ecx, [esp + 0x40]
call fcn.00401860
sub esp, 0x18
mov byte [0x560599], al
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fa85
mov eax, dword [ecx]
jmp 0x40fa87
mov eax, ecx
push 0xf
push str.FILE_LOG_ENABLE
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fab3
mov eax, dword [ecx]
jmp 0x40fab5
mov eax, ecx
push 0xf
push str.LocalHostClient
mov byte [eax], 0
call fcn.00401fb0
push 0
lea ecx, [esp + 0x40]
call fcn.00401860
sub esp, 0x18
mov byte [0x56059a], al
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40faf1
mov eax, dword [ecx]
jmp 0x40faf3
mov eax, ecx
push 9
push str.LOG_LEVEL
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fb1f
mov eax, dword [ecx]
jmp 0x40fb21
mov eax, ecx
push 0xf
push str.LocalHostClient
mov byte [eax], 0
call fcn.00401fb0
push 3
lea ecx, [esp + 0x40]
call fcn.00401720
sub esp, 0x18
mov dword [0x56059c], eax
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fb5d
mov eax, dword [ecx]
jmp 0x40fb5f
mov eax, ecx
push 6
push str.1_PORT
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fb8b
mov eax, dword [ecx]
jmp 0x40fb8d
mov eax, ecx
push 6
push str.common
mov byte [eax], 0
call fcn.00401fb0
push 0x37eb
lea ecx, [esp + 0x40]
call fcn.00401720
sub esp, 0x18
mov dword [0x5605a4], eax
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fbcc
mov eax, dword [ecx]
jmp 0x40fbce
mov eax, ecx
push 6
push str.1_TYPE
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fbfa
mov eax, dword [ecx]
jmp 0x40fbfc
mov eax, ecx
push 6
push str.common
mov byte [eax], 0
call fcn.00401fb0
push 1
lea ecx, [esp + 0x40]
call fcn.00401860
sub esp, 0x18
mov byte [0x5605a0], al
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fc38
mov eax, dword [ecx]
jmp 0x40fc3a
mov eax, ecx
push 6
push str.2_PORT
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fc66
mov eax, dword [ecx]
jmp 0x40fc68
mov eax, ecx
push 6
push str.common
mov byte [eax], 0
call fcn.00401fb0
push 0x37ef
lea ecx, [esp + 0x40]
call fcn.00401720
sub esp, 0x18
mov dword [0x5605ac], eax
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fca7
mov eax, dword [ecx]
jmp 0x40fca9
mov eax, ecx
push 6
push str.2_TYPE
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fcd5
mov eax, dword [ecx]
jmp 0x40fcd7
mov eax, ecx
push 6
push str.common
mov byte [eax], 0
call fcn.00401fb0
push 0
lea ecx, [esp + 0x40]
call fcn.00401860
sub esp, 0x18
mov byte [0x5605a8], al
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x40fd13
mov eax, dword [ecx]
jmp 0x40fd15
mov eax, ecx
push 9
push str.IDLE_TIME
mov byte [eax], 0
call fcn.00401fb0
sub esp, 0x18
mov ecx, esp
push 6
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.common
mov byte [ecx], 0
call fcn.00401fb0
push 0x1e
lea ecx, [esp + 0x40]
call fcn.00401720
mov dword [0x5605f0], eax
lea ecx, [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
push dword [eax]
lea eax, [esp + 0x10]
push eax
call fcn.00402480
push dword [esp + 0x10]
call fcn.004b8d99
add esp, 4
jmp 0x40fdb6
mov dword [0x5605a4], 0x37eb
mov byte [0x5605a0], 1
mov dword [0x5605ac], 0x37ef
mov byte [0x5605a8], 0
mov dword [0x5605f0], 0x1e
mov byte [0x560599], 0
mov dword [0x56059c], 0xffffffff
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x64
push 0x5604d0
push 0x67
push edi
call esi
push 0x64
push 0x55ff70
push 0x6d
push edi
call esi
mov ecx, edi
call fcn.0040fe80
mov eax, dword [ebp + 0x14]
push 0
push edi
push 0
push 0
push 0
push SysReAllocString
push 0
push SysReAllocString
push 0xcf0008
push 0x5604d0
push 0x55ff70
push 0
mov dword [0x55ff68], edi
mov dword [0x5600e4], eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x6d
push edi
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov eax, dword [0x5605f8]
cmp byte [eax + 0x400], 0
jne 0x40fe59
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3e8
call esi
mov eax, dword [0x5605f8]
cmp byte [eax + 0x400], 0
je 0x40fe44
mov ecx, dword [esp + 0x51c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.004b8b56
mov esp, ebp
pop ebp
ret 0x10