Function at 0x4020f0
Capabilities:
Check mutex on windows
Hide graphical window
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x27c
mov eax, dword [0x417024]
xor eax, esp
mov dword [esp + 0x278], eax
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x414d40]
mov dword [esp + 0x10], eax
mov eax, dword fs:[0x2c]
push ebx
push esi
push edi
mov edi, dword [eax]
movups xmmword [esp + 0x24], xmm0
mov byte [esp + 0x34], 0xd1
mov dword [esp + 0x20], edi
mov eax, dword [edi + 0x218]
test al, 1
jne 0x402185
xorps xmm0, xmm0
mov byte [edi + 0x109], 1
movlpd qword [esp + 0x10], xmm0
or eax, 1
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x218], eax
nop dword [eax]
mov al, byte [esp + ecx + 0x24]
mov byte [ecx + edi + 0xf8], al
add ecx, 1
adc edx, 0
jne 0x402178
cmp ecx, 0x11
jb 0x402160
push 0x40f460
call fcn.00403004
add esp, 4
cmp byte [edi + 0x109], 0
lea ebx, [edi + 0xf8]
je 0x4021d4
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, esi
mov eax, 0x1f156fd1
and ecx, 7
mov edx, 0x51f57db5
shl ecx, 3
call fcn.0040ec80
xor byte [esi + ebx], al
add esi, 1
adc edi, 0
jne 0x4021cc
cmp esi, 0x11
jb 0x4021a5
mov edi, dword [esp + 0x20]
mov byte [ebx + 0x11], 0
push ebx
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x4026ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4026ba
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
movaps xmm0, xmmword [0x414da0]
mov eax, dword [edi + 0x210]
mov dword [esp + 0x274], 0x967413b8
mov dword [esp + 0x278], 0xd0a483b
movups xmmword [esp + 0x244], xmm0
movaps xmm0, xmmword [0x414d50]
movups xmmword [esp + 0x254], xmm0
movaps xmm0, xmmword [0x414dc0]
movups xmmword [esp + 0x264], xmm0
test al, 1
jne 0x402299
xorps xmm0, xmm0
mov byte [edi + 0x188], 1
movlpd qword [esp + 0x10], xmm0
or eax, 1
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x210], eax
mov al, byte [esp + ecx + 0x244]
mov byte [ecx + edi + 0x150], al
add ecx, 1
adc edx, 0
jne 0x40228c
cmp ecx, 0x38
jb 0x402271
push 0x40f420
call fcn.00403004
add esp, 4
cmp byte [edi + 0x188], 0
lea ebx, [edi + 0x150]
je 0x4022ef
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
nop dword [eax]
mov ecx, esi
mov eax, 0xf72761dd
and ecx, 7
mov edx, 0xd792d4d
shl ecx, 3
call fcn.0040ec80
xor byte [esi + ebx], al
add esi, 1
adc edi, 0
jne 0x4022e7
cmp esi, 0x38
jb 0x4022c0
mov edi, dword [esp + 0x20]
mov byte [ebx + 0x38], 0
mov ecx, ebx
call fcn.00401e60
movaps xmm0, xmmword [0x414d70]
mov eax, dword [edi + 0x1e4]
mov dword [esp + 0x274], 0x5352984c
mov dword [esp + 0x278], 0x54437b4e
mov dword [esp + 0x27c], 0x4e5e9855
mov word [esp + 0x280], 0x7065
mov byte [esp + 0x282], 0x37
movups xmmword [esp + 0x244], xmm0
movaps xmm0, xmmword [0x414d20]
movups xmmword [esp + 0x254], xmm0
movaps xmm0, xmmword [0x414d90]
movups xmmword [esp + 0x264], xmm0
test al, 1
jne 0x4023a9
xorps xmm0, xmm0
mov byte [edi + 0xcf], 1
movlpd qword [esp + 0x10], xmm0
or eax, 1
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x1e4], eax
mov al, byte [esp + ecx + 0x244]
mov byte [ecx + edi + 0x90], al
add ecx, 1
adc edx, 0
jne 0x40239c
cmp ecx, 0x3f
jb 0x402381
push 0x40f3e0
call fcn.00403004
add esp, 4
cmp byte [edi + 0xcf], 0
lea edi, [edi + 0x90]
je 0x4023fb
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
nop dword [eax]
mov ecx, esi
mov eax, 0x2137eb3b
and ecx, 7
mov edx, 0x3137030b
shl ecx, 3
call fcn.0040ec80
xor byte [esi + edi], al
add esi, 1
adc ebx, 0
jne 0x4023f7
cmp esi, 0x3f
jb 0x4023d0
mov byte [edi + 0x3f], 0
mov ecx, edi
call fcn.00401e60
call fcn.004026e0
mov edi, eax
cmp byte [edi + 0x51], 0
je 0x40244b
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, esi
mov eax, 0x69038921
and ecx, 7
mov edx, 0x31f9cd89
shl ecx, 3
call fcn.0040ec80
xor byte [esi + edi], al
add esi, 1
adc ebx, 0
jne 0x402447
cmp esi, 0x51
jb 0x402420
mov byte [edi + 0x51], 0
mov ecx, edi
call fcn.00401e60
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00401be0
push SysStringLen
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
mov ecx, dword [0x417890]
xor edx, edx
mov ebx, dword [esp + 0x1c]
test eax, eax
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x64
push 0x418580
push 0x67
cmovne ecx, edx
push ebx
mov dword [0x417890], ecx
call esi
push 0x64
push 0x4184b8
push 0x6d
push ebx
call esi
mov edi, dword [sym.imp.USER32.dll_LoadIconW]
push 0x6b
push ebx
mov dword [esp + 0x24c], 0x30
mov dword [esp + 0x250], 3
mov dword [esp + 0x254], 0x4027d0
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x260], ebx
call edi
push 0x7f00
push 0
mov dword [esp + 0x264], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push 0x6c
push dword [esp + 0x25c]
mov dword [esp + 0x268], eax
mov dword [esp + 0x26c], 6
mov dword [esp + 0x270], 0x6d
mov dword [esp + 0x274], 0x4184b8
call edi
mov dword [esp + 0x270], eax
lea eax, [esp + 0x244]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
push 0
push ebx
push 0
push 0
push 0
push SysReAllocString
push 0
push SysReAllocString
push 0xcf0000
push 0x418580
push 0x4184b8
push 0
mov dword [0x4184b0], ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
test esi, esi
je 0x4026a1
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x1e4
lea eax, [esp + 0x5c]
push 0
push eax
call fcn.004043f0
mov eax, dword [0x417890]
add esp, 0xc
neg eax
mov dword [esp + 0x40], 0x3bc
mov dword [esp + 0x44], esi
sbb eax, eax
mov dword [esp + 0x48], 0x3e9
add eax, 0x82
mov dword [esp + 0x4c], 7
push eax
push dword [0x4184b0]
mov dword [esp + 0x58], 0x401
call edi
cmp dword [0x417890], 0
mov ecx, str.Sleep_Disabled
mov dword [esp + 0x54], eax
mov eax, str.Sleep_Enabled
cmove eax, ecx
push eax
lea eax, [esp + 0x5c]
push 0x80
push eax
call fcn.00406524
add esp, 0xc
lea eax, [esp + 0x40]
push eax
push 0
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconA]
push 0x6d
push ebx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push 0
push 0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
push 0
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x402686
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov esi, dword [sym.imp.USER32.dll_TranslateMessage]
mov edi, dword [sym.imp.USER32.dll_DispatchMessageW]
nop
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
push dword [esp + 0x2c]
call ebx
test eax, eax
jne 0x402671
lea eax, [esp + 0x24]
push eax
call esi
lea eax, [esp + 0x24]
push eax
call edi
push 0
push 0
push 0
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x402650
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.00402f33
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.00402f33
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0x284]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00402f33
mov esp, ebp
pop ebp
ret 0x10