Function at 0x4764e0
Capabilities:
Get common file path

Disassembly:
mov eax, 0x3be8
call fcn.00499730
sub rsp, rax
mov qword [rsp + 0x3be0], rbx
mov qword [rsp + 0x3bd8], rbp
mov qword [rsp + 0x3bd0], rsi
mov qword [rsp + 0x3bc8], rdi
mov qword [rsp + 0x3bc0], r12
mov rsi, rdx
mov qword [rsp + 0x90], 0xfffffffffffffffe
call fcn.004545a0
test eax, eax
je 0x4765a4
xor r8d, r8d
lea rdx, str.CSetupFilesInfo::GetWaveFileName_n
lea rcx, [rsp + 0x220]
call fcn.00486850
movabs rdx, 0x203a5952544e45
mov qword [rsp + 0x120], rdx
lea rdi, [rsp + 0x120]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x220]
xor ecx, ecx
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x476573
call fcn.004546e0
mov rcx, rax
call fcn.004545b0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x120]
call fcn.004548a0
xor r12d, r12d
mov ebx, r12d
mov rax, qword [0x004dfd00]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rax
mov edx, 0xa
lea rcx, [rsp + 0x58]
call fcn.0049a7a0
nop
mov ebp, r12d
mov edx, 0x104
lea rcx, [rsp + 0x330]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov qword [rsp + 0x28d0], r12
mov qword [rsp + 0x28e0], r12
mov qword [rsp + 0x28e8], r12
mov qword [rsp + 0x28f8], r12
mov qword [rsp + 0x2a18], r12
mov r8d, 0x1f4
mov edx, 0x4b
lea rcx, [rsp + 0x2a20]
call fcn.00499630
lea rax, [rsp + 0x2c18]
mov ecx, 0x3e
nop
nop
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
add rax, 0x40
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
dec rcx
jne 0x476640
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov rax, qword [rsi + 0x10]
mov edx, dword [rax - 8]
lea rcx, [rsi + 0x10]
call fcn.0049b550
mov rdx, rax
lea rcx, [rsp + 0x28d0]
call fcn.00428550
nop
mov rax, qword [rsi + 0x38]
cmp dword [rax - 8], 0
je 0x4767e0
lea rcx, [rsi + 0x18]
mov rax, qword [rcx]
mov edx, dword [rax - 8]
call fcn.0049b550
mov rdx, rax
lea r8, [rsp + 0x220]
lea rcx, [rsp + 0x28d0]
call fcn.00426510
test eax, eax
je 0x476f3b
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x50]
call fcn.0049b398
mov qword [rsp + 0x440], r12
mov qword [rsp + 0x450], r12
mov qword [rsp + 0x458], r12
mov qword [rsp + 0x468], r12
mov qword [rsp + 0x588], r12
mov r8d, 0x1f4
mov edx, 0x4b
lea rcx, [rsp + 0x590]
call fcn.00499630
lea rax, [rsp + 0x788]
mov ecx, 0x3e
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
add rax, 0x40
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
dec rcx
jne 0x476734
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov rax, qword [rsi + 0x38]
mov edx, dword [rax - 8]
lea rcx, [rsi + 0x38]
call fcn.0049b550
mov rdx, rax
lea rcx, [rsp + 0x440]
call fcn.00428550
nop
mov rax, qword [rsp + 0x50]
mov edx, dword [rax - 8]
lea rcx, [rsp + 0x50]
call fcn.0049b550
mov rdx, rax
lea r8, [rsp + 0x220]
lea rcx, [rsp + 0x440]
call fcn.00425390
test eax, eax
je 0x4767d1
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x38]
call fcn.0049b398
mov ebp, 1
lea rcx, [rsp + 0x440]
call fcn.00424740
jmp 0x476823
lea rcx, [rsi + 0x18]
mov rax, qword [rcx]
mov edx, dword [rax - 8]
call fcn.0049b550
mov rdx, rax
lea r8, [rsp + 0x220]
lea rcx, [rsp + 0x28d0]
call fcn.00425390
test eax, eax
je 0x476f3b
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x38]
call fcn.0049b398
jmp 0x47682b
test ebp, ebp
je 0x476f3b
mov r8b, 0x5f
mov dl, 0x20
lea rcx, [rsp + 0x38]
call fcn.004999a8
lea rcx, [rsp + 0x38]
call fcn.0049b664
mov eax, dword [rsi + 0xa0]
cmp eax, 7
je 0x47689c
cmp eax, 8
je 0x47689c
lea rdx, [0x004ad8bc]
lea rcx, [rsp + 0x48]
call fcn.0049b290
nop
mov r8, rax
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x30]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
jmp 0x476902
lea rdx, str.INFOTHER.INF
lea rcx, [rsp + 0x40]
call fcn.0049b290
mov rdi, rax
lea rdx, [rsp + 0x330]
lea rcx, [rsp + 0x30]
call fcn.0049b290
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x30]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
mov edx, 0xa
lea rcx, [rsp + 0xe0]
call fcn.0049a7a0
nop
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xe0]
call fcn.00401340
nop
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x476c63
test ebx, ebx
jne 0x476c63
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xe0]
call fcn.004012d0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
mov qword [rsp + 0x440], r12
mov qword [rsp + 0x450], r12
mov qword [rsp + 0x458], r12
mov qword [rsp + 0x468], r12
mov qword [rsp + 0x588], r12
mov r8d, 0x1f4
mov edx, 0x4b
lea rcx, [rsp + 0x590]
call fcn.00499630
lea rax, [rsp + 0x788]
mov ecx, 0x3e
nop
nop
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
add rax, 0x40
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
dec rcx
jne 0x4769d0
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov rax, qword [rsp + 0x20]
mov edx, dword [rax - 8]
lea rcx, [rsp + 0x20]
call fcn.0049b550
mov rdx, rax
lea rcx, [rsp + 0x440]
call fcn.00428550
nop
lea rcx, [rsp + 0x58]
call fcn.0049a7c8
mov qword [rsp + 0x1730], r12
mov r8d, 0x1f4
mov edx, 0x4b
lea rcx, [rsp + 0x1738]
call fcn.00499630
lea rax, [rsp + 0x1930]
mov ecx, 0x3e
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
add rax, 0x40
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
dec rcx
jne 0x476a61
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
lea rdx, [rsp + 0x1730]
lea rcx, [rsp + 0x440]
call fcn.00425500
mov r11, qword [rsp + 0x1730]
test r11, r11
je 0x476b45
lea rdi, [rsp + 0x1738]
jmp 0x476ad8
mov r11, qword [rsp + 0x1730]
test rdi, rdi
je 0x476b16
lea rax, [rsp + 0x1738]
sub rdi, rax
inc rdi
mov rcx, rdi
lea rax, [rdi - 1]
cmp rax, 0x1f3
ja 0x476b16
cmp rdi, r11
jae 0x476b09
lea rdi, [rsp + rdi + 0x1738]
jmp 0x476b0c
mov rdi, r12
dec rcx
cmp rcx, r11
jae 0x476b2b
jmp 0x476b1b
mov rdi, r12
jmp 0x476b2b
cmp rcx, 0xffffffffffffffff
je 0x476b2b
mov rdx, qword [rsp + rcx*8 + 0x1930]
jmp 0x476b2e
mov rdx, r12
lea rcx, [rsp + 0x58]
call fcn.0049aaa4
test rdi, rdi
jne 0x476ad0
mov r11, qword [rsp + 0x1730]
mov rbp, qword [rsp + 0x70]
mov rdi, r12
test r11, r11
je 0x476b7c
mov rcx, qword [rsp + rdi*8 + 0x1930]
test rcx, rcx
je 0x476b74
call fcn.0049bb84
mov qword [rsp + rdi*8 + 0x1930], r12
mov r11, qword [rsp + 0x1730]
inc rdi
cmp rdi, r11
jb 0x476b52
test rbp, rbp
je 0x476c42
mov rdi, qword [rsp + 0x60]
test rdi, rdi
je 0x476c42
test ebx, ebx
jne 0x476c42
mov rdx, rdi
test rdi, rdi
je 0x476c5d
mov rdi, qword [rdi]
add rdx, 0x10
lea rcx, [rsp + 0x28]
call fcn.0049b31c
lea rcx, [rsp + 0x28]
call fcn.0049b664
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x28]
call fcn.0049a400
cmp eax, 0xffffffff
je 0x476c39
lea rcx, [rsi + 0x88]
lea rdx, [rsp + 0x20]
call fcn.0049b31c
lea rcx, [rsi + 0x90]
lea rdx, [rsp + 0x28]
call fcn.0049b31c
call fcn.004545a0
test eax, eax
je 0x476c34
mov r9, qword [rsp + 0x28]
mov r8, qword [rsp + 0x20]
lea rdx, str.csWaveFileName___s__csWaveBusTypeAndDeviceID___s_n
lea rcx, [rsp + 0x120]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x120]
call fcn.004548a0
mov ebx, 1
test rdi, rdi
jne 0x476b93
lea rcx, [rsp + 0x440]
call fcn.00424740
cmp qword [rsp + 0x30], 0
jne 0x476946
jmp 0x476c63
call fcn.004998f0
nop
call fcn.0047fa10
test eax, eax
jne 0x476f2e
test ebx, ebx
jne 0x476f2e
mov eax, dword [rsi + 0xa0]
cmp eax, 7
je 0x476c8c
cmp eax, 8
jne 0x476f2e
lea rdx, str.INF.INF
lea rcx, [rsp + 0x30]
call fcn.0049b290
mov rdi, rax
lea rdx, [rsp + 0x330]
lea rcx, [rsp + 0x48]
call fcn.0049b290
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x30]
call fcn.0049b1dc
mov edx, 0xa
lea rcx, [rsp + 0xa0]
call fcn.0049a7a0
nop
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xa0]
call fcn.00401340
nop
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x476f20
test ebx, ebx
jne 0x476f20
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xa0]
call fcn.004012d0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
mov qword [rsp + 0x440], r12
mov qword [rsp + 0x450], r12
mov qword [rsp + 0x458], r12
mov qword [rsp + 0x468], r12
mov qword [rsp + 0x588], r12
mov r8d, 0x1f4
mov edx, 0x4b
lea rcx, [rsp + 0x590]
call fcn.00499630
lea rax, [rsp + 0x788]
mov ecx, 0x3e
nop
nop
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
add rax, 0x40
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
dec rcx
jne 0x476dc0
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov rax, qword [rsp + 0x20]
mov edx, dword [rax - 8]
lea rcx, [rsp + 0x20]
call fcn.0049b550
mov rdx, rax
lea rcx, [rsp + 0x440]
call fcn.00428550
nop
lea rcx, [rsp + 0x58]
call fcn.0049a7c8
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x440]
call fcn.0043c2b0
test rax, rax
je 0x476eff
mov rdi, qword [rsp + 0x60]
test rdi, rdi
je 0x476eff
nop
test ebx, ebx
jne 0x476eff
mov rdx, rdi
test rdi, rdi
je 0x476f1a
mov rdi, qword [rdi]
add rdx, 0x10
lea rcx, [rsp + 0x28]
call fcn.0049b31c
lea rcx, [rsp + 0x28]
call fcn.0049b664
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x28]
call fcn.0049a400
cmp eax, 0xffffffff
je 0x476ef6
lea rcx, [rsi + 0x88]
lea rdx, [rsp + 0x20]
call fcn.0049b31c
lea rcx, [rsi + 0x90]
lea rdx, [rsp + 0x28]
call fcn.0049b31c
call fcn.004545a0
test eax, eax
je 0x476ef1
mov r9, qword [rsp + 0x28]
mov r8, qword [rsp + 0x20]
lea rdx, str.csWaveFileName___s__csWaveBusTypeAndDeviceID___s_n
lea rcx, [rsp + 0x120]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x120]
call fcn.004548a0
mov ebx, 1
test rdi, rdi
jne 0x476e50
lea rcx, [rsp + 0x440]
call fcn.00424740
cmp qword [rsp + 0x30], 0
jne 0x476d36
jmp 0x476f20
call fcn.004998f0
nop
lea rcx, [rsp + 0xa0]
call fcn.0049a80c
nop
lea rcx, [rsp + 0xe0]
call fcn.0049a80c
call fcn.004545a0
test eax, eax
je 0x476fc2
mov r8d, ebx
lea rdx, str.CSetupFilesInfo::GetWaveFileName_:_bRetVal___d_n
lea rcx, [rsp + 0x220]
call fcn.00486850
movabs rdx, 0x20203a54495845
mov qword [rsp + 0x120], rdx
lea rdi, [rsp + 0x120]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x220]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x476f90
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x120]
call fcn.004548a0
call fcn.004546e0
mov rcx, rax
call fcn.004545c0
nop
lea rcx, [rsp + 0x28d0]
call fcn.00424740
nop
lea rcx, [rsp + 0x58]
call fcn.0049a80c
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x28]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x50]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x20]
call fcn.0049b1dc
mov eax, ebx
mov rbx, qword [rsp + 0x3be0]
mov rbp, qword [rsp + 0x3bd8]
mov rsi, qword [rsp + 0x3bd0]
mov rdi, qword [rsp + 0x3bc8]
mov r12, qword [rsp + 0x3bc0]
add rsp, 0x3be8
ret