Function at 0x100bd490
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1018ecd9
mov eax, dword fs:[0]
push eax
sub esp, 0x36c
mov eax, dword [0x101d8724]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x360], ecx
mov byte [ebp - 0x259], 0
cmp dword [ebp + 8], 7
je 0x100bd4e1
cmp dword [ebp + 8], 0xa
je 0x100bd4e1
mov dword [ebp - 0x364], 0
jmp 0x100bd4eb
mov dword [ebp - 0x364], 1
mov al, byte [ebp - 0x364]
mov byte [ebp - 0x25a], al
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x260], edx
cmp dword [0x101e2448], 0
jne 0x100bd525
mov eax, dword [ebp - 0x360]
push eax
push 0
call fcn.100bc510
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x101e2448], eax
push 0x3a98
mov ecx, dword [0x101e2448]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x258], 0x80
je 0x100bd556
cmp dword [ebp - 0x258], 0
jne 0x100bdf9c
call fcn.100be6a0
mov dword [ebp - 0x264], 0
movzx edx, byte [ebp - 0x25a]
test edx, edx
je 0x100bd66f
movzx eax, byte [0x101e3bbe]
test eax, eax
jne 0x100bd66f
push 4
call fcn.1014c6a4
add esp, 4
mov dword [ebp - 0x294], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x294], 0
je 0x100bd5d5
push 0
call fcn.1015020e
add esp, 4
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], edx
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [ebp - 0x294]
mov dword [edx], ecx
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x368], eax
jmp 0x100bd5df
mov dword [ebp - 0x368], 0
mov ecx, dword [ebp - 0x368]
mov dword [ebp - 0x290], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x290]
mov dword [ebp - 0x264], edx
mov ecx, dword [ebp - 0x264]
call fcn.10077cf0
and eax, 3
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x26c], 0
jmp 0x100bd62d
mov eax, dword [ebp - 0x26c]
add eax, 1
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
cmp ecx, dword [ebp - 0x268]
je 0x100bd668
mov edx, dword [ebp - 0x360]
mov eax, dword [edx + 0x165c]
push eax
mov ecx, dword [ebp - 0x264]
push ecx
mov ecx, dword [ebp - 0x360]
call fcn.100bcce0
mov edx, dword [ebp - 0x360]
mov dword [edx + 0x165c], eax
jmp 0x100bd61e
mov byte [0x101e3bbe], 1
cmp dword [ebp + 8], 7
je 0x100bd67b
cmp dword [ebp + 8], 0xd
jne 0x100bd6de
movzx eax, byte [0x101e2444]
test eax, eax
jne 0x100bd6d9
mov ecx, 0x12
shl ecx, 2
mov edx, dword [0x101db5fc]
mov eax, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [eax + 0x64]
xor esi, dword [edx + ecx]
and esi, 0xc000
je 0x100bd6d9
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x260]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0x80000000
mov ecx, dword [ebp - 0x360]
call fcn.100beea0
mov byte [ebp - 0x259], al
jmp 0x100bdee4
cmp dword [ebp + 8], 0xa
je 0x100bd6ea
cmp dword [ebp + 8], 0x10
jne 0x100bd74e
movzx edx, byte [0x101e2444]
test edx, edx
jne 0x100bd749
mov eax, 0x12
shl eax, 2
mov ecx, dword [0x101db5fc]
mov edx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [edx + 0x64]
xor esi, dword [ecx + eax]
and esi, 0xc000
je 0x100bd749
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x260]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
push 0x80000001
mov ecx, dword [ebp - 0x360]
call fcn.100beea0
mov byte [ebp - 0x259], al
jmp 0x100bdee4
cmp dword [ebp + 8], 8
je 0x100bd75e
cmp dword [ebp + 8], 0xe
jne 0x100bd84f
movzx ecx, byte [0x101e2445]
test ecx, ecx
jne 0x100bd84a
mov edx, 0x12
shl edx, 2
mov eax, dword [0x101db5fc]
mov ecx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [ecx + 0x64]
xor esi, dword [eax + edx]
and esi, 0x20000
je 0x100bd84a
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x260]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
shl edx, 7
mov eax, dword [ebp - 0x360]
lea ecx, [eax + edx + 0xb50]
push ecx
push 0
call fcn.100bdff0
add esp, 0x14
mov byte [ebp - 0x259], al
movzx eax, byte [ebp - 0x259]
test eax, eax
jne 0x100bd80c
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x260]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
shl ecx, 7
mov edx, dword [ebp - 0x360]
lea eax, [edx + ecx + 0xb50]
push eax
push 2
call fcn.100bdff0
add esp, 0x14
mov byte [ebp - 0x259], al
movzx edx, byte [ebp - 0x259]
test edx, edx
jne 0x100bd84a
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x260]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
shl eax, 7
mov ecx, dword [ebp - 0x360]
lea edx, [ecx + eax + 0xb50]
push edx
push 1
call fcn.100bdff0
add esp, 0x14
mov byte [ebp - 0x259], al
jmp 0x100bdee4
cmp dword [ebp + 8], 0x11
jne 0x100bda85
mov ecx, dword [ebp - 0x360]
movzx edx, byte [ecx + 0x1658]
test edx, edx
je 0x100bda10
mov eax, dword [ebp + 8]
shl eax, 7
mov ecx, dword [ebp - 0x360]
lea edx, [ecx + eax + 0xb50]
push edx
lea ecx, [ebp - 0x74]
call fcn.100e1250
mov dword [ebp - 4], 1
mov eax, dword [str.SoftwareLicenses]
push eax
lea ecx, [ebp - 0xd4]
call fcn.100e1250
mov byte [ebp - 4], 2
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x101db5fc]
mov eax, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [eax + 0x64]
xor esi, dword [edx + ecx]
and esi, 8
neg esi
sbb esi, esi
add esi, 0x80000002
cmp esi, 0x80000001
jne 0x100bd8e9
mov dword [ebp - 0x36c], 0x101a39ac
jmp 0x100bd8f3
mov dword [ebp - 0x36c], 0x101a39a4
mov ecx, dword [ebp - 0x36c]
push ecx
lea ecx, [ebp - 0x134]
call fcn.100e1250
mov byte [ebp - 4], 3
lea edx, [ebp - 0x74]
push edx
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x134]
push ecx
lea edx, [ebp - 0x274]
push edx
call fcn.100f3890
add esp, 0x10
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x134]
call fcn.10063f10
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd4]
call fcn.10063f10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x74]
call fcn.10063f10
mov eax, dword [ebp - 0x274]
neg eax
sbb eax, eax
neg eax
sub eax, 1
cmp eax, 0xffffffff
je 0x100bd9dc
mov byte [ebp - 0x259], 1
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [edx + 4]
sub ecx, dword [eax]
mov dword [ebp - 0x2e8], ecx
mov edx, dword [ebp - 0x274]
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp - 0x2e8]
push eax
mov ecx, dword [ebp - 0x2ec]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.1014c8e0
add esp, 0xc
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x2f0], ecx
mov edx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [edx + 4]
sub ecx, dword [eax]
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
mov dword [ebp - 4], 8
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x270]
mov dword [ebp - 0x2f4], eax
mov ecx, dword [ebp - 0x2f4]
cmp dword [ecx], 0
je 0x100bda0e
mov edx, dword [ebp - 0x2f4]
mov ecx, dword [edx]
call fcn.10021940
jmp 0x100bda80
mov eax, 0xe
shl eax, 2
mov ecx, dword [0x101db5fc]
mov edx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [edx + 0x64]
xor esi, dword [ecx + eax]
mov dword [ebp - 0x2f8], esi
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
shl edx, 7
mov eax, dword [ebp - 0x360]
lea ecx, [eax + edx + 0xb50]
push ecx
mov edx, dword [str.SoftwareLicenses]
push edx
mov eax, dword [ebp - 0x2f8]
and eax, 8
neg eax
sbb eax, eax
add eax, 0x80000002
push eax
mov ecx, dword [ebp - 0x360]
call fcn.100bd1f0
mov byte [ebp - 0x259], al
jmp 0x100bdee4
cmp dword [ebp + 8], 0x14
je 0x100bda91
cmp dword [ebp + 8], 0x15
jne 0x100bdae1
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x101db5fc]
mov eax, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [eax + 0x64]
xor esi, dword [edx + ecx]
and esi, 8
jne 0x100bdadc
cmp dword [ebp + 8], 0x15
sete cl
movzx edx, cl
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x360]
call fcn.100bb4f0
mov byte [ebp - 0x259], al
jmp 0x100bdee4
mov edx, 0x12
shl edx, 2
mov eax, dword [0x101db5fc]
mov ecx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [ecx + 0x64]
xor esi, dword [eax + edx]
and esi, 0x10000
je 0x100bdee4
mov edx, dword [ebp - 0x360]
movzx eax, byte [edx + 0x1658]
test eax, eax
je 0x100bdd10
cmp dword [ebp + 8], 6
je 0x100bdb34
cmp dword [ebp + 8], 9
jne 0x100bdd10
cmp dword [ebp + 8], 6
jne 0x100bdb6d
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x101db5fc]
mov eax, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [eax + 0x64]
xor esi, dword [edx + ecx]
and esi, 8
jne 0x100bdb6d
mov dword [ebp - 0x370], 0x101a39a4
jmp 0x100bdb77
mov dword [ebp - 0x370], 0x101a39ac
mov ecx, dword [ebp - 0x370]
mov dword [ebp - 0x284], ecx
cmp dword [ebp + 8], 9
jne 0x100bdb97
mov edx, dword [str.SoftwareThe_Silicon_Realms_ToolworksArmadillo]
mov dword [ebp - 0x374], edx
jmp 0x100bdba2
mov eax, dword [str.SoftwareLicenses]
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
mov dword [ebp - 0x278], ecx
mov edx, dword [ebp + 8]
shl edx, 7
mov eax, dword [ebp - 0x360]
lea ecx, [eax + edx + 0xb50]
push ecx
lea ecx, [ebp - 0x194]
call fcn.100e1250
mov dword [ebp - 4], 9
mov edx, dword [ebp - 0x278]
push edx
lea ecx, [ebp - 0x1f4]
call fcn.100e1250
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x284]
push eax
lea ecx, [ebp - 0x254]
call fcn.100e1250
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x194]
push ecx
lea edx, [ebp - 0x1f4]
push edx
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x280]
push ecx
call fcn.100f3890
add esp, 0x10
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x254]
call fcn.10063f10
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1f4]
call fcn.10063f10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x194]
call fcn.10063f10
mov edx, dword [ebp - 0x280]
neg edx
sbb edx, edx
neg edx
sub edx, 1
cmp edx, 0xffffffff
je 0x100bdcd9
mov byte [ebp - 0x259], 1
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x344], eax
mov ecx, dword [ebp - 0x344]
mov edx, dword [ebp - 0x344]
mov eax, dword [ecx + 4]
sub eax, dword [edx]
mov dword [ebp - 0x348], eax
mov ecx, dword [ebp - 0x280]
mov dword [ebp - 0x34c], ecx
mov edx, dword [ebp - 0x348]
push edx
mov eax, dword [ebp - 0x34c]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.1014c8e0
add esp, 0xc
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x350], eax
mov ecx, dword [ebp - 0x350]
mov edx, dword [ebp - 0x350]
mov eax, dword [ecx + 4]
sub eax, dword [edx]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov dword [ebp - 4], 0x10
mov dword [ebp - 4], 0xffffffff
lea edx, [ebp - 0x27c]
mov dword [ebp - 0x354], edx
mov eax, dword [ebp - 0x354]
cmp dword [eax], 0
je 0x100bdd0b
mov ecx, dword [ebp - 0x354]
mov ecx, dword [ecx]
call fcn.10021940
jmp 0x100bdee4
cmp dword [ebp + 8], 9
je 0x100bdd1c
cmp dword [ebp + 8], 0xf
jne 0x100bdd5a
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
shl ecx, 7
mov edx, dword [ebp - 0x360]
lea eax, [edx + ecx + 0xb50]
push eax
mov ecx, dword [str.SoftwareLicenses]
push ecx
push 0x80000001
mov ecx, dword [ebp - 0x360]
call fcn.100bd1f0
mov byte [ebp - 0x259], al
jmp 0x100bdee4
cmp dword [ebp + 8], 5
je 0x100bdd66
cmp dword [ebp + 8], 0xb
jne 0x100bdddb
mov edx, 0xe
shl edx, 2
mov eax, dword [0x101db5fc]
mov ecx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [ecx + 0x64]
xor esi, dword [eax + edx]
mov dword [ebp - 0x358], esi
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
shl ecx, 7
mov edx, dword [ebp - 0x360]
lea eax, [edx + ecx + 0xb50]
push eax
mov ecx, dword [str.SoftwareThe_Silicon_Realms_ToolworksArmadillo]
push ecx
mov edx, dword [ebp - 0x358]
and edx, 8
neg edx
sbb edx, edx
add edx, 0x80000002
push edx
mov ecx, dword [ebp - 0x360]
call fcn.100bd1f0
mov byte [ebp - 0x259], al
jmp 0x100bdee4
cmp dword [ebp + 8], 6
je 0x100bddeb
cmp dword [ebp + 8], 0xc
jne 0x100bdee4
mov eax, 0xe
shl eax, 2
mov ecx, dword [0x101db5fc]
mov edx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [edx + 0x64]
xor esi, dword [ecx + eax]
mov dword [ebp - 0x35c], esi
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
shl edx, 7
mov eax, dword [ebp - 0x360]
lea ecx, [eax + edx + 0xb50]
push ecx
mov edx, dword [str.SoftwareLicenses]
push edx
mov eax, dword [ebp - 0x35c]
and eax, 8
neg eax
sbb eax, eax
add eax, 0x80000002
push eax
mov ecx, dword [ebp - 0x360]
call fcn.100bd1f0
mov byte [ebp - 0x259], al
movzx ecx, byte [ebp - 0x259]
test ecx, ecx
jne 0x100bdee4
mov edx, 0xe
shl edx, 2
mov eax, dword [0x101db5fc]
mov ecx, dword [0x101db5fc]
mov esi, dword [0x101db5fc]
mov esi, dword [esi + 0x6c]
xor esi, dword [ecx + 0x64]
xor esi, dword [eax + edx]
and esi, 8
jne 0x100bdee4
cmp dword [ebp + 8], 0xc
jne 0x100bdea7
mov edx, dword [ebp - 0x360]
add edx, 0xfd0
mov dword [ebp - 0x378], edx
jmp 0x100bdeb8
mov eax, dword [ebp - 0x360]
add eax, 0x12d0
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x378]
push eax
mov ecx, dword [str.SoftwareLicenses]
push ecx
push 0x80000001
mov ecx, dword [ebp - 0x360]
call fcn.100bd1f0
mov byte [ebp - 0x259], al
movzx edx, byte [ebp - 0x25a]
test edx, edx
je 0x100bdf9c
movzx eax, byte [0x101e3bbd]
test eax, eax
jne 0x100bdf9c
mov ecx, dword [ebp - 0x360]
mov edx, dword [ecx + 0x165c]
and edx, 3
add edx, 1
mov dword [ebp - 0x288], edx
mov dword [ebp - 0x28c], 0
jmp 0x100bdf35
mov eax, dword [ebp - 0x28c]
add eax, 1
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x28c]
cmp ecx, dword [ebp - 0x288]
je 0x100bdf70
mov edx, dword [ebp - 0x360]
mov eax, dword [edx + 0x165c]
push eax
mov ecx, dword [ebp - 0x264]
push ecx
mov ecx, dword [ebp - 0x360]
call fcn.100bcce0
mov edx, dword [ebp - 0x360]
mov dword [edx + 0x165c], eax
jmp 0x100bdf26
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp - 0x298]
push ecx
call fcn.1014c699
add esp, 4
mov dword [ebp - 0x264], 0
mov byte [0x101e3bbd], 1
mov edx, dword [0x101e2448]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x101e2448]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x101e2448], 0
mov al, byte [ebp - 0x259]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1014c68a
mov esp, ebp
pop ebp
ret 0xc