Function at 0x615d2450
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
xor r8d, r8d
lea rbp, [0x6173f950]
lea r13, [rsp + 0x40]
mov esi, ecx
mov qword [rsp + 0x40], rbp
mov rbx, r9
mov qword [rsp + 0xc8], rdx
mov rdx, qword [r9 + 0x10]
mov rcx, r13
mov qword [rsp + 0x48], 0
mov byte [rsp + 0x50], 0
call fcn.615e71e0
cmp qword [rsp + 0x48], 0
jne 0x615d24cb
xor edx, edx
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__getcwd]
mov r12, rax
test rax, rax
je 0x615d24cb
mov rcx, r13
xor r8d, r8d
mov rdx, rax
call fcn.615e71e0
mov rcx, r12
call sub.msvcrt.dll_free
mov rdx, qword [rsp + 0x48]
test rdx, rdx
jne 0x615d24fd
mov r9d, 0x1d2
lea r8, str.src_.._.._distrho_extra_FileBrowserDialogImpl.cpp
xor r12d, r12d
lea rdx, str.startDir.isNotEmpty__
lea rcx, [0x617593f1]
call fcn.615c8960
jmp 0x615d281d
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + rdx - 1], 0x5c
je 0x615d2550
add rdx, 2
call sub.msvcrt.dll_realloc
test rax, rax
jne 0x615d2539
mov r9d, 0x342
lea r8, str.src_.._.._distrho_extra_String.hpp
lea rdx, str.newBuf___nullptr
lea rcx, [0x617593f1]
call fcn.615c8960
jmp 0x615d2550
mov rdx, qword [rsp + 0x48]
add rdx, rax
mov word [rdx], 0x5c
inc qword [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov rdx, qword [rbx + 0x18]
lea r14, [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x58], rbp
mov rcx, r14
mov byte [rsp + 0x68], 0
mov qword [rsp + 0x60], 0
call fcn.615e71e0
cmp qword [rsp + 0x60], 0
jne 0x615d2591
xor r8d, r8d
lea rdx, str.FileBrowser
mov rcx, r14
call fcn.615e71e0
mov ecx, 0x100
call fcn.615f6e70
mov qword [rax], 0
mov ecx, 0x10000
mov bpl, byte [rbx]
mov r12, rax
mov byte [rax + 0xa0], 0
mov qword [rax + 0xa8], 0
mov qword [rax + 0xb0], 0
mov qword [rax + 0xb8], 0
mov qword [rax + 0xc0], 0
call fcn.615f6e70
lea rcx, [rax + 0x10000]
mov qword [r12 + 0xb0], rax
mov rdx, rax
xor eax, eax
mov qword [r12 + 0xc0], rcx
mov word [rdx + rax], 0
add rax, 2
cmp rax, 0x10000
jne 0x615d2601
lea r8, [r12 + 8]
xor eax, eax
mov qword [r12 + 0xb8], rcx
mov ecx, 0x25
mov rdi, r8
cmp dword [rbx + 0x2c], 2
mov byte [r12 + 0xf8], bpl
mov qword [r12 + 0xc8], 0
mov rbp, qword [rsp + 0x58]
mov qword [r12 + 0xd0], 0
mov r15, qword [rsp + 0x40]
mov qword [r12 + 0xd8], 0
mov qword [r12 + 0xe0], 0
mov qword [r12 + 0xe8], 0
mov qword [r12 + 0xf0], 0
rep stosd dword [rdi], eax
mov byte [r12 + 0xf9], sil
mov rsi, qword [rsp + 0xc8]
mov dword [r12 + 8], 0x98
mov eax, dword [rbx + 0x30]
mov qword [r12 + 0x38], rdx
mov dword [r12 + 0x40], 0x8000
mov qword [r12 + 0x10], rsi
je 0x615d26c6
mov dword [r12 + 0x68], 0x81808
jmp 0x615d26cf
mov dword [r12 + 0x68], 0x10081808
test eax, eax
mov rdi, r15
sete al
or rcx, 0xffffffffffffffff
movzx eax, al
mov dword [r12 + 0x9c], eax
xor eax, eax
repne scasb al, byte [rdi]
mov rdx, rcx
lea rcx, [r12 + 0xc8]
not rdx
call fcn.615f3210
mov rdx, qword [r12 + 0xc8]
or r9d, 0xffffffff
mov r8, r15
mov ecx, 0xfde9
mov rax, qword [r12 + 0xd0]
mov rbx, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov qword [rsp + 0x20], rdx
sub rax, rdx
xor edx, edx
sar rax, 1
mov dword [rsp + 0x28], eax
call rbx
test eax, eax
je 0x615d2744
mov rax, qword [r12 + 0xc8]
mov qword [r12 + 0x58], rax
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbp
repne scasb al, byte [rdi]
mov rdx, rcx
lea rcx, [r12 + 0xe0]
not rdx
call fcn.615f3210
mov rdx, qword [r12 + 0xe0]
or r9d, 0xffffffff
mov r8, rbp
mov ecx, 0xfde9
mov rax, qword [r12 + 0xe8]
mov qword [rsp + 0x20], rdx
sub rax, rdx
xor edx, edx
sar rax, 1
mov dword [rsp + 0x28], eax
call rbx
test eax, eax
je 0x615d27a2
mov rax, qword [r12 + 0xe0]
mov qword [r12 + 0x60], rax
lea rax, [rsp + 0x3c]
mov r9, r12
xor edx, edx
xor ecx, ecx
mov byte [r12 + 0xa0], 0
lea r8, [0x615cf080]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
call qword [sym.imp.msvcrt.dll__beginthreadex]
mov qword [r12 + 0xa8], rax
mov rcx, r14
call fcn.615e73e0
jmp 0x615d281d
mov rcx, r13
call fcn.615e73e0
mov rax, r12
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret