Function at 0x43a360
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 0x43a388
jle 0x43a6d0
cmp edi, 0x68
jg 0x43a6cb
inc edi
mov ecx, edi
mov edx, edi
mov esi, edi
test ecx, ecx
js 0x43a6b3
cmp ecx, 0x271
jg 0x43a6b3
mov ebx, ecx
lea eax, [ecx*4]
shl ebx, 5
sub ebx, eax
mov eax, dword [ebx + 0x510178]
test eax, eax
je 0x43a6a8
mov dword [ebp - 0x14], esi
cmp ecx, 0x68
jg 0x43a561
cmp dword [ebx + 0x51016c], 0
je 0x43a40c
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 + 0x510168]
jne 0x43a40c
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 [0x4fe8e0], 2
jge 0x43a452
lea eax, [ecx*4]
shl ecx, 5
sub ecx, eax
mov ecx, dword [ecx + 0x510164]
test ecx, ecx
je 0x43a435
mov eax, 0x98
jmp 0x43a4d8
lea eax, [edx*4]
shl edx, 5
sub edx, eax
xor eax, eax
mov dword [edx + 0x510164], 1
jmp 0x43a4d8
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea edx, [edx + 0x510164]
push edx
call fcn.004302b0
add esp, 4
test eax, eax
je 0x43a478
mov eax, 0x98
jmp 0x43a4d8
mov edx, dword [ebp - 0x14]
mov ecx, edx
shl ecx, 5
lea eax, [edx*4]
sub ecx, eax
cmp dword [ecx + 0x510160], 0
je 0x43a9f1
mov dword [ecx + 0x510164], 0
push 0xffffffffffffffff
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x510160]
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 + 0x510164]
push ecx
call fcn.004302b0
add esp, 4
test eax, eax
je 0x43a4e3
mov eax, 0x98
jmp 0x43a50a
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 + 0x510168], eax
xor eax, eax
mov dword [ecx + 0x51016c], 1
test eax, eax
jne 0x43a3fa
mov ecx, dword [ebp - 0x14]
mov edx, ecx
shl edx, 5
lea eax, [ecx*4]
sub edx, eax
mov ebx, dword [edx + 0x510178]
test ebx, ebx
jne 0x43a9c0
mov dword [edx + 0x51016c], 0
mov dword [edx + 0x510168], 0xffffffff
cmp dword [0x4fe8e0], 2
jge 0x43a683
mov dword [edx + 0x510164], 0
jmp 0x43a6a8
mov esi, 0x7fffffff
mov ecx, dword [eax + 0x100]
cmp ecx, esi
mov eax, dword [eax + 0x28]
jge 0x43a575
mov esi, ecx
test eax, eax
jne 0x43a566
mov eax, dword [0x4fe8e0]
cmp eax, 2
jge 0x43a5af
mov ecx, dword [ebx + 0x510164]
test ecx, ecx
jne 0x43a63d
lea ecx, [edx*4]
shl edx, 5
sub edx, ecx
mov dword [edx + 0x510164], 1
mov edx, dword [ebp - 0x14]
jmp 0x43a63d
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea edx, [edx + 0x510164]
push edx
call fcn.004302b0
add esp, 4
mov edx, dword [ebp - 0x14]
test eax, eax
je 0x43a5d8
mov eax, dword [0x4fe8e0]
jmp 0x43a63d
mov ecx, edx
lea eax, [edx*4]
shl ecx, 5
sub ecx, eax
cmp dword [ecx + 0x510160], 0
je 0x43ac7d
mov dword [ecx + 0x510164], 0
push 0xffffffffffffffff
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x510160]
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 + 0x510164]
push ecx
call fcn.004302b0
add esp, 4
mov eax, dword [0x4fe8e0]
mov edx, dword [ebp - 0x14]
cmp eax, 1
je 0x43ac5a
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov ebx, dword [edx + 0x510178]
test ebx, ebx
jne 0x43aa52
mov ebx, dword [0x4fe8e0]
cmp ebx, 1
je 0x43aa22
mov ecx, dword [ebp - 0x14]
cmp ebx, 2
jge 0x43a683
mov dword [edx + 0x510164], 0
jmp 0x43a6a8
mov dword [edx + 0x510164], 0
lea eax, [ecx*4]
shl ecx, 5
sub ecx, eax
push dword [ecx + 0x510160]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x14]
inc ecx
mov edx, ecx
mov esi, ecx
jns 0x43a397
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 0x43a6d2
mov esi, edi
cmp esi, 0xfffffffa
lea ecx, [esi + 5]
jg 0x43a6dc
mov ecx, esi
mov eax, 0xfb93e673
mul ecx
shr edx, 9
imul ebx, edx, 0x209
sub ecx, ebx
mov ebx, dword [0x4fe8e0]
cmp ebx, 2
lea eax, [ecx + 0x69]
mov dword [ebp - 0x14], eax
jge 0x43a72c
lea ecx, [ecx*4 + 0x1a4]
lea edx, [ecx*8]
sub edx, ecx
mov ecx, dword [edx + 0x510164]
test ecx, ecx
jne 0x43a7c6
mov dword [edx + 0x510164], 1
jmp 0x43a7c6
lea eax, [ecx*4 + 0x1a4]
lea edx, [eax*8]
sub edx, eax
lea ecx, [edx + 0x510164]
push ecx
call fcn.004302b0
add esp, 4
test eax, eax
jne 0x43a7bd
mov edx, dword [ebp - 0x14]
mov ecx, edx
shl ecx, 5
lea eax, [edx*4]
sub ecx, eax
cmp dword [ecx + 0x510160], 0
je 0x43add4
mov ecx, edx
lea eax, [edx*4]
shl ecx, 5
sub ecx, eax
mov dword [ecx + 0x510164], 0
push 0xffffffffffffffff
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x510160]
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 + 0x510164]
push ecx
call fcn.004302b0
add esp, 4
mov ebx, dword [0x4fe8e0]
mov eax, dword [ebp - 0x14]
cmp ebx, 1
je 0x43adb1
lea edx, [eax*4]
shl eax, 5
sub eax, edx
mov edx, dword [eax + 0x510178]
mov ebx, edx
test edx, edx
je 0x43a7fc
cmp esi, dword [ebx + 0x100]
jbe 0x43ada4
mov ebx, dword [ebx + 0x28]
test ebx, ebx
jne 0x43a7e7
test edx, edx
je 0x43a835
mov dword [ebp - 0x10], edi
mov ecx, 0x7fffffff
mov edi, dword [edx + 0x100]
cmp edi, ecx
mov edx, dword [edx + 0x28]
jge 0x43a815
mov ecx, edi
test edx, edx
jne 0x43a806
mov edi, dword [ebp - 0x10]
cmp ecx, 0x7fffffff
je 0x43a835
mov edi, 5
cmp ecx, 0xfffffffa
jg 0x43a833
mov edi, 0
add edi, ecx
mov edx, dword [ebp + 0xc]
test ebx, ebx
mov dword [edx], edi
je 0x43acae
cmp esi, dword [ebx + 0x100]
jne 0x43a855
mov ebx, dword [ebx + 0x28]
test ebx, ebx
je 0x43acae
cmp dword [ebx + 0xc], 0
je 0x43a86d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [ebx + 8]
jne 0x43a86d
mov esi, 0x28
jmp 0x43a8ea
cmp dword [0x4fe8e0], 2
jge 0x43a88f
mov eax, dword [ebx + 4]
test eax, eax
je 0x43a884
mov eax, 0x98
jmp 0x43a8c9
mov dword [ebx + 4], 1
xor eax, eax
jmp 0x43a8c9
lea esi, [ebx + 4]
push esi
call fcn.004302b0
add esp, 4
test eax, eax
je 0x43a8a6
mov eax, 0x98
jmp 0x43a8c9
cmp dword [ebx], 0
je 0x43ad8b
mov dword [ebx + 4], 0
push 0xffffffffffffffff
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call fcn.004302b0
add esp, 4
test eax, eax
je 0x43a8d4
mov esi, 0x98
jmp 0x43a8e6
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 8], eax
xor esi, esi
mov dword [ebx + 0xc], 1
test esi, esi
je 0x43a951
mov eax, dword [0x4fe8e0]
cmp eax, 1
je 0x43ad31
cmp eax, 2
jge 0x43a918
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
jmp 0x43a93d
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
push dword [edx + 0x510160]
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 [0x4fe8e0]
cmp eax, 1
je 0x43ad5e
cmp eax, 2
jge 0x43a97f
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
jmp 0x43a9a4
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
push dword [edx + 0x510160]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, ebx
mov edx, dword [ebp + 0x10]
call fcn.0043ae10
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.0043ae10
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 0x43a9e5
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 + 0x510160], eax
mov dword [ebx + 0x510164], 0
jmp 0x43a4a0
push dword [edx + 0x510174]
push dword [edx + 0x510170]
call fcn.00430290
add esp, 8
mov ecx, dword [ebp - 0x14]
mov edx, ecx
shl edx, 5
mov ebx, dword [0x4fe8e0]
lea eax, [ecx*4]
sub edx, eax
jmp 0x43a672
cmp dword [ebx + 0xc], 0
je 0x43aa6d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [ebx + 8]
jne 0x43aa6d
mov edi, 0x28
jmp 0x43aaea
cmp dword [0x4fe8e0], 2
jge 0x43aa8f
mov eax, dword [ebx + 4]
test eax, eax
je 0x43aa84
mov eax, 0x98
jmp 0x43aac9
mov dword [ebx + 4], 1
xor eax, eax
jmp 0x43aac9
lea edi, [ebx + 4]
push edi
call fcn.004302b0
add esp, 4
test eax, eax
je 0x43aaa6
mov eax, 0x98
jmp 0x43aac9
cmp dword [ebx], 0
je 0x43ac41
mov dword [ebx + 4], 0
push 0xffffffffffffffff
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call fcn.004302b0
add esp, 4
test eax, eax
je 0x43aad4
mov edi, 0x98
jmp 0x43aae6
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 8], eax
xor edi, edi
mov dword [ebx + 0xc], 1
test edi, edi
je 0x43ab62
mov eax, dword [0x4fe8e0]
cmp eax, 1
je 0x43abe7
cmp eax, 2
jge 0x43ab18
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
jmp 0x43ab3d
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
push dword [edx + 0x510160]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, 5
cmp esi, 0xfffffffa
mov ecx, dword [ebp + 0xc]
mov eax, edi
jg 0x43ab51
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 [0x4fe8e0]
cmp eax, 1
je 0x43ac14
cmp eax, 2
jge 0x43ab90
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
jmp 0x43abb5
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x510164], 0
push dword [edx + 0x510160]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, ebx
mov edx, dword [ebp + 0x10]
call fcn.0043ae10
mov edx, dword [ebp + 8]
mov ecx, 5
cmp esi, 0xfffffffa
jg 0x43abd1
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 + 0x510174]
push dword [edx + 0x510170]
call fcn.00430290
add esp, 8
mov eax, dword [0x4fe8e0]
jmp 0x43aaf8
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x510174]
push dword [edx + 0x510170]
call fcn.00430290
add esp, 8
mov eax, dword [0x4fe8e0]
jmp 0x43ab70
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 0x43aab6
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea edx, [edx + 0x510170]
push edx
call fcn.00430260
add esp, 4
mov edx, dword [ebp - 0x14]
jmp 0x43a646
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 + 0x510160], eax
mov dword [ebx + 0x510164], 0
jmp 0x43a5fd
mov ebx, dword [0x4fe8e0]
cmp ebx, 1
je 0x43ad04
mov ecx, dword [ebp - 0x14]
cmp ebx, 2
jge 0x43accd
mov dword [eax + 0x510164], 0
jmp 0x43acf2
mov dword [eax + 0x510164], 0
lea eax, [ecx*4]
shl ecx, 5
sub ecx, eax
push dword [ecx + 0x510160]
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 0x43a38f
push dword [eax + 0x510174]
push dword [eax + 0x510170]
call fcn.00430290
add esp, 8
mov ecx, dword [ebp - 0x14]
mov eax, ecx
shl eax, 5
mov ebx, dword [0x4fe8e0]
lea edx, [ecx*4]
sub eax, edx
jmp 0x43acbc
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x510174]
push dword [edx + 0x510170]
call fcn.00430290
add esp, 8
mov eax, dword [0x4fe8e0]
jmp 0x43a8f8
mov edx, dword [ebp - 0x14]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x510174]
push dword [edx + 0x510170]
call fcn.00430290
add esp, 8
mov eax, dword [0x4fe8e0]
jmp 0x43a95f
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 0x43a8b6
test edx, edx
jne 0x43a7fe
jmp 0x43a835
lea edx, [eax*4]
shl eax, 5
sub eax, edx
lea eax, [eax + 0x510170]
push eax
call fcn.00430260
add esp, 4
mov eax, dword [ebp - 0x14]
jmp 0x43a7cf
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 + 0x510160], eax
mov dword [ebx + 0x510164], 0
jmp 0x43a785