Function at 0x140029920
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r14, rdx
mov ebp, ecx
mov rax, qword [0x1400d7618]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x6c], ecx
mov eax, dword [0x1400dad48]
mov ecx, dword [0x1400db698]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140029dfb
cmp ebp, 1
jne 0x14002999b
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140083c20
mov rcx, r14
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp 0x14002c980
mov r15, qword [0x1400dad40]
mov rcx, r15
call fcn.140033f90
mov r8b, byte [r15 + 0x60]
movsxd r10, ebp
test r8b, r8b
je 0x140029a5d
mov dword [rsp + 0x70], ebp
mov rdi, qword [r15 + 0x38]
test rdi, rdi
je 0x140029b75
mov rax, rdi
shr rax, 1
movabs rcx, 0x5555555555555555
and rcx, rax
mov rax, rdi
sub rax, rcx
movabs rcx, 0x3333333333333333
mov rdx, rax
and rdx, rcx
shr rax, 2
and rax, rcx
add rax, rdx
mov rcx, rax
shr rcx, 4
add rcx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rcx
movabs rbx, 0x101010101010101
imul rbx, rax
shr rbx, 0x38
cmp rbx, 1
jbe 0x140029afc
mov rcx, r10
cmp rdi, r10
ja 0x140029b03
mov rax, r10
or rax, rdi
shr rax, 0x20
je 0x140029de0
mov rax, r10
xor edx, edx
div rdi
mov rcx, rdx
jmp 0x140029b03
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x1400299ba
mov rax, rcx
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, rcx
sub rax, rdx
movabs rdx, 0x3333333333333333
mov rbx, rax
and rbx, rdx
shr rax, 2
and rax, rdx
add rax, rbx
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs rdi, 0x101010101010101
imul rdi, rax
shr rdi, 0x38
cmp rdi, 1
jbe 0x140029ce9
mov r9, r10
cmp rcx, r10
ja 0x140029cf0
mov rax, r10
or rax, rcx
shr rax, 0x20
je 0x140029ded
mov rax, r10
xor edx, edx
div rcx
mov r9, rdx
jmp 0x140029cf0
lea rcx, [rdi - 1]
and rcx, r10
mov rax, qword [r15 + 0x30]
mov rax, qword [rax + rcx*8]
test rax, rax
je 0x140029b75
mov rsi, qword [rax]
test rsi, rsi
je 0x140029b75
lea r9, [rdi - 1]
jmp 0x140029b31
cmp dword [rsi + 0x10], ebp
je 0x140029d73
mov rsi, qword [rsi]
test rsi, rsi
je 0x140029b75
mov rax, qword [rsi + 8]
cmp rax, r10
je 0x140029b20
cmp ebx, 1
jbe 0x140029b60
cmp rax, rdi
jb 0x140029b63
mov rdx, rax
or rdx, rdi
shr rdx, 0x20
je 0x140029b6a
xor edx, edx
div rdi
mov rax, rdx
cmp rax, rcx
je 0x140029b29
jmp 0x140029b75
and rax, r9
cmp rax, rcx
je 0x140029b29
jmp 0x140029b75
xor edx, edx
div edi
mov eax, edx
cmp rax, rcx
je 0x140029b29
mov rdi, qword [r15 + 0x58]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x60], rax
movaps xmm0, xmmword [section..rdata]
movaps xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x50]
call fcn.140025310
test rdi, rdi
je 0x140029bd6
lea rdx, [rsp + 0x50]
mov ecx, ebp
call qword [rdi]
test al, al
jne 0x140029bd6
lea rsi, [rsp + 0x50]
nop
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x140029bd6
mov ecx, dword [rsp + 0x6c]
mov rdx, rsi
call qword [rdi]
test al, al
je 0x140029bc0
movzx eax, byte [rsp + 0x50]
test al, 1
je 0x140029bee
mov rax, qword [rsp + 0x58]
test rax, rax
jne 0x140029bfa
jmp 0x140029cbb
shr rax, 1
test rax, rax
je 0x140029cbb
lea rcx, [rsp + 0x50]
call fcn.140026d00
test al, al
je 0x140029c43
lea rsi, [rsp + 0x38]
lea rdi, [rsp + 0x50]
mov rcx, rsi
mov rdx, rdi
call fcn.14002b850
mov rcx, rdi
mov rdx, rsi
call fcn.140025470
mov rcx, rsi
call fcn.140025440
movzx eax, byte [rsp + 0x50]
test al, 1
je 0x140029cb3
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140029cbb
lea rdx, [rsp + 0x50]
mov rcx, r14
call fcn.140025450
mov rcx, r15
call fcn.140033f90
cmp byte [r15 + 0x60], 0
jne 0x140029ca5
lea rcx, [r15 + 8]
lea r8, [rsp + 0x6c]
mov qword [rsp + 0x70], r8
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [0x1400b208d]
lea rdx, [rsp + 0x38]
call fcn.140029e80
mov rcx, qword [rsp + 0x38]
add rcx, 0x18
lea rdx, [rsp + 0x50]
call fcn.140025450
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov sil, 1
jmp 0x140029cbd
shr rax, 1
test rax, rax
jne 0x140029c43
xor esi, esi
lea rcx, [rsp + 0x50]
call fcn.140025440
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140083c20
mov eax, esi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea r9, [rcx - 1]
and r9, r10
mov rax, qword [r15 + 8]
mov rax, qword [rax + r9*8]
test rax, rax
je 0x1400299ba
mov rsi, qword [rax]
test rsi, rsi
je 0x1400299ba
lea rbx, [rcx - 1]
jmp 0x140029d35
cmp dword [rsi + 0x10], ebp
je 0x140029dc0
mov rsi, qword [rsi]
test rsi, rsi
je 0x1400299ba
mov rax, qword [rsi + 8]
cmp rax, r10
je 0x140029d20
cmp edi, 1
jbe 0x140029d5e
cmp rax, rcx
jb 0x140029d61
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x140029d6b
xor edx, edx
div rcx
mov rax, rdx
jmp 0x140029d61
and rax, rbx
cmp rax, r9
je 0x140029d29
jmp 0x1400299ba
xor edx, edx
div ecx
mov eax, edx
jmp 0x140029d61
test r8b, r8b
jne 0x140029dc0
lea rdi, [rsi + 0x18]
lea rcx, [r15 + 8]
lea r8, [rsp + 0x70]
mov qword [rsp + 0x38], r8
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [0x1400b208d]
lea rdx, [rsp + 0x50]
call fcn.140029e80
mov rcx, qword [rsp + 0x50]
add rcx, 0x18
mov rdx, rdi
call fcn.140025450
add rsi, 0x18
mov rcx, r14
mov rdx, rsi
call fcn.140025450
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov sil, 1
jmp 0x140029cc7
mov eax, ebp
xor edx, edx
div edi
mov ecx, edx
jmp 0x140029b03
mov eax, ebp
xor edx, edx
div ecx
mov r9d, edx
jmp 0x140029cf0
lea rcx, [0x1400dad48]
call fcn.1400839b0
cmp dword [0x1400dad48], 0xffffffff
jne 0x14002996f
mov ecx, 0x68
call fcn.1400837ac
mov rsi, rax
mov rcx, rax
call fcn.140033f80
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm0
mov dword [rsi + 0x28], 0x3f800000
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x40], xmm0
mov dword [rsi + 0x50], 0x3f800000
mov byte [rsi + 0x60], 0
lea rax, [0x1400d72f8]
mov qword [rsi + 0x58], rax
mov qword [0x1400dad40], rsi
lea rcx, [0x1400dad48]
call fcn.140083a48
jmp 0x14002996f
push rsi
push rdi
push rbx
sub rsp, 0x2c0
mov rsi, rcx
mov rax, qword [0x1400d7618]
xor rax, rsp
mov qword [rsp + 0x2b8], rax
movaps xmm0, xmmword [section..rdata]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
lea rdx, [0x1400b23cf]
lea r8, str..._.._base_files_file_util_win.cc
lea rbx, [rsp + 0xb0]
mov rcx, rbx
mov r9d, 0x390
call fcn.1400418b0
lea rcx, [rsp + 0x60]
xor edi, edi
mov rdx, rbx
xor r8d, r8d
call fcn.1400418e0
lea rbx, [rsp + 0xb0]
mov r8d, 0x208
mov rcx, rbx
mov dl, 0xaa
call fcn.140086a50
mov word [rsp + 0xb0], 0
mov ecx, 0x104
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add eax, 0xffffffff
cmp eax, 0x103
ja 0x14002caa8
mov qword [rsp + 0x20], rbx
cmp word [rsp + 0xb0], 0
je 0x14002ca61
xor eax, eax
nop word [rax + rax]
cmp word [rsp + rax*2 + 0xb2], 0
lea rax, [rax + 1]
jne 0x14002ca50
jmp 0x14002ca63
xor eax, eax
mov qword [rsp + 0x28], rax
lea rdi, [rsp + 0x30]
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.140025360
lea rbx, [rsp + 0x48]
mov rcx, rdi
mov rdx, rbx
call fcn.140026c70
mov rcx, rsi
mov rdx, rbx
call fcn.140025470
mov rcx, rbx
call fcn.140025440
mov rcx, rdi
call fcn.140025440
mov dil, 1
lea rcx, [rsp + 0x60]
call fcn.140041a20
mov rcx, qword [rsp + 0x2b8]
xor rcx, rsp
call fcn.140083c20
mov eax, edi
add rsp, 0x2c0
pop rbx
pop rdi
pop rsi
ret