Function at 0x140057530
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 0x14005787f
mov rax, qword [rcx + rsi*8]
mov qword [rsp + 0xa90], r15
lea r15, [rcx + rsi*8]
test rax, rax
je 0x1400575b0
mov qword [r8], rax
xor eax, eax
mov r15, qword [rsp + 0xa90]
mov rcx, qword [rsp + 0xa80]
xor rcx, rsp
call fcn.1400793d0
add rsp, 0xa98
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x400
call fcn.140079958
xor edx, edx
mov qword [rbx], rax
mov r8d, 0x400
mov rcx, rax
call main
lea rdx, [0x140000000]
mov ecx, dword [rdx + rsi*4 + 0x5788c]
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.14005f4d0
jmp 0x140057646
mov r8d, 0x1c
jmp 0x1400575e6
mov r8d, 0x26
jmp 0x1400575e6
mov r8d, 0x2a
jmp 0x1400575e6
mov r8d, 0x20
jmp 0x1400575e6
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 0x14005786a
lea eax, [rsi - 7]
cmp eax, 2
jbe 0x140057827
jmp 0x14005771d
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 0x14005786a
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.140086a7c
mov rcx, qword [rbx]
lea r8, [rsp + 0x670]
mov edx, 0x400
call fcn.14005f4d0
mov rcx, qword [rbx]
lea r8, [rsp + 0x50]
mov edx, 0x400
call fcn.14005f4d0
cmp dword [r14 + 0x50], 1
lea r8, str.RoomConnector
lea rax, [0x14009fc38]
cmovne r8, rax
jmp 0x14005782e
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 0x140057774
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 0x140057777
mov edi, r12d
lea r9, [rsp + 0x260]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x670]
call fcn.140057220
test al, al
jne 0x1400577bb
lea r9, [rsp + 0x260]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x878]
call fcn.140057220
test al, al
jne 0x1400577bb
test edi, edi
je 0x14005786a
lea rax, [rsp + 0x260]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rax + rcx*2 + 2], r12w
lea rcx, [rcx + 1]
jne 0x1400577d0
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, [0x1400ab808]
call fcn.14007ec30
test rax, rax
je 0x140057827
mov byte [rax + 1], r12b
lea r8, str.ZoomVDI
mov rcx, qword [rbx]
mov edx, 0x400
call fcn.14005f4d0
test bpl, bpl
je 0x14005784b
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.14005f4d0
mov rax, qword [rbx]
mov qword [r15], rax
jmp 0x140057586
mov rcx, qword [rbx]
call fcn.140028090
mov eax, 3
mov qword [rbx], r12
jmp 0x140057588
mov eax, 1
jmp 0x140057590