Function at 0x180059310
Capabilities:
Check mutex on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x1800a2078]
xor rax, rsp
mov qword [rbp - 1], rax
movsd xmm7, qword [0x180097c00]
lea eax, [r8 - 0xf]
mov dword [rbp - 0x39], r8d
mov r15d, r8d
lea r11, [0x180000000]
mov r12, rdx
mov r14, rcx
cmp r8d, eax
jbe 0x180059b8d
mov qword [rsp + 0xd8], rsi
lea ebx, [r8 - 0x29]
mov rsi, qword [rbp - 0x49]
xorps xmm6, xmm6
mov qword [rsp + 0xe0], r13
mov r13d, ILClone
mov qword [rbp - 0x31], r13
mov edi, r13d
movsd xmm8, qword [rbp - 0x31]
mov r13, qword [rbp - 0x42]
cmp ebx, 0x23
ja case.0x1800593bd.15
movzx eax, byte [r11 + rbx + 0x59ea0]
mov ecx, dword [r11 + rax*4 + 0x59e60]
add rcx, r11
jmp rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov qword [0x1800a21b0], rax
lea r11, [0x180000000]
jmp case.0x1800593bd.15
movzx eax, byte [r12 + 0x1f]
mov byte [r14], al
jmp case.0x1800593bd.15
movsd qword [0x1800a21c8], xmm6
jmp case.0x1800593bd.15
mov eax, dword [r12 + 0x18]
shr eax, 8
mov byte [r14 + 6], al
movzx eax, byte [r12 + 0x18]
mov byte [r14 + 7], al
jmp case.0x1800593bd.15
movzx eax, byte [r12 + 0x17]
mov byte [r14 + 8], al
movzx eax, byte [r12 + 0x16]
mov byte [r14 + 9], al
jmp case.0x1800593bd.15
movups xmm0, xmmword [r14]
movq rsi, xmm0
mov rax, rsi
shr rax, 0x18
movzx ecx, al
mov rax, rsi
shr rax, 0x10
movups xmmword [rbp - 0x49], xmm0
mov r13, qword [rbp - 0x42]
movzx edx, byte [rcx + r11 + 0x86f50]
movzx ecx, al
movzx eax, byte [rcx + r11 + 0x87150]
xor rdx, rax
mov rax, rsi
shr rax, 8
movzx ecx, al
movzx eax, byte [rcx + r11 + 0x87050]
xor rdx, rax
movzx eax, sil
movzx eax, byte [rax + r11 + 0x87250]
xor rdx, rax
movzx eax, byte [rdx + r11 + 0x86c50]
mov byte [r14], al
jmp case.0x1800593bd.15
movzx eax, byte [r12 + 0x1c]
mov byte [r14 + 3], al
jmp case.0x1800593bd.15
mov rax, rsi
shr rax, 0x18
movzx ecx, al
mov rax, rsi
shr rax, 0x10
movzx edx, byte [rcx + r11 + 0x87150]
movzx ecx, al
movzx eax, byte [rcx + r11 + 0x87050]
xor rdx, rax
mov rax, rsi
shr rax, 8
movzx ecx, al
movzx eax, byte [rcx + r11 + 0x87250]
xor rdx, rax
movzx eax, sil
movzx eax, byte [rax + r11 + 0x86f50]
xor rdx, rax
movzx eax, byte [rdx + r11 + 0x86c50]
mov byte [r14 + 5], al
jmp case.0x1800593bd.15
movzx r8d, sil
mov rax, rsi
shr rax, 0x18
movzx r10d, al
mov rax, rsi
shr rax, 0x10
movzx r9d, al
mov rax, rsi
shr rax, 8
movzx edx, al
movzx eax, byte [r8 + r11 + 0x87150]
movzx ecx, byte [rdx + r11 + 0x86f50]
xor rcx, rax
movzx eax, byte [r9 + r11 + 0x87250]
xor rcx, rax
movzx eax, byte [r10 + r11 + 0x87050]
xor rcx, rax
movzx eax, byte [rcx + r11 + 0x86c50]
mov byte [r14 + 0xa], al
movzx eax, byte [r8 + r11 + 0x87050]
movzx ecx, byte [rdx + r11 + 0x87150]
xor rcx, rax
movzx eax, byte [r9 + r11 + 0x86f50]
xor rcx, rax
movzx eax, byte [r10 + r11 + 0x87250]
xor rcx, rax
movzx eax, byte [rcx + r11 + 0x86c50]
mov byte [r14 + 0xf], al
jmp case.0x1800593bd.15
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [0x1800a21a0], rax
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [0x1800a21a8], rax
lea r11, [0x180000000]
jmp case.0x1800593bd.15
mov dword [0x1800a216c], 0
movaps xmm8, xmm6
jmp case.0x1800593bd.15
mov eax, dword [r12 + 0x14]
shr eax, 8
mov byte [r14 + 0xa], al
movzx eax, byte [r12 + 0x14]
mov byte [r14 + 0xb], al
jmp case.0x1800593bd.15
movzx eax, byte [r12 + 0x1b]
mov byte [r14 + 4], al
movzx eax, byte [r12 + 0x1a]
mov byte [r14 + 5], al
jmp case.0x1800593bd.15
movzx r8d, byte [rbp - 0x45]
movzx edx, byte [rbp - 0x44]
movzx r9d, byte [rbp - 0x43]
movzx r10d, r13b
movzx eax, byte [r8 + r11 + 0x87250]
movzx ecx, byte [rdx + r11 + 0x87050]
xor rcx, rax
movzx eax, byte [r9 + r11 + 0x87150]
xor rcx, rax
movzx eax, byte [r10 + r11 + 0x86f50]
xor rcx, rax
movzx eax, byte [rcx + r11 + 0x86c50]
mov byte [r14 + 4], al
movzx eax, byte [r8 + r11 + 0x86f50]
movzx ecx, byte [rdx + r11 + 0x87250]
xor rcx, rax
movzx eax, byte [r9 + r11 + 0x87050]
xor rcx, rax
movzx eax, byte [r10 + r11 + 0x87150]
xor rcx, rax
movzx eax, byte [rcx + r11 + 0x86c50]
mov byte [r14 + 9], al
jmp case.0x1800593bd.15
movzx eax, byte [r12 + 0x1e]
mov byte [r14 + 1], al
mov eax, dword [r12 + 0x1c]
shr eax, 8
mov byte [r14 + 2], al
dec ebx
sub rdi, 1
jne 0x1800593a0
movzx edx, byte [rbp - 0x3e]
lea edi, [r15 - 0x2a]
movzx r15d, byte [rbp - 0x3a]
movzx r11d, byte [rbp - 0x3f]
movzx r8d, byte [rbp - 0x40]
mov r9, qword [rbp - 0x41]
mov esi, dword [rbp - 0x39]
mov r13, qword [rbp - 0x31]
nop dword [rax]
cmp edi, 0x22
ja case.0x180059712.3
lea rbx, [0x180000000]
movzx eax, byte [rbx + rdi + 0x59f04]
mov ecx, dword [rbx + rax*4 + 0x59ec4]
add rcx, rbx
jmp rcx
movzx ecx, byte [r15 + rbx + 0x86f50]
movzx eax, byte [rbp - 0x3b]
movzx eax, byte [rax + rbx + 0x87150]
xor rcx, rax
movzx eax, byte [rbp - 0x3d]
movzx eax, byte [rax + rbx + 0x87250]
xor rcx, rax
movzx eax, byte [rbp - 0x3c]
movzx eax, byte [rax + rbx + 0x87050]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 0xc], al
jmp case.0x180059712.3
movzx ecx, byte [r15 + rbx + 0x87150]
movzx eax, byte [rbp - 0x3b]
movzx eax, byte [rax + rbx + 0x87050]
xor rcx, rax
movzx eax, byte [rbp - 0x3d]
movzx eax, byte [rax + rbx + 0x86f50]
xor rcx, rax
movzx eax, byte [rbp - 0x3c]
movzx eax, byte [rax + rbx + 0x87250]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 1], al
jmp case.0x180059712.3
movzx eax, r9b
movzx ecx, byte [rax + rbx + 0x87250]
movzx eax, dl
movzx eax, byte [rax + rbx + 0x86f50]
xor rcx, rax
movzx eax, r11b
movzx eax, byte [rax + rbx + 0x87150]
xor rcx, rax
movzx eax, r8b
movzx eax, byte [rax + rbx + 0x87050]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 8], al
jmp case.0x180059712.3
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
mov ecx, eax
mov eax, 0x10624dd3
sub ecx, esi
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm8, edx
cvtdq2pd xmm8, xmm8
jmp 0x180059b52
movzx eax, byte [rbp - 0x42]
movzx ecx, byte [rax + rbx + 0x87050]
movzx eax, byte [rbp - 0x43]
movzx eax, byte [rax + rbx + 0x87250]
xor rcx, rax
movzx eax, byte [rbp - 0x45]
movzx eax, byte [rax + rbx + 0x87150]
xor rcx, rax
movzx eax, byte [rbp - 0x44]
movzx eax, byte [rax + rbx + 0x86f50]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 0xe], al
jmp case.0x180059712.3
mov eax, dword [r12 + 0xc]
shr eax, 8
mov byte [r14 + 0x12], al
jmp case.0x180059712.3
movzx eax, byte [r12 + 0xf]
mov byte [r14 + 0x10], al
movzx eax, byte [r12 + 0xe]
mov byte [r14 + 0x11], al
jmp case.0x180059712.3
xor ecx, ecx
comisd xmm7, xmm6
mov dword [0x1800a216c], ecx
jbe 0x180059950
nop dword [rax + rax]
mov ebx, 0xdf
mov eax, ebx
sub eax, 0xdf
je 0x180059920
sub eax, 1
je 0x1800598f4
sub eax, 1
je 0x1800598df
cmp eax, 1
jne 0x180059927
movsxd rax, ecx
lea r8, [rbp - 0x21]
xor edx, edx
lea rcx, [0x1800456d0]
lea r8, [r8 + rax*4]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthread]
mov ecx, dword [0x1800a216c]
jmp 0x180059927
mov rcx, qword [0x1800a21b8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [0x1800a216c]
jmp 0x180059927
mov rcx, qword [0x1800a21b8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [0x1800a216c]
lea rcx, str.metrics.SampledProfile
call fcn.180083ee0
mov ecx, dword [0x1800a216c]
jmp 0x180059927
movsxd rax, ecx
mov dword [rbp + rax*4 - 0x21], ecx
inc ebx
cmp ebx, 0xe3
jb 0x1800598a5
inc ecx
mov dword [0x1800a216c], ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
comisd xmm7, xmm0
ja 0x1800598a0
nop
mov ebx, 0x10b
mov eax, ebx
sub eax, 0x10b
je 0x1800599b8
sub eax, 1
je 0x18005998b
sub eax, 1
je 0x18005997c
cmp eax, 1
jne 0x1800599ca
mov rcx, qword [0x1800a21a8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x1800599ca
mov rcx, qword [0x1800a21b8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x1800599ca
mov rcx, qword [0x1800a21b8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
movsd xmm1, qword [0x1800a21c8]
lea rcx, str.__.tar_.tar
movq rdx, xmm1
call fcn.180083ee0
jmp 0x1800599ca
mov rcx, qword [0x1800a21a8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc ebx
cmp ebx, 0x10f
jb 0x180059955
cmp dword [0x1800a216c], 0
jne 0x180059950
jmp 0x180059b52
movzx r10d, dl
movzx edx, r11b
movzx r8d, r8b
movzx r9d, r9b
movzx ecx, byte [rdx + rbx + 0x87050]
movzx eax, byte [r8 + rbx + 0x87250]
xor rcx, rax
movzx eax, byte [r9 + rbx + 0x86f50]
xor rcx, rax
movzx eax, byte [r10 + rbx + 0x87150]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 0xd], al
movzx eax, byte [r8 + rbx + 0x86f50]
movzx ecx, byte [rdx + rbx + 0x87250]
xor rcx, rax
movzx eax, byte [r9 + rbx + 0x87150]
xor rcx, rax
movzx eax, byte [r10 + rbx + 0x87050]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 2], al
jmp 0x180059b57
movzx eax, byte [rbp - 0x42]
movzx ecx, byte [rax + rbx + 0x87250]
movzx eax, byte [rbp - 0x43]
movzx eax, byte [rax + rbx + 0x86f50]
xor rcx, rax
movzx eax, byte [rbp - 0x45]
movzx eax, byte [rax + rbx + 0x87050]
xor rcx, rax
movzx eax, byte [rbp - 0x44]
movzx eax, byte [rax + rbx + 0x87150]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 3], al
jmp case.0x180059712.3
mov eax, dword [r12 + 0x10]
shr eax, 8
mov byte [r14 + 0xe], al
movzx eax, byte [r12 + 0x10]
mov byte [r14 + 0xf], al
jmp case.0x180059712.3
movzx eax, byte [r12 + 0x13]
mov byte [r14 + 0xc], al
movzx eax, byte [r12 + 0x12]
mov byte [r14 + 0xd], al
jmp case.0x180059712.3
movzx eax, r9b
movzx ecx, byte [rax + rbx + 0x87050]
movzx eax, dl
movzx eax, byte [rax + rbx + 0x87250]
xor rcx, rax
movzx eax, r11b
movzx eax, byte [rax + rbx + 0x86f50]
xor rcx, rax
movzx eax, r8b
movzx eax, byte [rax + rbx + 0x87150]
xor rcx, rax
movzx eax, byte [rcx + rbx + 0x86c50]
mov byte [r14 + 7], al
jmp case.0x180059712.3
movzx eax, byte [r12 + 0xc]
mov byte [r14 + 0x13], al
movzx eax, byte [r12 + 0xb]
mov byte [r14 + 0x14], al
jmp case.0x180059712.3
movsd qword [0x1800a21c0], xmm6
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
mov esi, eax
movzx r11d, byte [rbp - 0x3f]
mov r9, qword [rbp - 0x41]
movzx r8d, byte [rbp - 0x40]
movzx edx, byte [rbp - 0x3e]
dec edi
sub r13, 1
jne 0x1800596f0
mov r15d, dword [rbp - 0x39]
lea r11, [0x180000000]
mov r13, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xd8]
jmp 0x180059b93
movsd xmm8, qword [rbp - 0x31]
mov ebx, dword [rbp - 0x39]
lea edi, [r15 + 0xc20]
cmp r15d, edi
jae 0x180059e28
movsd xmm6, qword [0x180097c30]
nop
cmp r15d, 0x282
ja 0x180059d74
je 0x180059d65
cmp r15d, 0xfe
ja 0x180059cf8
je 0x180059ce9
cmp r15d, 0x2c
je 0x180059cd2
cmp r15d, 0x3c
je 0x180059cb7
cmp r15d, 0x4c
je 0x180059c2b
cmp r15d, 0xee
jne 0x180059e11
movaps xmm1, xmm8
lea rcx, str.kwanzas_angolanos__1977
movq rdx, xmm1
call fcn.180083ee0
movaps xmm1, xmm6
lea rcx, str.MaximumTrackValue
movq rdx, xmm6
call fcn.180083ee0
jmp 0x180059e11
movzx r8d, byte [rbp - 0x3c]
movzx edx, byte [rbp - 0x3b]
movzx r9d, byte [rbp - 0x3d]
movzx r10d, byte [rbp - 0x3a]
movzx eax, byte [r8 + r11 + 0x86f50]
movzx ecx, byte [rdx + r11 + 0x87250]
xor rcx, rax
movzx eax, byte [r9 + r11 + 0x87150]
xor rcx, rax
movzx eax, byte [r10 + r11 + 0x87050]
xor rcx, rax
movzx eax, byte [rcx + r11 + 0x86c50]
mov byte [r14 + 6], al
movzx eax, byte [r8 + r11 + 0x87150]
movzx ecx, byte [rdx + r11 + 0x86f50]
xor rcx, rax
movzx eax, byte [r9 + r11 + 0x87050]
xor rcx, rax
movzx eax, byte [r10 + r11 + 0x87250]
xor rcx, rax
movzx eax, byte [rcx + r11 + 0x86c50]
mov byte [r14 + 0xb], al
jmp 0x180059e11
movzx eax, byte [r12 + 0xa]
mov byte [r14 + 0x15], al
mov eax, dword [r12 + 8]
shr eax, 8
mov byte [r14 + 0x16], al
jmp 0x180059e11
mov rcx, qword [0x1800a21b8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x180059e11
movzx eax, byte [r12 + 8]
mov byte [r14 + 0x17], al
jmp 0x180059e11
mov eax, r15d
sub eax, 0x1b0
je 0x180059d4c
sub eax, 0x10
je 0x180059d3d
cmp eax, 0xb2
jne 0x180059e11
movsd xmm1, qword [0x1800a21c0]
lea rcx, str.nga_Latn_ZZ
movq rdx, xmm1
call fcn.180083ee0
mov rcx, qword [0x1800a21b8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x180059e11
movzx eax, byte [r12 + 7]
mov byte [r14 + 0x18], al
jmp 0x180059e11
movaps xmm1, xmm7
lea rcx, str.Process_Sync_Notify
movq rdx, xmm7
call fcn.180083ee0
jmp 0x180059e11
movzx eax, byte [r12 + 6]
mov byte [r14 + 0x19], al
jmp 0x180059e11
cmp r15d, 0x406
ja 0x180059dd1
je 0x180059dc5
mov eax, r15d
sub eax, 0x334
je 0x180059db7
sub eax, 0x10
je 0x180059da9
cmp eax, 0xb2
jne 0x180059e11
lea rdx, [rbp - 0x29]
lea rcx, [0x18008a030]
call fcn.180083f40
xor ebx, ebx
jmp 0x180059e11
mov eax, dword [r12 + 4]
shr eax, 8
mov byte [r14 + 0x1a], al
jmp 0x180059e11
lea rcx, str.GetPerTcp6ConnectionEStats
call fcn.180083ee0
jmp 0x180059e11
movzx eax, byte [r12 + 4]
mov byte [r14 + 0x1b], al
jmp 0x180059e11
mov eax, r15d
sub eax, 0x4b8
je 0x180059e28
sub eax, 0x10
je 0x180059dfd
cmp eax, 0xc2
jne 0x180059e11
mov eax, dword [r12]
shr eax, 8
mov byte [r14 + 0x1e], al
movzx eax, byte [r12]
mov byte [r14 + 0x1f], al
jmp 0x180059e11
movzx eax, byte [r12 + 3]
mov byte [r14 + 0x1c], al
movzx eax, byte [r12 + 2]
mov byte [r14 + 0x1d], al
add r15d, 0xc2
lea r11, [0x180000000]
cmp r15d, edi
jb 0x180059bb0
mov eax, ebx
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.180084890
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret