Function at 0x434120
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov edx, dword [0x50ad64]
test edx, edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
jle 0x434b03
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
cmp esi, dword [0x50ad68]
jne 0x43415e
cmp esi, 0xffffffff
je 0x434161
dec edx
mov dword [0x50ad64], edx
mov dword [0x50ad68], esi
jmp 0x434177
cmp esi, 0xffffffff
mov dword [0x50ad64], 4
mov dword [0x50ad68], esi
je 0x434af9
test esi, esi
jl 0x4344df
cmp esi, 0x68
jg 0x4344da
inc esi
mov eax, esi
mov ebx, esi
mov edx, esi
test eax, eax
jl 0x4344c2
mov dword [ebp - 0x1c], esi
cmp eax, 0x271
jg 0x4344c2
mov esi, eax
lea ecx, [eax*4]
shl esi, 5
sub esi, ecx
cmp dword [esi + 0x50e4d8], 0
je 0x4344b7
mov dword [ebp - 0x18], edx
cmp eax, 0x68
jg 0x434375
cmp dword [esi + 0x50e4cc], 0
je 0x434210
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
mov ebx, dword [ebp - 0x18]
mov esi, ebx
shl esi, 5
lea eax, [ebx*4]
sub esi, eax
cmp edx, dword [esi + 0x50e4c8]
jne 0x434210
mov esi, dword [ebp - 0x1c]
mov eax, 0x28
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx], esi
mov esi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
cmp dword [0x50acc0], 2
jge 0x43423e
mov eax, dword [esi + 0x50e4c4]
test eax, eax
je 0x43422d
mov eax, 0x98
jmp 0x4342c4
mov dword [esi + 0x50e4c4], 1
xor eax, eax
jmp 0x4342c4
lea eax, [ebx*4]
shl ebx, 5
sub ebx, eax
lea edx, [ebx + 0x50e4c4]
push edx
call fcn.00410180
add esp, 4
test eax, eax
je 0x434264
mov eax, 0x98
jmp 0x4342c4
mov eax, dword [ebp - 0x18]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
sub ecx, edx
cmp dword [ecx + 0x50e4c0], 0
je 0x43471e
mov dword [ecx + 0x50e4c4], 0
push 0xffffffffffffffff
lea edx, [eax*4]
shl eax, 5
sub eax, edx
push dword [eax + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea ecx, [edx + 0x50e4c4]
push ecx
call fcn.00410180
add esp, 4
test eax, eax
je 0x4342cf
mov eax, 0x98
jmp 0x4342f8
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, eax
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
xor eax, eax
mov dword [edx + 0x50e4c8], ecx
mov dword [edx + 0x50e4cc], 1
test eax, eax
jne 0x434716
mov eax, dword [ebp - 0x18]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
sub ecx, edx
mov edx, dword [ecx + 0x50e4d8]
test edx, edx
mov dword [ebp - 0x14], edx
jne 0x4346e2
mov dword [ecx + 0x50e4cc], 0
mov dword [ecx + 0x50e4c8], 0xffffffff
cmp dword [0x50acc0], 2
jge 0x43434e
mov dword [ecx + 0x50e4c4], 0
jmp 0x4344b7
mov dword [ecx + 0x50e4c4], 0
lea edx, [eax*4]
shl eax, 5
sub eax, edx
push dword [eax + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x4344b4
call fcn.00434b10
mov edi, eax
mov edx, dword [0x50acc0]
cmp edx, 2
jge 0x4343a7
mov eax, dword [esi + 0x50e4c4]
test eax, eax
jne 0x43442f
mov dword [esi + 0x50e4c4], 1
mov ebx, dword [ebp - 0x18]
jmp 0x43442f
lea eax, [ebx*4]
shl ebx, 5
sub ebx, eax
lea edx, [ebx + 0x50e4c4]
push edx
call fcn.00410180
add esp, 4
test eax, eax
jne 0x434426
mov eax, dword [ebp - 0x18]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
sub ecx, edx
cmp dword [ecx + 0x50e4c0], 0
je 0x4349af
mov dword [ecx + 0x50e4c4], 0
lea edx, [eax*4]
shl eax, 5
sub eax, edx
push 0xffffffffffffffff
push dword [eax + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
lea ecx, [edx + 0x50e4c4]
push ecx
call fcn.00410180
add esp, 4
mov edx, dword [0x50acc0]
mov ebx, dword [ebp - 0x18]
cmp edx, 1
je 0x43498c
mov edx, ebx
lea eax, [ebx*4]
shl edx, 5
sub edx, eax
mov eax, dword [edx + 0x50e4d8]
test eax, eax
mov dword [ebp - 0x14], eax
jne 0x434775
mov ecx, dword [0x50acc0]
cmp ecx, 1
je 0x434751
mov eax, dword [ebp - 0x18]
cmp ecx, 2
jge 0x434486
lea edx, [ebx*4]
shl ebx, 5
sub ebx, edx
mov dword [ebx + 0x50e4c4], 0
jmp 0x4344b7
lea edx, [ebx*4]
shl ebx, 5
sub ebx, edx
mov dword [ebx + 0x50e4c4], 0
lea ecx, [eax*4]
shl eax, 5
sub eax, ecx
push dword [eax + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x18]
inc eax
mov ebx, eax
mov edx, eax
jns 0x43419a
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov dword [eax], 0xffffffff
xor eax, eax
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
lea eax, [esi - 5]
jmp 0x4344e1
mov eax, esi
lea ebx, [ebp - 0x10]
mov dword [esp + 0xc], ebx
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x14]
call fcn.00433a60
mov edi, eax
mov ebx, dword [ebp - 0x18]
mov eax, ebx
call fcn.00434b10
cmp eax, 0x7fffffff
je 0x434510
cmp eax, 0xfffffffa
lea esi, [eax + 5]
jg 0x434510
mov esi, eax
mov edx, dword [ebp + 0xc]
test edi, edi
mov dword [edx], esi
jne 0x4346d3
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x434a67
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
test edi, edi
je 0x434542
mov ecx, edx
cmp ecx, edi
je 0x434a59
mov ecx, dword [ecx + 0x28]
test ecx, ecx
jne 0x434533
cmp dword [edx + 0xc], 0
je 0x43456c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [ebp - 0x14]
cmp eax, dword [edx + 8]
jne 0x43456c
mov eax, dword [ebp + 0x10]
cmp eax, 0xb
je 0x434660
mov ebx, 0x28
jmp 0x4345f8
cmp dword [0x50acc0], 2
jge 0x43458e
mov eax, dword [edx + 4]
test eax, eax
je 0x434583
mov eax, 0x98
jmp 0x4345d4
mov dword [edx + 4], 1
xor eax, eax
jmp 0x4345d4
add edx, 4
push edx
call fcn.00410180
add esp, 4
test eax, eax
je 0x4345a5
mov eax, 0x98
jmp 0x4345d4
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x434a3d
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x14]
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x14]
add eax, 4
push eax
call fcn.00410180
add esp, 4
test eax, eax
je 0x4345df
mov ebx, 0x98
jmp 0x4345f4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [ebp - 0x14]
xor ebx, ebx
mov dword [edx + 8], eax
mov dword [edx + 0xc], 1
test ebx, ebx
je 0x434660
mov edx, dword [0x50acc0]
cmp edx, 1
je 0x4349e2
cmp edx, 2
jge 0x434627
mov ecx, dword [ebp - 0x18]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
mov dword [ecx + 0x50e4c4], 0
jmp 0x43464c
mov ecx, dword [ebp - 0x18]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
mov dword [ecx + 0x50e4c4], 0
push dword [ecx + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [ebp + 0xc]
mov eax, ebx
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [edx], esi
mov esi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov eax, dword [0x50acc0]
cmp eax, 1
je 0x434a10
cmp eax, 2
jge 0x43468e
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x50e4c4], 0
jmp 0x4346b3
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x50e4c4], 0
push dword [edx + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x10]
call fcn.00434b50
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov dword [ecx], edx
mov esp, ebp
pop ebp
ret
mov eax, edi
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, edx
mov edx, dword [ebp + 0x10]
call fcn.00434b50
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp + 0xc]
mov dword [edx], ecx
mov ebx, dword [ecx + 0x108]
cmp ebx, 0xfffffffa
lea esi, [ebx + 5]
jg 0x434707
mov esi, ebx
mov dword [edi], esi
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x1c]
jmp 0x4341fe
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
sub ecx, edx
mov dword [ecx + 0x50e4c0], ebx
mov dword [ecx + 0x50e4c4], 0
jmp 0x43428c
push dword [edx + 0x50e4d4]
push dword [edx + 0x50e4d0]
call fcn.00410160
add esp, 8
mov ebx, dword [ebp - 0x18]
mov eax, ebx
mov ecx, dword [0x50acc0]
jmp 0x434469
cmp dword [eax + 0xc], 0
je 0x434795
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
mov eax, dword [ebp - 0x14]
cmp edx, dword [eax + 8]
jne 0x434795
mov ebx, 0x28
jmp 0x434821
cmp dword [0x50acc0], 2
jge 0x4347b7
mov edx, dword [eax + 4]
test edx, edx
je 0x4347ac
mov eax, 0x98
jmp 0x4347fd
mov dword [eax + 4], 1
xor eax, eax
jmp 0x4347fd
add eax, 4
push eax
call fcn.00410180
add esp, 4
test eax, eax
je 0x4347ce
mov eax, 0x98
jmp 0x4347fd
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x434970
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x14]
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x14]
add eax, 4
push eax
call fcn.00410180
add esp, 4
test eax, eax
je 0x434808
mov ebx, 0x98
jmp 0x43481d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [ebp - 0x14]
xor ebx, ebx
mov dword [edx + 8], eax
mov dword [edx + 0xc], 1
test ebx, ebx
je 0x434893
mov edx, dword [0x50acc0]
cmp edx, 1
je 0x434915
cmp edx, 2
jge 0x434850
mov ecx, dword [ebp - 0x18]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
mov dword [ecx + 0x50e4c4], 0
jmp 0x434875
mov ecx, dword [ebp - 0x18]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
mov dword [ecx + 0x50e4c4], 0
push dword [ecx + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp edi, 0xfffffffa
lea edx, [edi + 5]
mov ecx, dword [ebp + 0xc]
mov eax, ebx
jg 0x434884
mov edx, edi
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov dword [ecx], edx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x50acc0]
cmp eax, 1
je 0x434943
cmp eax, 2
jge 0x4348c1
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x50e4c4], 0
jmp 0x4348e6
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
mov dword [edx + 0x50e4c4], 0
push dword [edx + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x10]
call fcn.00434b50
cmp edi, 0xfffffffa
lea ebx, [edi + 5]
mov ecx, dword [ebp + 8]
jg 0x4348fe
mov ebx, edi
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
mov dword [ecx], edx
mov dword [esi], ebx
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x18]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
push dword [ecx + 0x50e4d4]
push dword [ecx + 0x50e4d0]
call fcn.00410160
add esp, 8
mov edx, dword [0x50acc0]
jmp 0x434830
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x50e4d4]
push dword [edx + 0x50e4d0]
call fcn.00410160
add esp, 8
mov eax, dword [0x50acc0]
jmp 0x4348a1
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 0x14]
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x4347e1
lea eax, [ebx*4]
shl ebx, 5
sub ebx, eax
lea edx, [ebx + 0x50e4d0]
push edx
call fcn.00410130
add esp, 4
mov ebx, dword [ebp - 0x18]
jmp 0x434438
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
sub ecx, edx
mov dword [ecx + 0x50e4c0], ebx
mov dword [ecx + 0x50e4c4], 0
jmp 0x4343ee
mov ecx, dword [ebp - 0x18]
lea edx, [ecx*4]
shl ecx, 5
sub ecx, edx
push dword [ecx + 0x50e4d4]
push dword [ecx + 0x50e4d0]
call fcn.00410160
add esp, 8
mov edx, dword [0x50acc0]
jmp 0x434607
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
shl edx, 5
sub edx, eax
push dword [edx + 0x50e4d4]
push dword [edx + 0x50e4d0]
call fcn.00410160
add esp, 8
mov eax, dword [0x50acc0]
jmp 0x43466e
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 0x14]
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x4345b8
mov edx, dword [ecx + 0x28]
test edx, edx
mov dword [ebp - 0x14], edx
jne 0x434542
mov ecx, dword [0x50acc0]
cmp ecx, 1
je 0x434ac9
mov eax, dword [ebp - 0x18]
lea edx, [ebx*4]
shl ebx, 5
sub ebx, edx
cmp ecx, 2
jge 0x434a92
mov dword [ebx + 0x50e4c4], 0
jmp 0x434ab7
mov dword [ebx + 0x50e4c4], 0
lea edx, [eax*4]
shl eax, 5
sub eax, edx
push dword [eax + 0x50e4c0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
inc eax
mov ebx, eax
lea edx, [esi + 1]
mov dword [ecx], edx
mov edx, eax
jmp 0x43418f
lea edx, [ebx*4]
shl ebx, 5
sub ebx, edx
push dword [ebx + 0x50e4d4]
push dword [ebx + 0x50e4d0]
call fcn.00410160
add esp, 8
mov ebx, dword [ebp - 0x18]
mov eax, ebx
mov ecx, dword [0x50acc0]
jmp 0x434a75
mov esi, 0xffffffff
jmp 0x434188
mov eax, 2
mov esp, ebp
pop ebp
ret