Function at 0x40e920
Capabilities:
Check mutex on windows
Create process on windows

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x30]
cmp byte [ebx], 0
jne 0x40e936
xor eax, eax
pop ebx
add esp, 0x20
ret 0x10
push esi
call fcn.00407870
test eax, eax
jne 0x40e944
xor ecx, ecx
jmp 0x40e959
mov ecx, eax
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40e950
sub ecx, esi
push edi
push ecx
push eax
mov ecx, 0x446cc4
call fcn.00404ef0
push ebx
lea ecx, [esp + 0x3c]
call fcn.00404ac0
lea edi, [esp + 0x38]
call fcn.0040ee50
push eax
mov ecx, edi
call fcn.00405030
mov eax, dword [esp + 0x38]
cmp dword [eax - 0xc], 0
jl 0x40e9d6
push str.http:__
push eax
call fcn.0041fa16
add esp, 8
test eax, eax
je 0x40e9d6
mov ecx, dword [esp + 0x38]
sub eax, ecx
cmp eax, 0xffffffff
je 0x40e9d6
mov eax, 1
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x40e9c2
push 0
mov ecx, edi
call fcn.00404e40
mov ecx, dword [esp + 0x38]
push 5
push 0
push 0
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push str.GlobalWEDFEE_UURHH
lea ecx, [esp + 0x10]
call fcn.00404ac0
mov ecx, dword [esp + 0xc]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40ea19
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40eaaf
push str.apprun
push ebx
call fcn.00429b78
add esp, 8
test eax, eax
jne 0x40ea35
mov dword [0x446b20], 1
push str.serrun
push ebx
call fcn.00429b78
add esp, 8
test eax, eax
jne 0x40ea4c
mov dword [0x446b20], eax
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x446a18
call esi
push 0x446a00
call esi
push 0x446a30
call esi
mov esi, dword [esp + 0x30]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x64
push 0x446ab0
push 0x67
push esi
call edi
push 0x64
push 0x446a48
push 0x6d
push esi
call edi
mov eax, esi
call fcn.0040dd60
mov ecx, esi
call fcn.0040de00
test eax, eax
jne 0x40eae6
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eabb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eadb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x20
ret 0x10
push 0x6d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
push 0
lea ecx, [esp + 0x1c]
push ecx
mov esi, eax
call edi
test eax, eax
je 0x40eb4a
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
push ebp
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x14]
push edx
push esi
push eax
call ebx
test eax, eax
jne 0x40eb38
lea ecx, [esp + 0x14]
push ecx
call ebp
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x20]
push eax
call edi
test eax, eax
jne 0x40eb15
pop ebp
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eb6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eb8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x20
ret 0x10