Function at 0x43d6e0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x70
push 0xffffffffffffffff
push 0x4821b8
mov eax, dword fs:[0]
push eax
sub esp, 0x210
push ebx
push esi
push edi
mov eax, dword [0x4bb27c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
mov byte [ebp - 4], 2
call fcn.0043cad0
mov eax, dword [ebp + 0x78]
push eax
lea ecx, [ebp + 0x64]
xor edi, edi
call fcn.004031f0
mov ecx, dword [ebp + 0x64]
cmp dword [ecx - 0xc], ebx
mov byte [ebp - 4], 3
je 0x43d763
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp + 0x38]
push edx
call fcn.00434810
mov eax, dword [ebp + 0x7c]
add esp, 8
push eax
lea ecx, [ebp + 0x64]
push ecx
lea edi, [ebp + 0x38]
call fcn.00434880
mov ecx, dword [ebp + 0x64]
add esp, 8
mov eax, dword [ecx - 0xc]
neg eax
sbb eax, eax
and eax, ecx
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, eax
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x43d78a
cmp eax, 0xffffffff
je 0x43d78a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, edi
sub edx, 0xffffffff
neg edx
sbb edx, edx
and edx, edi
cmp edx, ebx
mov dword [esi + 8], edx
jne 0x43d8d9
push str.CNMutexLock::Init
lea ecx, [ebp + 0x7c]
call fcn.004031f0
push 0x4904ec
lea ecx, [ebp + 0x78]
mov byte [ebp - 4], 4
call fcn.004031f0
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 4], 5
call edi
test eax, eax
jg 0x43d7d4
call edi
mov esi, eax
jmp 0x43d7e4
call edi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
push ebx
call edi
push eax
lea eax, [ebp + 0x6c]
push eax
call fcn.00435510
add esp, 0xc
lea ecx, [ebp + 0x7c]
push ecx
push 0x35
lea edx, [ebp + 0x78]
push edx
push esi
push eax
lea ecx, [ebp]
mov byte [ebp - 4], 6
call fcn.0041fce0
mov eax, dword [ebp + 0x6c]
add eax, 0xfffffff0
mov byte [ebp - 4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d82f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x78]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d852
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x7c]
mov bl, 0xa
add eax, 0xfffffff0
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d876
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.MutexName
lea ecx, [ebp + 0x68]
call fcn.004031f0
lea ecx, [ebp + 0x64]
push ecx
lea edx, [ebp + 0x68]
push edx
lea ecx, [ebp]
mov byte [ebp - 4], 0xb
call fcn.0041e440
mov eax, dword [ebp + 0x68]
add eax, 0xfffffff0
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d8b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp]
push ecx
lea ecx, [ebp - 0x1e4]
call fcn.0041f780
push 0x4b1c2c
lea edx, [ebp - 0x1e4]
push edx
call fcn.00466ffb
mov eax, dword [ebp + 0x64]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d8fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x70
mov esp, ebp
pop ebp
ret 8