Function at 0x5951b80
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Print debug messages
Terminate process

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x595ea76
push eax
mov eax, 0x9f30
mov dword fs:[0], esp
call fcn.05959ad0
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x59687e4
call edi
mov eax, str.cG5mgGdybWxodXUtcGxqOUNDQE8
test eax, eax
jne 0x5951821
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [esp + 0x9f30]
mov dword fs:[0], ecx
add esp, 0x9f3c
ret
push str.cG5mgGdybWxodXUtcGxqOUNDQE8
call fcn.05950f10
mov esi, eax
add esp, 4
mov dword [esp + 0xc], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push esi
lea ecx, [esp + 0x80]
push str._s__d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x5951897
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x5951897
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [esp + 0x9f30]
mov dword fs:[0], ecx
add esp, 0x9f3c
ret
push ebx
push ebp
push str.11111111
call edi
lea ecx, [esp + 0x18]
call fcn.05941a80
lea edx, [esp + 0x18]
lea ecx, [esp + 0xe4]
push edx
mov dword [esp + 0x9f4c], 0
call fcn.0594a470
lea ecx, [esp + 0xe4]
mov byte [esp + 0x9f48], 1
call fcn.0594a4a0
push str.22222222
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_OpenEventA]
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x12]
test al, al
je 0x5951935
cmp al, 3
je 0x5951935
xor edi, edi
lea eax, [esp + 0x80]
push eax
push 0
push 0x1f0003
call ebx
mov esi, eax
test esi, esi
jne 0x5951925
push 0x3c
call ebp
inc edi
cmp edi, 0x1f4
jl 0x59518ff
jmp 0x5951935
lea ecx, [esp + 0x18]
call fcn.05942120
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x59687b0
call esi
push 0x59683e8
push 0x596aa48
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.05951070
add esp, 0xc
test al, al
jne 0x5951964
mov byte [esp + 0x12], 1
jmp 0x59518f1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x59687a0
mov edi, eax
call esi
mov edx, dword [0x59683e8]
mov eax, dword [0x596aa48]
push edx
push eax
lea ecx, [esp + 0x20]
call fcn.05941c80
test al, al
jne 0x5951997
mov byte [esp + 0x12], 2
jmp 0x59518f1
push 0x596879c
call esi
lea ecx, [esp + 0x13]
push 1
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x1b], 0x65
call fcn.05942190
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x59683e8]
mov esi, eax
mov eax, dword [0x596aa48]
push edx
lea ecx, [esp + 0x84]
push eax
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0xf4]
sub esi, edi
call fcn.0594a4e0
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x18]
push eax
call fcn.05942400
xor edi, edi
lea ecx, [esp + 0xe4]
call fcn.0594b1b0
test al, al
jne 0x5951a13
push 0x3e8
call ebp
inc edi
cmp edi, 0xa
jl 0x59519f6
lea ecx, [esp + 0xe4]
call fcn.0594b1b0
test al, al
jne 0x5951a31
lea ecx, [esp + 0x18]
call fcn.05942120
jmp 0x59518f1
lea ecx, [esp + 0x18]
push esi
push ecx
push 0
call fcn.059513f0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea edx, [esp + 0x80]
push edx
push 0
push 0x1f0003
call ebx
mov esi, eax
push 0x64
mov eax, dword [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x1f4
mov edi, eax
call ebp
test esi, esi
jne 0x5951a7d
test edi, edi
jne 0x5951a47
jmp 0x59518f1
lea ecx, [esp + 0x18]
call fcn.05942120
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0xe4]
mov byte [esp + 0x9f48], 0
call fcn.0594a530
lea ecx, [esp + 0x18]
mov dword [esp + 0x9f48], 0xffffffff
call fcn.05941bd0
mov ecx, dword [esp + 0x9f40]
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
mov dword fs:[0], ecx
add esp, 0x9f3c
ret
mov eax, dword [0x59683e4]
test eax, eax
je 0x5951b9b
call fcn.05951660
test al, al
jne 0x5951ba0
call fcn.05951710
test al, al
jne 0x5951ba0
jmp 0x59517d0
ret