Function at 0x10002d00
Capabilities:
Check mutex on windows

Disassembly:
mov eax, dword [0x1001f820]
sub esp, 0xc
push ebx
push ebp
xor ebx, ebx
xor ebp, ebp
test eax, eax
jne 0x10002d1d
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0xc
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0xffffffffffffffff
push eax
call esi
mov eax, dword [0x1001fe7c]
test eax, eax
jne 0x10002d3e
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc
ret
mov eax, dword [0x1001f86c]
test eax, eax
je 0x10002d53
pop esi
pop ebp
mov eax, 0xfffffff9
pop ebx
add esp, 0xc
ret
push edi
call fcn.100058c0
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x10002d76
call fcn.10002970
cmp eax, 0xffffffff
jne 0x10002d81
push edi
call fcn.10005860
add esp, 4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret
mov eax, dword [0x1001f828]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x1c], eax
call esi
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x10002db8
push edi
call fcn.10005860
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0xc
ret
test eax, eax
je 0x10002ee6
cmp eax, 0x80
je 0x10002def
cmp eax, 0x102
jne 0x10002fdb
push edi
call fcn.10005860
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0xc
ret
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax]
push ecx
push edi
mov dword [esp + 0x20], esi
call fcn.100058e0
mov edx, dword [0x1001fe7c]
mov eax, dword [edx + 4]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002e13
sub eax, edx
add eax, 2
push eax
call fcn.1000bbc2
mov ebx, eax
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 4]
add esp, 4
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x10002e34
mov ecx, dword [0x1001fe7c]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0x48]
test eax, eax
je 0x10002e91
inc eax
push eax
call fcn.1000bbc2
mov ebp, eax
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x48]
mov esi, dword [eax + 8]
mov edx, ecx
shr ecx, 2
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x48]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov byte [edx + ebp], 0
jmp 0x10002ec2
mov eax, dword [ecx + 8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002e97
sub eax, edx
add eax, 2
push eax
call fcn.1000bbc2
mov ebp, eax
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 8]
add esp, 4
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x10002eb8
mov ecx, dword [0x1001fe7c]
push ecx
call fcn.10005c70
xor eax, eax
add esp, 4
cmp esi, eax
je 0x10002fc6
mov dword [0x1001fe7c], esi
jmp 0x10002fd0
mov eax, dword [0x1001fe7c]
mov esi, dword [eax]
mov eax, dword [eax + 0xc]
push eax
push edi
mov dword [esp + 0x20], esi
call fcn.100058e0
mov ecx, dword [0x1001fe7c]
mov eax, dword [ecx + 4]
add esp, 8
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002f10
sub eax, edx
inc eax
push eax
call fcn.1000bbc2
mov edx, dword [0x1001fe7c]
mov ecx, dword [edx + 4]
mov ebx, eax
add esp, 4
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x10002f30
mov ecx, dword [0x1001fe7c]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x10002f90
inc eax
push eax
call fcn.1000bbc2
mov ebp, eax
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x48]
mov esi, dword [eax + 8]
mov edx, ecx
shr ecx, 2
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x48]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov byte [edx + ebp], 0
jmp 0x10002ec2
mov eax, dword [ecx + 8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002f96
sub eax, edx
add eax, 2
push eax
call fcn.1000bbc2
mov ebp, eax
mov eax, dword [0x1001fe7c]
mov ecx, dword [eax + 8]
add esp, 4
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x10002fb7
jmp 0x10002ec2
mov dword [0x1001fe40], eax
mov dword [0x1001fe7c], eax
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
or dword [edi + 4], 8
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x10]
push eax
push ebp
push ebx
call sym.logtext.dll_LogTextEx
add esp, 0xc
push 1
mov esi, eax
call edi
cmp esi, 0xfffffffb
je 0x10002fe5
mov ecx, dword [esp + 0x10]
push ecx
call fcn.10005860
push ebx
call fcn.1000b9ec
push ebp
call fcn.1000b9ec
mov edx, dword [esp + 0x20]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret