Function at 0x4018ba
Capabilities:
Check if file exists
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
mov eax, 0x41783b
call fcn.004170b0
sub esp, 0x290
push ebx
push esi
push edi
call fcn.004017e5
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x24], eax
call fcn.00401e2c
lea eax, [ebp - 0x70]
xor ebx, ebx
push eax
mov ecx, 0x4202e0
mov dword [ebp - 4], ebx
call fcn.004023d8
cmp dword [ebp - 0x24], 1
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x10], ebx
jne 0x401be6
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x29a]
mov word [ebp - 0x29c], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x29c]
push 0x104
push eax
push dword [0x420370]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x29c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp + 0xc]
call fcn.00403631
mov eax, dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
push dword [eax - 8]
call fcn.0040392f
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 0xffffffffffffffff
lea ecx, [ebp + 0xc]
call fcn.004039a1
mov esi, str.9377_IconAnimate
mov eax, esi
test eax, eax
je 0x40197b
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [ebp + 0xc]
call fcn.00403ab0
push dword [ebp + 0xc]
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
cmp eax, ebx
je 0x401bde
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x401bde
mov eax, dword [0x41f020]
mov dword [ebp - 0x18], eax
push dword [0x420370]
mov byte [ebp - 4], 2
call fcn.0040aeac
lea ecx, [ebp - 0x18]
mov esi, eax
mov dword [esp], 0x44d
call fcn.00403854
push esi
call fcn.0040aeac
xor eax, eax
lea edi, [ebp - 0x34]
mov dword [ebp - 0x38], ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x18]
call fcn.00414730
add esp, 0xc
test eax, eax
jne 0x401a30
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.00403a04
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call fcn.00403a04
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 3
call fcn.00402cc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.00402ca9
or eax, 0xffffffff
jmp 0x401d2c
lea eax, [ebp - 0x29c]
push 0x104
push eax
push dword [0x420370]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x29c]
push str..swf
push eax
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionW]
lea eax, [ebp - 0x29c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push 0x2c
mov dword [ebp - 0x1c], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
pop ecx
mov dword [ebp - 0x14], edi
cmp edi, ebx
mov byte [ebp - 4], 4
je 0x401aa3
mov ecx, edi
call fcn.00401dd9
lea eax, [ebp - 0x18]
lea ecx, [edi + 0x28]
push eax
mov byte [ebp - 4], 5
call fcn.004035eb
mov esi, edi
mov dword [edi], 0x419690
mov dword [ebp - 0x20], esi
jmp 0x401aa8
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov eax, dword [ebp - 0x1c]
push ebx
neg eax
sbb eax, eax
push ebx
and al, 0xe0
mov ecx, esi
add eax, 0x20
mov byte [ebp - 4], 2
or eax, 0x80080
mov dword [ebp - 0x28], esi
push eax
push 0x90000000
lea eax, [ebp - 0x38]
push str.iconAnimate
push eax
push ebx
call fcn.00401000
cmp dword [ebp - 0x1c], ebx
je 0x401b6f
xor edi, edi
mov eax, esi
add esi, 4
neg eax
sbb eax, eax
lea ecx, [ebp - 0x1c]
and eax, esi
mov byte [ebp - 4], 6
test ecx, ecx
mov eax, dword [eax]
jne 0x401b03
mov esi, 0x80004003
jmp 0x401b5f
push ebx
push ebx
push dword [0x42027c]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
mov esi, edi
mov dword [ebp - 0x1c], edi
neg esi
sbb esi, esi
and esi, 0x7fffbffb
add esi, 0x80004005
js 0x401b5f
lea eax, [ebp - 0x29c]
lea ecx, [ebp - 0x14]
push eax
call fcn.00403c63
mov eax, dword [eax]
mov byte [ebp - 4], 7
cmp eax, ebx
je 0x401b48
mov eax, dword [eax]
jmp 0x401b4a
xor eax, eax
mov ecx, dword [edi]
push eax
push edi
call dword [ecx + 0x58]
mov ecx, dword [ebp - 0x14]
mov esi, eax
cmp ecx, ebx
je 0x401b5f
call fcn.00403d90
cmp edi, ebx
mov byte [ebp - 4], 2
je 0x401b9a
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x401b9a
push ecx
mov dword [ebp - 0x14], esp
mov eax, esp
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x44d
mov dword [eax], 0x41f224
call fcn.004025e7
push dword [0x420370]
mov ecx, esi
call fcn.00402631
mov esi, eax
cmp esi, ebx
jge 0x401bb4
mov eax, dword [ebp - 0x20]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_DestroyWindow]
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x401bc2
mov eax, dword [ebp - 0x20]
push 5
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.00403a04
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call fcn.00403a04
jmp 0x401c94
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [ebp - 0x24], 2
jne 0x401ce0
push 0x248
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
cmp eax, ebx
mov byte [ebp - 4], 8
je 0x401c11
mov ecx, eax
call fcn.00403fc6
mov esi, eax
jmp 0x401c13
xor esi, esi
lea eax, [ebp - 0x38]
mov ecx, esi
push eax
mov byte [ebp - 4], bl
mov dword [ebp - 0x10], esi
call fcn.004045e6
cmp dword [0x41f1f8], ebx
mov edi, eax
jne 0x401c34
mov dword [0x41f1f8], ebx
lea eax, [esi + 0x1c]
push eax
push 0x41f1c8
push 0x4202e0
call fcn.0040143c
push ebx
push eax
push ebx
push 0x40000
push 0x86000000
push str.9377
push edi
push ebx
mov ecx, esi
call fcn.004016f1
test eax, eax
jne 0x401c88
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 9
call fcn.00402cc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.00402ca9
xor eax, eax
jmp 0x401d2c
push dword [ebp + 0xc]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp - 0x28], ebx
jne 0x401c9e
cmp dword [ebp - 0x10], ebx
je 0x401ce0
mov ecx, 0x4202a0
call fcn.00402600
push 0x4202a0
lea ecx, [ebp - 0x94]
call fcn.0040956e
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xa
call fcn.004096a0
lea ecx, [ebp - 0x70]
call fcn.004020ff
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], bl
call fcn.00409599
mov ecx, 0x4202e0
call fcn.00402481
cmp dword [ebp - 0x10], ebx
je 0x401d00
mov ecx, dword [ebp - 0x10]
call fcn.00401e9b
push dword [ebp - 0x10]
call fcn.00417036
pop ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, ebx
je 0x401d0e
push 1
call fcn.00401e7f
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xb
call fcn.00402cc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.00402ca9
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret