Function at 0x10031754
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100749cb
mov eax, dword fs:[0]
push eax
sub esp, 0x1f0
mov eax, dword [0x1044a964]
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 dword [ebp - 0xc0], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x48], 0
cmp dword [ebp + 8], 0
jne 0x100316ec
mov eax, 0xedef1a03
push eax
lea ecx, [ebp - 0x1fc]
call fcn.10029340
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0xbc]
push edx
call fcn.100332e0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1fc]
call fcn.10029a10
call fcn.10023ce0
xor eax, eax
test eax, eax
je 0x100316f5
jne 0x100316f4
call 0x9307077c
rol byte [ebx + eax*4], 0xf0
add eax, 0x3eb037c
lcall 0x5902, 0x73f8fb74
xor eax, 3
add eax, 4
xor eax, 5
jl 0x10031703
jmp 0x10031705
je 0x10031700
clc
jae 0x1003170a
pop ecx
lcall 0x3300, 0x1a535
rol byte [ebx], 1
ret 0xea81
xor eax, 0x1a5
xor edx, eax
add eax, edx
sub edx, 0x1a5
push eax
pop edx
xor edx, 0x4ef
nop
nop
xor ecx, ecx
xor eax, eax
mov ecx, 0x1a5
add ecx, 3
sub ecx, eax
nop
push eax
pop ecx
xor eax, eax
nop
nop
push eax
xor eax, eax
pop eax
xor edx, edx
xor eax, edx
push ecx
pop ecx
xor eax, eax
nop
pushf
push 0xa
jae 0x10031752
jmp 0x1003174d
call 0x10031754
jae 0x1003174d
add esp, 4
jmp 0x10031759
dec dword [esp]
jno 0x1003175e
jns 0x10031749
jp 0x10031762
add esp, 4
popf
jmp 0x10031769
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x10031782
jne 0x10031782
call 0x1fc34ad6
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
clc
jae 0x10031798
add byte cs:[esi - 0x64], ah
pushf
push 0xa
jae 0x100317a5
jmp 0x100317a0
call 0x100317a7
jae 0x100317a0
add esp, 4
jmp 0x100317ac
dec dword [esp]
jno 0x100317b1
jns 0x1003179c
jp 0x100317b5
add esp, 4
popf
jmp 0x100317bc
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
xor eax, 0x1a6
xor edx, eax
add eax, edx
sub edx, 0x1a6
push eax
pop edx
xor edx, 0x4f2
nop
nop
xor ecx, ecx
xor eax, eax
mov ecx, 0x1a6
add ecx, 3
sub ecx, eax
nop
push eax
pop ecx
xor eax, eax
nop
nop
push eax
xor eax, eax
pop eax
xor edx, edx
xor eax, edx
push ecx
pop ecx
xor eax, eax
nop
jl 0x10031810
jmp 0x10031812
je 0x1003180d
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x1003182c
jne 0x1003182b
call 0x930708b3
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x1003183a
jne 0x1003183a
call 0x11b75e05
add byte [eax], al
add bl, ch
or dword [ebx - 0x3f7c4bbb], ecx
add dword [ecx + 0x4d8bb445], ecx
mov ah, 0x3b
dec ebp
or byte [edi], cl
invalid
mov dword [ebp - 0x4c], 1
jmp 0x1003184c
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp + 8]
jg 0x10031916
mov edx, dword [ebp - 0x4c]
push edx
lea eax, [ebp - 0xe8]
push eax
call fcn.10034000
add esp, 8
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x5c], edx
mov eax, dword [0x103dc818]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x5c]
push ecx
mov edx, dword [ebp - 0x60]
push edx
lea eax, [ebp - 0x28]
push eax
call fcn.10011260
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.100037b0
lea ecx, [ebp - 0x28]
call fcn.1000b940
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x48], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0xb7
jne 0x100318e2
mov ecx, dword [ebp - 0x50]
add ecx, 1
mov dword [ebp - 0x50], ecx
jmp 0x100318f2
cmp dword [ebp - 0x48], 0
je 0x100318f2
lea ecx, [ebp - 0x28]
call fcn.100037b0
jmp 0x10031916
cmp dword [ebp - 0x48], 0
je 0x10031909
mov edx, dword [ebp - 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x28]
call fcn.100037b0
jmp 0x10031843
xor eax, eax
test eax, eax
je 0x1003191f
jne 0x1003191e
call 0x930709a6
rol byte [ebx + eax*4], 0xf0
add eax, 0x3eb037c
mov al, 0x74
sti
xor eax, 3
add eax, 4
xor eax, 5
jl 0x1003192d
jmp 0x1003192f
je 0x1003192a
clc
jae 0x10031934
cmp esi, dword [eax + 0x1bd35]
add byte [ebx], dh
rol byte [ebx], 1
ret 0xea81
xor eax, 0x1bd
xor edx, eax
add eax, edx
sub edx, 0x1bd
push eax
pop edx
xor edx, 0x537
nop
nop
xor ecx, ecx
xor eax, eax
mov ecx, 0x1bd
add ecx, 3
sub ecx, eax
nop
push eax
pop ecx
xor eax, eax
nop
nop
push eax
xor eax, eax
pop eax
xor edx, edx
xor eax, edx
push ecx
pop ecx
xor eax, eax
nop
pushf
push 0xa
jae 0x1003197c
jmp 0x10031977
call 0x1003197e
jae 0x10031977
add esp, 4
jmp 0x10031983
dec dword [esp]
jno 0x10031988
jns 0x10031973
jp 0x1003198c
add esp, 4
popf
jmp 0x10031993
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x100319ac
jne 0x100319ac
call 0x1fc34d00
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
clc
jae 0x100319c2
adc byte [esi], dl
pushf
push 0xa
jae 0x100319cf
jmp 0x100319ca
call 0x100319d1
jae 0x100319ca
add esp, 4
jmp 0x100319d6
dec dword [esp]
jno 0x100319db
jns 0x100319c6
jp 0x100319df
add esp, 4
popf
jmp 0x100319e6
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
xor eax, 0x1be
xor edx, eax
add eax, edx
sub edx, 0x1be
push eax
pop edx
xor edx, 0x53a
nop
nop
xor ecx, ecx
xor eax, eax
mov ecx, 0x1be
add ecx, 3
sub ecx, eax
nop
push eax
pop ecx
xor eax, eax
nop
nop
push eax
xor eax, eax
pop eax
xor edx, edx
xor eax, edx
push ecx
pop ecx
xor eax, eax
nop
jl 0x10031a3a
jmp 0x10031a3c
je 0x10031a37
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x10031a56
jne 0x10031a55
call 0x93070add
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x10031a64
jne 0x10031a64
call 0x4bb35ff3
inc ebp
or byte [edi], cl
mov word [0xb9000002], fs
dec edi
sbb ch, bh
in eax, dx
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp + 8]
jl 0x10031c95
mov ecx, 0xedef1a4f
push ecx
lea ecx, [ebp - 0xd0]
call fcn.10029380
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x178]
call fcn.100036a0
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x74], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x160]
push ecx
call fcn.10034000
add esp, 8
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x7c], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x98], eax
mov ecx, 0xedef1a63
push ecx
lea ecx, [ebp - 0x1b0]
call fcn.10011590
mov dword [ebp - 0x80], eax
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x84], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x84]
push eax
lea ecx, [ebp - 0x148]
call fcn.100036a0
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x8c], ecx
mov byte [ebp - 4], 6
push 0x100793dc
mov edx, dword [ebp - 0x8c]
push edx
lea eax, [ebp - 0x130]
push eax
call fcn.100291a0
add esp, 0xc
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x94], ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x9c]
push ecx
lea edx, [ebp - 0x118]
push edx
call fcn.10029180
add esp, 0xc
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa4], eax
mov byte [ebp - 4], 8
push 0x100793dc
mov ecx, dword [ebp - 0xa4]
push ecx
lea edx, [ebp - 0x100]
push edx
call fcn.100291a0
add esp, 0xc
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xac], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb0]
push edx
mov eax, dword [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x40]
push ecx
call fcn.10029180
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x100]
call fcn.100037b0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x118]
call fcn.100037b0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x130]
call fcn.100037b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x148]
call fcn.100037b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1b0]
call fcn.100116a0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x160]
call fcn.100037b0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x178]
call fcn.100037b0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xd0]
call fcn.1001c880
lea ecx, [ebp - 0x40]
call fcn.1000b940
push eax
call fcn.100332e0
add esp, 4
call fcn.10023ce0
mov byte [ebp - 0x41], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.100037b0
mov al, byte [ebp - 0x41]
jmp 0x10031c97
xor al, al
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.1004ce42
mov esp, ebp
pop ebp
ret