Function at 0x180038740
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0xf0
mov dword [rsp + 0x80], 0x104
mov byte [rsp + 0x20], 1
lea rax, [rsp + 0x21]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x21]
call fcn.180038120
mov rcx, rax
call fcn.1800380c0
mov r8, rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov qword [rsp + 0x90], rax
movzx eax, byte [0x180076d21]
movsx eax, al
mov dword [rsp + 0x2c], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x2c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x34], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 6
mov dword [rsp + 0x30], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x30]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076d1d]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x1800388b4
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x180038821
mov qword [rsp + 0x70], 1
jmp 0x18003882a
mov qword [rsp + 0x70], 0
cvtsi2sd xmm0, qword [rsp + 0x70]
call fcn.18003aa80
mov dword [rsp + 0x44], eax
movzx ecx, byte [0x180076d21]
movsx ecx, cl
mov dword [rsp + 0x38], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
call fcn.180029e70
movsx eax, al
mov dword [rsp + 0x3c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x3c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076d1d]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x44]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x1800388b4
xor eax, eax
cmp eax, 2
je 0x1800388b4
mov byte [rsp + 0x20], 0
lea rax, [rsp + 0x22]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x22]
call fcn.180038580
mov rcx, rax
call fcn.1800380a0
mov r8, rax
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenMutexA]
mov qword [rsp + 0x88], rax
movzx eax, byte [0x180076d21]
movsx eax, al
mov dword [rsp + 0x48], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x48]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x50], eax
call fcn.180029e70
movsx eax, al
shl eax, 3
mov dword [rsp + 0x4c], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x4c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076d1d]
movsx ecx, cl
sub eax, ecx
test eax, eax
je 0x180038a0f
cmp qword [rsp + 0x88], 0
je 0x180038979
mov qword [rsp + 0x78], 1
jmp 0x180038982
mov qword [rsp + 0x78], 0
cvtsi2sd xmm0, qword [rsp + 0x78]
call fcn.18003aa80
mov dword [rsp + 0x60], eax
movzx ecx, byte [0x180076d21]
movsx ecx, cl
mov dword [rsp + 0x54], ecx
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 3
mov dword [rsp + 0x58], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x58]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076d1d]
movsx ecx, cl
sub eax, ecx
mov ecx, dword [rsp + 0x60]
imul ecx, eax
mov eax, ecx
test eax, eax
je 0x180038a0f
xor eax, eax
cmp eax, 4
je 0x180038a0f
mov byte [rsp + 0x20], 0
mov dword [rsp + 0x24], 0
jmp 0x180038a23
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
movzx eax, byte [0x180076d21]
movsx eax, al
mov dword [rsp + 0x64], eax
call fcn.180029ea0
movsx eax, al
mov ecx, dword [rsp + 0x64]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x6c], eax
call fcn.180029e70
movsx eax, al
imul eax, eax, 0xa
mov dword [rsp + 0x68], eax
call fcn.180029e60
movsx eax, al
mov ecx, dword [rsp + 0x68]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x6c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
movsx ecx, cl
xor edx, edx
div ecx
movzx ecx, byte [0x180076d1d]
movsx ecx, cl
sub eax, ecx
mov eax, eax
cvtsi2sd xmm0, rax
call fcn.18003aa80
cmp dword [rsp + 0x24], eax
jge 0x180038ac2
mov dword [rsp + 0x28], 0
jmp 0x180038aad
cmp dword [rsp + 0x28], 0x27
jae 0x180038abd
movzx eax, byte [rsp + 0x20]
jmp 0x180038ac2
jmp 0x180038a19
add rsp, 0xf0
pop rdi
ret