Function at 0x1800206c0
Capabilities:
Get common file path

Disassembly:
mov r11, rsp
push rbx
push r12
push r14
sub rsp, 0x3e0
mov rax, qword [0x18007cf38]
xor rax, rsp
mov qword [rsp + 0x3b0], rax
lea ebx, [rcx - 8]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x70], r8
mov r12, r9
mov qword [rsp + 0x78], rdx
mov r14, rdx
mov dword [rsp + 0x54], ebx
cmp ecx, ebx
jbe 0x180020985
mov qword [r11 + 8], rbp
lea rdx, [0x180000000]
mov ebp, dword [rsp + 0x40]
lea r9, [0x1800209d0]
mov qword [r11 - 0x20], rsi
mov esi, dword [rsp + 0x40]
mov qword [r11 - 0x28], rdi
mov rdi, qword [rsp + 0x70]
mov qword [r11 - 0x30], r13
lea r13d, [rcx - 0xf2]
mov qword [r11 - 0x38], r15
movzx r15d, byte [rsp + 0x30]
cmp r13d, 9
ja case.0x180020756.2
mov ecx, dword [rdx + r13*4 + 0x209a8]
add rcx, rdx
jmp rcx
call qword [sym.imp.WINMM.dll_waveOutGetNumDevs]
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x44], 0
jmp case.0x180020756.2
mov byte [rsp + 0x30], 1
mov r15b, 1
jmp case.0x180020756.2
cmp byte [rsp + 0x30], 0
je 0x1800207a8
mov r8d, dword [rsp + 0x44]
lea r9, [rsp + 0x1a0]
mov rdx, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x38]
call qword [sym.imp.SHELL32.dll_SHSetFolderPathW]
lea rcx, [r12 + 0xa]
cmp rcx, r14
je case.0x180020756.2
cmp qword [r14 + 0x18], 0x10
mov rdx, r14
jb 0x1800207c3
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
call fcn.18002c7b0
jmp case.0x180020756.2
mov r9d, dword [rsp + 0x44]
lea rax, [rsp + 0x1a0]
mov r8, qword [rsp + 0x60]
mov edx, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov r12d, eax
test r15b, r15b
je 0x1800208d6
mov r14d, 0xc9
nop dword [rax]
mov ecx, r14d
sub ecx, 0xc9
je 0x1800208a5
cmp ecx, 0x30
jne 0x1800208bc
xor ecx, ecx
movzx eax, r15b
test ebp, ebp
cmovne ecx, eax
movzx r15d, cl
test cl, cl
je 0x1800208bc
mov ebx, 0x15
cmp ebx, 0x15
je 0x18002088a
cmp ebx, 0x63c
je 0x18002086e
cmp ebx, 0xc63
jne 0x180020895
mov r8d, esi
lea rdx, [rsp + 0x90]
mov ecx, ebp
call qword [sym.imp.WINMM.dll_waveOutGetErrorTextA]
jmp 0x180020895
lea r8, [rsp + 0x48]
mov dword [rsp + 0x48], 0
lea rdx, [rsp + 0x4c]
mov rcx, rdi
call sub.IMM32.dll_ImmGetConversionStatus
jmp 0x180020895
xor edi, edi
mov esi, 0x104
mov dword [rsp + 0x4c], edi
add ebx, 0x627
cmp ebx, 0x1275
jbe 0x180020844
jmp 0x1800208bc
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x50], 0
xor ecx, ecx
call qword [sym.imp.WINMM.dll_waveOutGetID]
mov ebp, eax
add r14d, 0x30
cmp r14d, 0x129
jb 0x180020810
mov ebx, dword [rsp + 0x54]
mov r14, qword [rsp + 0x78]
test r12d, r12d
mov r12, qword [rsp + 0x68]
je case.0x180020756.2
mov byte [rsp + 0x30], 0
jmp case.0x180020756.2
mov eax, dword [r12 + 4]
mov dword [rsp + 0x40], eax
jmp case.0x180020756.2
xor ecx, ecx
movzx eax, r15b
cmp dword [rsp + 0x58], ecx
mov qword [r12], r9
cmovne ecx, eax
movzx r15d, cl
jmp case.0x180020756.2
movzx eax, word [r8]
mov edx, 0xd2
lea r8, [rsp + 0x38]
mov word [rsp + 0x38], ax
mov rcx, r12
mov qword [rsp + 0x80], 0
call fcn.18000aa90
mov dword [rsp + 0x38], 0x36
mov r8, qword [rsp + 0x70]
lea rdx, [0x180000000]
dec r13d
lea r9, [0x1800209d0]
lea eax, [r13 + 0xf2]
cmp eax, ebx
ja 0x180020741
mov r13, qword [rsp + 0x3c8]
mov rdi, qword [rsp + 0x3d0]
mov rsi, qword [rsp + 0x3d8]
mov rbp, qword [rsp + 0x400]
mov r15, qword [rsp + 0x3c0]
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x3b0]
xor rcx, rsp
call fcn.180065820
add rsp, 0x3e0
pop r14
pop r12
pop rbx
ret