Function at 0x14006f030
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x460]
sub rsp, 0x560
mov rax, qword [0x14009b040]
xor rax, rsp
mov qword [rbp + 0x450], rax
mov rdi, rdx
mov qword [rbp - 0x78], rdx
mov qword [rbp - 0x70], rdx
xor r12d, r12d
mov dword [rsp + 0x30], r12d
xorps xmm0, xmm0
movups xmmword [rdx], xmm0
mov qword [rdx], r12
mov qword [rdx + 8], r12
mov qword [rdx + 0x10], r12
mov dword [rsp + 0x30], 1
mov edx, 0x104
lea rcx, [rbp + 0x240]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], r12
lea rax, [rbp + 0x240]
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x14006f0d0
lea rdx, [rbp + 0x240]
lea rcx, [rbp - 0x40]
call fcn.140071010
nop
mov r8d, 9
lea rdx, str.System32
lea rcx, [rbp - 0x40]
call fcn.140070300
xorps xmm0, xmm0
lea rdx, [rbp - 0x40]
cmp qword [rbp - 0x28], 7
cmova rdx, qword [rbp - 0x40]
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
mov r8, qword [rbp - 0x30]
lea rcx, [rsp + 0x48]
call fcn.140071010
mov r15d, 7
mov dword [rsp + 0x30], r15d
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x60]
call fcn.140070660
test eax, eax
jne 0x14006f8ab
mov rdx, qword [rsp + 0x60]
cmp rdx, r15
jbe 0x14006f19d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006f198
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14006f198
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400728d4
movdqa xmm0, xmmword [0x1400898b0]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], r12w
lea rdx, [rsp + 0x38]
mov rbx, qword [rbp - 0x60]
mov rcx, rbx
call fcn.14006e920
mov rax, qword [rsp + 0x38]
mov edx, dword [rsp + 0x40]
test edx, edx
je 0x14006f1de
lea ecx, [rax - 1]
test ecx, 0xfffffff7
jne 0x14006f8bf
cmp eax, 1
jbe 0x14006f821
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14006f204
lock inc dword [rcx + 8]
mov rcx, qword [rbp - 0x58]
mov r15d, dword [rsp + 0x30]
movaps xmm0, xmmword [rbp - 0x60]
movdqa xmmword [rbp - 0x50], xmm0
test rcx, rcx
je 0x14006f21f
lock inc dword [rcx + 8]
mov rcx, qword [rbp - 0x58]
mov r15d, dword [rsp + 0x30]
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
test rcx, rcx
je 0x14006f25f
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14006f25a
mov rbx, qword [rbp - 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14006f25a
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov r15d, dword [rsp + 0x30]
mov r13, qword [rbp - 0x50]
test r13, r13
je 0x14006f740
lea rdi, [r13 + 0x20]
mov rcx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14006f27d
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
lea rdx, [rcx + rax*2]
mov rbx, rdx
call fcn.14006dd00
cmp rax, rdx
je 0x14006f2cc
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x14006f2a1
cmp cx, 0x2f
jne 0x14006f2aa
add rax, 2
cmp rax, rdx
jne 0x14006f292
cmp rax, rdx
je 0x14006f2cc
nop
lea r8, [rbx - 2]
movzx ecx, word [r8]
cmp cx, 0x5c
je 0x14006f2cc
cmp cx, 0x2f
je 0x14006f2cc
mov rbx, r8
cmp rax, r8
jne 0x14006f2b0
mov r8d, 0x3a
mov rcx, rbx
call fcn.140071bd0
mov rcx, rax
cmp rbx, rax
je 0x14006f322
add rax, 0xfffffffffffffffe
cmp rbx, rax
je 0x14006f31f
cmp word [rax], 0x2e
jne 0x14006f302
lea rdx, [rax - 2]
cmp rbx, rdx
jne 0x14006f322
cmp word [rdx], 0x2e
jne 0x14006f322
jmp 0x14006f31f
sub rax, 2
cmp rbx, rax
je 0x14006f31f
nop dword [rax + rax]
cmp word [rax], 0x2e
je 0x14006f322
sub rax, 2
cmp rbx, rax
jne 0x14006f310
mov rax, rcx
sub rcx, rax
cmp rcx, 2
jb 0x14006f685
mov rcx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14006f33c
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
lea rdx, [rcx + rax*2]
mov rbx, rdx
call fcn.14006dd00
cmp rax, rdx
je 0x14006f38c
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x14006f360
cmp cx, 0x2f
jne 0x14006f369
add rax, 2
cmp rax, rdx
jne 0x14006f351
cmp rax, rdx
je 0x14006f38c
nop
lea r8, [rbx - 2]
movzx ecx, word [r8]
cmp cx, 0x5c
je 0x14006f38c
cmp cx, 0x2f
je 0x14006f38c
mov rbx, r8
cmp rax, r8
jne 0x14006f370
mov r8d, 0x3a
mov rcx, rbx
call fcn.140071bd0
cmp rbx, rax
je 0x14006f3d7
lea rdx, [rax - 2]
cmp rbx, rdx
je 0x14006f3d7
cmp word [rdx], 0x2e
jne 0x14006f3bf
lea rcx, [rdx - 2]
cmp rbx, rcx
jne 0x14006f3da
cmp word [rcx], 0x2e
jne 0x14006f3da
jmp 0x14006f3d7
sub rdx, 2
cmp rbx, rdx
je 0x14006f3d7
cmp word [rdx], 0x2e
je 0x14006f3da
sub rdx, 2
cmp rbx, rdx
jne 0x14006f3c8
mov rdx, rax
sub rax, rdx
sar rax, 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], r12
mov r8, rax
lea rcx, [rsp + 0x68]
call fcn.140071010
or r15d, 0x380
mov dword [rsp + 0x34], r15d
lea r15, [rsp + 0x68]
cmp qword [rbp - 0x80], 7
cmova r15, qword [rsp + 0x68]
mov r14, qword [rsp + 0x78]
call fcn.140071de4
mov r12d, eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xor r8d, r8d
mov qword [rsp + 0x58], r8
mov esi, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x60], rsi
mov byte [rsp + 0x48], r8b
mov eax, dword [rsp + 0x34]
or eax, 0x40
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x30], eax
test r14, r14
je 0x14006f4df
cmp r14, 0x7fffffff
ja 0x14006f89d
mov dword [rsp + 0x20], r8d
xor r9d, r9d
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.140071e0c
mov rbx, rax
mov qword [rsp + 0x38], rax
shr rax, 0x20
test eax, eax
jne 0x14006f8da
movsxd rdx, ebx
lea rcx, [rsp + 0x48]
call fcn.14000ea20
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], rsi
cmova r9, qword [rsp + 0x48]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.140071e0c
mov qword [rsp + 0x38], rax
shr rax, 0x20
test eax, eax
jne 0x14006f8d0
mov rsi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x34]
and r15d, 0xffffffbf
or r15d, 0x38
mov dword [rsp + 0x30], r15d
lea rcx, [rsp + 0x48]
mov rbx, qword [rsp + 0x48]
cmp rsi, 0xf
cmova rcx, rbx
cmp r8, 4
jne 0x14006f51e
lea rdx, str..exe
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14006f51e
xor r14b, r14b
jmp 0x14006f521
mov r14b, 1
cmp rsi, 0xf
jbe 0x14006f558
lea rdx, [rsi + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14006f550
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006f72b
mov rcx, rbx
call fcn.1400728d4
xor r12d, r12d
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x48], r12b
mov rdx, qword [rbp - 0x80]
cmp rdx, 7
jbe 0x14006f5b0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006f5aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006f732
call fcn.1400728d4
nop
test r14b, r14b
jne 0x14006f67e
cmp qword [rdi + 0x18], 7
jbe 0x14006f5c3
mov rdi, qword [rdi]
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], r12
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop
inc r8
cmp word [rdi + r8*2], 0
jne 0x14006f5e0
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.140071010
nop
mov rdi, qword [rbp - 0x78]
mov rdx, qword [rdi + 8]
cmp rdx, qword [rdi + 0x10]
je 0x14006f62e
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0x78]
movups xmmword [rdx + 0x10], xmm1
mov eax, 7
mov qword [rbp - 0x80], rax
mov word [rsp + 0x68], r12w
add qword [rdi + 8], 0x20
jmp 0x14006f63f
lea r8, [rsp + 0x68]
mov rcx, rdi
call fcn.140071480
mov rax, qword [rbp - 0x80]
cmp rax, 7
jbe 0x14006f690
lea rdx, [rax*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006f677
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006f739
call fcn.1400728d4
jmp 0x14006f690
mov rsi, 0xffffffffffffffff
mov rdi, qword [rbp - 0x78]
nop dword [rax]
lea rdx, [rbp - 0x10]
mov rcx, qword [r13 + 0x40]
call fcn.140071ffc
cmp eax, 0x12
je 0x14006f6d5
test eax, eax
jne 0x14006f8a3
cmp word [rbp + 0x1c], 0x2e
jne 0x14006f6c7
movzx eax, word [rbp + 0x1e]
test ax, ax
je 0x14006f690
cmp ax, 0x2e
jne 0x14006f6c7
cmp word [rbp + 0x20], 0
je 0x14006f690
lea rdx, [rbp - 0x10]
mov rcx, r13
call fcn.14006ed10
jmp 0x14006f71b
mov r13, r12
mov qword [rbp - 0x50], r12
mov rbx, qword [rbp - 0x48]
mov qword [rbp - 0x48], r12
test rbx, rbx
je 0x14006f71b
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14006f712
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14006f712
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + ioctlsocket]
mov r15d, dword [rsp + 0x30]
mov r13, qword [rbp - 0x50]
mov eax, r12d
test eax, eax
jne 0x14006f8a3
jmp 0x14006f263
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x14006f778
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14006f778
mov rbx, qword [rbp - 0x48]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14006f778
mov rcx, qword [rbp - 0x48]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14006f7ae
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14006f7ae
mov rbx, qword [rbp - 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x14006f7ae
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 7
jbe 0x14006f7ee
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006f7e9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006f896
call fcn.1400728d4
mov rax, rdi
mov rcx, qword [rbp + 0x450]
xor rcx, rsp
call fcn.140072440
lea r11, [rsp + 0x560]
mov rbx, qword [r11 + 0x30]
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 rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14006f857
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14006f857
mov rbx, qword [rbp - 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x14006f857
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 7
jbe 0x14006f7ee
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006f7e9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14006f7e9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.14006da00
nop
mov edx, eax
call fcn.14006e7c0
nop
lea r8, [rsp + 0x48]
mov edx, eax
lea rcx, str.directory_iterator::directory_iterator
call fcn.14006e8b0
nop
lea r8, [rbx + 0x20]
lea rcx, str.directory_entry::status
call fcn.14006e8b0
nop
mov ecx, dword [rsp + 0x3c]
call fcn.14006dcc0
int3
mov ecx, dword [rsp + 0x3c]
call fcn.14006dcc0
int3