Function at 0x5025f0
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, 0xd0
mov ebx, ecx
mov rbp, rdx
call fcn.0040be30
mov edx, 1
lea rcx, [0x00457d30]
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
movzx eax, byte [0x005043c0]
test al, al
je 0x502aac
cmp qword [0x005070b8], 0
je 0x50294e
cmp ebx, 2
jne 0x502657
mov rcx, qword [rbp + 8]
lea rdx, str.selftest
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x502c05
mov ecx, 0xffffffff
xor edi, edi
call qword [sym.imp.KERNEL32.dll_AttachConsole]
test eax, eax
jne 0x502afd
lea r8, [rsp + 0x2c]
mov edx, 1
lea rcx, str.Cycle_Shifter
mov dword [rsp + 0x2c], 0
call fcn.00419950
mov r12, rax
test rax, rax
je 0x502784
mov rcx, rax
xor r13d, r13d
call fcn.0041ab10
mov rcx, r12
mov dword [0x00506060], eax
call fcn.0041ac90
pxor xmm0, xmm0
mov byte [0x005060d0], 1
mov r9d, eax
cvtsi2sd xmm0, r9
movsd qword [0x00506080], xmm0
cmp ebx, 3
je 0x502cee
lea r14, [rsp + 0x60]
mov r8, r13
mov rdx, r12
mov rcx, r14
call fcn.004515f0
test dil, dil
je 0x502768
mov rbp, qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call rbp
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rbx, rax
je 0x502712
call rbp
mov rcx, rax
call qword [sym.imp.USER32.dll_SetFocus]
test rax, rax
je 0x502768
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.00452440
xor eax, eax
add rsp, 0xd0
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, [0x00507460]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 0
test al, 1
jne 0x502d90
test al, 2
jne 0x502d78
test al, 4
jne 0x502d60
test al, 8
jne 0x502d48
test al, 0x10
jne 0x502d30
test al, 0x20
jne 0x502d18
test al, 0x40
jne 0x502e8c
test al, 0x80
jne 0x502e74
test ah, 1
jne 0x502e5c
test ah, 2
jne 0x502e44
test ah, 4
jne 0x502e2c
test ah, 8
jne 0x502e14
test ah, 0x10
jne 0x502dfc
test eax, 0x10000
jne 0x502de8
mov r10, qword [rsp + 0x38]
test r10, r10
je 0x502dd7
add r10, 0xfffffffffffffffe
jb 0x502f35
mov r9d, 0x317
lea r8, str..._.._dpf_distrho_src_.._extra_String.hpp
lea rdx, str.pos___fBufferLen
lea rcx, [0x00508240]
call fcn.0041dc70
mov byte [0x00507470], 0
lea r10, [0x00507470]
mov byte [r10], 0x2e
mov rdx, qword [rsp + 0x30]
lea rcx, str.Failed_to_create_the_JACK_client__reason_was:_n_s
call fcn.0041d850
lea rcx, [0x0050ad6b]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r13, rax
test rax, rax
je 0x5028af
lea rdx, [0x0050ad76]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x5028a6
call rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbp, qword [rsp + 0x38]
test rbp, rbp
je 0x502da8
lea rcx, [rbp + 0x2b]
call sub.msvcrt.dll_malloc
mov rbx, rax
test rax, rax
je 0x502ebb
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, [0x005081ae]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rcx, r13
call fcn.004571e0
mov rcx, r12
call fcn.004571e0
mov eax, 1
jmp 0x502772
call fcn.00453f40
lea r13, [rsp + 0x30]
xor r8d, r8d
lea rsi, [0x00507460]
mov rdx, rax
mov rcx, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], 0
mov byte [rsp + 0x40], 0
call fcn.004570c0
mov r12, qword [rsp + 0x38]
test r12, r12
je 0x502bac
mov rcx, r12
mov rdi, qword [rsp + 0x30]
mov r10, r12
lea r8, [r12 - 1]
and ecx, 7
je 0x502c3f
cmp rcx, 1
je 0x502a1a
cmp rcx, 2
je 0x502a0b
cmp rcx, 3
je 0x5029fc
cmp rcx, 4
je 0x5029ed
cmp rcx, 5
je 0x5029de
cmp rcx, 6
jne 0x502ea4
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
jne 0x502ce0
cmp r12, r10
jbe 0x502a47
mov byte [r11], 0
mov qword [rsp + 0x38], r10
test r10, r10
je 0x502bac
mov r12, r10
lea rcx, [r12 + 0xb]
call sub.msvcrt.dll_malloc
mov r14, rax
test rax, rax
je 0x502ef8
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 0x502bd6
lea rcx, [0x005043c0]
call fcn.00501d20
test eax, eax
je 0x50262c
lea rdx, [0x00507460]
lea rcx, [0x005043c0]
mov qword [0x005070b8], 0
mov qword [0x005070b0], rdx
mov byte [0x005070c0], 0
call fcn.00501e30
lea rcx, [0x00502270]
call fcn.00401520
jmp 0x50262c
mov r13, qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ecx, 0xfffffff5
call r13
add rax, 1
je 0x502b52
mov r14, qword [fcn.00418ea0]
mov ecx, 1
call r14
lea rdx, [0x0050aa93]
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 0x50266c
mov rsi, qword [fcn.00418ea0]
mov ecx, 2
call rsi
lea rdx, [0x0050aa93]
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 0x50266c
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.004570c0
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov r12d, eax
mov rcx, r14
call fcn.004571e0
cmp r12d, 0xffffffff
je 0x502bf8
and r12b, 0x10
jne 0x502c1b
mov rcx, r13
call fcn.004571e0
jmp 0x50263a
lea rcx, str.Code_was_built_without_DPF_RUNTIME_TESTING_macro_enabled__selftest_option_is_not_available
call fcn.0041d9a0
mov eax, 1
jmp 0x502772
mov rdx, qword [rsp + 0x30]
xor r8d, r8d
lea rcx, [0x005070b0]
call fcn.004570c0
mov r8, qword [0x005070b0]
mov qword [0x00506070], r8
jmp 0x502bf8
lea r9, [r10 - 1]
cmp byte [rdi + r9], 0x5c
mov r10, r9
lea r11, [rdi + r9]
je 0x502a2d
sub r10, 1
cmp byte [rdi + r10], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
lea r10, [r9 - 2]
cmp byte [rdi + r9 - 2], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
lea r10, [r9 - 3]
cmp byte [rdi + r9 - 3], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
lea r10, [r9 - 4]
cmp byte [rdi + r9 - 4], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
lea r10, [r9 - 5]
cmp byte [rdi + r9 - 5], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
lea r10, [r9 - 6]
cmp byte [rdi + r9 - 6], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
lea r10, [r9 - 7]
cmp byte [rdi + r9 - 7], 0x5c
lea r11, [rdi + r10]
je 0x502a2d
test r10, r10
jne 0x502c3f
jmp 0x502a47
mov rcx, qword [rbp + 8]
lea rdx, str.embed
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x5026d3
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.msvcrt.dll__atoi64]
mov r13, rax
jmp 0x5026d3
lea rdx, str.Communication_error_with_the_JACK_server__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027d7
lea rdx, str.Unable_to_connect_to_the_JACK_server__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027cf
lea rdx, str.The_JACK_server_was_started_as_a_result_of_this_operation__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027c7
lea rdx, str.The_desired_client_name_was_not_unique__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027bf
lea rdx, str.The_operation_contained_an_invalid_or_unsupported_option__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027b7
lea rdx, str.Overall_operation_failed__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027af
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.004570c0
jmp 0x50291a
lea rcx, str.Failed_to_create_the_JACK_client__cannot_continue_
call fcn.0041d850
jmp 0x50287a
lea rdx, str.Native_audio_driver_was_unable_to_start__n
mov rcx, r12
call fcn.00457220
jmp 0x50281f
lea rdx, str.Client_is_being_shutdown_against_its_will__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x502814
lea rdx, str.Backend_Error__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x50280b
lea rdx, str.Clients_protocol_version_does_not_match__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x502802
lea rdx, str.Unable_to_access_shared_memory__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027f9
lea rdx, str.Unable_to_initialize_client__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027f0
lea rdx, str.Unable_to_load_internal_client__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027e7
lea rdx, str.Requested_client_does_not_exist__n
mov rcx, r12
call fcn.00457220
mov eax, dword [rsp + 0x2c]
jmp 0x5027df
cmp byte [rdi + r8], 0x5c
mov r10, r8
lea r11, [rdi + r8]
jne 0x5029cf
jmp 0x502a2d
mov r9d, 0x3e6
lea r8, str..._.._dpf_distrho_src_.._extra_String.hpp
lea rdx, str.newBuf___nullptr
lea rcx, [0x00508240]
lea r13, [rsp + 0x60]
call fcn.0041dc70
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0
mov byte [rsp + 0x70], 0
jmp 0x50291a
mov r9d, 0x369
lea r8, str..._.._dpf_distrho_src_.._extra_String.hpp
lea rdx, str.newBuf___nullptr
lea rcx, [0x00508240]
lea r14, [rsp + 0x60]
call fcn.0041dc70
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], 0
mov byte [rsp + 0x70], 0
jmp 0x502bd6
add r10, qword [rsp + 0x30]
jmp 0x502865