Function at 0x55cee0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], edi
mov dword [ebp - 4], ebx
mov edi, dword [eax]
cmp edi, 0xffffffff
mov dword [ebp - 0xc], esi
je 0x55cf08
jle 0x55d250
cmp edi, 0x68
jg 0x55d24b
inc edi
mov ecx, edi
mov edx, edi
mov esi, edi
test ecx, ecx
js 0x55d233
cmp ecx, 0x271
jg 0x55d233
mov ebx, ecx
lea eax, [ecx*4]
shl ebx, 5
sub ebx, eax
mov eax, dword [ebx + 0x5e29b8]
test eax, eax
je 0x55d228
mov dword [ebp - 0x14], esi
cmp ecx, 0x68
jg 0x55d0e1
cmp dword [ebx + 0x5e29ac], 0
je 0x55cf8c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [ebp - 0x14]
mov esi, edx
shl esi, 5
mov ecx, edx
lea ebx, [edx*4]
sub esi, ebx
cmp eax, dword [esi + 0x5e29a8]
jne 0x55cf8c
mov eax, 0x28
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov dword [edx], edi
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
cmp dword [0x5dcd40], 2
jge 0x55cfd2
lea eax, [ecx*4]
shl ecx, 5
sub ecx, eax
mov ecx, dword [ecx + 0x5e29a4]
test ecx, ecx
je 0x55cfb5
mov eax, 0x98
jmp 0x55d058
lea eax, [edx*4]
shl edx, 5
sub edx, eax
xor eax, eax
mov dword [edx + 0x5e29a4], 1
jmp 0x55d058
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea edx, [edx + 0x5e29a4]
push edx
call fcn.00552330
add esp, 4
test eax, eax
je 0x55cff8
mov eax, 0x98
jmp 0x55d058
mov edx, dword [ebp - 0x14]
mov ecx, edx
shl ecx, 5
lea eax, [edx*4]
sub ecx, eax
cmp dword [ecx + 0x5e29a0], 0
je 0x55d571
mov dword [ecx + 0x5e29a4], 0
push 0xffffffffffffffff
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea ecx, [edx + 0x5e29a4]
push ecx
call fcn.00552330
add esp, 4
test eax, eax
je 0x55d063
mov eax, 0x98
jmp 0x55d08a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [ebp - 0x14]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
mov dword [ecx + 0x5e29a8], eax
xor eax, eax
mov dword [ecx + 0x5e29ac], 1
test eax, eax
jne 0x55cf7a
mov ecx, dword [ebp - 0x14]
mov edx, ecx
shl edx, 5
lea eax, [ecx*4]
sub edx, eax
mov ebx, dword [edx + 0x5e29b8]
test ebx, ebx
jne 0x55d540
mov dword [edx + 0x5e29ac], 0
mov dword [edx + 0x5e29a8], 0xffffffff
cmp dword [0x5dcd40], 2
jge 0x55d203
mov dword [edx + 0x5e29a4], 0
jmp 0x55d228
mov esi, 0x7fffffff
mov ecx, dword [eax + 0x100]
cmp ecx, esi
mov eax, dword [eax + 0x28]
jge 0x55d0f5
mov esi, ecx
test eax, eax
jne 0x55d0e6
mov eax, dword [0x5dcd40]
cmp eax, 2
jge 0x55d12f
mov ecx, dword [ebx + 0x5e29a4]
test ecx, ecx
jne 0x55d1bd
lea ecx, [edx*4]
shl edx, 5
sub edx, ecx
mov dword [edx + 0x5e29a4], 1
mov edx, dword [ebp - 0x14]
jmp 0x55d1bd
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea edx, [edx + 0x5e29a4]
push edx
call fcn.00552330
add esp, 4
mov edx, dword [ebp - 0x14]
test eax, eax
je 0x55d158
mov eax, dword [0x5dcd40]
jmp 0x55d1bd
mov ecx, edx
lea eax, [edx*4]
shl ecx, 5
sub ecx, eax
cmp dword [ecx + 0x5e29a0], 0
je 0x55d7fd
mov dword [ecx + 0x5e29a4], 0
push 0xffffffffffffffff
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea ecx, [edx + 0x5e29a4]
push ecx
call fcn.00552330
add esp, 4
mov eax, dword [0x5dcd40]
mov edx, dword [ebp - 0x14]
cmp eax, 1
je 0x55d7da
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov ebx, dword [edx + 0x5e29b8]
test ebx, ebx
jne 0x55d5d2
mov ebx, dword [0x5dcd40]
cmp ebx, 1
je 0x55d5a2
mov ecx, dword [ebp - 0x14]
cmp ebx, 2
jge 0x55d203
mov dword [edx + 0x5e29a4], 0
jmp 0x55d228
mov dword [edx + 0x5e29a4], 0
lea eax, [ecx*4]
shl ecx, 5
sub ecx, eax
push dword [ecx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x14]
inc ecx
mov edx, ecx
mov esi, ecx
jns 0x55cf17
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx], 0xffffffff
mov esp, ebp
pop ebp
ret
lea esi, [edi - 5]
jmp 0x55d252
mov esi, edi
cmp esi, 0xfffffffa
lea ecx, [esi + 5]
jg 0x55d25c
mov ecx, esi
mov eax, 0xfb93e673
mul ecx
shr edx, 9
imul ebx, edx, 0x209
sub ecx, ebx
mov ebx, dword [0x5dcd40]
cmp ebx, 2
lea eax, [ecx + 0x69]
mov dword [ebp - 0x14], eax
jge 0x55d2ac
lea ecx, [ecx*4 + 0x1a4]
lea edx, [ecx*8]
sub edx, ecx
mov ecx, dword [edx + 0x5e29a4]
test ecx, ecx
jne 0x55d346
mov dword [edx + 0x5e29a4], 1
jmp 0x55d346
lea eax, [ecx*4 + 0x1a4]
lea edx, [eax*8]
sub edx, eax
lea ecx, [edx + 0x5e29a4]
push ecx
call fcn.00552330
add esp, 4
test eax, eax
jne 0x55d33d
mov edx, dword [ebp - 0x14]
mov ecx, edx
shl ecx, 5
lea eax, [edx*4]
sub ecx, eax
cmp dword [ecx + 0x5e29a0], 0
je 0x55d954
mov ecx, edx
lea eax, [edx*4]
shl ecx, 5
sub ecx, eax
mov dword [ecx + 0x5e29a4], 0
push 0xffffffffffffffff
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea ecx, [edx + 0x5e29a4]
push ecx
call fcn.00552330
add esp, 4
mov ebx, dword [0x5dcd40]
mov eax, dword [ebp - 0x14]
cmp ebx, 1
je 0x55d931
lea edx, [eax*4]
shl eax, 5
sub eax, edx
mov edx, dword [eax + 0x5e29b8]
mov ebx, edx
test edx, edx
je 0x55d37c
cmp esi, dword [ebx + 0x100]
jbe 0x55d924
mov ebx, dword [ebx + 0x28]
test ebx, ebx
jne 0x55d367
test edx, edx
je 0x55d3b5
mov dword [ebp - 0x10], edi
mov ecx, 0x7fffffff
mov edi, dword [edx + 0x100]
cmp edi, ecx
mov edx, dword [edx + 0x28]
jge 0x55d395
mov ecx, edi
test edx, edx
jne 0x55d386
mov edi, dword [ebp - 0x10]
cmp ecx, 0x7fffffff
je 0x55d3b5
mov edi, 5
cmp ecx, 0xfffffffa
jg 0x55d3b3
mov edi, 0
add edi, ecx
mov edx, dword [ebp + 0xc]
test ebx, ebx
mov dword [edx], edi
je 0x55d82e
cmp esi, dword [ebx + 0x100]
jne 0x55d3d5
mov ebx, dword [ebx + 0x28]
test ebx, ebx
je 0x55d82e
cmp dword [ebx + 0xc], 0
je 0x55d3ed
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [ebx + 8]
jne 0x55d3ed
mov esi, 0x28
jmp 0x55d46a
cmp dword [0x5dcd40], 2
jge 0x55d40f
mov eax, dword [ebx + 4]
test eax, eax
je 0x55d404
mov eax, 0x98
jmp 0x55d449
mov dword [ebx + 4], 1
xor eax, eax
jmp 0x55d449
lea esi, [ebx + 4]
push esi
call fcn.00552330
add esp, 4
test eax, eax
je 0x55d426
mov eax, 0x98
jmp 0x55d449
cmp dword [ebx], 0
je 0x55d90b
mov dword [ebx + 4], 0
push 0xffffffffffffffff
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call fcn.00552330
add esp, 4
test eax, eax
je 0x55d454
mov esi, 0x98
jmp 0x55d466
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 8], eax
xor esi, esi
mov dword [ebx + 0xc], 1
test esi, esi
je 0x55d4d1
mov eax, dword [0x5dcd40]
cmp eax, 1
je 0x55d8b1
cmp eax, 2
jge 0x55d498
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
jmp 0x55d4bd
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [ebp + 0xc]
mov eax, esi
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov dword [edx], edi
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5dcd40]
cmp eax, 1
je 0x55d8de
cmp eax, 2
jge 0x55d4ff
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
jmp 0x55d524
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, ebx
mov edx, dword [ebp + 0x10]
call fcn.0055d990
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx], ebx
mov ebx, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov eax, ebx
mov edx, dword [ebp + 0x10]
call fcn.0055d990
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
mov dword [edx], ebx
mov ecx, dword [ebx + 0x100]
cmp ecx, 0xfffffffa
lea ebx, [ecx + 5]
jg 0x55d565
mov ebx, ecx
mov dword [esi], ebx
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 0x14]
mov ebx, edx
shl ebx, 5
lea ecx, [edx*4]
sub ebx, ecx
mov dword [ebx + 0x5e29a0], eax
mov dword [ebx + 0x5e29a4], 0
jmp 0x55d020
push dword [edx + 0x5e29b4]
push dword [edx + 0x5e29b0]
call fcn.00552310
add esp, 8
mov ecx, dword [ebp - 0x14]
mov edx, ecx
shl edx, 5
mov ebx, dword [0x5dcd40]
lea eax, [ecx*4]
sub edx, eax
jmp 0x55d1f2
cmp dword [ebx + 0xc], 0
je 0x55d5ed
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [ebx + 8]
jne 0x55d5ed
mov edi, 0x28
jmp 0x55d66a
cmp dword [0x5dcd40], 2
jge 0x55d60f
mov eax, dword [ebx + 4]
test eax, eax
je 0x55d604
mov eax, 0x98
jmp 0x55d649
mov dword [ebx + 4], 1
xor eax, eax
jmp 0x55d649
lea edi, [ebx + 4]
push edi
call fcn.00552330
add esp, 4
test eax, eax
je 0x55d626
mov eax, 0x98
jmp 0x55d649
cmp dword [ebx], 0
je 0x55d7c1
mov dword [ebx + 4], 0
push 0xffffffffffffffff
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call fcn.00552330
add esp, 4
test eax, eax
je 0x55d654
mov edi, 0x98
jmp 0x55d666
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 8], eax
xor edi, edi
mov dword [ebx + 0xc], 1
test edi, edi
je 0x55d6e2
mov eax, dword [0x5dcd40]
cmp eax, 1
je 0x55d767
cmp eax, 2
jge 0x55d698
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
jmp 0x55d6bd
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, 5
cmp esi, 0xfffffffa
mov ecx, dword [ebp + 0xc]
mov eax, edi
jg 0x55d6d1
mov edx, 0
add esi, edx
mov dword [ecx], esi
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5dcd40]
cmp eax, 1
je 0x55d794
cmp eax, 2
jge 0x55d710
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
jmp 0x55d735
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x5e29a4], 0
push dword [edx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, ebx
mov edx, dword [ebp + 0x10]
call fcn.0055d990
mov edx, dword [ebp + 8]
mov ecx, 5
cmp esi, 0xfffffffa
jg 0x55d751
mov ecx, 0
mov dword [edx], ebx
add esi, ecx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
mov dword [ebx], esi
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29b4]
push dword [edx + 0x5e29b0]
call fcn.00552310
add esp, 8
mov eax, dword [0x5dcd40]
jmp 0x55d678
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29b4]
push dword [edx + 0x5e29b0]
call fcn.00552310
add esp, 8
mov eax, dword [0x5dcd40]
jmp 0x55d6f0
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebx], eax
mov dword [ebx + 4], 0
jmp 0x55d636
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea edx, [edx + 0x5e29b0]
push edx
call fcn.005522e0
add esp, 4
mov edx, dword [ebp - 0x14]
jmp 0x55d1c6
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 0x14]
mov ebx, edx
shl ebx, 5
lea ecx, [edx*4]
sub ebx, ecx
mov dword [ebx + 0x5e29a0], eax
mov dword [ebx + 0x5e29a4], 0
jmp 0x55d17d
mov ebx, dword [0x5dcd40]
cmp ebx, 1
je 0x55d884
mov ecx, dword [ebp - 0x14]
cmp ebx, 2
jge 0x55d84d
mov dword [eax + 0x5e29a4], 0
jmp 0x55d872
mov dword [eax + 0x5e29a4], 0
lea eax, [ecx*4]
shl ecx, 5
sub ecx, eax
push dword [ecx + 0x5e29a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
inc ecx
mov esi, ecx
lea eax, [edi + 1]
mov dword [edx], eax
mov edx, ecx
jmp 0x55cf0f
push dword [eax + 0x5e29b4]
push dword [eax + 0x5e29b0]
call fcn.00552310
add esp, 8
mov ecx, dword [ebp - 0x14]
mov eax, ecx
shl eax, 5
mov ebx, dword [0x5dcd40]
lea edx, [ecx*4]
sub eax, edx
jmp 0x55d83c
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29b4]
push dword [edx + 0x5e29b0]
call fcn.00552310
add esp, 8
mov eax, dword [0x5dcd40]
jmp 0x55d478
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x5e29b4]
push dword [edx + 0x5e29b0]
call fcn.00552310
add esp, 8
mov eax, dword [0x5dcd40]
jmp 0x55d4df
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebx], eax
mov dword [ebx + 4], 0
jmp 0x55d436
test edx, edx
jne 0x55d37e
jmp 0x55d3b5
lea edx, [eax*4]
shl eax, 5
sub eax, edx
lea eax, [eax + 0x5e29b0]
push eax
call fcn.005522e0
add esp, 4
mov eax, dword [ebp - 0x14]
jmp 0x55d34f
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 0x14]
mov ebx, edx
shl ebx, 5
lea ecx, [edx*4]
sub ebx, ecx
mov dword [ebx + 0x5e29a0], eax
mov dword [ebx + 0x5e29a4], 0
jmp 0x55d305