Function at 0x18001e240
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x220
mov rax, qword [0x18003ca28]
xor rax, rsp
mov qword [rsp + 0x210], rax
mov r11, qword [rsp + 0x280]
lea edi, [r8 - 0xc]
xor esi, esi
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], rdx
mov r10, rcx
mov qword [rsp + 0x90], rcx
mov ebx, esi
mov qword [rsp + 0xa8], r11
mov dword [rsp + 0x5c], edi
cmp r8d, edi
jbe case.0x18001e2e6.2
mov r14d, dword [rsp + 0x54]
lea r13d, [r8 - 0x78]
movzx ebp, byte [rsp + 0x51]
mov r15, qword [rsp + 0x78]
mov r12d, dword [rsp + 0x54]
lea r8, [0x180000000]
cmp r13d, 0x24
ja case.0x18001e2e6.12
movzx eax, byte [r8 + r13 + 0x1e6b8]
mov ecx, dword [r8 + rax*4 + 0x1e684]
add rcx, r8
jmp rcx
mov r9d, 0x47
mov byte [rsp + 0x50], 1
xor r8d, r8d
mov qword [rsp + 0x20], rsi
xor edx, edx
xor ecx, ecx
call fcn.18001db00
mov r14d, eax
jmp case.0x18001e2e6.12
mov qword [rsp + 0x88], rsi
mov bpl, 1
jmp case.0x18001e2e6.12
mov dword [rsp + 0x60], esi
jmp case.0x18001e2e6.12
lea rax, [0x18000b990]
mov r8, rdx
mov qword [rsp + 0x80], rax
mov rdx, r11
mov eax, dword [r9]
mov ecx, 0xcf
mov dword [rsp + 0x68], eax
lea r9, [rsp + 0x80]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r10
call fcn.18000a510
jmp case.0x18001e2e6.12
test bpl, bpl
je 0x18001e44c
mov esi, 0x4f
cmp esi, 0x4f
je 0x18001e42c
cmp esi, 0xdc
je 0x18001e424
cmp esi, 0x169
je 0x18001e40a
cmp esi, 0x1f6
jne 0x18001e434
test bpl, bpl
je 0x18001e434
mov edi, 0x5a
nop dword [rax]
mov eax, edi
sub eax, 0x59
je 0x18001e3e9
cmp eax, 1
jne 0x18001e401
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
jmp 0x18001e401
mov ecx, dword [rsp + 0x58]
lea rdx, [rsp + 0xb0]
mov r8d, 0x50
call qword [sym.imp.WINMM.dll_mixerGetDevCapsW]
dec edi
cmp edi, 0x58
ja 0x18001e3b0
jmp 0x18001e434
mov r8d, r12d
lea rdx, [rsp + 0x58]
mov rcx, r15
call qword [sym.imp.WINMM.dll_mixerGetID]
test eax, eax
je 0x18001e434
xor bpl, bpl
jmp 0x18001e434
mov r12d, 0x80000000
jmp 0x18001e434
xor r15d, r15d
mov dword [rsp + 0x58], r15d
add esi, 0x8d
cmp esi, 0x283
jb 0x18001e375
mov edi, dword [rsp + 0x5c]
xor esi, esi
cmp byte [rsp + 0x50], 0
je 0x18001e46f
mov r8d, dword [rsp + 0x60]
lea r9, [rsp + 0x100]
mov rdx, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x64]
call qword [sym.imp.SHELL32.dll_SHSetFolderPathA]
mov eax, 1
cmp r14d, eax
jbe case.0x18001e2e6.12
nop dword [rax]
mov dword [rbx + 8], eax
add rbx, 0x10
add eax, 2
cmp eax, r14d
jb 0x18001e480
jmp case.0x18001e2e6.12
cmp byte [0x18003cb19], 0
jne 0x18001e518
mov edi, 0x118
mov eax, edi
sub eax, 0x116
je 0x18001e503
sub eax, 1
je 0x18001e4c9
cmp eax, 1
jne 0x18001e50a
xor edx, edx
mov byte [0x18003cb19], al
mov ecx, 0xf6
call fcn.180019ee0
jmp 0x18001e50a
mov qword [rsp + 0x48], rsi
xor r9d, r9d
mov qword [rsp + 0x40], rsi
xor edx, edx
mov qword [rsp + 0x38], rsi
xor ecx, ecx
mov qword [rsp + 0x30], rsi
lea r8d, [r9 + 0x65]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call fcn.1800126a0
mov ecx, 0x64
call fcn.1800289d0
jmp 0x18001e50a
mov byte [0x18003cbb2], 1
dec edi
cmp edi, 0x115
ja 0x18001e4a2
mov edi, dword [rsp + 0x5c]
mov dword [rsp + 0x78], esi
jmp case.0x18001e2e6.12
cmp dword [rsp + 0x54], 0
mov ecx, esi
mov rbx, qword [r10]
movzx eax, bpl
cmovne ecx, eax
movzx ebp, cl
jmp case.0x18001e2e6.12
mov rcx, qword [r10 + 8]
mov r9, qword [r10]
mov r8, rcx
sub r8, r9
mov edx, r14d
sar r8, 4
mov dword [rsp + 0x64], 0x36
mov byte [rsp + 0x51], 0
cmp rdx, r8
jae 0x18001e570
shl rdx, 4
add rdx, r9
mov qword [r10 + 8], rdx
jmp case.0x18001e2e6.12
jbe case.0x18001e2e6.12
mov rax, qword [r10 + 0x10]
sub rax, r9
sar rax, 4
cmp rdx, rax
jbe 0x18001e598
lea r8, [rsp + 0x51]
mov rcx, r10
call fcn.180002bf0
jmp case.0x18001e2e6.12
sub rdx, r8
je 0x18001e5b7
nop dword [rax]
mov qword [rcx], rsi
mov dword [rcx + 8], 0xffffffff
mov dword [rcx + 0xc], esi
add rcx, 0x10
sub rdx, 1
jne 0x18001e5a0
mov qword [r10 + 8], rcx
jmp case.0x18001e2e6.12
mov r9d, dword [rsp + 0x60]
lea rax, [rsp + 0x100]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov ecx, esi
test r14d, r14d
je 0x18001e5ff
nop dword [rax]
mov dword [rbx + 8], ecx
add rbx, 0x10
add ecx, 2
cmp ecx, r14d
jb 0x18001e5f0
test eax, eax
je case.0x18001e2e6.12
mov byte [rsp + 0x50], 0
jmp case.0x18001e2e6.12
mov qword [rsp + 0x70], rsi
call qword [sym.imp.WINMM.dll_mixerGetNumDevs]
mov dword [rsp + 0x54], eax
dec r13d
lea ecx, [r13 + 0x78]
cmp ecx, edi
jbe case.0x18001e2e6.2
mov r10, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
mov r11, qword [rsp + 0xa8]
jmp 0x18001e2c1
mov rax, qword [0x18003cb68]
jmp 0x18001e657
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x210]
xor rcx, rsp
call fcn.18002d670
mov rbx, qword [rsp + 0x270]
add rsp, 0x220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret