Function at 0x10001ae9
Capabilities:
Check mutex on windows

Disassembly:
push ebp
lea ebp, [esp - 0x3908]
mov eax, 0x3908
call fcn.1000c370
push 0xfffffffffffffffe
push 0x10028270
push 0x1000c6d0
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x1002b19c]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x3904], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x3914]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x3918]
mov dword [ebp - 0x2c], eax
mov byte [ebp + 0x1000], 0
mov esi, 0x7ff
push esi
xor edi, edi
push edi
lea eax, [ebp + 0x1001]
push eax
call fcn.1000c3a0
mov byte [ebp], 0
push esi
push edi
lea eax, [ebp + 1]
push eax
call fcn.1000c3a0
mov byte [ebp + 0x3000], 0
push esi
push edi
lea eax, [ebp + 0x3001]
push eax
call fcn.1000c3a0
mov byte [ebp + 0x2800], 0
push esi
push edi
lea eax, [ebp + 0x2801]
push eax
call fcn.1000c3a0
mov byte [ebp + 0x1800], 0
push esi
push edi
lea eax, [ebp + 0x1801]
push eax
call fcn.1000c3a0
mov byte [ebp + 0x800], 0
push esi
push edi
lea eax, [ebp + 0x801]
push eax
call fcn.1000c3a0
add esp, 0x48
mov byte [ebp + 0x2000], 0
push esi
push edi
lea eax, [ebp + 0x2001]
push eax
call fcn.1000c3a0
lea ebx, [esi + 1]
push ebx
lea eax, [ebp]
push eax
call fcn.1000a62a
push ebx
lea eax, [ebp + 0x3000]
push eax
call fcn.1000a6b4
push ebx
lea eax, [ebp + 0x2800]
push eax
call fcn.1000a66f
push ebx
lea eax, [ebp + 0x1800]
push eax
lea eax, [ebp]
push eax
call fcn.1000e3d5
push ebx
lea eax, [ebp + 0x800]
push eax
lea eax, [ebp + 0x3000]
push eax
call fcn.1000e3d5
push ebx
lea eax, [ebp + 0x2000]
push eax
lea eax, [ebp + 0x2800]
push eax
call fcn.1000e3d5
add esp, 0x48
push 0x10023858
lea eax, [ebp + 0x1800]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
test eax, eax
jne 0x10001c5a
mov dword [ebp - 0x54], 1
jmp 0x10001c9a
push 0x10023860
lea eax, [ebp + 0x1800]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
test eax, eax
jne 0x10001c7a
mov dword [ebp - 0x54], 2
jmp 0x10001c9a
push 0x10023868
lea eax, [ebp + 0x1800]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
mov dword [ebp - 0x54], eax
push 0x10023870
lea eax, [ebp + 0x800]
push eax
call fcn.1000e3d5
neg eax
sbb edi, edi
inc edi
and dword [ebp - 0x24], 0
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x24]
push eax
push 0x10023878
lea eax, [ebp + 0x2000]
push eax
call fcn.1000e3d5
add esp, 0x14
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x54], 0
jne 0x10001dc2
push ebx
lea eax, [ebp + 0x1800]
push eax
lea eax, [ebp]
push eax
call fcn.1000a7a8
push str.update
lea eax, [ebp + 0x1800]
push eax
call fcn.1000e3d5
add esp, 0x14
test eax, eax
jne 0x10001d18
mov dword [ebp - 0x54], 1
jmp 0x10001d58
push str.block
lea eax, [ebp + 0x1800]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
test eax, eax
jne 0x10001d38
mov dword [ebp - 0x54], 2
jmp 0x10001d58
push str.later
lea eax, [ebp + 0x1800]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
mov dword [ebp - 0x54], eax
push ebx
lea eax, [ebp + 0x800]
push eax
lea eax, [ebp + 0x3000]
push eax
call fcn.1000a7a8
push str.true
lea eax, [ebp + 0x800]
push eax
call fcn.1000e3d5
neg eax
sbb edi, edi
inc edi
push ebx
lea eax, [ebp + 0x2000]
push eax
lea eax, [ebp + 0x2800]
push eax
call fcn.1000a7a8
and dword [ebp - 0x24], 0
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x24]
push eax
push 0x100238a0
lea eax, [ebp + 0x2000]
push eax
call fcn.1000e3d5
add esp, 0x2c
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
push ebx
lea eax, [ebp + 0x1000]
push eax
push str.deployment.webjava.enabled
call fcn.1000a7a8
add esp, 0xc
test eax, eax
je 0x10001dfc
push 0x100238c4
lea eax, [ebp + 0x1000]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
test eax, eax
jne 0x10001dfc
mov eax, 0x80040111
jmp 0x100021a8
xor eax, eax
cmp dword [ebp - 0x54], eax
je 0x10001eea
cmp edi, eax
jne 0x10001eea
mov edi, dword [ebp - 0x4c]
mov ecx, edi
and ecx, dword [ebp - 0x48]
cmp ecx, 0xffffffff
je 0x10001eea
push eax
call fcn.1000e3d5
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov byte [ebp + 0x3000], 0
push esi
push 0
lea eax, [ebp + 0x3001]
push eax
call fcn.1000c3a0
mov byte [ebp + 0x2800], 0
push esi
push 0
lea eax, [ebp + 0x2801]
push eax
call fcn.1000c3a0
push ebx
lea eax, [ebp + 0x2800]
push eax
call fcn.1000a6f9
push ebx
lea eax, [ebp + 0x3000]
push eax
lea eax, [ebp + 0x2800]
push eax
call fcn.1000a7a8
add esp, 0x30
test eax, eax
je 0x10001ea8
and dword [ebp - 0x34], 0
and dword [ebp - 0x30], 0
lea eax, [ebp - 0x34]
push eax
push str._llu
lea eax, [ebp + 0x3000]
push eax
call fcn.1000e3d5
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
jmp 0x10001ebb
xor eax, eax
cmp dword [ebp - 0x54], 3
setne al
dec eax
and eax, 0x93a76
add eax, 0xa
cdq
add eax, edi
mov ecx, dword [ebp - 0x48]
adc edx, ecx
sub edi, 0x15180
sbb ecx, 0
cmp dword [ebp - 0x20], ecx
jl 0x10001ee7
jg 0x10001ed7
cmp dword [ebp - 0x24], edi
jb 0x10001ee7
cmp dword [ebp - 0x20], edx
jg 0x10001ee7
jl 0x10001ee3
cmp dword [ebp - 0x24], eax
ja 0x10001ee7
xor eax, eax
jmp 0x10001eea
xor eax, eax
inc eax
cmp dword [ebp - 0x54], 2
jne 0x10001ef8
test eax, eax
je 0x10001df2
mov byte [ebp + 0x3800], 0
push 0x103
push 0
lea eax, [ebp + 0x3801]
push eax
call fcn.1000c3a0
push 0x104
lea eax, [ebp + 0x3800]
push eax
push 1
call fcn.1000e3d5
add esp, 0x18
lea eax, [ebp + 0x3800]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10001f31
sub eax, edi
xor edi, edi
cmp eax, edi
je 0x100020f8
mov byte [ebp + 0x2000], 0
push esi
push edi
lea eax, [ebp + 0x2001]
push eax
call fcn.1000c3a0
push ebx
lea eax, [ebp + 0x2000]
push eax
call fcn.100014c2
add esp, 0x14
test eax, eax
je 0x10002192
mov byte [ebp + 0x2800], 0
push esi
push edi
lea eax, [ebp + 0x2801]
push eax
call fcn.1000c3a0
mov byte [ebp + 0x3000], 0
push esi
push edi
lea eax, [ebp + 0x3001]
push eax
call fcn.1000c3a0
lea eax, [ebp + 0x3800]
push eax
push ebx
lea eax, [ebp + 0x3000]
push eax
call fcn.10001591
add esp, 0x24
cmp eax, edi
je 0x10002192
lea eax, [ebp + 0x3000]
push eax
push str._s_binjp2ssv.dll
push ebx
lea eax, [ebp + 0x2800]
push eax
call fcn.1000e3d5
lea eax, [ebp + 0x2800]
push eax
lea eax, [ebp + 0x2000]
push eax
call fcn.1000e3d5
add esp, 0x18
test eax, eax
je 0x100020f8
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], edi
mov esi, 0x100238e8
lea edi, [ebp + 0x1000]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x7f2
xor esi, esi
push esi
lea eax, [ebp + 0x100e]
push eax
call fcn.1000c3a0
add esp, 0xc
lea eax, [ebp + 0x1000]
push eax
push esi
push esi
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.kernel32.dll_GetLastError]
cmp dword [ebp - 0x1c], esi
jne 0x1000208b
cmp eax, 5
jne 0x10002054
push str.SSVAgentMutex
push esi
push 0x100000
call dword [sym.imp.kernel32.dll_OpenMutexA]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jne 0x1000208b
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
push dword [ebp + 0x3910]
mov ecx, 0x1002c600
call fcn.1000e3d5
mov esi, eax
push 0xfffffffffffffffe
lea eax, [ebp - 0x10]
push eax
push 0x1002b19c
call fcn.1000cdb0
add esp, 0xc
mov eax, esi
jmp 0x100021a8
push 0xffffffffffffffff
push dword [ebp - 0x1c]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
push ebx
lea eax, [ebp + 0x2000]
push eax
call fcn.100014c2
pop ecx
pop ecx
test eax, eax
je 0x10002059
lea eax, [ebp + 0x2800]
push eax
lea eax, [ebp + 0x2000]
push eax
call fcn.1000e3d5
pop ecx
pop ecx
test eax, eax
je 0x10002059
lea eax, [ebp + 0x3000]
push eax
xor eax, eax
inc eax
push eax
push esi
push eax
push eax
push eax
push esi
call sym.jp2ssv.dll_RunBrokerProcess
add esp, 0x1c
jmp 0x10002059
push 0x10023908
call fcn.10008e86
pop ecx
test eax, eax
je 0x10002192
push 4
pop ecx
mov edi, 0x10023744
mov esi, dword [ebp + 0x3910]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x10002192
call fcn.1000e3d5
test eax, eax
je 0x10002182
call fcn.1000e3d5
test eax, eax
je 0x10002143
push 0
push 0
xor eax, eax
inc eax
push eax
push eax
push eax
push eax
push 0x10023914
jmp 0x10002178
xor esi, esi
inc esi
push esi
call fcn.1000e3d5
pop ecx
test eax, eax
je 0x10002160
xor eax, eax
push eax
push eax
push eax
push esi
push eax
push esi
push 0x10023920
jmp 0x10002178
xor edi, edi
push edi
call fcn.1000e3d5
pop ecx
test eax, eax
je 0x10002192
push edi
push edi
push edi
push esi
push esi
push esi
push 0x1002392c
call sym.jp2ssv.dll_RunBrokerProcess
add esp, 0x1c
jmp 0x10002192
push 0
push 0
call fcn.1000e3d5
pop ecx
pop ecx
call fcn.1000e3d5
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
push dword [ebp + 0x3910]
mov ecx, 0x1002c600
call fcn.1000e3d5
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3904]
xor ecx, ebp
call fcn.1000c2c7
add ebp, 0x3908
leave
ret 0xc