Function at 0x10006ee00
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov r13, qword [rsp + 0x190]
xor r15d, r15d
mov rbp, r8
mov r14, rdx
mov r12, rcx
cmp r13, r15
jne 0x10006eea9
mov rdx, qword [rsp + 0x180]
lea rbp, [0x1000a1170]
or rsi, 0xffffffffffffffff
mov rcx, qword [rdx]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ee72
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006ee72
mov rcx, qword [rdx]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rdx, qword [rsp + 0x188]
mov rcx, qword [rdx]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ee9f
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006ee9f
mov rcx, qword [rdx]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov eax, 0x80004003
jmp 0x10006f602
mov ecx, 0x3f7a0
mov eax, 2
mov rsi, 0xffffffffffffffff
mov dword [r13], 1
mul rcx
cmovo rax, rsi
mov rcx, rax
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov rdi, rax
cmp rax, r15
jne 0x10006ef44
mov rdx, qword [rsp + 0x180]
lea rbp, [0x1000a1170]
mov rcx, qword [rdx]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ef0d
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006ef0d
mov rcx, qword [rdx]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rdx, qword [rsp + 0x188]
mov rcx, qword [rdx]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ef3a
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006ef3a
mov rcx, qword [rdx]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov eax, 0x8007000e
jmp 0x10006f602
mov rax, qword [0x1000a1180]
lea r8, [rsp + 0x190]
mov edx, 0x80
mov rcx, r12
mov qword [rsp + 0x190], rax
call fcn.10006db80
cmp eax, r15d
mov ebx, eax
jge 0x10006f006
mov rcx, qword [rsp + 0x190]
lea rbp, [0x1000a1170]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ef9d
mov edx, esi
lock xadd dword [rcx], edx
add edx, esi
cmp edx, r15d
jg 0x10006ef9d
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rdi
call fcn.10007a394
mov r11, qword [rsp + 0x180]
mov rcx, qword [r11]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006efd2
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006efd2
mov rcx, qword [r11]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rdx, qword [rsp + 0x188]
mov rcx, qword [rdx]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006efff
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006efff
mov rcx, qword [rdx]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov eax, ebx
jmp 0x10006f602
mov rax, qword [0x1000a1180]
lea rcx, [rsp + 0x50]
mov edx, 0x104
mov qword [rsp + 0x50], rax
call fcn.100016600
cmp rax, r15
jne 0x10006f0ad
mov rcx, qword [rsp + 0x50]
lea rbp, [0x1000a1170]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f051
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006f051
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x190]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f074
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006f074
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rdi
call fcn.10007a394
mov r11, qword [rsp + 0x180]
mov rcx, qword [r11]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ee72
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jg 0x10006ee72
mov rcx, qword [r11]
jmp 0x10006ee69
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800e
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp eax, r15d
mov ebx, eax
jge 0x10006f118
mov rcx, qword [rsp + 0x50]
lea rbp, [0x1000a1170]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f0f3
mov edx, esi
lock xadd dword [rcx], edx
add edx, esi
cmp edx, r15d
jg 0x10006f0f3
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x190]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006ef9d
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r15d
jmp 0x10006ef96
lea rcx, [rsp + 0x50]
call fcn.1000166e4
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r8, [rsp + 0x50]
mov edx, 0x80
movsxd rcx, eax
mov dword [rbx - 8], eax
mov word [rbx + rcx*2], r15w
mov rcx, r12
call fcn.10006de08
cmp eax, r15d
mov ebx, eax
jl 0x10006f0cc
mov rbx, qword [rbp]
cmp dword [rbx - 0xc], r15d
jl 0x10006f16e
mov qword [rsp + 0x58], rbx
lock add dword [rbx - 0xc], 1
jmp 0x10006f19c
mov rax, qword [0x1000a1180]
mov qword [rsp + 0x58], rax
cmp rbx, r15
jne 0x10006f184
mov eax, r15d
jmp 0x10006f18d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0x58]
mov r8, rbx
mov edx, eax
call fcn.100016504
lea rdx, [0x100002dec]
lea rcx, [rsp + 0x68]
call fcn.100017e84
mov qword [rsp + 0x40], r14
mov r14, qword [rsp + 0x188]
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x190]
lea r8, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r15d
mov r15, qword [rsp + 0x180]
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x58]
mov rcx, r12
mov r9, r15
mov dword [r13], 2
mov qword [rsp + 0x20], rax
call fcn.10006f938
xor ebx, ebx
lea rbp, [0x1000a1170]
cmp eax, ebx
jl 0x10006f353
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp rax, rbx
je 0x10006f246
cmp word [rax], bx
jne 0x10006f246
lea rcx, [0x100006600]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r8, [0x100006600]
lea rcx, [rsp + 0x58]
mov edx, eax
call fcn.10001bdac
lea rdx, [rsp + 0x58]
mov rcx, r12
call fcn.10001dd08
xor r12d, r12d
cmp eax, r12d
jne 0x10006f346
lea rbp, [0x1000a1170]
mov rcx, qword [rsp + 0x68]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f286
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f286
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f2a6
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f2a6
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f2c6
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f2c6
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x190]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f2e9
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f2e9
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rdi
call fcn.10007a394
mov r11, qword [r15]
add r11, 0xfffffffffffffff4
cmp r11, rbp
je 0x10006f317
mov eax, esi
lock xadd dword [r11], eax
add eax, esi
cmp eax, r12d
jg 0x10006f317
mov rcx, qword [r15]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [r14]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f33c
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f33c
mov rcx, qword [r14]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov eax, 0x80004005
jmp 0x10006f602
mov dword [r13], 1
jmp 0x10006f52a
cmp ax, 0x4c7
jne 0x10006f369
mov dword [r13], 2
xor r12d, r12d
jmp 0x10006f52a
mov rbx, qword [rsp + 0x190]
mov edx, 0x7c
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_wcsrchr]
mov r12, rax
test rax, rax
je 0x10006f3da
sub r12, rbx
sar r12, 1
cmp r12d, esi
je 0x10006f3da
xor r14d, r14d
lea rcx, [rsp + 0x190]
call fcn.1000166e4
mov rbx, qword [rsp + 0x190]
movsxd r11, r12d
mov rcx, rbx
mov edx, 0x7c
mov word [rbx + r11*2], r14w
call qword [sym.imp.msvcrt.dll_wcsrchr]
cmp rax, r14
je 0x10006f3d2
sub rax, rbx
sar rax, 1
mov r12d, eax
cmp eax, esi
jne 0x10006f395
mov r14, qword [rsp + 0x188]
mov ebx, ILFree
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8, rbx
call sub.msvcrt.dll_memset
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x190]
xor r12d, r12d
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x50]
mov word [rdi], r12w
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0xa0], rdi
mov dword [rsp + 0xa8], 0x3f7a0
mov dword [rsp + 0xd0], 0x881204
mov qword [rsp + 0x80], r12
cmp dword [rax - 8], r12d
cmovne rcx, rax
mov dword [r13], 2
mov qword [rsp + 0xc0], rcx
lea rcx, [rsp + 0x70]
call qword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
cmp eax, r12d
je 0x10006f52a
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0x60]
mov dword [r13], 1
call fcn.100017e84
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp rax, r12
je 0x10006f4cd
cmp word [rax], r12w
jne 0x10006f4cd
lea rcx, [0x100006600]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r8, [0x100006600]
lea rcx, [rsp + 0x60]
mov edx, eax
call fcn.10001bdac
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x150]
lea rdx, [rsp + 0x60]
call fcn.10001dd08
lea rcx, [rbx - 0xc]
cmp eax, r12d
jne 0x10006f513
lea rbp, [0x1000a1170]
cmp rcx, rbp
je 0x10006f266
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f266
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
jmp 0x10006f266
cmp rcx, rbp
je 0x10006f52a
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f52a
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x68]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f54a
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f54a
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f56a
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f56a
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f58a
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f58a
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x190]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f5ad
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f5ad
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rdi
call fcn.10007a394
mov r11, qword [r15]
add r11, 0xfffffffffffffff4
cmp r11, rbp
je 0x10006f5db
mov eax, esi
lock xadd dword [r11], eax
add eax, esi
cmp eax, r12d
jg 0x10006f5db
mov rcx, qword [r15]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [r14]
add rcx, 0xfffffffffffffff4
cmp rcx, rbp
je 0x10006f600
mov eax, esi
lock xadd dword [rcx], eax
add eax, esi
cmp eax, r12d
jg 0x10006f600
mov rcx, qword [r14]
sub rcx, 0xc
call sub.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_
xor eax, eax
mov rbx, qword [rsp + 0x160]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret