Function at 0x40a905
Capabilities:
Accept command line arguments
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
push 0x50
mov eax, 0x439179
call fcn.00438668
or dword [ebp - 0x18], 0xffffffff
xor ebx, ebx
push 0xfffffffffffffffe
pop edi
mov byte [ebp - 0xe], bl
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0xd], bl
push 2
pop esi
mov dword [ebp - 4], ebx
cmp dword [0x469658], esi
je 0x40a984
mov ecx, 0x46965c
call fcn.0040eb25
cmp dword [0x469658], esi
je 0x40a978
xorps xmm0, xmm0
mov dword [0x469658], 1
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x48], 0x43dd00
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], edi
call fcn.0040e7c1
mov dword [0x469658], esi
push 0x46965c
call dword [sym.imp.MSVCP140.dll__Mtx_unlock]
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
mov dword [ebp - 0x38], vtable.Mso::Logging::StructuredObject_wchar_t_const___1_.0
xor eax, eax
mov dword [ebp - 0x34], str.Param
mov word [ebp - 0x2c], ax
mov edx, 0x851
lea eax, [ebp - 0x38]
mov dword [ebp - 0x30], esi
push eax
push str.WinMain:
push 0x64
pop eax
push eax
mov ecx, 0x170b043
mov dword [ebp - 0x24], eax
call fcn.00401c4f
mov edx, str..exe
mov ecx, esi
call fcn.0040bd36
mov dword [ebp - 0x1c], 0x22
test eax, eax
je 0x40a9de
lea esi, [eax + 8]
jmp 0x40aa2d
mov edx, str.msohtmed
mov ecx, esi
call fcn.0040bd36
test eax, eax
je 0x40a9f3
lea esi, [eax + 0x10]
jmp 0x40aa2d
push 0x22
pop eax
cmp word [esi], ax
jne 0x40aa18
lea ecx, [esi + 2]
mov edx, eax
call fcn.0040ba21
test eax, eax
je 0x40aa18
push 0x20
lea ecx, [eax + 2]
pop edx
call fcn.0040ba21
test eax, eax
jne 0x40aa2a
push 0x20
pop edx
mov ecx, esi
call fcn.0040ba21
test eax, eax
je 0x40ad4b
lea esi, [eax + 2]
movzx eax, word [esi]
mov edx, esi
mov ecx, eax
mov dword [ebp - 0x14], esi
cmp ax, word [ebp - 0x1c]
jne 0x40aa52
push 0x22
pop ecx
add esi, 2
movzx eax, word [esi]
cmp ax, cx
je 0x40aa40
mov dword [ebp - 0x14], esi
mov ecx, eax
mov edx, esi
push 0x20
pop eax
cmp cx, ax
jne 0x40aa67
lea esi, [edx + 2]
mov edx, esi
mov dword [ebp - 0x14], esi
cmp word [esi], ax
je 0x40aa5a
mov edx, esi
mov ecx, str._regserver
call fcn.0040baaf
test eax, eax
jne 0x40aa97
mov edx, esi
mov ecx, str._regserverfp
call fcn.0040baaf
test eax, eax
jne 0x40aa97
mov edx, esi
mov ecx, str._unregserver
call fcn.0040baaf
test eax, eax
je 0x40ab12
push str.MSOHTMED_REG
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x40ad4b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40ad3d
mov edx, esi
mov ecx, str._regserverfp
call fcn.0040baaf
test eax, eax
je 0x40aae7
xor edx, edx
inc edx
call fcn.00405cf0
neg eax
sbb eax, eax
and eax, 2
add edi, eax
jmp 0x40ad3d
mov edx, esi
mov ecx, str._regserver
call fcn.0040baaf
test eax, eax
je 0x40aafb
xor edx, edx
jmp 0x40aad4
mov edx, esi
mov ecx, str._unregserver
call fcn.0040baaf
test eax, eax
je 0x40ab12
call fcn.00407f74
jmp 0x40aad9
mov edx, esi
mov ecx, 0x43d5a8
call fcn.0040baaf
test eax, eax
je 0x40ab63
movzx eax, word [esi + 4]
cmp eax, 0x30
jb 0x40ad3d
cmp eax, 0x39
ja 0x40ad3d
cmp word [esi + 6], bx
jne 0x40ad3d
mov word [ebp - 0x18], ax
lea ecx, [ebp - 0x18]
push 0xa
xor eax, eax
pop edx
mov word [ebp - 0x16], ax
call fcn.0040bec7
mov ecx, eax
call fcn.004097bb
jmp 0x40aad9
mov edx, esi
mov dword [ebp - 0x1c], ebx
mov ecx, 0x43c950
call fcn.0040baaf
test eax, eax
je 0x40ab83
add esi, 6
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x14], esi
mov edx, esi
mov ecx, 0x43d5b0
call fcn.0040baaf
test eax, eax
je 0x40ab9d
add esi, 6
mov byte [ebp - 0xe], 1
mov dword [ebp - 0x14], esi
mov edx, esi
mov ecx, 0x43d5b8
call fcn.0040baaf
test eax, eax
je 0x40ac05
movzx ecx, word [esi + 4]
mov edx, ecx
call fcn.0040bda3
cmp ax, word [ebp - 0x24]
jne 0x40abcd
push 0x20
pop eax
cmp word [esi + 6], ax
jne 0x40abcd
mov byte [ebp - 0xd], 1
jmp 0x40abff
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x40ad3d
push 0x20
pop eax
cmp word [esi + 6], ax
jne 0x40ad3d
push 0xa
mov word [ebp - 0x18], cx
xor eax, eax
pop edx
lea ecx, [ebp - 0x18]
mov word [ebp - 0x16], ax
call fcn.0040bec7
mov dword [ebp - 0x18], eax
add esi, 8
mov dword [ebp - 0x14], esi
movzx ecx, word [esi]
push 0x22
pop edx
mov eax, ecx
cmp cx, dx
jne 0x40ac4c
mov ecx, esi
call fcn.0040b9b7
mov edx, eax
movzx eax, word [esi]
push 0x22
pop ecx
mov dword [ebp - 0x24], edx
cmp word [esi + edx*2 - 2], cx
jne 0x40ac4c
lea ecx, [esi + 2]
call fcn.0040bc91
mov ebx, eax
test ebx, ebx
je 0x40ad3d
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov esi, ebx
mov word [ebx + eax*2 - 4], cx
movzx eax, word [ebx]
test ax, ax
je 0x40ad24
lea eax, [ebp - 0x14]
push eax
push str.Param
lea ecx, [ebp - 0x38]
call fcn.00401c0d
push eax
push str.WinMain:_Before_PHevCreateFileInfo
push 0x64
pop eax
push eax
mov edx, 0x851
mov ecx, 0x170b046
call fcn.00401c4f
xor edx, edx
mov ecx, esi
call fcn.00401d8f
mov esi, eax
test esi, esi
je 0x40ad27
lea eax, [ebp - 0x14]
push eax
push str.Param
lea ecx, [ebp - 0x38]
call fcn.00401c0d
push eax
push str.WinMain:_Before_WHevParseFile
push 0x64
pop eax
push eax
mov edx, 0x851
mov ecx, 0x170b047
call fcn.00401c4f
cmp dword [ebp - 0x18], 0xffffffff
jne 0x40acd4
cmp byte [ebp - 0xd], 0
jne 0x40acd4
mov ecx, esi
call fcn.0040ad96
mov dword [ebp - 0x18], eax
jmp 0x40acdb
mov ecx, esi
call fcn.0040ad96
lea eax, [ebp - 0x14]
push eax
push str.Param
lea ecx, [ebp - 0x38]
call fcn.00401c0d
push eax
push str.WinMain:_Before_FHevActivateApp
push 0x64
pop eax
push eax
mov edx, 0x851
mov ecx, 0x170b048
call fcn.00401c4f
cmp byte [ebp - 0xe], 0
mov eax, dword [ebp - 0x18]
jne 0x40ad20
cmp eax, edi
je 0x40ad20
push dword [ebp - 0x1c]
mov edx, esi
mov ecx, eax
call fcn.004021eb
jmp 0x40ad27
mov edi, eax
jmp 0x40ad27
mov esi, dword [ebp - 0x28]
test ebx, ebx
je 0x40ad32
mov ecx, ebx
call fcn.0040eb86
test esi, esi
je 0x40ad3d
mov ecx, esi
call fcn.00401f37
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x40ad4b
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.004017b5
test eax, eax
je 0x40ad5a
call dword [sym.imp.ole32.dll_CoUninitialize]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x43b75c
push eax
push str.Param
lea ecx, [ebp - 0x38]
call fcn.00401c0d
push eax
push str.WinMain__EXIT_
push 0x64
pop eax
push eax
mov edx, 0x851
mov ecx, 0x170b049
call fcn.00401c4f
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]