Function at 0x14005f550
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
mov rdi, rdx
mov ebx, ecx
mov rax, qword [0x1401c6028]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x64], ecx
mov eax, dword [0x1401d7f98]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14005fb9d
cmp ebx, 9
jne 0x14005f5c1
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140152280
mov rcx, rdi
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp fcn.14005e0c0
mov rsi, qword [0x1401d7f90]
movabs r15, 0xfffffffc00000000
and r15, rsi
cmp r15, qword [0x1401c8588]
jne 0x14005f5e6
mov rcx, rsi
call fcn.1400844a0
test rsi, rsi
je 0x14005fbe3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14005f605
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
movzx r10d, byte [rsi + 0x60]
movsxd rcx, ebx
test r10b, r10b
je 0x14005f699
mov dword [rsp + 0x68], ebx
mov r9, qword [rsi + 0x38]
test r9, r9
je 0x14005f7f3
mov rax, r9
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, r9
sub rax, rdx
movabs rdx, 0x3333333333333333
mov r8, rax
and r8, rdx
shr rax, 2
and rax, rdx
add rax, r8
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r11, 0x101010101010101
imul r11, rax
shr r11, 0x38
cmp r11, 1
ja 0x14005f714
lea r8, [r9 - 1]
and r8, rcx
jmp 0x14005f76b
mov r11, qword [rsi + 0x10]
test r11, r11
je 0x14005f616
mov rax, r11
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, r11
sub rax, rdx
movabs rdx, 0x3333333333333333
mov r8, rax
and r8, rdx
shr rax, 2
and rax, rdx
add rax, r8
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r14, 0x101010101010101
imul r14, rax
shr r14, 0x38
cmp r14, 1
ja 0x14005f735
lea r8, [r11 - 1]
and r8, rcx
jmp 0x14005faa1
mov r8, rcx
cmp r9, rcx
ja 0x14005f76b
mov rax, rcx
or rax, r9
shr rax, 0x20
je 0x14005f761
mov rax, rcx
xor edx, edx
div r9
mov r8, rdx
jmp 0x14005f76b
mov r8, rcx
cmp r11, rcx
ja 0x14005faa1
mov rax, rcx
or rax, r11
shr rax, 0x20
je 0x14005fa97
mov rax, rcx
xor edx, edx
div r11
mov r8, rdx
jmp 0x14005faa1
mov eax, ecx
xor edx, edx
div r9d
mov r8d, edx
mov rax, qword [rsi + 0x30]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14005f7f3
mov r14, qword [rax]
test r14, r14
je 0x14005f7f3
lea r12, [r9 - 1]
jmp 0x14005f7a2
cmp dword [r14 + 0x10], ebx
je 0x14005f951
mov r14, qword [r14]
test r14, r14
je 0x14005f7f3
mov rax, qword [r14 + 8]
cmp rax, rcx
je 0x14005f790
cmp r11d, 1
ja 0x14005f7c0
and rax, r12
cmp rax, r8
je 0x14005f79a
jmp 0x14005f7f3
cmp rax, r9
jb 0x14005f7e0
mov rdx, rax
or rdx, r9
shr rdx, 0x20
je 0x14005f7e7
xor edx, edx
div r9
mov rax, rdx
nop dword [rax]
cmp rax, r8
je 0x14005f79a
jmp 0x14005f7f3
xor edx, edx
div r9d
mov eax, edx
cmp rax, r8
je 0x14005f79a
mov r12, qword [rsi + 0x58]
mov r14b, 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r15, qword [0x1401c8588]
jne 0x14005f814
mov rcx, rsi
call fcn.1400845e0
mov bl, 1
test r14b, r14b
je 0x14005f934
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
test r12, r12
je 0x14005f921
mov ebx, dword [rsp + 0x64]
lea r14, [rsp + 0x40]
nop word cs:[rax + rax]
mov rax, qword [r12]
mov ecx, ebx
mov rdx, r14
call qword [0x1401b8a50]
test al, al
jne 0x14005f86d
mov r12, qword [r12 + 8]
test r12, r12
jne 0x14005f850
movzx eax, byte [rsp + 0x57]
test al, al
jns 0x14005f885
mov rax, qword [rsp + 0x48]
test rax, rax
jne 0x14005f891
jmp 0x14005f921
movzx eax, al
test rax, rax
je 0x14005f921
lea rbx, [rsp + 0x40]
mov rcx, rbx
call fcn.14007ac70
test al, al
je 0x14005f8e9
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x40]
call fcn.14005c8b0
cmp byte [rsp + 0x57], 0
jns 0x14005f8c2
mov rcx, qword [rsp + 0x40]
call fcn.140150da4
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rsp + 0x28]
movaps xmmword [rsp + 0x40], xmm0
movzx eax, byte [rsp + 0x57]
test al, al
jns 0x14005f8e4
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14005f921
cmp rbx, rdi
je 0x14005f9ee
cmp byte [rdi + 0x17], 0
movzx r8d, byte [rsp + 0x57]
js 0x14005f9c0
test r8b, r8b
js 0x14005f9dc
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rdi], xmm0
jmp 0x14005f9ee
xor ebx, ebx
cmp byte [rsp + 0x57], 0
jns 0x14005f934
mov rcx, qword [rsp + 0x40]
call fcn.140150da4
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140152280
mov eax, ebx
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
test r10b, r10b
jne 0x14005f988
lea rbx, [r14 + 0x18]
lea rcx, [rsi + 8]
lea r8, [rsp + 0x68]
mov qword [rsp + 0x28], r8
lea rdx, [rsp + 0x40]
lea r9, [rsp + 0x28]
call fcn.14005fc80
mov rcx, qword [rsp + 0x40]
add rcx, 0x18
mov rdx, rbx
call fcn.140078130
lea rdx, [r14 + 0x18]
cmp rdx, rdi
je 0x14005fb7e
cmp byte [rdi + 0x17], 0
movzx r8d, byte [r14 + 0x2f]
js 0x14005fb3b
test r8b, r8b
js 0x14005fb6e
mov rax, qword [rdx + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rdx]
movups xmmword [rdi], xmm0
jmp 0x14005fb7e
test r8b, r8b
cmovs r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
cmovns rdx, rbx
mov rcx, rdi
call fcn.1400512fe
jmp 0x14005f9ee
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rcx, rdi
call fcn.140051388
cmp r15, qword [0x1401c8588]
jne 0x14005f9ff
mov rcx, rsi
call fcn.1400844a0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14005fa15
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
cmp byte [rsi + 0x60], 0
je 0x14005fa40
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov bl, 1
cmp r15, qword [0x1401c8588]
jne 0x14005f923
mov rcx, rsi
call fcn.1400845e0
jmp 0x14005f923
lea rcx, [rsi + 8]
lea r8, [rsp + 0x64]
mov qword [rsp + 0x68], r8
lea rdx, [rsp + 0x28]
lea r9, [rsp + 0x68]
call fcn.14005fc80
mov rax, qword [rsp + 0x28]
lea rcx, [rax + 0x18]
cmp rcx, rbx
je 0x14005fa1b
cmp byte [rax + 0x2f], 0
movzx r8d, byte [rsp + 0x57]
js 0x14005fb52
test r8b, r8b
js 0x14005fb89
mov rax, qword [rsp + 0x50]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx], xmm0
jmp 0x14005fa1b
mov eax, ebx
xor edx, edx
div r11d
mov r8d, edx
mov rax, qword [rsi + 8]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14005f616
mov r9, qword [rax]
test r9, r9
je 0x14005f616
lea r12, [r11 - 1]
jmp 0x14005fae2
cmp dword [r9 + 0x10], ebx
je 0x14005fb2a
mov r9, qword [r9]
test r9, r9
je 0x14005f616
mov rax, qword [r9 + 8]
cmp rax, rcx
je 0x14005fad0
cmp r14d, 1
ja 0x14005faf6
and rax, r12
jmp 0x14005fb20
cmp rax, r11
jb 0x14005fb20
mov rdx, rax
or rdx, r11
shr rdx, 0x20
je 0x14005fb11
xor edx, edx
div r11
mov rax, rdx
jmp 0x14005fb20
xor edx, edx
div r11d
mov eax, edx
nop dword [rax + rax]
cmp rax, r8
je 0x14005fad6
jmp 0x14005f616
add r9, 0x18
mov rcx, rdi
mov rdx, r9
call fcn.140078130
jmp 0x14005fb7e
test r8b, r8b
jns 0x14005fb48
mov r8, qword [r14 + 0x20]
mov rdx, qword [r14 + 0x18]
mov rcx, rdi
call fcn.1400512fe
jmp 0x14005fb7e
test r8b, r8b
cmovs r8, qword [rsp + 0x48]
cmovs rbx, qword [rsp + 0x40]
mov rdx, rbx
call fcn.1400512fe
jmp 0x14005fa1b
mov rdx, qword [r14 + 0x18]
mov r8, qword [r14 + 0x20]
mov rcx, rdi
call fcn.140051388
xor r14d, r14d
xor r12d, r12d
jmp 0x14005f7fa
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
call fcn.140051388
jmp 0x14005fa1b
lea rcx, [0x1401d7f98]
call fcn.140150ec0
cmp dword [0x1401d7f98], 0xffffffff
jne 0x14005f59a
mov ecx, 0x68
call fcn.140150d68
mov rsi, rax
mov rcx, rax
call fcn.14005fbf0
mov qword [0x1401d7f90], rsi
lea rcx, [0x1401d7f98]
call fcn.140150f58
jmp 0x14005f59a
int3