Function at 0x14001c720
Capabilities:
Check mutex on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x8a0]
sub rsp, 0x9a0
mov rax, qword [0x1402698e0]
xor rax, rsp
mov qword [rbp + 0x880], rax
mov rdi, rcx
mov rcx, qword [rbp + 0x8f0]
mov rsi, r9
mov rbx, r8
mov r14, rdx
test rcx, rcx
je 0x14001c764
call fcn.140009590
mov qword [rdi + 8], r14
lea rdx, str.Matcher
lea rcx, [rsp + 0x40]
mov qword [0x140270920], r14
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
cmp byte [rdi + 0x3f4], 1
jne 0x14001c7c9
lea r8, str.RMatcher_mutex
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14001c7c9
lea rdx, str.Only_1_instance_of_RMatcher_allowed_in_LOCAL_mode
mov ecx, 2
call qword [rdi + reloc.WS2_32.dll_htonl]
or rax, 0xffffffffffffffff
jmp 0x14001cfe1
lea rcx, [rsp + 0x40]
test rsi, rsi
jne 0x14001c7f3
lea rdx, str.RMatcher_started_with_no_Config_file
call fcn.140197aa8
lea rdx, [rsp + 0x40]
lea ecx, [rsi + 2]
call qword [rdi + reloc.WS2_32.dll_htonl]
or rax, 0xffffffffffffffff
jmp 0x14001cfe1
lea rdx, str.Using_configuration_file____s
mov r8, rsi
mov qword [rsp + 0x990], r15
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
test rbx, rbx
je 0x14001c81e
cmp byte [rbx], 0
jne 0x14001c82c
mov rdx, rsi
mov rcx, rdi
call fcn.14001b7b0
mov rbx, rax
lea rdx, str.Project_path_is__.1024s
lea rcx, [rsp + 0x40]
mov r8, rbx
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
lea rdx, str.TS_CONFIG_s_settings_Config64.tbl
lea rcx, [rbp + 0x770]
mov r8, rbx
call fcn.140197aa8
lea rcx, [rbp + 0x770]
call fcn.140198720
lea rdx, str.Loading_properties_from_config_file___s_
lea rcx, [rsp + 0x40]
mov r8, rsi
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
lea r8, str.Trillium
lea rcx, [rdi + 0x20]
mov rdx, rsi
call fcn.140003780
lea rdx, str.Return_code_from_properties_load_is__d.
lea rcx, [rsp + 0x40]
mov r8d, eax
mov r14d, eax
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
test r14d, r14d
je 0x14001c921
lea rcx, [rsp + 0x40]
cmp r14d, 1
jne 0x14001c8e2
lea rdx, str.Fatal_error__d:_Unable_to_open_the_config_file___s_.
mov r9, rsi
mov r8d, r14d
call fcn.140197aa8
jmp 0x14001c90b
cmp r14d, 2
jne 0x14001c8fc
lea rdx, str.Fatal_error__d:_Unable_to_find_the_section_header_in___s_.
mov r9, rsi
mov r8d, r14d
call fcn.140197aa8
jmp 0x14001c90b
lea rdx, str.Fatal_error__d_encountered_loading_properties.
mov r8d, r14d
call fcn.140197aa8
lea rdx, [rsp + 0x40]
mov ecx, 2
call qword [rdi + reloc.WS2_32.dll_htonl]
or rax, 0xffffffffffffffff
jmp 0x14001cfd9
lea rdx, str.MatchParmFile
lea rcx, [rdi + 0x20]
mov qword [rsp + 0x998], r13
call fcn.140004000
lea rdx, str.MatchLogFile
lea rcx, [rdi + 0x20]
mov qword [rdi + 0x98], rax
call fcn.140004000
mov rdx, qword [rdi + 0x98]
xor r13d, r13d
mov qword [rdi + 0xa0], rax
or r14, 0xffffffffffffffff
cmp byte [rdx], r13b
jne 0x14001c96f
mov r8d, r13d
jmp 0x14001c97b
mov r8, r14
inc r8
cmp byte [rdx + r8], r13b
jne 0x14001c972
lea rcx, [0x140270aa0]
call fcn.140003060
mov rdx, qword [rdi + 0xa0]
cmp byte [rdx], r13b
jne 0x14001c998
mov r8, r13
jmp 0x14001c9a9
mov r8, r14
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], r13b
jne 0x14001c9a0
lea rcx, [0x140270ac0]
call fcn.140003060
lea rdx, str.DefaultCharacterSetEncoding
lea rcx, [rdi + 0x20]
call fcn.140004000
mov rax, qword [rdi + 0x98]
cmp byte [rax], r13b
jne 0x14001c9e8
lea rdx, str.The_MatchParmFile_property_was_not_specified__please_check_your_configuration.
mov ecx, 2
call qword [rdi + reloc.WS2_32.dll_htonl]
mov eax, r14d
jmp 0x14001cfd1
mov rax, qword [rdi + 0xa0]
cmp byte [rax], r13b
jne 0x14001ca0b
lea rdx, str.The_MatchLogFile_property_was_not_specified__please_check_your_configuration.
mov ecx, 2
call qword [rdi + reloc.WS2_32.dll_htonl]
mov eax, r14d
jmp 0x14001cfd1
lea rdx, str.MatchForceWindow
lea rcx, [rdi + 0x20]
mov qword [rsp + 0x9d8], r12
call fcn.140004000
lea rcx, [rdi + 0x1e0]
mov rdx, rax
call fcn.140003440
mov eax, dword [rbp + 0x8f8]
mov dword [rdi + 0x10], eax
mov eax, dword [rbp + 0x900]
mov dword [rdi + 0x14], eax
mov dword [rdi + 0x18], eax
cmp eax, 1
jae 0x14001ca53
mov dword [rdi + 0x18], 1
mov ecx, dword [rdi + 0x18]
mov eax, 0x28
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.140026560
mov rcx, rax
mov qword [rdi + 0xa8], rax
test rax, rax
jne 0x14001ca8e
lea rdx, str.Unable_to_allocate_Client_Control_Blocks
lea ecx, [rax + 2]
call qword [rdi + reloc.WS2_32.dll_htonl]
mov eax, r14d
jmp 0x14001cfc9
mov eax, dword [rdi + 0x18]
xor edx, edx
lea r8, [rax + rax*4]
shl r8, 3
call fcn.14019ad10
lea rdx, [rsp + 0x30]
lea rcx, [0x140270d64]
call fcn.14001c450
mov dword [0x140270d60], 1
mov rcx, r13
lea r15, [0x140270d60]
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x30]
lea rcx, [rcx + 1]
mov byte [rcx + r15 + 0xb], al
test al, al
jne 0x14001cad0
lea rcx, [0x140270d8c]
sub rcx, rbx
nop dword [rax]
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
mov byte [rcx + rbx - 1], al
test al, al
jne 0x14001caf0
mov esi, r13d
cmp dword [rdi + 0x18], r13d
jbe 0x14001cb86
nop dword [rax + rax]
lea rdx, str.Creating_TSI_area__d
lea rcx, [rsp + 0x40]
mov r8d, esi
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
mov eax, esi
lea rcx, [rax + rax*4]
mov rax, qword [rdi + 0xa8]
lea rbx, [rax + rcx*8]
mov rcx, r15
lea rdx, [rbx + 0x20]
call qword [sym.imp.libtsi.dll_int___cdecl_TSI_LoadProjectEx_struct_TSI_LoadProject_ProjectProperties_const____ptr64__int____ptr64_]
lea rdx, str.Back_from_creating_TSI_area__status___d
lea rcx, [rsp + 0x40]
mov r8d, eax
mov r15d, eax
mov dword [rbx], 1
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
test r15d, r15d
jne 0x14001cbed
inc esi
lea r15, [0x140270d60]
cmp esi, dword [rdi + 0x18]
jb 0x14001cb10
mov rax, qword [rdi + 0xa8]
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
mov esi, dword [rax + 0x20]
lea rdx, str.REFERENCE_RECORD_ID
mov qword [rsp + 0x38], r13
mov ecx, esi
mov dword [rsp + 0x20], r13d
call qword [sym.imp.libtsi.dll_void___cdecl_TSI_GetData_int__char_const____ptr64__wchar_t____ptr64____ptr64__unsigned_int____ptr64__int_]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14001cd9f
cmp word [rdx], r13w
je 0x14001cd9f
mov r8d, dword [rsp + 0x30]
lea rcx, [rdi + 0x1ec]
call fcn.14019854c
mov eax, dword [rsp + 0x30]
mov byte [rax + rdi + 0x1ec], r13b
jmp 0x14001cda6
lea rdx, str.Fatal_error___4.4d__encountered_during_initialization_of_UCA.
lea rcx, [rsp + 0x40]
mov r8d, r15d
call fcn.140197aa8
cmp r15d, 2
jne 0x14001cc93
lea rcx, [rsp + 0x40]
dec rcx
cmp byte [rcx + 1], r13b
lea rcx, [rcx + 1]
jne 0x14001cc13
mov eax, dword [0x1401ca3e0]
movups xmm0, xmmword [str._nUnable_to_load_UCA]
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
mov rax, qword [rdi + 0xa8]
mov rcx, qword [rax + 0x18]
cmp qword [rcx + 0x20], r13
jne 0x14001cd82
lea rcx, [rsp + 0x40]
dec rcx
nop dword [rax]
cmp byte [rcx + 1], r13b
lea rcx, [rcx + 1]
jne 0x14001cc50
movaps xmm0, xmmword [str._nThe_UCA_version_is_different_than_expected__please_check_your_path]
movaps xmm1, xmmword [0x1401ca400]
mov eax, dword [0x1401ca430]
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm1
movaps xmm0, xmmword [0x1401ca410]
movaps xmm1, xmmword [0x1401ca420]
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm1
mov dword [rcx + 0x40], eax
jmp 0x14001cd82
mov rcx, qword [rdi + 0xa0]
lea rdx, [0x1401ca434]
call fcn.140197a78
lea rcx, [rsp + 0x40]
dec rcx
test rax, rax
jne 0x14001cd23
cmp byte [rcx + 1], r13b
lea rcx, [rcx + 1]
jne 0x14001ccb3
movups xmm0, xmmword [str._nUnable_to_open_log_file]
movsd xmm1, qword [0x1401ca448]
movzx eax, word [0x1401ca450]
movups xmmword [rcx], xmm0
movsd qword [rcx + 0x10], xmm1
mov word [rcx + 0x18], ax
lea rcx, [rsp + 0x40]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], r13b
lea rcx, [rcx + 1]
jne 0x14001ccf0
mov r8, qword [rdi + 0xa0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
lea rdx, [rdx + 1]
mov byte [rcx + rdx - 1], al
test al, al
jne 0x14001cd10
jmp 0x14001cd82
cmp byte [rcx + 1], r13b
lea rcx, [rcx + 1]
jne 0x14001cd23
movups xmm0, xmmword [str._nCheck_log_file]
movzx eax, byte [0x1401ca468]
lea rdx, [rsp + 0x40]
dec rdx
movups xmmword [rcx], xmm0
mov byte [rcx + 0x10], al
nop dword [rax]
cmp byte [rdx + 1], r13b
lea rdx, [rdx + 1]
jne 0x14001cd50
mov r9, qword [rdi + 0xa0]
xor r8d, r8d
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r9 + r8]
lea r8, [r8 + 1]
mov byte [rdx + r8 - 1], al
test al, al
jne 0x14001cd70
lea rdx, [rsp + 0x40]
mov ecx, 2
call qword [rdi + reloc.WS2_32.dll_htonl]
mov rcx, rdi
call fcn.14001e080
mov eax, r14d
jmp 0x14001cfc9
mov byte [rdi + 0x1ec], r13b
cmp byte [rdi + 0x1ec], r13b
jne 0x14001cdbd
movups xmm0, xmmword [str.SEQUENCE_NUMBER]
movups xmmword [rdi + 0x1ec], xmm0
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.REFERENCE_LEV1_PASS_PATTERN_FIELD_NAME
mov ecx, esi
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.libtsi.dll_void___cdecl_TSI_GetData_int__char_const____ptr64__wchar_t____ptr64____ptr64__unsigned_int____ptr64__int_]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14001ce0f
cmp word [rdx], r13w
je 0x14001ce0f
mov r8d, dword [rsp + 0x30]
lea rcx, [rdi + 0x250]
call fcn.14019854c
mov eax, dword [rsp + 0x30]
mov byte [rax + rdi + 0x250], r13b
jmp 0x14001ce16
mov byte [rdi + 0x250], r13b
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.REFERENCE_LEV2_PASS_PATTERN_FIELD_NAME
mov ecx, esi
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.libtsi.dll_void___cdecl_TSI_GetData_int__char_const____ptr64__wchar_t____ptr64____ptr64__unsigned_int____ptr64__int_]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14001ce68
cmp word [rdx], r13w
je 0x14001ce68
mov r8d, dword [rsp + 0x30]
lea rcx, [rdi + 0x2b4]
call fcn.14019854c
mov eax, dword [rsp + 0x30]
mov byte [rax + rdi + 0x2b4], r13b
jmp 0x14001ce6f
mov byte [rdi + 0x2b4], r13b
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.REFERENCE_LEV1_SUSPECT_PATTERN_FIELD_NAME
mov ecx, esi
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.libtsi.dll_void___cdecl_TSI_GetData_int__char_const____ptr64__wchar_t____ptr64____ptr64__unsigned_int____ptr64__int_]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14001cec1
cmp word [rdx], r13w
je 0x14001cec1
mov r8d, dword [rsp + 0x30]
lea rcx, [rdi + 0x318]
call fcn.14019854c
mov eax, dword [rsp + 0x30]
mov byte [rax + rdi + 0x318], r13b
jmp 0x14001cec8
mov byte [rdi + 0x318], r13b
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.REFERENCE_LEV2_SUSPECT_PATTERN_FIELD_NAME
mov ecx, esi
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.libtsi.dll_void___cdecl_TSI_GetData_int__char_const____ptr64__wchar_t____ptr64____ptr64__unsigned_int____ptr64__int_]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14001cf1a
cmp word [rdx], r13w
je 0x14001cf1a
mov r8d, dword [rsp + 0x30]
lea rcx, [rdi + 0x37c]
call fcn.14019854c
mov eax, dword [rsp + 0x30]
mov byte [rax + rdi + 0x37c], r13b
jmp 0x14001cf21
mov byte [rdi + 0x37c], r13b
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.MAX_WINDOW_SIZE
mov ecx, esi
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x20], r13d
call qword [sym.imp.libtsi.dll_void___cdecl_TSI_GetData_int__char_const____ptr64__wchar_t____ptr64____ptr64__unsigned_int____ptr64__int_]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14001cf73
cmp word [rdx], r13w
je 0x14001cf73
mov r8d, dword [rsp + 0x30]
lea rcx, [rdi + 0x3e0]
call fcn.14019854c
mov eax, dword [rsp + 0x30]
mov byte [rax + rdi + 0x3e0], r13b
jmp 0x14001cf7a
mov byte [rdi + 0x3e0], r13b
mov rax, qword [rdi + 0x1e0]
test rax, rax
je 0x14001cfac
movsx ecx, byte [rax]
call fcn.140199bf8
mov rcx, qword [rdi + 0x1e0]
movzx eax, byte [rcx]
cmp al, 0x43
je 0x14001cfac
cmp al, 0x52
je 0x14001cfac
call fcn.140026568
mov qword [rdi + 0x1e0], r13
lea rdx, str.Matcher_UCA_initialization_complete
lea rcx, [rsp + 0x40]
call fcn.140197aa8
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [rdi + reloc.WS2_32.dll_htonl]
xor eax, eax
mov r12, qword [rsp + 0x9d8]
mov r13, qword [rsp + 0x998]
mov r15, qword [rsp + 0x990]
mov rcx, qword [rbp + 0x880]
xor rcx, rsp
call fcn.14019ac00
add rsp, 0x9a0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret