Function at 0x10001407
Capabilities:
Check mutex on windows

Disassembly:
push ebp
lea ebp, [esp - 0x3908]
mov eax, 0x3908
call fcn.1000c210
push 0xfffffffffffffffe
push 0x1003e6f8
push 0x1000d600
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x10041024]
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 - 0x24], eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x3918]
mov dword [ebp - 0x1c], eax
mov esi, 0x800
push esi
xor ebx, ebx
push ebx
lea eax, [ebp + 0x800]
push eax
call fcn.1000de50
push esi
push ebx
lea eax, [ebp]
push eax
call fcn.1000de50
push esi
push ebx
lea eax, [ebp + 0x3000]
push eax
call fcn.1000de50
push esi
push ebx
lea eax, [ebp + 0x2800]
push eax
call fcn.1000de50
push esi
push ebx
lea eax, [ebp + 0x2000]
push eax
call fcn.1000de50
push esi
push ebx
lea eax, [ebp + 0x1000]
push eax
call fcn.1000de50
add esp, 0x48
push esi
push ebx
lea eax, [ebp + 0x1800]
push eax
call fcn.1000de50
push esi
lea eax, [ebp]
push eax
call fcn.1000ab55
push esi
lea eax, [ebp + 0x3000]
push eax
call fcn.1000abdf
push esi
lea eax, [ebp + 0x2800]
push eax
call fcn.1000ab9a
push esi
lea eax, [ebp + 0x2000]
push eax
lea eax, [ebp]
push eax
call fcn.1001f499
push esi
lea eax, [ebp + 0x1000]
push eax
lea eax, [ebp + 0x3000]
push eax
call fcn.1001f499
push esi
lea eax, [ebp + 0x1800]
push eax
lea eax, [ebp + 0x2800]
push eax
call fcn.1001f499
add esp, 0x48
push 0x1002f254
lea eax, [ebp + 0x2000]
push eax
call fcn.1001f499
pop ecx
pop ecx
test eax, eax
jne 0x1000154b
xor esi, esi
inc esi
mov edi, esi
mov dword [ebp - 0x20], esi
jmp 0x1000158c
push 0x1002f25c
lea eax, [ebp + 0x2000]
push eax
call fcn.1001f499
pop ecx
pop ecx
test eax, eax
jne 0x10001567
push 2
pop edi
jmp 0x10001586
push 0x1002f264
lea eax, [ebp + 0x2000]
push eax
call fcn.1001f499
pop ecx
pop ecx
mov edi, eax
neg edi
sbb edi, edi
and edi, 0xfffffffd
add edi, 3
mov dword [ebp - 0x20], edi
xor esi, esi
inc esi
push 0x1002f26c
lea eax, [ebp + 0x1000]
push eax
call fcn.1001f499
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x30], xmm0
lea eax, [ebp - 0x30]
push eax
push 0x1002f274
lea eax, [ebp + 0x1800]
push eax
call fcn.10004e9b
add esp, 0x14
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x20], ebx
jne 0x100016c1
push 0x800
lea eax, [ebp + 0x2000]
push eax
lea eax, [ebp]
push eax
call fcn.1000a882
push str.update
lea eax, [ebp + 0x2000]
push eax
call fcn.1001f499
add esp, 0x14
test eax, eax
jne 0x1000160e
mov edi, esi
mov dword [ebp - 0x20], esi
jmp 0x1000164c
push str.block
lea eax, [ebp + 0x2000]
push eax
call fcn.1001f499
pop ecx
pop ecx
test eax, eax
jne 0x1000162a
push 2
pop edi
jmp 0x10001649
push str.later
lea eax, [ebp + 0x2000]
push eax
call fcn.1001f499
pop ecx
pop ecx
mov edi, eax
neg edi
sbb edi, edi
and edi, 0xfffffffd
add edi, 3
mov dword [ebp - 0x20], edi
push 0x800
lea eax, [ebp + 0x1000]
push eax
lea eax, [ebp + 0x3000]
push eax
call fcn.1000a882
push str.true
lea eax, [ebp + 0x1000]
push eax
call fcn.1001f499
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
push 0x800
lea eax, [ebp + 0x1800]
push eax
lea eax, [ebp + 0x2800]
push eax
call fcn.1000a882
xorps xmm0, xmm0
movlpd qword [ebp - 0x30], xmm0
lea eax, [ebp - 0x30]
push eax
push 0x1002f29c
lea eax, [ebp + 0x1800]
push eax
call fcn.10004e9b
add esp, 0x2c
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
push 0x800
lea eax, [ebp + 0x800]
push eax
push str.deployment.webjava.enabled
call fcn.1000a882
add esp, 0xc
test eax, eax
je 0x100016ff
push 0x1002f2c0
lea eax, [ebp + 0x800]
push eax
call fcn.1001f499
pop ecx
pop ecx
test eax, eax
jne 0x100016ff
mov eax, 0x80040111
jmp 0x10001aa1
mov ecx, ebx
cmp dword [ebp - 0x20], ecx
je 0x100017fb
cmp dword [ebp - 0x34], ecx
jne 0x100017fb
mov eax, dword [ebp - 0x28]
and eax, dword [ebp - 0x3c]
cmp eax, 0xffffffff
je 0x100017fb
push ebx
call fcn.1001f499
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], edx
mov dword [esp], 0x800
push ebx
lea eax, [ebp + 0x3000]
push eax
call fcn.1000de50
push 0x800
push ebx
lea eax, [ebp + 0x2800]
push eax
call fcn.1000de50
push 0x800
lea eax, [ebp + 0x2800]
push eax
call fcn.1000ac24
push 0x800
lea eax, [ebp + 0x3000]
push eax
lea eax, [ebp + 0x2800]
push eax
call fcn.1000a882
add esp, 0x2c
test eax, eax
je 0x100017af
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
lea eax, [ebp - 0x38]
push eax
push str._llu
lea eax, [ebp + 0x3000]
push eax
call fcn.10004e9b
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
jmp 0x100017c1
push 0xa
pop eax
mov ecx, 0x93a80
cmp dword [ebp - 0x20], 3
cmove eax, ecx
mov dword [ebp - 0x34], ebx
mov ecx, dword [ebp - 0x28]
mov edx, ecx
add edx, eax
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x3c]
mov edx, eax
adc edx, dword [ebp - 0x34]
sub ecx, 0x15180
sbb eax, ebx
cmp dword [ebp - 0x2c], eax
jl 0x100017f9
mov eax, dword [ebp - 0x44]
jg 0x100017e9
cmp eax, ecx
jb 0x100017f9
cmp dword [ebp - 0x2c], edx
jg 0x100017f9
jl 0x100017f5
cmp eax, dword [ebp - 0x28]
ja 0x100017f9
mov ecx, ebx
jmp 0x100017fb
mov ecx, esi
cmp edi, 2
jne 0x10001808
test ecx, ecx
je 0x100016f5
mov edi, 0x104
push edi
push ebx
lea eax, [ebp + 0x3800]
push eax
call fcn.1000de50
push edi
lea eax, [ebp + 0x3800]
push eax
push esi
call fcn.1000561e
add esp, 0x18
lea ecx, [ebp + 0x3800]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10001835
sub ecx, edx
je 0x100019f2
mov edi, 0x800
push edi
push ebx
lea eax, [ebp + 0x1800]
push eax
call fcn.1000de50
push edi
lea eax, [ebp + 0x1800]
push eax
call fcn.10001ae3
add esp, 0x14
test eax, eax
jne 0x10001876
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
jmp 0x10001a91
push edi
push ebx
lea eax, [ebp + 0x2800]
push eax
call fcn.1000de50
push edi
push ebx
lea eax, [ebp + 0x3000]
push eax
call fcn.1000de50
lea eax, [ebp + 0x3800]
push eax
push edi
lea eax, [ebp + 0x3000]
push eax
call fcn.10001ba5
add esp, 0x24
test eax, eax
je 0x1000186b
lea eax, [ebp + 0x3000]
push eax
push str._s_binjp2ssv.dll
push edi
lea eax, [ebp + 0x2800]
push eax
call fcn.10004e7f
lea eax, [ebp + 0x2800]
push eax
lea eax, [ebp + 0x1800]
push eax
call fcn.1001f499
add esp, 0x18
test eax, eax
je 0x100019f2
mov dword [ebp - 0x40], ebx
mov dword [ebp - 4], ebx
mov esi, 0x1002f2e4
lea edi, [ebp + 0x800]
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
push ebx
lea eax, [ebp + 0x80e]
push eax
call fcn.1000de50
add esp, 0xc
lea eax, [ebp + 0x800]
push eax
push ebx
push ebx
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov esi, eax
mov dword [ebp - 0x40], esi
call dword [sym.imp.kernel32.dll_GetLastError]
test esi, esi
jne 0x1000197e
cmp eax, 5
jne 0x10001948
push str.SSVAgentMutex
push ebx
push 0x100000
call dword [sym.imp.kernel32.dll_OpenMutexA]
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x1000197e
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push dword [ebp + 0x3910]
mov ecx, 0x10041c48
call fcn.10002f93
mov esi, eax
push 0xfffffffffffffffe
lea eax, [ebp - 0x10]
push eax
push 0x10041024
call fcn.1000d760
add esp, 0xc
mov eax, esi
jmp 0x10001aa1
push 0xffffffffffffffff
push esi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
push 0x800
lea eax, [ebp + 0x1800]
push eax
call fcn.10001ae3
pop ecx
pop ecx
test eax, eax
je 0x1000194c
lea eax, [ebp + 0x2800]
push eax
lea eax, [ebp + 0x1800]
push eax
call fcn.1001f499
pop ecx
pop ecx
test eax, eax
je 0x1000194c
lea eax, [ebp + 0x3000]
push eax
xor eax, eax
inc eax
push eax
push ebx
push eax
push eax
push eax
push ebx
call sym.jp2ssv.dll_RunBrokerProcess
add esp, 0x1c
jmp 0x1000194c
mov edi, dword [ebp - 0x24]
push 0x1002f304
call fcn.100090c0
pop ecx
test eax, eax
je 0x10001a8d
mov ecx, ebx
mov edx, dword [ebp + 0x3910]
mov eax, dword [edx + ecx*4]
mov edx, 0x1002f140
cmp eax, dword [edx + ecx*4]
mov edx, dword [ebp + 0x3910]
jne 0x10001a8d
inc ecx
cmp ecx, 4
jne 0x10001a10
call fcn.1001f499
test eax, eax
je 0x10001a7f
call fcn.1001f499
test eax, eax
je 0x10001a48
push ebx
push ebx
push esi
push esi
push esi
push esi
push 0x1002f310
jmp 0x10001a75
push esi
call fcn.1001f499
pop ecx
push ebx
test eax, eax
je 0x10001a60
push ebx
push ebx
push esi
push ebx
push esi
push 0x1002f31c
jmp 0x10001a75
call fcn.1001f499
pop ecx
test eax, eax
je 0x10001a8d
push ebx
push ebx
push ebx
push esi
push esi
push esi
push 0x1002f328
call sym.jp2ssv.dll_RunBrokerProcess
add esp, 0x1c
jmp 0x10001a8d
push ebx
push ebx
call fcn.1001f499
pop ecx
pop ecx
call fcn.1001f499
push dword [ebp - 0x1c]
push edi
push dword [ebp + 0x3910]
mov ecx, 0x10041c48
call fcn.10002f93
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.1000be90
add ebp, 0x3908
leave
ret 0xc