Function at 0x140029540
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3b8]
sub rsp, 0x490
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14044f8c0]
xor rax, rsp
mov qword [rbp + 0x380], rax
mov r15, rcx
cmp qword [rcx + 0x100], 0
je 0x14002985a
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x14002989b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rbx, [0x140393240]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.1400168b0
mov r13, 0xffffffffffffffff
test al, al
jne 0x1400295ee
mov rax, r13
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400295d3
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140016ad0
nop
lea r12, [r15 + 0x3d0]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x38]
call qword [sym.imp.USER32.dll_CreatePopupMenu]
mov rdx, rax
mov rcx, r12
call fcn.14016a604
test eax, eax
je 0x14002983c
mov dword [reloc.OLEAUT32.dll_SafeArrayGetDim], 0x20
mov dword [reloc.OLEAUT32.dll_SafeArrayDestroy], 0x20
lea rcx, [rsp + 0x48]
call fcn.14016b134
nop
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp - 0x80]
call fcn.1402ef020
mov edx, 0x104
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor r14d, r14d
test eax, eax
je 0x1400296e9
mov word [rbp + 0x186], r14w
call fcn.140162c14
mov rcx, rax
test rax, rax
je 0x14002988a
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea r9, str.SoundRecorder.exe
lea r8, [rbp - 0x80]
lea rdx, str._s_s
lea rcx, [rsp + 0x40]
call fcn.140012720
mov rbx, qword [rsp + 0x40]
lea rcx, [rbx - 0x18]
call fcn.140012250
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.14003fd40
mov edi, eax
mov ecx, r13d
lock xadd dword [rbx - 8], ecx
sub ecx, 1
jg 0x1400296e5
mov rcx, qword [rbx - 0x18]
mov r8, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
test edi, edi
jne 0x1400296fe
mov r8d, 0x942
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x48]
call fcn.14016b1c0
mov esi, r14d
lea rdi, [0x140450f34]
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
mov edx, r14d
mov rax, r14
test r8, r8
jle 0x14002974b
nop dword [rax]
test rax, rax
js 0x140029895
cmp rax, r8
jge 0x140029895
mov ecx, dword [r9 + rax*4]
cmp dword [rdi], ecx
je 0x1400297e6
inc edx
inc rax
movsxd rcx, edx
cmp rcx, r8
jl 0x140029720
mov r14d, dword [rdi]
mov rbx, qword [r15 + 0x100]
xor r8d, r8d
lea rdx, [0x140393240]
lea rcx, [rsp + 0x30]
call fcn.140016ad0
call fcn.140155310
movzx r9d, word [rbx + 0x564]
mov r8d, r14d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.14009b190
mov rax, qword [rsp + 0x30]
movzx ecx, word [rax]
cmp cx, word [0x140393240]
jne 0x1400297b4
call fcn.140155310
mov r9d, 0x409
mov r8d, r14d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x30]
call fcn.14009b190
lea rax, [r15 + 0x460]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rax
mov r9d, dword [rdi + 8]
mov r8d, dword [rdi - 4]
mov rdx, qword [rsp + 0x30]
mov rcx, r12
call fcn.140035ae0
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
xor r14d, r14d
inc esi
add rdi, 0x10
cmp esi, 6
jb 0x140029712
mov edx, 0x138a
mov r9d, 0x800
mov rcx, r12
call fcn.140035c70
mov edx, 0x138c
mov r9d, 0x800
mov rcx, r12
call fcn.140035c70
xor r8d, r8d
mov edx, 0x1389
mov rcx, qword [r15 + 0x3d8]
call qword [sym.imp.USER32.dll_SetMenuDefaultItem]
nop
lea rcx, [rsp + 0x48]
call fcn.14016b154
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x14002985a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x380]
xor rcx, rsp
call fcn.1402ecc20
lea r11, [rsp + 0x490]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.140012800
int3
call fcn.140161be4
nop
mov ecx, 0x80004005
call fcn.140012800
int3