Function at 0x1400a70b
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 0x14036c3f
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.1400dcd5
mov dword [0x14047c10], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047c3c], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047bf8], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047cd4], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047c18], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047c5c], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047bec], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047bf0], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047cc8], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047c80], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047c94], eax
mov eax, esi
call fcn.1400dcd5
mov dword [0x14047bac], eax
mov eax, esi
call fcn.1400dcd5
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.1400ceb1
dec eax
cmp eax, ebx
jle 0x1400a860
cmp word [ecx + eax*2], 0x5c
jne 0x1400a854
cmp eax, esi
jg 0x1400a87d
cmp eax, ebx
jl 0x1400a87d
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 0x1400a871
call fcn.140011a3
call fcn.1400a593
call fcn.14001397
mov edi, dword [0x14047cd4]
mov eax, esi
call fcn.1400dcd5
mov dword [0x1404802c], eax
mov eax, esi
call fcn.1400dcd5
push edi
push str.SOFTWARE_ws_
push dword [0x1404802c]
mov dword [0x14048058], eax
mov eax, esi
call fcn.1400d70a
mov edx, dword [0x14048058]
add esp, 0xc
mov ecx, edi
call fcn.1400cecd
call fcn.1401d135
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, str.BW43_JOD
call fcn.1401d88b
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400a905
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.1400b5cb
test al, al
jne 0x1400a913
call fcn.1400a062
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.14020b10
pop ecx
cmp eax, ebx
je 0x1400a95d
mov dword [eax], vtable.IOleCS.0
jmp 0x1400a95f
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.14020b10
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x228], 1
cmp eax, ebx
je 0x1400a997
push eax
call fcn.14007850
jmp 0x1400a999
xor eax, eax
mov byte [esp + 0x228], bl
push 0x1740
mov dword [0x14047c0c], eax
call fcn.14020b10
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x228], 2
cmp eax, ebx
je 0x1400a9c8
push eax
call fcn.1400ca43
jmp 0x1400a9ca
xor eax, eax
mov byte [esp + 0x228], bl
mov esi, str.Language
mov dword [0x14047b9c], eax
call fcn.1401d2ba
call fcn.1400cb24
mov esi, str.Tztufn_Tfdvsjuz
mov eax, esi
call fcn.1401d88b
mov edx, dword [0x14047b9c]
add edx, 0x6f4
mov ecx, eax
call fcn.1400cecd
mov eax, str.311:
call fcn.1401d88b
mov edx, dword [0x14047b9c]
add edx, 0x8fc
mov ecx, eax
call fcn.1400cecd
mov eax, str.jfyqmpsf_fyf
call fcn.1401d88b
mov edx, dword [0x14047b9c]
add edx, 0xb10
mov ecx, eax
call fcn.1400cecd
mov eax, esi
call fcn.1401d88b
mov edx, dword [0x14047b9c]
add edx, 0x1538
mov ecx, eax
call fcn.1400cecd
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.1400cd3b
push eax
push str.General
mov ecx, str.TaskBar
call fcn.1400cd3b
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.1401d2ba
or eax, edx
jne 0x1400ab80
call fcn.1400b5cb
test al, al
jne 0x1400aaf6
push fcn.140091a5
push 0x668a0
push 0x3e8
push dword [0x14047be0]
call dword [sym.imp.USER32.dll_SetTimer]
mov esi, dword [0x14047c0c]
call fcn.1401e100
push 0x20
push 0x20
push 0x83
call fcn.1401c1eb
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.1401d4b2
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x134]
pop ecx
pop ecx
call fcn.1401a5c7
jmp 0x1400adb8
mov esi, dword [0x14047c0c]
mov byte [0x140466a4], bl
mov byte [0x14046683], bl
call fcn.1401e100
push 0x20
push 0x20
push 0x83
call fcn.1401c1eb
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.1400b5cb
test al, al
jne 0x1400acf2
push ebx
push esi
mov eax, str.IBS_CHKSTRTWWND
call fcn.1401d4b2
push ebx
push ebx
mov eax, str.IBS_CHKRUNMINIM
call fcn.1401d4b2
push ebx
push esi
mov eax, str.IBS_CHKSCANSTRT
call fcn.1401d4b2
add esp, 0x18
push ebx
call fcn.1400b679
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.1401e68e
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x130]
mov esi, dword [eax + 0xfc]
mov dword [esi + 0x138], ebx
call fcn.1401e68e
mov eax, dword [0x14047c0c]
mov eax, dword [eax + 0x130]
mov esi, dword [eax + 0x100]
mov dword [esi + 0x138], 1
call fcn.1401e68e
mov esi, str.IBS_NOTFSTRT
call fcn.1401d2ba
cmp edx, ebx
jl 0x1400aced
jg 0x1400ac9e
cmp eax, ebx
jbe 0x1400aced
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 0x1400ad35
mov esi, str.IBS_UPDATE
mov byte [0x14048500], 1
call fcn.1401d2ba
xor edi, edi
inc edi
cmp eax, edi
jne 0x1400ad12
cmp edx, ebx
jne 0x1400ad12
push ebx
push edi
jmp 0x1400ad14
push ebx
push ebx
mov eax, esi
call fcn.1401d4b2
pop ecx
pop ecx
mov esi, str.IBS_PRIV
call fcn.1401d2ba
cmp eax, edi
jne 0x1400ad33
cmp edx, ebx
jne 0x1400ad33
push ebx
push edi
jmp 0x1400ad35
push ebx
push ebx
mov eax, esi
call fcn.1401d4b2
pop ecx
pop ecx
mov esi, str.IBS_CHKRUNMINIM
call fcn.1401d2ba
cmp eax, 1
jne 0x1400ad8c
cmp edx, ebx
jne 0x1400ad8c
mov eax, dword [0x14047c0c]
mov ecx, dword [eax + 0x134]
mov byte [eax + 0x92], bl
call fcn.1401a776
mov eax, dword [0x14047c0c]
mov edi, dword [eax + 0x50]
call fcn.1401abd9
call fcn.1400b5cb
test al, al
jne 0x1400adb8
push 0xfffffffffffffffe
push dword [0x14047c0c]
call fcn.140096bf
jmp 0x1400adb8
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.1401d2ba
xor esi, esi
inc esi
cmp eax, esi
jne 0x1400add0
cmp edx, ebx
jne 0x1400add0
push esi
jmp 0x1400add1
push ebx
call fcn.1401ce5b
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 0x1400adff
mov eax, dword [ecx]
push esi
call dword [eax]
mov ecx, dword [0x14047c08]
cmp ecx, ebx
je 0x1400ae0e
mov eax, dword [ecx]
push esi
call dword [eax]
mov ecx, dword [0x14047bf4]
cmp ecx, ebx
je 0x1400ae1d
mov eax, dword [ecx]
push esi
call dword [eax]
mov ecx, dword [0x14047c0c]
cmp ecx, ebx
je 0x1400ae2c
mov eax, dword [ecx]
push esi
call dword [eax]
call fcn.1401d262
mov eax, dword [0x14048058]
call fcn.1400dce4
mov eax, dword [0x1404802c]
call fcn.1400dce4
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.140206a2
mov esp, ebp
pop ebp
ret 0x10