Function at 0x4027d0
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
push 0x4143c0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
test esi, esi
je 0x40280c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40280c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret 0x10
mov al, byte [esp + 0x44]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00401ce0
mov edi, 0x4143ac
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4143ac
lea ecx, [esp + 0x30]
call fcn.00404450
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x44]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00404390
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x402865
mov eax, 0x4111b0
push eax
call fcn.00404f80
add esp, 4
call fcn.004041c0
test eax, eax
je 0x402884
cmp eax, 3
mov dword [esp + 0x10], 0
jne 0x40288c
mov dword [esp + 0x10], 1
call fcn.00402fc0
mov cl, byte [esp + 0x44]
push 0
mov byte [esp + 0x1c], cl
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], eax
call fcn.00401ce0
mov edi, 0x417418
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00402070
test al, al
je 0x4028ec
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
mov esi, 0x417418
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00402050
cmp dword [0x4178a8], 2
jne 0x402c7c
mov eax, dword [0x4178ac]
or ecx, 0xffffffff
push 1
mov esi, dword [eax + 4]
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00402070
test al, al
je 0x40293d
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00402050
mov edi, 0x4143a8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x20]
not ecx
dec ecx
push ecx
push 0x4143a8
push eax
push 0
lea ecx, [esp + 0x28]
call fcn.004026d0
test eax, eax
jne 0x402986
mov esi, dword [esp + 0x10]
mov bl, 1
test esi, esi
je 0x40297f
push 0x414390
call fcn.00404f80
add esp, 4
test esi, esi
setne byte [esp + 0x44]
jmp 0x4029b8
mov edi, 0x41438c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x24]
push 0x41438c
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.004026d0
test eax, eax
jne 0x402c7c
xor bl, bl
mov byte [esp + 0x44], bl
mov edi, 0x41436c
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x2c]
push ebp
call fcn.00402070
test al, al
je 0x4029fc
mov edi, dword [esp + 0x2c]
mov ecx, ebp
mov edx, ecx
mov esi, 0x41436c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
call fcn.00402050
mov al, byte [esp + 0x44]
mov edx, 0x414364
test al, al
jne 0x402a0e
mov edx, 0x414358
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00404390
xor esi, esi
mov eax, dword [esp + 0x2c]
cmp eax, esi
jne 0x402a34
mov eax, 0x4111b0
push eax
call fcn.00404f80
mov edi, 0x41438c
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x20]
not ecx
dec ecx
push ecx
push 0x41438c
push eax
push esi
lea ecx, [esp + 0x28]
call fcn.004026d0
test eax, eax
jne 0x402a96
cmp dword [esp + 0x10], esi
jne 0x402a96
cmp dword [esp + 0x14], esi
je 0x402a96
push 0xc
call fcn.00408e45
add esp, 4
cmp eax, esi
je 0x402a88
mov ecx, eax
call fcn.00401290
jmp 0x402a8a
xor eax, eax
mov ecx, eax
mov dword [0x41740c], eax
call fcn.00401320
test bl, bl
je 0x402b32
push 0x414348
call fcn.00404f80
push 0x10
call fcn.00408e45
add esp, 8
cmp eax, esi
je 0x402ac4
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, eax
call fcn.00404520
jmp 0x402ac6
xor eax, eax
mov ecx, eax
mov dword [0x417408], eax
call fcn.00404600
mov ecx, dword [0x417408]
cmp ecx, esi
je 0x402ae2
mov edx, dword [ecx]
push 1
call dword [edx]
mov al, byte [esp + 0x44]
test al, al
jne 0x402b32
push 0x414330
call fcn.00404f80
mov ecx, dword [esp + 0x20]
add esp, 4
cmp ecx, esi
je 0x402b1b
mov al, byte [ecx - 1]
test al, al
je 0x402b11
cmp al, 0xff
je 0x402b11
dec al
mov byte [ecx - 1], al
jmp 0x402b1b
dec ecx
push ecx
call fcn.00405716
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
cmp ecx, esi
jmp 0x402c48
mov edi, 0x41438c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x20]
not ecx
dec ecx
mov ebp, ecx
mov ecx, eax
cmp eax, ebp
jb 0x402b4f
mov ecx, ebp
mov esi, dword [esp + 0x1c]
mov edi, 0x41438c
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x402b63
sbb edx, edx
sbb edx, 0xffffffff
xor edi, edi
cmp edx, edi
jne 0x402bb9
cmp eax, ebp
jb 0x402bb9
xor edx, edx
cmp eax, ebp
setne dl
cmp edx, edi
jne 0x402bb9
cmp dword [esp + 0x10], edi
jne 0x402bb9
cmp dword [esp + 0x14], edi
je 0x402bb9
mov eax, dword [0x41740c]
push 0x1d4c0
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x41740c]
call fcn.00401370
mov ecx, dword [0x41740c]
cmp ecx, edi
je 0x402bb3
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [0x41740c], edi
mov al, byte [esp + 0x44]
test al, al
je 0x402c05
push 0x414320
call fcn.00404f80
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
call fcn.00402fc0
test eax, eax
je 0x402bf3
push 0x4142f4
call fcn.00404f80
add esp, 4
push 0x3e8
call esi
jmp 0x402bd4
push 0x4142d0
call fcn.00404f80
add esp, 4
call fcn.00402cb0
push 0x4142c4
call fcn.00404f80
mov ecx, dword [esp + 0x20]
add esp, 4
cmp ecx, edi
je 0x402c36
mov al, byte [ecx - 1]
test al, al
je 0x402c2c
cmp al, 0xff
je 0x402c2c
dec al
mov byte [ecx - 1], al
jmp 0x402c36
dec ecx
push ecx
call fcn.00405716
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
cmp ecx, edi
je 0x402c9f
mov al, byte [ecx - 1]
test al, al
je 0x402c66
cmp al, 0xff
je 0x402c66
dec al
pop edi
pop esi
mov byte [ecx - 1], al
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret 0x10
dec ecx
push ecx
call fcn.00405716
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0x10
push 0x4142a8
call fcn.00404f80
add esp, 4
lea ecx, [esp + 0x18]
push 1
call fcn.00401ce0
push 1
lea ecx, [esp + 0x2c]
call fcn.00401ce0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret 0x10