Function at 0x100c06b0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e3939
mov eax, dword fs:[0]
push eax
sub esp, 0x454
mov eax, dword [0x10115034]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 4], 2
call fcn.100272e0
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x44c], 0
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0
sub esp, 0x18
mov byte [ebp - 4], 5
mov ecx, esp
xor eax, eax
push 0xf
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x100f8184
mov word [ecx], ax
call fcn.10001df0
lea ecx, [ebp - 0x40c]
call fcn.100b04a0
add esp, 0x18
mov byte [ebp - 4], 6
mov esi, dword [eax]
lea ecx, [esi + 0x1c]
call fcn.100c6700
test al, al
je 0x100c079f
push 0xffffffffffffffff
push dword [esi + 0x1c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov byte [ebp - 4], 5
or edi, 0xffffffff
mov esi, dword [ebp - 0x408]
test esi, esi
je 0x100c07d3
lea eax, [esi + 4]
mov ecx, edi
lock xadd dword [eax], ecx
jne 0x100c07d3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lea eax, [esi + 8]
mov ecx, edi
lock xadd dword [eax], ecx
jne 0x100c07d3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
sub esp, 0x18
lea eax, [ebp + 0x38]
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.10006b20
sub esp, 0x18
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x404], esp
lea eax, [ebp + 0x20]
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.10006b20
mov byte [ebp - 4], 8
mov eax, dword [0x10119e9c]
test al, 1
jne 0x100c0858
or eax, 1
mov dword [0x10119e9c], eax
mov byte [ebp - 4], 9
call fcn.100b55a0
push 0x100e69b0
call fcn.100dc9fb
add esp, 4
mov byte [ebp - 4], 8
lea eax, [ebp - 0x448]
mov byte [ebp - 4], 5
push eax
mov ecx, 0x10119ea0
call fcn.100b56f0
sub esp, 0x18
xor eax, eax
mov ecx, esp
push 0xf
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x100f81a4
mov word [ecx], ax
call fcn.10001df0
lea ecx, [ebp - 0x40c]
call fcn.100b04a0
add esp, 0x18
mov esi, dword [eax]
cmp dword [esi + 0x34], 8
lea eax, [esi + 0x20]
jb 0x100c08ac
mov eax, dword [eax]
push eax
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [esi + 0x1c], eax
test eax, eax
je 0x100c08d5
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test eax, eax
jne 0x100c08d5
push dword [esi + 0x1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x408]
test esi, esi
je 0x100c0901
lea eax, [esi + 4]
mov ecx, edi
lock xadd dword [eax], ecx
jne 0x100c0901
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lea eax, [esi + 8]
lock xadd dword [eax], edi
dec edi
jne 0x100c0901
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebx + 4]
mov eax, 0x10624dd3
sub ecx, dword [ebx]
imul ecx
mov ecx, dword [ebp - 0x444]
mov eax, 0x10624dd3
sub ecx, dword [ebp - 0x448]
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
lea eax, [edi - 1]
mov dword [ebp - 0x408], edi
sar edx, 5
mov ebx, eax
mov esi, edx
mov dword [ebp - 0x424], eax
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0x414], ebx
mov dword [ebp - 0x41c], esi
test ebx, ebx
js 0x100c0bb2
imul edi, ebx, 0x1f4
mov dword [ebp - 0x418], edi
mov eax, dword [ebp - 0x428]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x10624dd3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ebx
jbe 0x100c10fa
lea eax, [edi + esi]
push eax
lea ecx, [ebp - 0x400]
call fcn.1001cd20
mov esi, dword [ebp - 0x41c]
mov byte [ebp - 4], 0xa
lea eax, [esi - 1]
mov dword [ebp - 0x404], eax
test eax, eax
js 0x100c0b82
imul ecx, eax, 0x1f4
add ecx, dword [ebp - 0x448]
mov dword [ebp - 0x410], ecx
cmp esi, eax
jbe 0x100c10fa
push ecx
lea ecx, [ebp - 0x208]
call fcn.1001cd20
cmp dword [ebp - 0xc8], 0x10
lea ecx, [ebp - 0xdc]
mov edi, dword [ebp - 0xcc]
lea edx, [ebp - 0x2d4]
cmovae ecx, dword [ebp - 0xdc]
mov esi, edi
cmp dword [ebp - 0x2c0], 0x10
mov ebx, dword [ebp - 0x2c4]
cmovae edx, dword [ebp - 0x2d4]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x100c0a70
sub esi, 4
jb 0x100c0a31
nop
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100c0a36
add edx, 4
add ecx, 4
sub esi, 4
jae 0x100c0a20
cmp esi, 0xfffffffc
je 0x100c0a6a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100c0a63
cmp esi, 0xfffffffd
je 0x100c0a6a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100c0a63
cmp esi, 0xfffffffe
je 0x100c0a6a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100c0a63
cmp esi, 0xffffffff
je 0x100c0a6a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x100c0a6a
sbb eax, eax
or eax, 1
jmp 0x100c0a6c
xor eax, eax
test eax, eax
jne 0x100c0a82
cmp ebx, edi
jae 0x100c0a79
or eax, 0xffffffff
jmp 0x100c0a80
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
je 0x100c0b3e
cmp dword [ebp - 0xb0], 0x10
lea edx, [ebp - 0xc4]
mov edi, dword [ebp - 0xb4]
lea eax, [ebp - 0x2bc]
cmovae edx, dword [ebp - 0xc4]
mov esi, edi
cmp dword [ebp - 0x2a8], 0x10
mov ebx, dword [ebp - 0x2ac]
cmovae eax, dword [ebp - 0x2bc]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x100c0b21
sub esi, 4
jb 0x100c0ae2
mov ecx, dword [eax]
cmp ecx, dword [edx]
jne 0x100c0ae7
add eax, 4
add edx, 4
sub esi, 4
jae 0x100c0ad1
cmp esi, 0xfffffffc
je 0x100c0b1b
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x100c0b14
cmp esi, 0xfffffffd
je 0x100c0b1b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x100c0b14
cmp esi, 0xfffffffe
je 0x100c0b1b
mov cl, byte [eax + 2]
cmp cl, byte [edx + 2]
jne 0x100c0b14
cmp esi, 0xffffffff
je 0x100c0b1b
mov al, byte [eax + 3]
cmp al, byte [edx + 3]
je 0x100c0b1b
sbb eax, eax
or eax, 1
jmp 0x100c0b1d
xor eax, eax
test eax, eax
jne 0x100c0b33
cmp ebx, edi
jae 0x100c0b2a
or eax, 0xffffffff
jmp 0x100c0b31
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
jne 0x100c0c82
lea ecx, [ebp - 0x208]
call fcn.1001c9b0
mov eax, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x410]
dec eax
mov esi, dword [ebp - 0x41c]
sub ecx, 0x1f4
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x410], ecx
test eax, eax
jns 0x100c09c7
mov ebx, dword [ebp - 0x414]
mov edi, dword [ebp - 0x418]
lea ecx, [ebp - 0x400]
mov byte [ebp - 4], 5
call fcn.1001c9b0
dec ebx
sub edi, 0x1f4
mov dword [ebp - 0x414], ebx
mov dword [ebp - 0x418], edi
test ebx, ebx
jns 0x100c0965
mov edi, dword [ebp - 0x408]
test esi, esi
je 0x100c0c02
xor esi, esi
test edi, edi
je 0x100c0c02
xor edi, edi
mov edi, edi
mov eax, dword [ebp - 0x428]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0x10624dd3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jbe 0x100c10fa
mov eax, dword [ebp - 0x41c]
inc esi
add dword [edi + ebx + 0x174], eax
add edi, 0x1f4
cmp esi, dword [ebp - 0x408]
jb 0x100c0bc0
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.10006b20
mov ecx, dword [ebp - 0x428]
mov edx, 1
call fcn.100bd1c0
add esp, 0x18
jmp 0x100c0c40
mov edi, dword [ebp - 0x444]
mov ebx, dword [ebp - 0x448]
test ebx, ebx
je 0x100c1110
mov esi, ebx
cmp ebx, edi
je 0x100c0c71
lea ebx, [ebx]
mov ecx, esi
call fcn.1001c9b0
add esi, 0x1f4
cmp esi, edi
jne 0x100c0c60
push ebx
mov ebx, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
call ebx
add esp, 4
jmp 0x100c1116
lea ecx, [ebp - 0x208]
call fcn.1001c9b0
lea ecx, [ebp - 0x400]
mov byte [ebp - 4], 5
call fcn.1001c9b0
push dword [ebp - 0x408]
mov esi, dword [ebp - 0x41c]
mov edi, dword [ebp - 0x444]
mov edx, edi
mov ecx, dword [ebp - 0x448]
push esi
call fcn.100c1be0
xor eax, eax
or ebx, 0xffffffff
add esp, 8
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x430], eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x424]
mov dword [ebp - 0x42c], eax
test eax, eax
js 0x100c0c46
lea edi, [esi - 1]
mov dword [ebp - 0x404], edi
lea esp, [esp]
mov eax, dword [ebp - 0x428]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [ebp - 0x424]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x100c10fa
imul eax, ecx, 0x1f4
lea ecx, [ebp - 0x400]
add eax, esi
push eax
call fcn.1001cd20
mov eax, edi
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x414], eax
test eax, eax
js 0x100c10aa
mov ecx, ebx
sub ecx, eax
mov dword [ebp - 0x418], ecx
imul ecx, eax, 0x1f4
add ecx, dword [ebp - 0x448]
mov dword [ebp - 0x408], ecx
cmp dword [ebp - 0x41c], eax
jbe 0x100c10fa
push ecx
lea ecx, [ebp - 0x208]
call fcn.1001cd20
cmp dword [ebp - 0xc8], 0x10
lea ecx, [ebp - 0xdc]
mov edi, dword [ebp - 0xcc]
lea edx, [ebp - 0x2d4]
cmovae ecx, dword [ebp - 0xdc]
mov esi, edi
cmp dword [ebp - 0x2c0], 0x10
mov ebx, dword [ebp - 0x2c4]
cmovae edx, dword [ebp - 0x2d4]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x100c0e30
sub esi, 4
jb 0x100c0df1
lea esp, [esp]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100c0df6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x100c0de0
cmp esi, 0xfffffffc
je 0x100c0e2a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100c0e23
cmp esi, 0xfffffffd
je 0x100c0e2a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100c0e23
cmp esi, 0xfffffffe
je 0x100c0e2a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100c0e23
cmp esi, 0xffffffff
je 0x100c0e2a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x100c0e2a
sbb eax, eax
or eax, 1
jmp 0x100c0e2c
xor eax, eax
test eax, eax
jne 0x100c0e42
cmp ebx, edi
jae 0x100c0e39
or eax, 0xffffffff
jmp 0x100c0e40
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
je 0x100c0f1b
cmp dword [ebp - 0xb0], 0x10
lea ecx, [ebp - 0xc4]
mov edi, dword [ebp - 0xb4]
lea edx, [ebp - 0x2bc]
cmovae ecx, dword [ebp - 0xc4]
mov esi, edi
cmp dword [ebp - 0x2a8], 0x10
mov ebx, dword [ebp - 0x2ac]
cmovae edx, dword [ebp - 0x2bc]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x100c0ee1
sub esi, 4
jb 0x100c0ea2
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100c0ea7
add edx, 4
add ecx, 4
sub esi, 4
jae 0x100c0e91
cmp esi, 0xfffffffc
je 0x100c0edb
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100c0ed4
cmp esi, 0xfffffffd
je 0x100c0edb
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100c0ed4
cmp esi, 0xfffffffe
je 0x100c0edb
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100c0ed4
cmp esi, 0xffffffff
je 0x100c0edb
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x100c0edb
sbb eax, eax
or eax, 1
jmp 0x100c0edd
xor eax, eax
test eax, eax
jne 0x100c0ef3
cmp ebx, edi
jae 0x100c0eea
or eax, 0xffffffff
jmp 0x100c0ef1
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
je 0x100c0f1b
mov ebx, dword [ebp - 0x420]
cmp ebx, 0xffffffff
je 0x100c0f5e
cmp dword [ebp - 0x418], 1
je 0x100c0f5e
lea ecx, [ebp - 0x208]
call fcn.1001c9b0
jmp 0x100c0f2c
lea ecx, [ebp - 0x208]
call fcn.1001c9b0
mov ebx, dword [ebp - 0x420]
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x408]
dec eax
inc dword [ebp - 0x418]
sub ecx, 0x1f4
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x408], ecx
test eax, eax
jns 0x100c0d80
jmp 0x100c10a4
mov eax, dword [ebp - 0x414]
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x420], eax
call fcn.1001c9b0
mov ebx, dword [ebp - 0x410]
lea eax, [ebp - 0x42c]
mov ecx, dword [ebp - 0x438]
cmp eax, ebx
jae 0x100c1018
cmp ecx, eax
ja 0x100c1018
mov edi, dword [ebp - 0x43c]
mov esi, eax
sub esi, ecx
sar esi, 2
cmp ebx, edi
jne 0x100c100f
mov eax, edi
sub eax, ebx
sar eax, 2
cmp eax, 1
jae 0x100c100f
sub ebx, ecx
mov eax, 0x3fffffff
sar ebx, 2
sub eax, ebx
cmp eax, 1
jb 0x100c10ef
sub edi, ecx
lea edx, [ebx + 1]
sar edi, 2
mov eax, 0x3fffffff
mov ecx, edi
shr ecx, 1
sub eax, ecx
cmp eax, edi
jae 0x100c0fe4
xor edi, edi
jmp 0x100c0fe6
add edi, ecx
cmp edi, edx
lea ecx, [ebp - 0x438]
cmovb edi, edx
push edi
call fcn.1000ab70
mov eax, dword [ebp - 0x430]
mov ebx, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x438]
mov dword [ebp - 0x43c], eax
test ebx, ebx
je 0x100c108f
mov eax, dword [ecx + esi*4]
jmp 0x100c108d
mov edi, dword [ebp - 0x43c]
cmp ebx, edi
jne 0x100c1083
mov eax, edi
sub eax, ebx
sar eax, 2
cmp eax, 1
jae 0x100c1083
sub ebx, ecx
mov eax, 0x3fffffff
sar ebx, 2
sub eax, ebx
cmp eax, 1
jb 0x100c10ef
sub edi, ecx
lea edx, [ebx + 1]
sar edi, 2
mov eax, 0x3fffffff
mov ecx, edi
shr ecx, 1
sub eax, ecx
cmp eax, edi
jae 0x100c105e
xor edi, edi
jmp 0x100c1060
add edi, ecx
cmp edi, edx
lea ecx, [ebp - 0x438]
cmovb edi, edx
push edi
call fcn.1000ab70
mov eax, dword [ebp - 0x430]
mov ebx, dword [ebp - 0x434]
mov dword [ebp - 0x43c], eax
test ebx, ebx
je 0x100c108f
mov eax, dword [ebp - 0x424]
mov dword [ebx], eax
add ebx, 4
mov dword [ebp - 0x410], ebx
mov dword [ebp - 0x434], ebx
mov ebx, dword [ebp - 0x420]
mov edi, dword [ebp - 0x404]
lea ecx, [ebp - 0x400]
mov byte [ebp - 4], 0xb
call fcn.1001c9b0
mov eax, dword [ebp - 0x424]
dec eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x42c], eax
jns 0x100c0d10
mov eax, dword [ebp - 0x438]
test eax, eax
je 0x100c0c40
push eax
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
jmp 0x100c0c40
push str.vector_T__too_long
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xlength_error_char_const__]
push str.invalid_vector_T__subscript
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xout_of_range_char_const__]
jmp 0x100c1110
mov ebx, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
cmp dword [ebp + 0x1c], 0x10
jb 0x100c1124
push dword [ebp + 8]
call ebx
add esp, 4
cmp dword [ebp + 0x34], 0x10
mov dword [ebp + 0x1c], 0xf
mov dword [ebp + 0x18], 0
mov byte [ebp + 8], 0
jb 0x100c1144
push dword [ebp + 0x20]
call ebx
add esp, 4
cmp dword [ebp + 0x4c], 0x10
mov dword [ebp + 0x34], 0xf
mov dword [ebp + 0x30], 0
mov byte [ebp + 0x20], 0
jb 0x100c1164
push dword [ebp + 0x38]
call ebx
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100dc8fb
mov esp, ebp
pop ebp
ret