Function at 0x40d110
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x418
mov eax, dword [0x4785d0]
xor eax, esp
mov dword [esp + 0x414], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x160]
mov ebx, 0x2713
mov dword [esp + 0x160], 0
mov dword [esp + 0x244], 0
mov dword [esp + 0x248], 0
call fcn.0040a050
push str.3f3d9c363b9549f3aa5fb6c1ce25c4d2
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esp + 0x160], eax
test eax, eax
je 0x40db43
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40d1a9
push dword [esp + 0x160]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x160], 0
jmp 0x40db43
push esi
lea ecx, [esp + 0x164]
mov dword [esp + 0xd0], 0xf
mov dword [esp + 0xcc], 0
mov byte [esp + 0xbc], 0
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
call fcn.0040a780
test al, al
jne 0x40d29d
lea ecx, [esp + 0xb8]
cmp byte [esp + 0x166], al
jne 0x40d213
push 0xc
push str.REQUIREMENTS
jmp 0x40d21a
push 6
push str.FAILED
call fcn.00407c90
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x164]
call fcn.0040d0d0
mov esi, eax
lea eax, [esp + 0xa0]
cmp eax, esi
je 0x40d281
cmp dword [esp + 0xb4], 0x10
jb 0x40d256
push dword [esp + 0xa0]
call fcn.0041a4c1
add esp, 4
push esi
lea ecx, [esp + 0xa4]
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
call fcn.00406f50
cmp dword [esp + 0x20], 0x10
jb 0x40d3c9
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
jmp 0x40d3c9
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x384]
call fcn.00402040
lea ecx, [esp + 0x380]
call fcn.004038e0
test al, 0x7f
jne 0x40d2d3
xor ebx, ebx
cmp byte [esp + 0x414], bl
setne bl
add ebx, 0x2710
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x164]
call fcn.0040d090
mov esi, eax
lea eax, [esp + 0xb8]
cmp eax, esi
je 0x40d335
cmp dword [esp + 0xcc], 0x10
jb 0x40d30a
push dword [esp + 0xb8]
call fcn.0041a4c1
add esp, 4
push esi
lea ecx, [esp + 0xbc]
mov dword [esp + 0xd0], 0xf
mov dword [esp + 0xcc], 0
mov byte [esp + 0xbc], 0
call fcn.00406f50
cmp dword [esp + 0x20], 0x10
jb 0x40d348
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x164]
call fcn.0040d0d0
mov esi, eax
lea eax, [esp + 0xa0]
cmp eax, esi
je 0x40d3aa
cmp dword [esp + 0xb4], 0x10
jb 0x40d37f
push dword [esp + 0xa0]
call fcn.0041a4c1
add esp, 4
push esi
lea ecx, [esp + 0xa4]
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
call fcn.00406f50
cmp dword [esp + 0x20], 0x10
jb 0x40d3bd
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
lea ecx, [esp + 0x380]
call fcn.0040db60
cmp byte [esp + 0x165], 0
jne 0x40d3e6
push 6
push str._NOGUI
lea ecx, [esp + 0xa8]
call fcn.00409300
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xc0]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.00407060
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x17c]
call fcn.0040a6b0
mov esi, eax
lea eax, [esp + 0xa0]
cmp eax, esi
je 0x40d46f
cmp dword [esp + 0xb4], 0x10
jb 0x40d444
push dword [esp + 0xa0]
call fcn.0041a4c1
add esp, 4
push esi
lea ecx, [esp + 0xa4]
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
call fcn.00406f50
cmp dword [esp + 0x20], 0x10
jb 0x40d482
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x1a0]
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0xf0], 0xf
mov dword [esp + 0xec], 0
mov byte [esp + 0xdc], 0
mov dword [esp + 0x108], 0xf
mov dword [esp + 0x104], 0
mov byte [esp + 0xf4], 0
mov dword [esp + 0x138], 0xf
mov dword [esp + 0x134], 0
mov byte [esp + 0x124], 0
call fcn.00407060
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x1b8]
push eax
lea ecx, [esp + 0xf4]
call fcn.00407060
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x1d0]
push eax
lea ecx, [esp + 0x124]
call fcn.00407060
cmp dword [esp + 0xe4], 0x10
lea edx, [esp + 0xd0]
cmovae edx, dword [esp + 0xd0]
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], 0
mov byte [esp + 0x84], 0
cmp byte [edx], 0
jne 0x40d562
xor ecx, ecx
jmp 0x40d570
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d567
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.00407c90
cmp dword [esp + 0xfc], 0x10
lea edx, [esp + 0xe8]
cmovae edx, dword [esp + 0xe8]
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], 0
mov byte [esp + 0x54], 0
cmp byte [edx], 0
jne 0x40d5b3
xor ecx, ecx
jmp 0x40d5c1
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d5b8
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.00407c90
lea eax, [esp + 0xb8]
push eax
push 0x46d3a8
lea eax, [esp + 0x120]
push eax
push 0x46d3ac
lea eax, [esp + 0x94]
push eax
push 0x46d3ac
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x24]
call fcn.004089f0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x38]
call fcn.00408a90
add esp, 4
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.004089f0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x10c]
call fcn.00408fe0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x74]
call fcn.004089f0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x14c]
call fcn.00408fe0
add esp, 4
cmp dword [esp + 0x80], 0x10
jb 0x40d665
push dword [esp + 0x6c]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x114], 0x10
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
jb 0x40d696
push dword [esp + 0x100]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x114], 0xf
mov dword [esp + 0x110], 0
mov byte [esp + 0x100], 0
jb 0x40d6c7
push dword [esp + 0x3c]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
jb 0x40d6ef
push dword [esp + 0x24]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x20], 0x10
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
jb 0x40d717
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x68], 0x10
mov dword [esp + 0x20], 0xf
mov dword [esp + 0x1c], 0
mov byte [esp + 0xc], 0
jb 0x40d73f
push dword [esp + 0x54]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x98], 0x10
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], 0
mov byte [esp + 0x54], 0
jb 0x40d76d
push dword [esp + 0x84]
call fcn.0041a4c1
add esp, 4
lea eax, [esp + 0x320]
push eax
push 0x46d3ac
lea eax, [esp + 0xa8]
push eax
push 0x46d3ac
lea edx, [esp + 0x158]
lea ecx, [esp + 0x4c]
call fcn.00408900
add esp, 4
mov edx, eax
lea ecx, [esp + 0x30]
call fcn.00408fe0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x14]
call fcn.004089f0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x134]
call fcn.00408fe0
add esp, 4
cmp dword [esp + 0x20], 0x10
jb 0x40d7da
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x20], 0xf
mov dword [esp + 0x1c], 0
mov byte [esp + 0xc], 0
jb 0x40d802
push dword [esp + 0x24]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
jb 0x40d82a
push dword [esp + 0x3c]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x140], 0
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
je 0x40d85d
lea ecx, [esp + 0x130]
call fcn.0040f240
test al, al
jne 0x40d85d
push 0x12c
call esi
lea ecx, [esp + 0x130]
call fcn.0040f240
cmp dword [esp + 0x2a0], 1
je 0x40d883
cmp byte [esp + 0x250], 0
jne 0x40d9e0
cmp byte [esp + 0x24f], 0
je 0x40d9e0
cmp ebx, 0x2710
jne 0x40d9e0
cmp dword [esp + 0xe4], 0x10
lea ecx, [esp + 0xb8]
push ecx
push 0x46d3ac
lea ecx, [esp + 0x120]
push ecx
lea eax, [esp + 0xdc]
cmovae eax, dword [esp + 0xdc]
push 0x46d3ac
push eax
lea ecx, [esp + 0x80]
call fcn.00405140
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.004089f0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x30]
call fcn.00408fe0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x14]
call fcn.004089f0
add esp, 4
mov edx, eax
lea ecx, [esp + 0x104]
call fcn.00408fe0
add esp, 4
cmp dword [esp + 0x20], 0x10
jb 0x40d91b
push dword [esp + 0xc]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x20], 0xf
mov dword [esp + 0x1c], 0
mov byte [esp + 0xc], 0
jb 0x40d943
push dword [esp + 0x24]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
jb 0x40d96b
push dword [esp + 0x3c]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x80], 0x10
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
jb 0x40d996
push dword [esp + 0x6c]
call fcn.0041a4c1
add esp, 4
lea edx, [esp + 0x100]
lea ecx, [esp + 0x368]
call fcn.0040f4a0
test al, al
jne 0x40d9c7
push 0x12c
call esi
lea edx, [esp + 0x100]
lea ecx, [esp + 0x368]
call fcn.0040f4a0
cmp dword [esp + 0x114], 0x10
jb 0x40d9e0
push dword [esp + 0x100]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x144], 0x10
jb 0x40d9f9
push dword [esp + 0x130]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x15c], 0x10
mov dword [esp + 0x144], 0xf
mov dword [esp + 0x140], 0
mov byte [esp + 0x130], 0
jb 0x40da30
push dword [esp + 0x148]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0x12c], 0x10
mov dword [esp + 0x15c], 0xf
mov dword [esp + 0x158], 0
mov byte [esp + 0x148], 0
jb 0x40da67
push dword [esp + 0x118]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0xfc], 0x10
mov dword [esp + 0x12c], 0xf
mov dword [esp + 0x128], 0
mov byte [esp + 0x118], 0
jb 0x40da9e
push dword [esp + 0xe8]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0xe4], 0x10
mov dword [esp + 0xfc], 0xf
mov dword [esp + 0xf8], 0
mov byte [esp + 0xe8], 0
jb 0x40dad5
push dword [esp + 0xd0]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0xb4], 0x10
mov dword [esp + 0xe4], 0xf
mov dword [esp + 0xe0], 0
mov byte [esp + 0xd0], 0
jb 0x40db0c
push dword [esp + 0xa0]
call fcn.0041a4c1
add esp, 4
cmp dword [esp + 0xcc], 0x10
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], 0
mov byte [esp + 0xa0], 0
jb 0x40db43
push dword [esp + 0xb8]
call fcn.0041a4c1
add esp, 4
lea ecx, [esp + 0x160]
call fcn.0040a290
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]