Function at 0x14002c2f4
Capabilities:
Get common file path
Set current directory

Disassembly:
mov rcx, qword [rcx + 8]
jmp 0x1402963c8
push rbp
push rbx
push rsi
push rdi
push r12
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov rdi, rcx
lea rdx, [rcx + 0x5f0]
mov rax, qword [rdx]
or r12d, 0xffffffff
xor esi, esi
cmp dword [rax - 0x10], esi
je 0x1402965fe
lea rcx, [rbp + 0x30]
call fcn.14000c4d8
nop
mov rbx, qword [rbp + 0x30]
cmp dword [rbx - 0x10], esi
jl 0x1402965e2
lea rdx, str._scanreg
mov rcx, rbx
call fcn.1400bee84
test rax, rax
je 0x1402965e2
sub rax, rbx
sar rax, 1
cmp eax, r12d
jle 0x1402965e2
lea r8, [0x140330de8]
lea rdx, str._scanreg
lea rcx, [rbp + 0x30]
call fcn.14000b658
mov rbx, qword [rbp + 0x30]
cmp dword [rbx - 0x10], esi
je 0x1402965e2
lea rcx, [rbp + 0x30]
call fcn.14000baec
lea r8, [0x140330de8]
lea rdx, [0x14034dbb8]
lea rcx, [rbp + 0x30]
call fcn.14000b658
lea rcx, [rdi + 0x5f8]
lea rdx, [rbp + 0x30]
call fcn.14000c244
mov rdx, qword [rbp + 0x30]
lea rcx, [rbp + 0x40]
call fcn.14000cb18
nop
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.SHLWAPI.dll_PathGetDriveNumberW]
cmp eax, r12d
jne 0x1402965be
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x38], rax
mov ebx, 0x104
lea r9d, [r12 + 2]
mov r8d, ebx
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x18]
call fcn.14000bd14
mov rdx, qword [rax + 8]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov eax, dword [rbp - 8]
mov rbx, qword [rbp - 0x18]
cmp eax, r12d
jne 0x14029650d
mov rcx, qword [rbx]
test rcx, rcx
jne 0x140296504
mov eax, esi
jmp 0x140296515
movsxd rdx, dword [rcx - 0xc]
call fcn.1400beaac
test eax, eax
js 0x1402965b3
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x1402965b3
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
mov word [rax + rcx*2], si
lea r8, [0x14034fa44]
lea rdx, [rbp + 0x38]
lea rcx, [rbp + 0x48]
call fcn.14001c3e0
mov rdx, qword [rax]
mov rax, qword [0x14048abe8]
mov rcx, qword [rax + 0x48]
call qword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
test eax, eax
sete bl
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x14029657b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140296591
mov rax, qword [0x14048abe8]
mov rcx, qword [rax + 0x48]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1402965be
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1402965be
mov ecx, 0x80070057
call fcn.14000cbb8
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1402965de
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp + 0x30]
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1402965fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [0x14048abe8]
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x14029663f
call fcn.140016b3c
mov r8d, r12d
mov edx, 0x85
mov rcx, rax
call fcn.1402cb2a0
xor r9d, r9d
lea edx, [r9 + 1]
mov r8d, 0x1f4
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_SetTimer]
mov rcx, rdi
call fcn.140295db8
mov eax, 1
add rsp, 0x40
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret