Function at 0x506130
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc0
mov ebx, ecx
mov rbp, rdx
call fcn.0040c810
mov edx, 1
lea rcx, [0x0045b2d0]
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
movzx eax, byte [0x005083c0]
test al, al
je 0x5065ec
cmp qword [0x0050b098], 0
je 0x50648e
cmp ebx, 2
jne 0x506197
mov rcx, qword [rbp + 8]
lea rdx, str.selftest
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x506745
mov ecx, 0xffffffff
xor edi, edi
call qword [sym.imp.KERNEL32.dll_AttachConsole]
test eax, eax
jne 0x50663d
lea r8, [rsp + 0x2c]
mov edx, 1
lea rcx, str.glBars
mov dword [rsp + 0x2c], 0
call fcn.0041a340
mov r12, rax
test rax, rax
je 0x5062c4
mov rcx, rax
xor r13d, r13d
call fcn.0041b540
mov rcx, r12
mov dword [0x0050a040], eax
call fcn.0041b6c0
pxor xmm0, xmm0
mov byte [0x0050a0b0], 1
mov r9d, eax
cvtsi2sd xmm0, r9
movsd qword [0x0050a060], xmm0
cmp ebx, 3
je 0x50682e
lea r14, [rsp + 0x60]
mov r8, r13
mov rdx, r12
mov rcx, r14
call fcn.00453a80
test dil, dil
je 0x5062a8
mov rbp, qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call rbp
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rbx, rax
je 0x506252
call rbp
mov rcx, rax
call qword [sym.imp.USER32.dll_SetFocus]
test rax, rax
je 0x5062a8
lea rdi, [rsp + 0x30]
mov rsi, qword [sym.imp.USER32.dll_SendInput]
mov dword [rsp + 0x30], 1
mov r8d, 0x28
mov dword [rsp + 0x40], 0
mov rdx, rdi
mov ecx, 1
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x38], 0xd
call rsi
mov dword [rsp + 0x3c], 2
mov r8d, 0x28
mov rdx, rdi
mov ecx, 1
call rsi
mov rcx, r14
call fcn.004547d0
xor eax, eax
add rsp, 0xc0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov eax, dword [rsp + 0x2c]
mov byte [rsp + 0x40], 0
lea r12, [rsp + 0x30]
lea r14, [0x0050b440]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 0
test al, 1
jne 0x5068d0
test al, 2
jne 0x5068b8
test al, 4
jne 0x5068a0
test al, 8
jne 0x506888
test al, 0x10
jne 0x506870
test al, 0x20
jne 0x506858
test al, 0x40
jne 0x5069cc
test al, 0x80
jne 0x5069b4
test ah, 1
jne 0x50699c
test ah, 2
jne 0x506984
test ah, 4
jne 0x50696c
test ah, 8
jne 0x506954
test ah, 0x10
jne 0x50693c
test eax, 0x10000
jne 0x506928
mov r10, qword [rsp + 0x38]
test r10, r10
je 0x506917
add r10, 0xfffffffffffffffe
jb 0x506a75
mov r9d, 0x317
lea r8, str..._.._dpf_distrho_src_.._extra_String.hpp
lea rdx, str.pos___fBufferLen
lea rcx, [0x0050c2a8]
call fcn.0041e670
mov byte [0x0050b450], 0
lea r10, [0x0050b450]
mov byte [r10], 0x2e
mov rdx, qword [rsp + 0x30]
lea rcx, str.Failed_to_create_the_JACK_client__reason_was:_n_s
call fcn.0041e1c0
lea rcx, [0x0050ee23]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r13, rax
test rax, rax
je 0x5063ef
lea rdx, [0x0050ee2e]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x5063e6
call rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbp, qword [rsp + 0x38]
test rbp, rbp
je 0x5068e8
lea rcx, [rbp + 0x2b]
call sub.msvcrt.dll_malloc
mov rbx, rax
test rax, rax
je 0x5069fb
mov rdi, rax
lea rsi, str.Failed_to_create_JACK_client__reason_was:_n
mov ecx, 0x2a
mov rdx, qword [rsp + 0x30]
rep movsb byte [rdi], byte [rsi]
lea r8, [rbp + 1]
lea r13, [rsp + 0x60]
mov rcx, rdi
mov rdi, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x60], rbx
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasb al, byte [rdi]
mov byte [rsp + 0x70], 1
not rcx
sub rcx, 1
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0x60]
mov r9d, 0x10
lea r8, [0x0050c217]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rcx, r13
call fcn.0045a310
mov rcx, r12
call fcn.0045a310
mov eax, 1
jmp 0x5062b2
call fcn.004570d0
lea r13, [rsp + 0x30]
xor r8d, r8d
lea rsi, [0x0050b440]
mov rdx, rax
mov rcx, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0
mov byte [rsp + 0x40], 0
call fcn.0045a1f0
mov r12, qword [rsp + 0x38]
test r12, r12
je 0x5066ec
mov rcx, r12
mov rdi, qword [rsp + 0x30]
mov r10, r12
lea r8, [r12 - 1]
and ecx, 7
je 0x50677f
cmp rcx, 1
je 0x50655a
cmp rcx, 2
je 0x50654b
cmp rcx, 3
je 0x50653c
cmp rcx, 4
je 0x50652d
cmp rcx, 5
je 0x50651e
cmp rcx, 6
jne 0x5069e4
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x50656d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x50656d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x50656d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x50656d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x50656d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
jne 0x506820
cmp r12, r10
jbe 0x506587
mov byte [r11], 0
mov qword [rsp + 0x38], r10
test r10, r10
je 0x5066ec
mov r12, r10
lea rcx, [r12 + 0xb]
call sub.msvcrt.dll_malloc
mov r14, rax
test rax, rax
je 0x506a38
mov rdx, qword [rsp + 0x30]
mov r8, r12
mov rcx, rax
add r12, r14
lea rsi, str._resources
mov rdi, r12
call sub.msvcrt.dll_memcpy
mov ecx, 0xb
mov qword [rsp + 0x60], r14
xor eax, eax
rep movsb byte [rdi], byte [rsi]
mov rdi, r14
or rcx, 0xffffffffffffffff
lea r14, [rsp + 0x60]
repne scasb al, byte [rdi]
mov byte [rsp + 0x70], 1
not rcx
sub rcx, 1
mov qword [rsp + 0x68], rcx
jmp 0x506716
lea rcx, [0x005083c0]
call fcn.00505860
test eax, eax
je 0x50616c
lea rdx, [0x0050b440]
lea rcx, [0x005083c0]
mov qword [0x0050b098], 0
mov qword [0x0050b090], rdx
mov byte [0x0050b0a0], 0
call fcn.00505970
lea rcx, [0x00505db0]
call fcn.00401520
jmp 0x50616c
mov r13, qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ecx, 0xfffffff5
call r13
add rax, 1
je 0x506692
mov r14, qword [fcn.00419890]
mov ecx, 1
call r14
lea rdx, [0x0050eb4b]
lea rcx, str.CONOUT_
mov r8, rax
call sub.msvcrt.dll_freopen
mov ecx, 1
call r14
xor r9d, r9d
mov r8d, 4
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_setvbuf
mov ecx, 0xfffffff4
mov edi, 1
call r13
add rax, 1
je 0x5061ac
mov rsi, qword [fcn.00419890]
mov ecx, 2
call rsi
lea rdx, [0x0050eb4b]
lea rcx, str.CONOUT_
mov r8, rax
call sub.msvcrt.dll_freopen
mov ecx, 2
call rsi
xor r9d, r9d
mov r8d, 4
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_setvbuf
jmp 0x5061ac
lea r14, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x60], rsi
lea rdx, str._resources
mov rcx, r14
mov byte [rsp + 0x70], 0
mov qword [rsp + 0x68], 0
call fcn.0045a1f0
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov r12d, eax
mov rcx, r14
call fcn.0045a310
cmp r12d, 0xffffffff
je 0x506738
and r12b, 0x10
jne 0x50675b
mov rcx, r13
call fcn.0045a310
jmp 0x50617a
lea rcx, str.Code_was_built_without_DPF_RUNTIME_TESTING_macro_enabled__selftest_option_is_not_available
call fcn.0041e3a0
mov eax, 1
jmp 0x5062b2
mov rdx, qword [rsp + 0x30]
xor r8d, r8d
lea rcx, [0x0050b090]
call fcn.0045a1f0
mov r8, qword [0x0050b090]
mov qword [0x0050a050], r8
jmp 0x506738
lea r9, [r10 - 1]
cmp byte [rdi + r9], 0x5c
mov r10, r9
lea r11, [rdi + r9]
je 0x50656d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x50656d
lea r10, [r9 - 2]
cmp byte [rdi + r9 - 2], 0x5c
lea r11, [rdi + r10]
je 0x50656d
lea r10, [r9 - 3]
cmp byte [rdi + r9 - 3], 0x5c
lea r11, [rdi + r10]
je 0x50656d
lea r10, [r9 - 4]
cmp byte [rdi + r9 - 4], 0x5c
lea r11, [rdi + r10]
je 0x50656d
lea r10, [r9 - 5]
cmp byte [rdi + r9 - 5], 0x5c
lea r11, [rdi + r10]
je 0x50656d
lea r10, [r9 - 6]
cmp byte [rdi + r9 - 6], 0x5c
lea r11, [rdi + r10]
je 0x50656d
lea r10, [r9 - 7]
cmp byte [rdi + r9 - 7], 0x5c
lea r11, [rdi + r10]
je 0x50656d
test r10, r10
jne 0x50677f
jmp 0x506587
mov rcx, qword [rbp + 8]
lea rdx, str.embed
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x506213
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.msvcrt.dll__atoi64]
mov r13, rax
jmp 0x506213
lea rdx, str.Communication_error_with_the_JACK_server__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506317
lea rdx, str.Unable_to_connect_to_the_JACK_server__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x50630f
lea rdx, str.The_JACK_server_was_started_as_a_result_of_this_operation__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506307
lea rdx, str.The_desired_client_name_was_not_unique__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x5062ff
lea rdx, str.The_operation_contained_an_invalid_or_unsupported_option__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x5062f7
lea rdx, str.Overall_operation_failed__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x5062ef
lea r13, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x60], r14
lea rdx, str.Failed_to_create_JACK_client__reason_was:_n
mov rcx, r13
mov byte [rsp + 0x70], 0
mov qword [rsp + 0x68], 0
call fcn.0045a1f0
jmp 0x50645a
lea rcx, str.Failed_to_create_the_JACK_client__cannot_continue_
call fcn.0041e1c0
jmp 0x5063ba
lea rdx, str.Native_audio_driver_was_unable_to_start__n
mov rcx, r12
call fcn.0045a350
jmp 0x50635f
lea rdx, str.Client_is_being_shutdown_against_its_will__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506354
lea rdx, str.Backend_Error__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x50634b
lea rdx, str.Clients_protocol_version_does_not_match__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506342
lea rdx, str.Unable_to_access_shared_memory__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506339
lea rdx, str.Unable_to_initialize_client__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506330
lea rdx, str.Unable_to_load_internal_client__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x506327
lea rdx, str.Requested_client_does_not_exist__n
mov rcx, r12
call fcn.0045a350
mov eax, dword [rsp + 0x2c]
jmp 0x50631f
cmp byte [rdi + r8], 0x5c
mov r10, r8
lea r11, [rdi + r8]
jne 0x50650f
jmp 0x50656d
mov r9d, 0x3e6
lea r8, str..._.._dpf_distrho_src_.._extra_String.hpp
lea rdx, str.newBuf___nullptr
lea rcx, [0x0050c2a8]
lea r13, [rsp + 0x60]
call fcn.0041e670
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0
mov byte [rsp + 0x70], 0
jmp 0x50645a
mov r9d, 0x369
lea r8, str..._.._dpf_distrho_src_.._extra_String.hpp
lea rdx, str.newBuf___nullptr
lea rcx, [0x0050c2a8]
lea r14, [rsp + 0x60]
call fcn.0041e670
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], 0
mov byte [rsp + 0x70], 0
jmp 0x506716
add r10, qword [rsp + 0x30]
jmp 0x5063a5