Function at 0x40e400
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 0x40e416
xor eax, eax
pop ebx
add esp, 0x20
ret 0x10
push esi
call fcn.00407e40
test eax, eax
jne 0x40e424
xor ecx, ecx
jmp 0x40e439
mov ecx, eax
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40e430
sub ecx, esi
push edi
push ecx
push eax
mov ecx, 0x443be4
call fcn.00404ee0
push ebx
lea ecx, [esp + 0x3c]
call fcn.00404a80
lea edi, [esp + 0x38]
call fcn.0040e970
push eax
mov ecx, edi
call fcn.00405030
mov eax, dword [esp + 0x38]
cmp dword [eax - 0xc], 0
jl 0x40e4b6
push str.http:__
push eax
call fcn.0041f2e6
add esp, 8
test eax, eax
je 0x40e4b6
mov ecx, dword [esp + 0x38]
sub eax, ecx
cmp eax, 0xffffffff
je 0x40e4b6
mov eax, 1
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x40e4a2
push 0
mov ecx, edi
call fcn.00404e30
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_UURHH33SEESEESEESEE
lea ecx, [esp + 0x10]
call fcn.00404a80
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 0x40e4f9
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 0x40e64c
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x443958
call esi
push 0x443940
call esi
push 0x443970
call esi
push str.apprun
push ebx
call fcn.004290f8
add esp, 8
test eax, eax
jne 0x40e532
mov dword [0x441050], 1
jmp 0x40e54d
push str.serrun
push ebx
call fcn.004290f8
add esp, 8
test eax, eax
jne 0x40e638
mov dword [0x441050], eax
mov esi, dword [esp + 0x30]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x64
push 0x4439f0
push 0x67
push esi
call edi
push 0x64
push 0x443988
push 0x6d
push esi
call edi
mov eax, esi
call fcn.0040d8b0
mov ecx, esi
call fcn.0040d940
test eax, eax
je 0x40e638
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 0x40e5e9
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 0x40e5d7
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 0x40e5b4
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 0x40e60d
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 0x40e62d
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
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e658
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 0x40e678
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