Function at 0x140028e90
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rbx, rdx
mov esi, ecx
mov rax, qword [0x140113040]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x5c], ecx
mov eax, dword [0x1401247a0]
mov ecx, dword [0x140121718]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14001dabc
cmp esi, 9
je 0x14001dcd8
mov rdi, qword [0x140124798]
mov rax, qword [0x1401155a0]
and rax, rdi
cmp rax, qword [0x140115588]
jne 0x14001d744
mov rcx, rdi
call fcn.1400552b0
test rdi, rdi
je 0x14001dc7e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14001dbfa
mov r9b, byte [rdi + 0x60]
movsxd rcx, esi
test r9b, r9b
jne 0x14001d8ae
mov r10, qword [rdi + 0x10]
test r10, r10
je 0x14001d8ae
popcnt r14, r10
cmp r14, 1
jbe 0x14001d86c
mov r8, rcx
cmp r10, rcx
ja 0x14001d79d
mov rax, rcx
xor edx, edx
div r10
mov r8, rdx
mov rax, qword [rdi + 8]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14001d8ae
mov r11, qword [rax]
test r11, r11
je 0x14001d8ae
cmp r14d, 2
jb 0x14001d878
mov rax, qword [r11 + 8]
cmp rax, rcx
jne 0x14001d890
cmp dword [r11 + 0x10], esi
jne 0x14001d8a2
lea rdx, [r11 + 0x18]
cmp rdx, rbx
je 0x14001d808
cmp byte [rbx + 0x17], 0
movzx r8d, byte [r11 + 0x2f]
js 0x14001db43
test r8b, r8b
jns 0x14001d85a
mov rdx, qword [r11 + 0x18]
mov r8, qword [r11 + 0x20]
mov rcx, rbx
call fcn.14000d5f0
xor r14d, r14d
xor r15d, r15d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [0x1401155a0]
and rax, rdi
cmp rax, qword [0x140115588]
jne 0x14001d832
mov rcx, rdi
call fcn.140055570
mov bpl, 1
test r14b, r14b
jne 0x14001d8dd
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400931d0
mov eax, ebp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov rax, qword [rdx + 0x10]
mov qword [rbx + 0x10], rax
vmovups xmm0, xmmword [rdx]
vmovups xmmword [rbx], xmm0
jmp 0x14001d808
lea r8, [r10 - 1]
and r8, rcx
jmp 0x14001d79d
dec r10
mov rax, qword [r11 + 8]
cmp rax, rcx
jne 0x14001d8cb
cmp dword [r11 + 0x10], esi
je 0x14001d7db
jmp 0x14001d8d3
cmp rax, r10
jb 0x14001d89d
xor edx, edx
div r10
mov rax, rdx
cmp rax, r8
jne 0x14001d8ae
mov r11, qword [r11]
test r11, r11
jne 0x14001d7c4
mov dword [rsp + 0x28], esi
mov r10, qword [rdi + 0x38]
test r10, r10
jne 0x14001da55
mov r15, qword [rdi + 0x58]
mov r14b, 1
jmp 0x14001d80e
and rax, r10
cmp rax, r8
jne 0x14001d8ae
mov r11, qword [r11]
test r11, r11
jne 0x14001d87b
jmp 0x14001d8ae
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
test r15, r15
je 0x14001d92c
lea r14, [rsp + 0x40]
mov rax, qword [r15]
mov ecx, esi
mov rdx, r14
call qword [0x1401093a8]
test al, al
jne 0x14001d92c
mov r15, qword [r15 + 8]
test r15, r15
jne 0x14001d8fa
jmp 0x14001d92c
mov rax, qword [rsp + 0x50]
mov qword [rbx + 0x10], rax
vmovaps xmm0, xmmword [rsp + 0x40]
vmovups xmmword [rbx], xmm0
jmp 0x14001d984
movzx eax, byte [rsp + 0x57]
test al, al
jns 0x14001d93a
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14001dcd1
lea r14, [rsp + 0x40]
mov rcx, r14
call fcn.140015e90
test al, al
jne 0x14001dc81
cmp r14, rbx
je 0x14001d984
cmp byte [rbx + 0x17], 0
movzx r8d, byte [rsp + 0x57]
js 0x14001dc32
test r8b, r8b
jns 0x14001d917
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rcx, rbx
call fcn.14000d5f0
mov rax, qword [0x1401155a0]
and rax, rdi
cmp rax, qword [0x140115588]
jne 0x14001d99f
mov rcx, rdi
call fcn.1400552b0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14001dc08
cmp byte [rdi + 0x60], 0
jne 0x14001d9ff
lea rcx, [rdi + 8]
lea rbx, [rsp + 0x28]
lea r9, [rsp + 0x5c]
mov rdx, rbx
mov r8d, esi
call fcn.14001dd70
mov rax, qword [rbx]
lea rcx, [rax + 0x18]
cmp rcx, r14
je 0x14001d9ff
cmp byte [rax + 0x2f], 0
movzx r8d, byte [rsp + 0x57]
js 0x14001dc16
test r8b, r8b
jns 0x14001da40
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
call fcn.14000d5f0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [0x1401155a0]
and rax, rdi
mov bpl, 1
cmp rax, qword [0x140115588]
jne 0x14001da26
mov rcx, rdi
call fcn.140055570
cmp byte [rsp + 0x57], 0
jns 0x14001d83e
mov rcx, qword [rsp + 0x40]
call fcn.1400910b4
jmp 0x14001d83e
mov rax, qword [rsp + 0x50]
mov qword [rcx + 0x10], rax
vmovaps xmm0, xmmword [rsp + 0x40]
vmovups xmmword [rcx], xmm0
jmp 0x14001d9ff
popcnt r11, r10
cmp r11, 1
ja 0x14001dcf9
lea r8, [r10 - 1]
and r8, rcx
mov rax, qword [rdi + 0x30]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14001d8bf
mov r15, qword [rax]
test r15, r15
je 0x14001d8bf
cmp r11d, 2
jae 0x14001dd35
dec r10
mov rax, qword [r15 + 8]
cmp rax, rcx
je 0x14001db5d
and rax, r10
cmp rax, r8
jne 0x14001d8bf
mov r15, qword [r15]
test r15, r15
je 0x14001d8bf
jmp 0x14001da95
lea rcx, [0x1401247a0]
call fcn.140091164
cmp dword [0x1401247a0], 0xffffffff
jne 0x14001d719
mov ecx, 0x68
call fcn.1400910bc
mov rdi, rax
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rax], ymm0
mov qword [rax + 0x20], 0
mov eax, 0x3f800000
mov dword [rdi + 0x28], eax
vmovups ymmword [rdi + 0x30], ymm0
mov dword [rdi + 0x50], eax
mov byte [rdi + 0x60], 0
lea r14, [0x140115518]
mov rax, qword [0x1401155a0]
and rax, r14
cmp rax, qword [0x140115588]
je 0x14001dd15
mov qword [rdi + 0x58], r14
mov qword [0x140124798], rdi
lea rcx, [0x1401247a0]
vzeroupper
call fcn.1400910f8
jmp 0x14001d719
test r8b, r8b
jns 0x14001db50
mov r8, qword [r11 + 0x20]
mov rdx, qword [r11 + 0x18]
mov rcx, rbx
call fcn.14000d6b0
jmp 0x14001d808
cmp dword [r15 + 0x10], esi
jne 0x14001daae
test r9b, r9b
jne 0x14001dbb6
lea rcx, [rdi + 8]
lea r14, [rsp + 0x40]
lea r9, [rsp + 0x28]
mov rdx, r14
mov r8d, esi
call fcn.14001dd70
mov rax, qword [r14]
cmp rax, r15
je 0x14001dbb6
lea rdx, [r15 + 0x18]
lea rcx, [rax + 0x18]
cmp byte [rax + 0x2f], 0
movzx r8d, byte [r15 + 0x2f]
js 0x14001dc51
test r8b, r8b
jns 0x14001dbe8
mov rdx, qword [r15 + 0x18]
mov r8, qword [r15 + 0x20]
call fcn.14000d5f0
lea rdx, [r15 + 0x18]
cmp rdx, rbx
je 0x14001d808
cmp byte [rbx + 0x17], 0
movzx r8d, byte [r15 + 0x2f]
js 0x14001dc68
test r8b, r8b
jns 0x14001d85a
mov rdx, qword [r15 + 0x18]
mov r8, qword [r15 + 0x20]
jmp 0x14001d800
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
vmovups xmm0, xmmword [rdx]
vmovups xmmword [rcx], xmm0
jmp 0x14001dbb6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14001d75e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14001d9b0
test r8b, r8b
cmovs r8, qword [rsp + 0x48]
cmovs r14, qword [rsp + 0x40]
mov rdx, r14
call fcn.14000d6b0
jmp 0x14001d9ff
test r8b, r8b
cmovs r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
cmovns rdx, r14
mov rcx, rbx
call fcn.14000d6b0
jmp 0x14001d984
test r8b, r8b
jns 0x14001dc5e
mov r8, qword [r15 + 0x20]
mov rdx, qword [r15 + 0x18]
call fcn.14000d6b0
jmp 0x14001dbb6
test r8b, r8b
jns 0x14001db50
mov r8, qword [r15 + 0x20]
mov rdx, qword [r15 + 0x18]
jmp 0x14001db50
int3
lea rcx, [rsp + 0x28]
lea r15, [rsp + 0x40]
mov rdx, r15
call fcn.1400238d0
cmp byte [r15 + 0x17], 0
jns 0x14001dca4
mov rcx, qword [rsp + 0x40]
call fcn.1400910b4
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x50], rax
vmovups xmm0, xmmword [rsp + 0x28]
vmovaps xmmword [rsp + 0x40], xmm0
movzx eax, byte [rsp + 0x57]
test al, al
jns 0x14001dcc8
mov rax, qword [rsp + 0x48]
test rax, rax
jne 0x14001d958
xor ebp, ebp
jmp 0x14001da26
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400931d0
mov rcx, rbx
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp 0x140028e90
mov r8, rcx
cmp r10, rcx
ja 0x14001da6b
mov rax, rcx
xor edx, edx
div r10
mov r8, rdx
jmp 0x14001da6b
lea rcx, [0x140115518]
vzeroupper
call fcn.140055410
jmp 0x14001db24
cmp dword [r15 + 0x10], esi
je 0x14001db67
jmp 0x14001dd54
mov rax, qword [r15 + 8]
cmp rax, rcx
je 0x14001dd29
cmp rax, r10
jb 0x14001dd4b
xor edx, edx
div r10
mov rax, rdx
cmp rax, r8
jne 0x14001d8bf
mov r15, qword [r15]
test r15, r15
je 0x14001d8bf
jmp 0x14001dd35
push r14
push rsi
push rdi
push rbx
sub rsp, 0x2b8
mov rsi, rcx
mov rax, qword [0x140113040]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
vbroadcastss ymm0, dword [0x1400f27f0]
lea rdi, [rsp + 0x60]
vmovups ymmword [rdi + 0x20], ymm0
vmovups ymmword [rdi], ymm0
lea rdx, [0x1401030ed]
lea r8, str....._base_files_file_util_win.cc
lea rbx, [rsp + 0xa0]
mov rcx, rbx
mov r9d, 0x42a
vzeroupper
call fcn.140056ee0
mov rcx, rdi
mov rdx, rbx
xor r8d, r8d
call fcn.140074800
lea rbx, [rsp + 0xa0]
mov r8d, 0x208
mov rcx, rbx
mov dl, 0xaa
call fcn.1400c3300
mov word [rbx], 0
mov ecx, 0x104
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov edi, eax
dec edi
cmp edi, 0x103
ja 0x140028fa3
lea r14, [rsp + 0x20]
mov qword [r14], rbx
mov rcx, rbx
call fcn.140091674
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, r14
call fcn.140087260
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.14001e9b0
cmp byte [rsi + 0x17], 0
jns 0x140028f73
mov rcx, qword [rsi]
call fcn.1400910b4
mov rax, qword [rsp + 0x58]
mov qword [rsi + 0x10], rax
vmovups xmm0, xmmword [rsp + 0x48]
vmovups xmmword [rsi], xmm0
mov byte [rsp + 0x5f], 0
mov word [rsp + 0x48], 0
cmp byte [rsp + 0x47], 0
jns 0x140028fa3
mov rcx, qword [rsp + 0x30]
call fcn.1400910b4
mov qword [rsp + 0x48], 0xa
mov al, byte [0x14012460a]
test al, al
jne 0x140028fe8
cmp edi, 0x104
setb bl
lea rcx, [rsp + 0x60]
call fcn.1400756a0
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.1400931d0
mov eax, ebx
add rsp, 0x2b8
pop rbx
pop rdi
pop rsi
pop r14
ret
movzx ecx, al
lea r8, [rsp + 0xa0]
mov qword [r8], 0
lea rdx, [rsp + 0x48]
mov r9d, 2
call fcn.140056f00
jmp 0x140028fb6