Function at 0x1400573a0
Capabilities:
Create directory
Get common file path
Get startup folder

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0xa98
mov rax, qword [0x1400bba20]
xor rax, rsp
mov qword [rsp + 0xa80], rax
xor r12d, r12d
movsxd rsi, edx
mov qword [r8], r12
movzx ebp, r9b
mov rbx, r8
mov r14, rcx
cmp esi, 9
ja 0x1400576ef
mov rax, qword [rcx + rsi*8]
mov qword [rsp + 0xa90], r15
lea r15, [rcx + rsi*8]
test rax, rax
je 0x140057420
mov qword [r8], rax
xor eax, eax
mov r15, qword [rsp + 0xa90]
mov rcx, qword [rsp + 0xa80]
xor rcx, rsp
call fcn.140079240
add rsp, 0xa98
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x400
call fcn.1400797c8
xor edx, edx
mov qword [rbx], rax
mov r8d, 0x400
mov rcx, rax
call main
lea rdx, [0x140000000]
mov ecx, dword [rdx + rsi*4 + 0x576fc]
add rcx, rdx
jmp rcx
mov r8d, 0x1a
mov rdx, qword [rbx]
mov r9d, 1
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov rcx, qword [rbx]
lea r8, [0x14009cf34]
mov edx, 0x400
mov edi, eax
call fcn.14005f340
jmp 0x1400574b6
mov r8d, 0x1c
jmp 0x140057456
mov r8d, 0x26
jmp 0x140057456
mov r8d, 0x2a
jmp 0x140057456
mov r8d, 0x20
jmp 0x140057456
mov rdx, qword [rbx]
mov ecx, 0x103
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
mov edi, r12d
setne dil
test edi, edi
je 0x1400576da
lea eax, [rsi - 7]
cmp eax, 2
jbe 0x140057697
jmp 0x14005758d
xor edx, edx
lea rcx, [rsp + 0x260]
mov r8d, 0x104
call main
mov r8d, 0x104
lea rdx, [rsp + 0x260]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x1400576da
xor edx, edx
lea rcx, [rsp + 0x670]
mov r8d, 0x104
call main
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x104
call main
mov qword [rsp + 0x40], r12
lea r9, [rsp + 0x50]
mov qword [rsp + 0x38], r12
lea rdx, [rsp + 0x670]
mov qword [rsp + 0x30], r12
lea rcx, [rsp + 0x260]
mov qword [rsp + 0x28], r12
mov r8d, 0x104
mov qword [rsp + 0x20], 0x104
call fcn.1400868ec
mov rcx, qword [rbx]
lea r8, [rsp + 0x670]
mov edx, 0x400
call fcn.14005f340
mov rcx, qword [rbx]
lea r8, [rsp + 0x50]
mov edx, 0x400
call fcn.14005f340
cmp dword [r14 + 0x50], 1
lea r8, str.RoomConnector
lea rax, [0x14009fc38]
cmovne r8, rax
jmp 0x14005769e
mov edi, 1
lea rdx, [rsp + 0x670]
mov r9d, edi
xor ecx, ecx
lea r8d, [rdi + 0xf]
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1400575e4
mov r9d, edi
lea r8d, [rdi + 0x18]
lea rdx, [rsp + 0x878]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x1400575e7
mov edi, r12d
lea r9, [rsp + 0x260]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x670]
call fcn.140057090
test al, al
jne 0x14005762b
lea r9, [rsp + 0x260]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x878]
call fcn.140057090
test al, al
jne 0x14005762b
test edi, edi
je 0x1400576da
lea rax, [rsp + 0x260]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rax + rcx*2 + 2], r12w
lea rcx, [rcx + 1]
jne 0x140057640
mov rax, qword [rbx]
lea r9d, [rcx + 1]
mov qword [rsp + 0x38], r12
lea r8, [rsp + 0x260]
mov qword [rsp + 0x30], r12
xor edx, edx
mov dword [rsp + 0x28], 0x400
mov ecx, 0xfde9
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, qword [rbx]
lea rdx, [0x1400ab798]
call fcn.14007eaa0
test rax, rax
je 0x140057697
mov byte [rax + 1], r12b
lea r8, str.ZoomVDI
mov rcx, qword [rbx]
mov edx, 0x400
call fcn.14005f340
test bpl, bpl
je 0x1400576bb
mov rcx, qword [rbx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov rcx, qword [rbx]
lea r8, [0x14009cf34]
mov edx, 0x400
call fcn.14005f340
mov rax, qword [rbx]
mov qword [r15], rax
jmp 0x1400573f6
mov rcx, qword [rbx]
call fcn.140028010
mov eax, 3
mov qword [rbx], r12
jmp 0x1400573f8
mov eax, 1
jmp 0x140057400