Function at 0x140045a20
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
sub rsp, 0x190
lea rbp, [rsp + 0x40]
mov qword [rbp + 0xe0], 0xfffffffffffffffe
mov rax, qword [0x1401f3f10]
xor rax, rbp
mov qword [rbp + 0x148], rax
lea rdx, [0x1401439f4]
lea rcx, [rbp + reloc.mfc120u.dll_Ordinal_280]
call fcn.140033bc0
nop
call fcn.140015130
mov dword [rbp + 0x30], eax
mov dword [rbp], 0xffffffff
mov qword [rbp + 0x20], 0
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xdc], 3
jne 0x140045ab2
mov dword [rbp + 0x4c], 0x18
lea rcx, [rbp + reloc.mfc120u.dll_Ordinal_280]
call fcn.140033c20
mov eax, dword [rbp + 0x4c]
jmp 0x1400463bd
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 0x10
jne 0x140045add
mov dword [rbp + 0x48], 4
lea rcx, [rbp + reloc.mfc120u.dll_Ordinal_280]
call fcn.140033c20
mov eax, dword [rbp + 0x48]
jmp 0x1400463bd
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 3
je 0x140045b0d
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 2
je 0x140045b0d
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 4
jne 0x140045b1e
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xd4], 1
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, qword [rbp + 0x160]
mov edx, dword [rcx + 0x1460]
mov rcx, rax
call fcn.140094990
and eax, 4
cmp eax, 4
jne 0x140045b52
mov dword [rbp + 0x168], 0
mov rax, qword [rbp + 0x160]
mov ecx, dword [rbp + 0x168]
mov dword [rax + reloc.mfc120u.dll_Ordinal_5232], ecx
mov rax, qword [rbp + 0x160]
mov ecx, dword [rbp + 0x170]
mov dword [rax + Ordinal_5232], ecx
mov dword [rbp + 8], 1
lea r8, [0x140143ae0]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rbp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x50], eax
cmp dword [rbp + 0x50], 0xb7
jne 0x140045bb8
mov edx, 0x7d0
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.1400954c0
movzx eax, al
test eax, eax
je 0x140045bf1
mov dword [rbp + 8], 0
xor edx, edx
mov rcx, qword [rbp + 0x160]
call fcn.140051b30
mov dword [rbp], eax
jmp 0x140046371
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.140095400
movzx eax, al
test eax, eax
je 0x140045c3a
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 0
jne 0x140045c3a
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 4
mov dword [rbp], 0
jmp 0x140046371
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.1400955d0
movzx eax, al
test eax, eax
je 0x14004603b
mov rax, qword [rbp + 0x160]
cmp qword [rax + 0x1478], 0
jne 0x140045d18
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.14008e5c0
mov qword [rbp + 0x18], rax
cmp qword [rbp + 0x18], 0
jne 0x140045c99
mov qword [rbp + 0x70], 0
jmp 0x140045d0b
mov rcx, qword [rbp + 0x18]
call sub.MSVCR120.dll_strlen
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 0x3fffffff
jle 0x140045cba
mov qword [rbp + 0x60], 0
jmp 0x140045d03
movsxd rax, dword [rbp + 4]
shl rax, 1
mov rcx, rax
add rcx, 0xf
cmp rcx, rax
ja 0x140045cd7
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.14010f740
sub rsp, rax
lea rax, [rsp + 0x40]
mov r9d, dword [rbp + 0x30]
mov r8d, dword [rbp + 4]
mov rdx, qword [rbp + 0x18]
mov rcx, rax
call fcn.14003a250
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x78], rax
jmp 0x140045dd1
mov rax, qword [rbp + 0x160]
mov rax, qword [rax + 0x1478]
mov qword [rbp + 0xb8], rax
mov rax, qword [rbp + 0xb8]
add rax, 0x260
mov rcx, rax
call fcn.14008e5c0
mov qword [rbp + 0x18], rax
cmp qword [rbp + 0x18], 0
jne 0x140045d57
mov qword [rbp + 0x68], 0
jmp 0x140045dc9
mov rcx, qword [rbp + 0x18]
call sub.MSVCR120.dll_strlen
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 0x3fffffff
jle 0x140045d78
mov qword [rbp + 0x58], 0
jmp 0x140045dc1
movsxd rax, dword [rbp + 4]
shl rax, 1
mov rcx, rax
add rcx, 0xf
cmp rcx, rax
ja 0x140045d95
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.14010f740
sub rsp, rax
lea rax, [rsp + 0x40]
mov r9d, dword [rbp + 0x30]
mov r8d, dword [rbp + 4]
mov rdx, qword [rbp + 0x18]
mov rcx, rax
call fcn.14003a250
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x78], rax
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rdx, qword [rbp + 0x78]
mov rcx, rax
call fcn.140095740
mov rax, qword [rbp + 0x160]
add rax, 0x6e8
lea rdx, [rbp + 0x98]
mov rcx, rax
call fcn.140090fb0
nop
lea rcx, [rbp + 0x98]
call fcn.140030750
test eax, eax
jne 0x140045f17
mov rax, qword [rbp + 0x160]
movzx eax, byte [rax + 0x6f0]
test eax, eax
jne 0x140045f17
lea rdx, str..DEFAULT_
lea rcx, [rbp + 0xc8]
call fcn.140030130
nop
mov rax, qword [rbp + 0x160]
add rax, 0x218
mov rcx, rax
call fcn.140030730
mov rcx, qword [rbp + 0x160]
add rcx, 0x1680
mov r8, rax
lea rdx, [rbp + 0x100]
call fcn.140090650
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0xc0]
mov qword [rbp + 0x90], rax
mov rdx, qword [rbp + 0x90]
lea rcx, [rbp + 0xc8]
call fcn.1400305f0
nop
lea rcx, [rbp + 0x100]
call fcn.140030070
lea rcx, [rbp + 0xc8]
call fcn.140030730
lea r9, str.ProfileGuid
mov r8, rax
mov rdx, 0xffffffff80000003
lea rcx, [rbp + 0xe8]
call fcn.140028b00
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x88], rax
mov rdx, qword [rbp + 0x88]
lea rcx, [rbp + 0x98]
call fcn.140030470
nop
lea rcx, [rbp + 0xe8]
call fcn.140030070
nop
lea rcx, [rbp + 0xc8]
call fcn.140030070
mov dword [rbp + 0x3c], 0
lea rcx, [rbp + 0x98]
call fcn.140030f30
test eax, eax
jne 0x140045fea
mov rax, qword [rbp + 0x160]
mov byte [rax + 0x1a30], 1
mov rcx, qword [rbp + 0x160]
call fcn.140055b60
movzx eax, al
test eax, eax
je 0x140045fc6
lea rcx, [rbp + 0x98]
call fcn.140030730
mov rcx, qword [rbp + 0x160]
mov rcx, qword [rcx]
mov qword [rbp + 0xb0], rcx
mov byte [rsp + 0x30], 1
mov rdx, qword [rbp + 0x180]
mov qword [rsp + 0x28], rdx
lea rdx, [rbp + 0x3c]
mov qword [rsp + 0x20], rdx
mov r9, rax
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp + 0x160]
mov rax, qword [rbp + 0xb0]
call qword [rax + 0x2f8]
movzx eax, al
test eax, eax
je 0x140045fc6
mov rax, qword [rbp + 0x160]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x160]
call qword [rax + 0x300]
jmp 0x140045fe8
mov rax, qword [rbp + 0x160]
add rax, 0x6e8
mov rcx, rax
call fcn.140091540
mov rcx, qword [rbp + 0x160]
mov dword [rcx + 0xcc], eax
jmp 0x140046023
mov rax, qword [rbp + 0x160]
mov byte [rax + 0x1a30], 0
mov rax, qword [rbp + 0x160]
add rax, 0x6e8
mov edx, 1
mov rcx, rax
call fcn.1400915a0
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 1
mov dword [rbp], 0
lea rcx, [rbp + 0x98]
call fcn.140030070
jmp 0x140046371
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 0xf
jne 0x140046084
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.140095580
movzx eax, al
test eax, eax
je 0x140046084
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 3
mov dword [rbp], 0
jmp 0x140046371
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 0
jne 0x1400460a5
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xd4], 1
mov rax, qword [rbp + 0x160]
cmp qword [rax + 0x110], 0
je 0x140046371
mov dword [rbp + 0x34], 0
mov dword [rbp + 0x2c], 0
mov dword [rbp + 0xc], 1
mov dword [rbp + 0x10], 0
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.140095440
movzx eax, al
test eax, eax
je 0x140046116
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 1
jne 0x140046116
mov rax, qword [rbp + 0x160]
cmp dword [rax + reloc.mfc120u.dll_Ordinal_5232], 0
je 0x1400461ab
mov rax, qword [rbp + 0x160]
add rax, 0x3a2
mov r8, rax
lea rdx, [rbp + 0x2c]
mov rax, qword [rbp + 0x160]
mov rcx, qword [rax + 0x110]
call fcn.14009fdb0
mov rax, qword [rbp + 0x160]
add rax, 0x3a2
mov rdx, rax
mov rax, qword [rbp + 0x160]
mov rcx, qword [rax + 0x110]
call fcn.14009f420
mov dword [rbp + 8], eax
mov rax, qword [rbp + 0x160]
add rax, 0x3a2
mov r8, rax
lea rdx, [rbp + 0x34]
mov rax, qword [rbp + 0x160]
mov rcx, qword [rax + 0x110]
call fcn.14009fdb0
mov dword [rbp + 0x10], eax
cmp dword [rbp + 0x10], 0xffffffff
je 0x1400461a9
mov eax, dword [rbp + 0x10]
mov ecx, dword [rbp + 8]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rbp + 0x2c]
xor ecx, eax
mov eax, ecx
not eax
mov dword [rbp + 0xc], eax
jmp 0x1400461b2
mov dword [rbp + 0xc], 0
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 8
jne 0x1400461cf
cmp dword [rbp + 8], 0
jne 0x1400461cf
mov dword [rbp + 8], 9
mov eax, dword [rbp + 8]
mov dword [rbp + 0x28], eax
cmp dword [rbp + 0x28], 0x23
ja case.0x1400461fc.3
movsxd rax, dword [rbp + 0x28]
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0x463f8]
mov eax, dword [rcx + rax*4 + 0x463d8]
add rax, rcx
jmp rax
cmp dword [rbp + 0xc], 0
jne 0x140046238
mov dword [rbp], 0
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 4
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov edx, 1
mov rcx, rax
call fcn.140095380
jmp 0x140046249
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 5
jmp 0x140046371
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 1
mov rcx, qword [rbp + 0x160]
call fcn.140051930
mov dword [rbp + 0x44], eax
cmp dword [rbp + 0x44], 0
je 0x14004627b
mov dword [rbp], 0
jmp 0x140046371
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 1
mov dword [rbp], 0
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.140095580
movzx eax, al
test eax, eax
je 0x1400462d0
mov rcx, qword [rbp + 0x160]
call fcn.140051930
mov dword [rbp + 0x38], eax
cmp dword [rbp + 0x38], 0
je 0x1400462d0
mov dword [rbp], 0
jmp 0x140046371
mov rax, qword [rbp + 0x160]
add rax, 0x260
mov rcx, rax
call fcn.140095440
movzx eax, al
test eax, eax
je 0x14004632b
mov rax, qword [rbp + 0x160]
cmp dword [rax + 0xd4], 1
jne 0x14004632b
mov rax, qword [rbp + 0x160]
cmp dword [rax + reloc.mfc120u.dll_Ordinal_5232], 0
jne 0x14004632b
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 1
mov dword [rbp], 0
jmp 0x140046332
mov dword [rbp], 1
jmp 0x140046371
mov dword [rbp], 0x13
jmp 0x140046371
mov dword [rbp], 0x14
jmp 0x140046371
mov dword [rbp], 0x26
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 0xffffffff
jmp 0x140046371
mov rax, qword [rbp + 0x160]
mov dword [rax + 0xcc], 1
mov rax, qword [rbp + 0x160]
mov rcx, qword [rbp + 0x160]
mov ecx, dword [rcx + 0xcc]
mov dword [rax + 0xd0], ecx
jmp 0x14004638d
cmp qword [rbp + 0x20], 0
je 0x1400463a8
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rbp]
mov dword [rbp + 0x40], eax
lea rcx, [rbp + reloc.mfc120u.dll_Ordinal_280]
call fcn.140033c20
mov eax, dword [rbp + 0x40]
mov rcx, qword [rbp + 0x148]
xor rcx, rbp
call fcn.14010f170
lea rsp, [rbp + 0x150]
pop rbp
ret