Function at 0x1400e62b0
Capabilities:
Check if file exists
Check mutex on windows
Check os version

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x818]
sub rsp, 0x918
mov rax, qword [0x1401ce8a8]
xor rax, rsp
mov qword [rbp + 0x800], rax
mov r12, r9
mov r13, r8
mov rdi, rdx
mov r14, rcx
mov qword [rsp + 0x68], rcx
movzx r15d, byte [rbp + 0x880]
xor esi, esi
mov dword [rsp + 0x38], esi
cmp byte [rdx], sil
je 0x1400e635d
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp byte [rdx + rbx], sil
jne 0x1400e6310
mov qword [rsp + 0x78], rsi
lea rax, [rbp - 0x78]
mov qword [rsp + 0x70], rax
movabs rax, 0x800000000000000f
mov qword [rbp - 0x80], rax
mov byte [rbp - 0x78], sil
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.1400754f0
test rbx, rbx
je 0x1400e638b
mov r8, rbx
mov rdx, rdi
mov rcx, qword [rsp + 0x70]
call fcn.14012aeb0
jmp 0x1400e638b
mov rbx, rsi
mov qword [rsp + 0x78], rsi
lea rax, [rbp - 0x78]
mov qword [rsp + 0x70], rax
movabs rax, 0x800000000000000f
mov qword [rbp - 0x80], rax
mov byte [rbp - 0x78], bl
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.1400754f0
mov rax, qword [rsp + 0x70]
mov byte [rbx + rax], sil
mov qword [rsp + 0x78], rbx
mov rdi, qword [rsp + 0x70]
cmp rbx, 7
jb 0x1400e63cb
mov eax, dword [rdi]
cmp eax, dword [str.Global_]
jne 0x1400e63cb
movzx eax, word [rdi + 4]
cmp ax, word [0x14017a04c]
jne 0x1400e63cb
movzx eax, byte [rdi + 6]
cmp al, byte [0x14017a04e]
je 0x1400e645f
lea rsi, str.Global_
sub rsi, rdi
add rbx, 7
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.1400754f0
mov rcx, qword [rsp + 0x70]
mov rdi, rcx
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1400e6411
mov r8, rax
mov rdx, rcx
add rcx, 7
call fcn.14012aeb0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
cmp rsi, rax
jae 0x1400e642d
lea rdx, [rsi + 7]
add rdx, rcx
mov r8d, 7
mov rcx, rdi
call fcn.14012aeb0
jmp 0x1400e644a
mov eax, dword [str.Global_]
mov dword [rdi], eax
movzx eax, word [0x14017a04c]
mov word [rdi + 4], ax
movzx eax, byte [0x14017a04e]
mov byte [rdi + 6], al
mov rax, qword [rsp + 0x70]
mov byte [rbx + rax], 0
mov qword [rsp + 0x78], rbx
mov rdi, qword [rsp + 0x70]
xor esi, esi
mov byte [rsp + 0x30], 0x5c
mov r8, rsi
cmp rbx, 1
jb 0x1400e64af
mov r10d, 1
lea rcx, [rsp + 0x30]
mov r11, rdi
sub r11, rcx
dec r11
mov rax, rsi
lea r9, [r11 + r10]
cmp rax, 1
jae 0x1400e64b6
lea rdx, [rsp + 0x30]
add rdx, rax
movzx ecx, byte [rdx]
cmp byte [rdx + r9], cl
jne 0x1400e64a4
inc rax
jmp 0x1400e6488
inc r8
inc r10
cmp r10, rbx
jbe 0x1400e6481
mov r8, 0xffffffffffffffff
lea rax, [rbx - 1]
cmp r8, rax
jae 0x1400e64e4
nop
lea rax, [rdi + r8]
cmp byte [rax + 1], 0x5c
jne 0x1400e64d8
mov byte [rax + 1], 0x2f
mov rbx, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
inc r8
lea rax, [rbx - 1]
cmp r8, rax
jb 0x1400e64c0
cmp rbx, 0x30b
jb 0x1400e6525
mov dword [r12], 0x6f
mov qword [r14], 0xffffffffffffffff
mov dword [rsp + 0x38], 1
movabs rax, 0x8000000000000000
test qword [rbp - 0x80], rax
jne 0x1400e69cb
call fcn.1400ecae0
mov rdx, rdi
jmp 0x1400e69c0
xor edx, edx
mov r8d, 0x618
lea rcx, [rbp + 0x1e0]
call fcn.14012b560
mov dword [rsp + 0x28], 0x30c
lea rax, [rbp + 0x1e0]
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov qword [rsp + 0x40], 0xffffffffffffffff
mov byte [r13], 0
mov ebx, esi
lea rdi, str.D:_A__GA___WD__A__GA___AN_S:_ML__NW___ME_
nop word [rax + rax]
mov dword [rbp - 0x60], 0x11c
mov qword [rbp - 0x54], 0
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp - 0x4c]
call fcn.14012b560
mov word [rbp + 0xb6], si
xor eax, eax
mov dword [rbp + 0xb8], eax
mov r8b, 3
lea edx, [rax + 2]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov rcx, rax
mov r8b, 3
mov edx, 1
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov rcx, rax
mov r8b, 3
mov edx, 0x20
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov qword [rbp - 0x5c], 6
mov word [rbp + 0xb4], si
mov r8, rax
mov edx, 0x23
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
lea rcx, str.D:_A__GA___WD__A__GA___AN_
test eax, eax
cmovne rcx, rdi
xor r9d, r9d
lea r8, [rsp + 0x48]
lea edx, [r9 + 1]
call sub.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW
test eax, eax
je 0x1400e6907
mov dword [rsp + 0x50], 0x18
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], esi
lea r8, [rbp + 0x1e0]
mov edx, r15d
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400e8990
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LocalFree]
cmp qword [rsp + 0x40], 0
jne 0x1400e682c
lea r8, [rbp + 0x1e0]
mov edx, r15d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400e8990
cmp qword [rsp + 0x40], 0
jne 0x1400e682c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 5
jne 0x1400e6797
lea r8, [rbp + 0x1e0]
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400e8990
cmp qword [rsp + 0x40], 0
jne 0x1400e68e2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp eax, 2
jne 0x1400e6702
inc ebx
cmp ebx, 5
lea rdi, str.D:_A__GA___WD__A__GA___AN_S:_ML__NW___ME_
jl 0x1400e6580
jmp 0x1400e6843
mov qword [rbp - 0x60], rsi
lea rax, str.OpenMutex___on_mutex__s_failed__error__d
mov qword [rbp - 0x58], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0x200
mov qword [rbp - 0x40], rsi
mov dword [rbp - 0x38], 4
lea rax, str.MutexLock
mov qword [rbp - 0x30], rax
xor r8d, r8d
lea rdx, [0x140164ba1]
lea rcx, [rbp - 0x60]
call fcn.1400e9b00
nop
mov rdx, qword [rsp + 0x70]
lea rcx, [rbp - 0x60]
call fcn.1400e8c30
mov rcx, rax
mov edx, edi
call fcn.1400e8b10
nop
lea rcx, [rbp - 0x60]
call fcn.1400e9e30
nop
lea rcx, [rbp - 0x60]
call fcn.1400e8d90
nop
mov dword [r12], edi
mov qword [r14], rsi
mov dword [rsp + 0x38], 1
lea rcx, [rsp + 0x40]
call fcn.1400e89d0
nop
jmp 0x1400e69a3
mov qword [rbp - 0x60], rsi
lea rax, str.CreateMutex___on_mutex__s_failed__error__d
mov qword [rbp - 0x58], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0x200
mov qword [rbp - 0x40], rsi
mov dword [rbp - 0x38], 4
lea rax, str.MutexLock
mov qword [rbp - 0x30], rax
xor r8d, r8d
lea rdx, [0x140164ba1]
lea rcx, [rbp - 0x60]
call fcn.1400e9b00
nop
mov rdx, qword [rsp + 0x70]
lea rcx, [rbp - 0x60]
call fcn.1400e8c30
mov rcx, rax
mov edx, edi
call fcn.1400e8b10
nop
lea rcx, [rbp - 0x60]
call fcn.1400e9e30
nop
lea rcx, [rbp - 0x60]
call fcn.1400e8d90
nop
mov dword [r12], edi
mov qword [r14], rsi
mov dword [rsp + 0x38], 1
lea rcx, [rsp + 0x40]
call fcn.1400e89d0
nop
jmp 0x1400e69a3
test r15b, r15b
je 0x1400e6843
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1400e6843
mov byte [r13], 1
cmp qword [rsp + 0x40], 0
jne 0x1400e68e2
mov qword [rbp - 0x60], rsi
lea rax, str.CreateMutex___OpenMutex___failed_repeatedly_on_mutex__s
mov qword [rbp - 0x58], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0x200
mov qword [rbp - 0x40], rsi
mov dword [rbp - 0x38], 4
lea rax, str.MutexLock
mov qword [rbp - 0x30], rax
xor r8d, r8d
lea rdx, [0x140164ba1]
lea rcx, [rbp - 0x60]
call fcn.1400e9b00
nop
mov rdx, qword [rsp + 0x70]
lea rcx, [rbp - 0x60]
call fcn.1400e8c30
nop
lea rcx, [rbp - 0x60]
call fcn.1400e9e30
nop
lea rcx, [rbp - 0x60]
call fcn.1400e8d90
nop
mov dword [r12], 5
mov qword [r14], 0xffffffffffffffff
mov dword [rsp + 0x38], 1
lea rcx, [rsp + 0x40]
call fcn.1400e89d0
nop
jmp 0x1400e69a3
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400e8970
mov dword [rsp + 0x38], 1
lea rcx, [rsp + 0x40]
call fcn.1400e89d0
nop
jmp 0x1400e69a3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov qword [rbp - 0x60], rsi
lea rax, str.ConvertStringSecurityDescriptorToSecurityDescriptorW___on_mutex__s_failed__error__d
mov qword [rbp - 0x58], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0x200
mov qword [rbp - 0x40], rsi
mov dword [rbp - 0x38], 4
lea rax, str.MutexLock
mov qword [rbp - 0x30], rax
xor r8d, r8d
lea rdx, [0x140164ba1]
lea rcx, [rbp - 0x60]
call fcn.1400e9b00
nop
mov rdx, qword [rsp + 0x70]
lea rcx, [rbp - 0x60]
call fcn.1400e8c30
mov rcx, rax
mov edx, ebx
call fcn.1400e8b10
nop
lea rcx, [rbp - 0x60]
call fcn.1400e9e30
nop
lea rcx, [rbp - 0x60]
call fcn.1400e8d90
nop
mov dword [r12], ebx
mov qword [r14], 0xffffffffffffffff
mov dword [rsp + 0x38], 1
lea rcx, [rsp + 0x40]
call fcn.1400e89d0
nop
movabs rax, 0x8000000000000000
test qword [rbp - 0x80], rax
jne 0x1400e69cb
mov rbx, qword [rsp + 0x70]
call fcn.1400ecae0
mov rdx, rbx
mov r8, qword [rax]
mov rcx, rax
call qword [r8 + 0x20]
nop
mov rax, r14
mov rcx, qword [rbp + 0x800]
xor rcx, rsp
call fcn.140128f20
add rsp, 0x918
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret