Function at 0x61c90c30
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, [0x61df9770]
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.61ca3670
cmp qword [rsp + 0x48], 0
jne 0x61c90cab
xor edx, edx
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__getcwd]
mov r12, rax
test rax, rax
je 0x61c90cab
mov rcx, r13
xor r8d, r8d
mov rdx, rax
call fcn.61ca3670
mov rcx, r12
call sub.msvcrt.dll_free
mov rdx, qword [rsp + 0x48]
test rdx, rdx
jne 0x61c90cdd
mov r9d, 0x1d2
lea r8, str.src_.._.._distrho_extra_FileBrowserDialogImpl.cpp
xor r12d, r12d
lea rdx, str.startDir.isNotEmpty__
lea rcx, [0x61e07f51]
call fcn.61c88330
jmp 0x61c90ffd
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + rdx - 1], 0x5c
je 0x61c90d30
add rdx, 2
call sub.msvcrt.dll_realloc
test rax, rax
jne 0x61c90d19
mov r9d, 0x342
lea r8, str.src_.._.._distrho_extra_String.hpp
lea rdx, str.newBuf___nullptr
lea rcx, [0x61e07f51]
call fcn.61c88330
jmp 0x61c90d30
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.61ca3670
cmp qword [rsp + 0x60], 0
jne 0x61c90d71
xor r8d, r8d
lea rdx, str.FileBrowser
mov rcx, r14
call fcn.61ca3670
mov ecx, 0x100
call fcn.61cb1010
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.61cb1010
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 0x61c90de1
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 0x61c90ea6
mov dword [r12 + 0x68], 0x81808
jmp 0x61c90eaf
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.61cae040
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 0x61c90f24
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.61cae040
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 0x61c90f82
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, [0x61c8d9e0]
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.61ca37a0
jmp 0x61c90ffd
mov rcx, r13
call fcn.61ca37a0
mov rax, r12
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret