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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2a8
mov rax, qword [0x1800a98a0]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov ebp, dword [rsp + 0x310]
xor r12d, r12d
mov r14, rdx
mov dword [rsp + 0x40], r9d
mov edx, dword [rsp + 0x318]
mov edi, r9d
mov qword [rsp + 0x38], r8
mov rsi, r8
mov qword [rsp + 0x58], rcx
mov rbx, rcx
mov qword [rsp + 0x50], r8
mov dword [rsp + 0x34], r12d
test edx, 0xffff1fc8
je 0x18006c746
mov ecx, 0x3ec
call qword [sym.imp.ntdll.dll_RtlSetLastWin32Error]
xor eax, eax
jmp 0x18006cbf0
mov r9d, edx
mov eax, edx
btr r9d, 0xc
and eax, 0x1000
cmove r9d, edx
mov dword [rsp + 0x30], r9d
test rcx, rcx
jne 0x18006c772
test ebp, ebp
jne 0x18006c76b
test edi, edi
je 0x18006c772
mov ecx, 0x57
jmp 0x18006c739
mov edx, edi
mov qword [rsp + 0x48], r12
mov r8, r12
call fcn.180003a48
mov r13d, dword [rsp + 0x320]
mov r15, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18006c7f3
movzx ecx, word [rax + 0x2a]
mov eax, 0x3fff
and cx, ax
mov eax, 0x2a6
cmp cx, ax
jne 0x18006c7b1
test r13d, r13d
jne 0x18006c7cf
mov eax, 0x2a2
cmp cx, ax
jne 0x18006c7c0
test r13d, r13d
je 0x18006c7cf
mov eax, 0x2a3
cmp cx, ax
jne 0x18006c7f7
test r13d, r13d
je 0x18006c7f7
mov rax, qword [r15 + 0x128]
test r13d, r13d
jne 0x18006c7e9
mov rax, qword [rax]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx + 0x128]
mov r8, qword [rax]
mov qword [rsp + 0x48], r8
jmp 0x18006c80a
test edi, edi
je 0x18006c80a
mov ecx, 0x588
call qword [sym.imp.ntdll.dll_RtlSetLastWin32Error]
mov r9d, dword [rsp + 0x30]
mov r8, r12
test ebp, ebp
jns 0x18006c815
test r8, r8
cmovne ebp, r12d
mov r12d, r9d
and r12d, 0x2000
test r14, r14
je 0x18006ca02
mov rcx, r14
call qword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrlenW]
test eax, eax
jne 0x18006c854
cmp rsi, r14
lea rax, [0x1800a990c]
lea r14, [0x1800a9910]
cmove rax, rsi
mov qword [rsp + 0x38], rax
jmp 0x18006ca02
cmp eax, 0x104
jg 0x18006c73f
mov rcx, r14
call qword [sym.imp.api_ms_win_core_string_l2_1_0.dll_CharUpperW]
xor r10d, r10d
lea rbx, [0x1800a9906]
cmp word [r14], r10w
je 0x18006c9b3
or rdi, 0xffffffffffffffff
inc rdi
cmp word [r14 + rdi*2], r10w
jne 0x18006c880
mov r11d, 0x2a
mov rcx, r14
mov edx, r11d
call fcn.1800861bc
lea r9d, [r11 + 0x15]
cmp eax, edi
jne 0x18006c8d0
mov edx, r9d
mov rcx, r14
call fcn.1800861bc
cmp eax, edi
jne 0x18006c8ca
mov rcx, r14
call qword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_SetCurrentDirectoryW]
xor r10d, r10d
test eax, eax
jne 0x18006c9af
lea r11d, [r10 + 0x2a]
mov r9d, 0x3f
movsxd rax, edi
mov r8d, r10d
mov r15d, r10d
lea rcx, [r14 + rax*2]
cmp word [rcx - 2], 0x5c
sete r8b
test edi, edi
je 0x18006c94a
dec edi
lea rdx, [rcx - 2]
cmp word [rdx], r11w
je 0x18006c8fc
cmp word [rdx], r9w
jne 0x18006c902
mov r8d, 1
movzx eax, word [rdx]
sub ax, 0x2f
cmp ax, 0x2d
ja 0x18006c922
movzx eax, ax
movabs r9, 0x200000000801
bt r9, rax
jb 0x18006c931
mov rcx, rdx
test edi, edi
je 0x18006c94a
mov r9d, 0x3f
jmp 0x18006c8ea
test edi, edi
je 0x18006c942
cmp word [rcx - 4], 0x3a
je 0x18006c942
cmp word [rdx], 0x3a
jne 0x18006c94c
mov r15d, 1
jmp 0x18006c94c
dec edi
test r8d, r8d
jne 0x18006c95b
mov ecx, 0x589
jmp 0x18006c739
test r15d, r15d
lea rbx, [rcx + 2]
cmove rbx, rcx
jne 0x18006c972
test edi, edi
jns 0x18006c972
lea rdi, [rbx - 2]
jmp 0x18006c9a3
lea rdi, [rbx - 2]
movzx esi, word [rdi]
mov word [rdi], r10w
cmp word [r14], r10w
je 0x18006c99b
mov rcx, r14
call qword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_SetCurrentDirectoryW]
xor r10d, r10d
test eax, eax
jne 0x18006c99b
mov word [rdi], si
jmp 0x18006c73f
mov word [rdi], si
mov rsi, qword [rsp + 0x38]
test r15d, r15d
mov r15, qword [rsp + 0x60]
cmovne rbx, rdi
mov edi, dword [rsp + 0x40]
test r12d, r12d
je 0x18006c9e7
cmp rsi, r14
je 0x18006c9e7
mov dword [rsp + 0x28], r10d
lea r9, [rsp + 0x50]
xor ecx, ecx
mov dword [rsp + 0x20], 0x7fffffff
or r8d, 0xffffffff
mov rdx, rbx
call sym.USER32.dll_WCSToMBEx
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov rdx, r14
sub rdx, rbx
movzx eax, word [rbx]
mov word [rdx + rbx], ax
lea rbx, [rbx + 2]
test ax, ax
jne 0x18006c9ed
mov rbx, qword [rsp + 0x58]
lea rdx, [rsp + 0x7e]
mov ecx, 0x104
call qword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_GetCurrentDirectoryW]
xor esi, esi
test ebp, ebp
je 0x18006ca54
lea rcx, [rsp + 0x7e]
call qword [sym.imp.api_ms_win_core_string_l2_1_0.dll_CharLowerW]
lea r8, [rsp + 0x70]
mov edx, ebp
mov rcx, rbx
call fcn.18006c250
mov rcx, qword [rsp + 0x58]
mov edx, ebp
mov rbx, rax
mov rcx, qword [rcx]
call sym.USER32.dll_GetDlgItem
test rax, rax
je 0x18006ca54
mov rdx, rbx
mov rcx, rax
call sym.USER32.dll_SetWindowTextW
test edi, edi
je 0x18006cbeb
test r15, r15
je 0x18006cbeb
mov rdi, qword [r15]
mov eax, r13d
neg eax
sbb ebx, ebx
and ebx, 0x39
test r12d, r12d
je 0x18006ca8d
xor r9d, r9d
lea edx, [rbx + 0x14b]
xor r8d, r8d
mov rcx, rdi
call sym.USER32.dll_PostMessageW
jmp 0x18006cade
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x18006caca
test byte [rcx + 0x5c], 4
je 0x18006cac6
mov rcx, qword [rcx + 8]
call fcn.180004f48
test eax, eax
je 0x18006cac6
xor r9d, r9d
mov dword [rsp + 0x34], 1
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0xb]
call sym.USER32.dll_SendMessageW
jmp 0x18006caca
mov dword [rsp + 0x34], esi
xor r9d, r9d
lea edx, [rbx + 0x14b]
xor r8d, r8d
mov rcx, rdi
call sym.USER32.dll_SendMessageW
movzx ebp, byte [r15 + 0x15]
neg r13d
mov ecx, 0xc000
sbb esi, esi
mov ebx, ecx
and esi, 0x48
add esi, 0x145
cmp dword [rsp + 0x30], 0x4000
cmovne ebx, dword [rsp + 0x30]
and ebp, 2
xor r15d, r15d
bt ebx, 0xf
jae 0x18006cb33
test ebp, ebp
je 0x18006cb29
mov ecx, ebx
mov eax, ebx
bts ecx, 0xc
and eax, 0x4010
cmove ecx, ebx
mov ebx, ecx
jmp 0x18006cb33
cmp ebx, ecx
mov eax, 0xd000
cmove ebx, eax
mov r13d, 0x6010
bt ebx, 0xc
jb 0x18006cb89
mov r8d, ebx
mov eax, 0xffffbfef
and r8, rax
mov edx, esi
mov rcx, rdi
test r12d, r12d
je 0x18006cb63
mov r14, qword [rsp + 0x38]
mov r9, r14
call sym.USER32.dll_PostMessageW
jmp 0x18006cb70
mov r9, r14
call sym.USER32.dll_SendMessageW
mov r14, qword [rsp + 0x38]
test ebp, ebp
jne 0x18006cb79
and ebx, r13d
jmp 0x18006cb8e
mov eax, ebx
and eax, 0x27
or eax, r13d
and ebx, eax
bts ebx, 0xc
jmp 0x18006cb8e
mov r14, qword [rsp + 0x38]
test r13d, ebx
je 0x18006cbbb
mov r8d, ebx
mov edx, esi
bts r8, 0xf
mov rcx, rdi
test r12d, r12d
je 0x18006cbaf
mov r9, r14
call sym.USER32.dll_PostMessageW
jmp 0x18006cbbb
lea r9, [0x1800a9906]
call sym.USER32.dll_SendMessageW
test r12d, r12d
jne 0x18006cbeb
cmp dword [rsp + 0x34], r15d
je 0x18006cbeb
lea ebx, [r12 + 1]
xor r9d, r9d
mov r8d, ebx
lea edx, [rbx + 0xa]
mov rcx, rdi
call sym.USER32.dll_SendMessageW
mov r8d, ebx
xor edx, edx
mov rcx, rdi
call qword [sym.imp.win32u.dll_NtUserInvalidateRect]
mov eax, 1
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.180033470
add rsp, 0x2a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret