Function at 0x140028ff0
Capabilities:
Check mutex on windows

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x110
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov rax, qword [0x140099938]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov r12, rcx
mov qword [r11 - 0xb8], rcx
xor r13d, r13d
mov ebp, r13d
lea r15d, [r13 + 7]
mov qword [r11 - 0x68], r15
mov qword [r11 - 0x70], r13
mov word [r11 - 0x80], r13w
lea rcx, str.ScanGear_Mutex
call fcn.14005b1c0
mov r8, rax
lea rdx, str.ScanGear_Mutex
lea rcx, [rsp + 0xb0]
call fcn.140002280
nop
lea ecx, [r13 + 8]
call fcn.14005b298
cmp rax, r13
je 0x140029082
lea rcx, [rsp + 0x40]
mov qword [rax], rcx
jmp 0x140029085
mov rax, r13
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], r13
lea r8, [0x14007b348]
lea rdx, str.InUseTwainSource
mov ecx, 5
call fcn.140009480
mov qword [rsp + 0xf8], r15
mov qword [rsp + 0xf0], r13
mov word [rsp + 0xe0], r13w
lea rcx, str.Global_
call fcn.14005b1c0
mov r8, rax
lea rdx, str.Global_
lea rcx, [rsp + 0xd8]
call fcn.140002280
nop
lea r8, [rsp + 0xb0]
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x88]
call fcn.14002293c
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.140002130
nop
cmp qword [rsp + 0xa8], 8
jb 0x14002913c
mov rcx, qword [rsp + 0x90]
call fcn.14005ab0c
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x40]
call fcn.14001a3a4
mov rcx, qword [r12]
cmp dword [rcx - 0x10], r13d
je 0x14002917f
add rcx, 0xffffffffffffffe8
call fcn.140009ef0
add rax, 0x18
mov qword [rsp + 0x70], rax
mov r8d, 0x3b
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.14002802c
mov rcx, qword [rsp + 0x58]
mov rbx, rcx
mov rsi, qword [rsp + 0x60]
cmp rcx, rsi
jbe 0x1400291a0
call fcn.14005c2f8
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rbx
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
cmp rcx, rsi
jbe 0x1400291ce
call fcn.14005c2f8
cmp rdi, r13
je 0x1400291da
cmp rdi, qword [rsp + 0x40]
je 0x1400291df
call fcn.14005c2f8
cmp rbx, rsi
je 0x1400292c9
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp rdi, r13
jne 0x1400291ff
call fcn.14005c2f8
mov r11, r13
jmp 0x140029202
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x20]
jb 0x14002920d
call fcn.14005c2f8
cmp qword [rbx + 0x20], 8
jb 0x14002921a
mov r8, qword [rbx + 8]
jmp 0x14002921e
lea r8, [rbx + 8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
cmp rax, r13
jne 0x140029268
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x140029271
cmp rdi, r13
jne 0x140029247
call fcn.14005c2f8
mov r11, r13
jmp 0x14002924a
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x20]
jb 0x140029255
call fcn.14005c2f8
add rbx, 0x28
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
jmp 0x1400291c4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp rdi, r13
jne 0x140029280
call fcn.14005c2f8
mov r11, r13
jmp 0x140029283
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x20]
jb 0x14002928e
call fcn.14005c2f8
cmp qword [rbx + 0x20], 8
jb 0x14002929b
mov rbx, qword [rbx + 8]
jmp 0x14002929f
add rbx, 8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov r9, rbx
lea r8, str.LaunchCheck_ScanGear_OpenMutex__1_s___Success_or_ErrorCode__0x_1_d__n
lea rdx, str.InUseTwainSource
mov ecx, 5
call fcn.140009480
mov ebp, 1
lea r8, [0x14007b368]
lea rdx, str.InUseTwainSource
mov ecx, 5
call fcn.140009480
nop
cmp qword [rsp + 0xf8], 8
jb 0x1400292fa
mov rcx, qword [rsp + 0xe0]
call fcn.14005ab0c
mov qword [rsp + 0xf8], r15
mov qword [rsp + 0xf0], r13
mov word [rsp + 0xe0], r13w
lea rcx, [rsp + 0x40]
call fcn.140005204
mov rcx, qword [rsp + 0x40]
call fcn.14005ab0c
nop
cmp qword [rsp + 0xd0], 8
jb 0x140029340
mov rcx, qword [rsp + 0xb8]
call fcn.14005ab0c
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0xc8], r13
mov word [rsp + 0xb8], r13w
mov rdx, qword [r12]
sub rdx, 0x18
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
dec ecx
cmp ecx, r13d
jg 0x14002937a
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, ebp
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14005bad0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret