Function at 0x1400a7ce
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x14036d24
mov eax, dword fs:[0]
push eax
sub esp, 0x210
mov eax, dword [0x14045524]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
push esi
push edi
mov eax, dword [0x14045524]
xor eax, esp
push eax
lea eax, [esp + 0x220]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [0x14047c1c], eax
mov dword [esp + 0x1c], 0xff
mov dword [esp + 0x18], 8
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
xor ebx, ebx
push 0x14047cb0
mov dword [0x14047ba8], ebx
mov dword [0x14047c2c], ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov esi, 0x104
mov eax, esi
call fcn.1400dda3
mov dword [0x14047c10], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047c3c], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047bf8], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047cd4], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047c18], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047c5c], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047bec], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047bf0], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047cc8], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047c80], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047c94], eax
mov eax, esi
call fcn.1400dda3
mov dword [0x14047bac], eax
mov eax, esi
call fcn.1400dda3
push dword [0x14047c3c]
mov dword [0x14047c78], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push esi
push dword [0x14047bf8]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, dword [0x14047bf8]
call fcn.1400cf7f
dec eax
cmp eax, ebx
jle 0x1400a923
cmp word [ecx + eax*2], 0x5c
jne 0x1400a917
cmp eax, esi
jg 0x1400a940
cmp eax, ebx
jl 0x1400a940
mov edx, dword [0x14047c10]
sub ecx, edx
inc eax
mov di, word [ecx + edx]
mov word [edx], di
inc edx
inc edx
dec eax
jne 0x1400a934
call fcn.140011a3
call fcn.1400a669
call fcn.14001397
mov edi, dword [0x14047cd4]
mov eax, esi
call fcn.1400dda3
mov dword [0x1404802c], eax
mov eax, esi
call fcn.1400dda3
push edi
push str.SOFTWARE_ws_
push dword [0x1404802c]
mov dword [0x14048058], eax
mov eax, esi
call fcn.1400d7d8
mov edx, dword [0x14048058]
add esp, 0xc
mov ecx, edi
call fcn.1400cf9b
call fcn.1401d1f8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, str.BW43_JOD
call fcn.1401d94e
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400a9c8
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.1400b699
test al, al
jne 0x1400a9d6
call fcn.1400a138
mov esi, dword [sym.imp.USER32.dll_LoadIconW]
mov edi, 0x83
push edi
push dword [0x14047c1c]
call esi
push edi
push dword [0x14047c1c]
mov dword [0x14047c04], eax
call esi
push ebx
mov dword [0x14047bc8], eax
mov dword [esp + 0x24], vtable.CBrowser.0
call dword [sym.imp.ole32.dll_OleInitialize]
push 8
call fcn.14020bd0
pop ecx
cmp eax, ebx
je 0x1400aa20
mov dword [eax], vtable.IOleCS.0
jmp 0x1400aa22
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x228], ebx
lea eax, [esp + 0x34]
push eax
call fcn.140028f4
push 0x150
call fcn.14020bd0
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x228], 1
cmp eax, ebx
je 0x1400aa5a
push eax
call fcn.14007850
jmp 0x1400aa5c
xor eax, eax
mov byte [esp + 0x228], bl
push 0x1740
mov dword [0x14047c0c], eax
call fcn.14020bd0
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x228], 2
cmp eax, ebx
je 0x1400aa8b
push eax
call fcn.1400cb11
jmp 0x1400aa8d
xor eax, eax
mov byte [esp + 0x228], bl
mov esi, str.Language
mov dword [0x14047b9c], eax
call fcn.1401d37d
call fcn.1400cbf2
mov esi, str.Tztufn_Tfdvsjuz
mov eax, esi
call fcn.1401d94e
mov edx, dword [0x14047b9c]
add edx, 0x6f4
mov ecx, eax
call fcn.1400cf9b
mov eax, str.311:
call fcn.1401d94e
mov edx, dword [0x14047b9c]
add edx, 0x8fc
mov ecx, eax
call fcn.1400cf9b
mov eax, str.jfyqmpsf_fyf
call fcn.1401d94e
mov edx, dword [0x14047b9c]
add edx, 0xb10
mov ecx, eax
call fcn.1400cf9b
mov eax, esi
call fcn.1401d94e
mov edx, dword [0x14047b9c]
add edx, 0x1538
mov ecx, eax
call fcn.1400cf9b
mov eax, dword [0x14047c0c]
push 0x20a
push 0x2dc
push ebx
mov dword [eax + 0xd0], 0xd67e00
mov dword [eax + 0xd4], 0xf2aa4b
mov dword [eax + 0xc8], ebx
mov esi, dword [eax]
push ebx
mov edi, 0x80
push str.General
mov ecx, str.Caption
add esi, edi
call fcn.1400ce09
push eax
push str.General
mov ecx, str.TaskBar
call fcn.1400ce09
mov ecx, dword [0x14047c0c]
push eax
push ebx
push ebx
call dword [esi]
mov dword [0x14047be0], eax
call fcn.14002180
mov esi, str.IBS_NOTFSTRT
call fcn.1401d37d
or eax, edx
jne 0x1400ac43
call fcn.1400b699
test al, al
jne 0x1400abb9
push fcn.140091a5
push 0x668a0
push 0x3e8
push dword [0x14047be0]
call dword [sym.imp.USER32.dll_SetTimer]
mov esi, dword [0x14047c0c]
call fcn.1401e1c3
push 0x20
push 0x20
push 0x83
call fcn.1401c2ae
mov ecx, dword [0x14047c0c]
add esp, 0xc
mov dword [ecx + 0x5c], eax
call fcn.140080d0
push dword [0x14047bc8]
mov eax, dword [0x14047c0c]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
mov byte [eax + 0x92], bl
mov eax, dword [eax + 0x50]
push edi
push dword [0x14047be0]
mov dword [esp + 0x1e0], eax
call esi
push dword [0x14047c04]
push ebx
push edi
push dword [0x14047be0]
call esi
push ebx
push 1
mov eax, str.IBS_NOTFSTRT
call fcn.1401d575
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x134]
pop ecx
pop ecx
call fcn.1401a695
jmp 0x1400ae7b
mov esi, dword [0x14047c0c]
mov byte [0x140466a4], bl
mov byte [0x14046683], bl
call fcn.1401e1c3
push 0x20
push 0x20
push 0x83
call fcn.1401c2ae
mov ecx, dword [0x14047c0c]
add esp, 0xc
mov dword [ecx + 0x5c], eax
call fcn.140080d0
push dword [0x14047bc8]
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x50]
xor esi, esi
inc esi
push esi
push edi
push dword [0x14047be0]
mov dword [esp + 0x1e0], eax
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [0x14047c04]
push ebx
push edi
push dword [0x14047be0]
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.1400b699
test al, al
jne 0x1400adb5
push ebx
push esi
mov eax, str.IBS_CHKSTRTWWND
call fcn.1401d575
push ebx
push ebx
mov eax, str.IBS_CHKRUNMINIM
call fcn.1401d575
push ebx
push esi
mov eax, str.IBS_CHKSCANSTRT
call fcn.1401d575
add esp, 0x18
push ebx
call fcn.1400b747
mov eax, dword [0x14047c0c]
mov byte [0x14048500], bl
mov eax, dword [eax + 0x130]
mov eax, dword [eax + 0xf8]
mov dword [eax + 0x138], esi
mov esi, eax
call fcn.1401e751
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x130]
mov esi, dword [eax + 0xfc]
mov dword [esi + 0x138], ebx
call fcn.1401e751
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x130]
mov esi, dword [eax + 0x100]
mov dword [esi + 0x138], 1
call fcn.1401e751
mov esi, str.IBS_NOTFSTRT
call fcn.1401d37d
cmp edx, ebx
jl 0x1400adb0
jg 0x1400ad61
cmp eax, ebx
jbe 0x1400adb0
mov edi, dword [sym.imp.USER32.dll_SetTimer]
push ebx
push 0x1f4
push 0x402
push dword [0x14047be0]
call edi
call fcn.14008eee
push fcn.140091a5
push 0xea60
push 0x3e8
push dword [0x14047be0]
call edi
push 0xea60
push 0x3e8
push 0x113
push dword [0x14047be0]
call fcn.140091a5
push ebx
push 1
jmp 0x1400adf8
mov esi, str.IBS_UPDATE
mov byte [0x14048500], 1
call fcn.1401d37d
xor edi, edi
inc edi
cmp eax, edi
jne 0x1400add5
cmp edx, ebx
jne 0x1400add5
push ebx
push edi
jmp 0x1400add7
push ebx
push ebx
mov eax, esi
call fcn.1401d575
pop ecx
pop ecx
mov esi, str.IBS_PRIV
call fcn.1401d37d
cmp eax, edi
jne 0x1400adf6
cmp edx, ebx
jne 0x1400adf6
push ebx
push edi
jmp 0x1400adf8
push ebx
push ebx
mov eax, esi
call fcn.1401d575
pop ecx
pop ecx
mov esi, str.IBS_CHKRUNMINIM
call fcn.1401d37d
cmp eax, 1
jne 0x1400ae4f
cmp edx, ebx
jne 0x1400ae4f
mov eax, dword [0x14047c0c]
mov ecx, dword [eax + 0x134]
mov byte [eax + 0x92], bl
call fcn.1401a844
mov eax, dword [0x14047c0c]
mov edi, dword [eax + 0x50]
call fcn.1401aca7
call fcn.1400b699
test al, al
jne 0x1400ae7b
push 0xfffffffffffffffe
push dword [0x14047c0c]
call fcn.140096b3
jmp 0x1400ae7b
mov eax, dword [0x14047c0c]
push 1
push dword [eax + 0x50]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x14047c0c]
push dword [eax + 0x50]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [0x14047c0c]
push dword [eax + 0x50]
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov esi, str.IBS_CHKSTRTWWND
call fcn.1401d37d
xor esi, esi
inc esi
cmp eax, esi
jne 0x1400ae93
cmp edx, ebx
jne 0x1400ae93
push esi
jmp 0x1400ae94
push ebx
call fcn.1401cf1e
mov eax, dword [0x14047c0c]
pop ecx
push dword [eax + 0x50]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [0x14047c0c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [0x14047be8]
cmp ecx, ebx
je 0x1400aec2
mov eax, dword [ecx]
push esi
call dword [eax]
mov ecx, dword [0x14047c08]
cmp ecx, ebx
je 0x1400aed1
mov eax, dword [ecx]
push esi
call dword [eax]
mov ecx, dword [0x14047bf4]
cmp ecx, ebx
je 0x1400aee0
mov eax, dword [ecx]
push esi
call dword [eax]
mov ecx, dword [0x14047c0c]
cmp ecx, ebx
je 0x1400aeef
mov eax, dword [ecx]
push esi
call dword [eax]
call fcn.1401d325
mov eax, dword [0x14048058]
call fcn.1400ddb2
mov eax, dword [0x1404802c]
call fcn.1400ddb2
push 0x14047cb0
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
or dword [esp + 0x228], 0xffffffff
mov dword [esp + 0x20], vtable.CBrowser.0
xor eax, eax
mov ecx, dword [esp + 0x220]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x208]
xor ecx, esp
call fcn.14020762
mov esp, ebp
pop ebp
ret 0x10