Function at 0x140079910
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
mov rdi, rdx
mov ebx, ecx
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x6c], ecx
mov eax, dword [0x14021dbe8]
mov ecx, dword [0x14021ad00]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140079c11
cmp ebx, 9
je 0x140079cbf
mov rsi, qword [0x14021dbe0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140079cb2
cmp byte [rsi + 0x60], 0
jne 0x140079a62
mov r10, qword [rsi + 0x10]
test r10, r10
je 0x140079a62
movsxd rcx, ebx
mov rax, r10
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, r10
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
jbe 0x140079bf0
mov r8, rcx
cmp r10, rcx
ja 0x140079a14
mov rax, rcx
xor edx, edx
div r10
mov r8, rdx
mov rax, qword [rsi + 8]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x140079a62
mov r9, qword [rax]
test r9, r9
je 0x140079a62
lea r14, [r10 - 1]
mov rax, qword [r9 + 8]
cmp rax, rcx
jne 0x140079a42
cmp dword [r9 + 0x10], ebx
je 0x140079b13
jmp 0x140079a5a
cmp r11d, 1
jbe 0x140079c09
cmp rax, r10
jae 0x140079bfc
cmp rax, r8
jne 0x140079a62
mov r9, qword [r9]
test r9, r9
jne 0x140079a2d
lea r14, [rsp + 0x70]
mov dword [r14], ebx
lea rcx, [rsi + 0x30]
lea r15, [rsp + 0x50]
mov rdx, r15
mov r8, r14
call fcn.1400c7880
mov r15, qword [r15]
test r15, r15
jne 0x140079c57
mov rax, qword [rsi + 0x58]
mov r12, rax
btr r12, 0x3f
mov rcx, qword [0x14020e7a0]
and rcx, r12
cmp rcx, qword [0x14020e788]
sete cl
test cl, 1
cmove r12, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0x50]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [0x1401dfd10]
movaps xmmword [rcx], xmm0
call fcn.140070570
test r12, r12
je 0x140079b03
lea r15, [rsp + 0x50]
mov rax, qword [r12]
mov ecx, ebx
mov rdx, r15
call qword [case.0x140173f30.0]
test al, al
jne 0x140079b03
mov r12, qword [r12 + 8]
test r12, r12
jne 0x140079ae6
movzx eax, byte [rsp + 0x67]
test al, al
jns 0x140079b51
mov rax, qword [rsp + 0x58]
jmp 0x140079b54
add r9, 0x18
mov rcx, rdi
mov rdx, r9
call fcn.140070830
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov sil, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140113000
mov eax, esi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
and eax, 0x7f
test rax, rax
je 0x140079d38
lea rcx, [rsp + 0x50]
call fcn.140070f00
test al, al
jne 0x140079ce7
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.140070830
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140079d1f
cmp byte [rsi + 0x60], 0
jne 0x140079bd5
lea rcx, [rsi + 8]
lea r8, [rsp + 0x6c]
mov qword [rsp + 0x70], r8
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea r9, [0x1401e8b83]
lea rdi, [rsp + 0x38]
mov rdx, rdi
call fcn.1400c7990
mov rcx, qword [rdi]
add rcx, 0x18
lea rdx, [rsp + 0x50]
call fcn.140070830
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov sil, 1
lea rcx, [rsp + 0x50]
call fcn.140070820
jmp 0x140079b2e
lea r8, [r10 - 1]
and r8, rcx
jmp 0x140079a14
xor edx, edx
div r10
mov rax, rdx
jmp 0x140079a55
and rax, r14
jmp 0x140079a55
lea rcx, [0x14021dbe8]
call fcn.140111b40
cmp dword [0x14021dbe8], 0xffffffff
jne 0x140079960
mov ecx, 0x68
call fcn.1401119e0
mov rsi, rax
mov rcx, rax
call fcn.1400c7800
mov qword [0x14021dbe0], rsi
lea rcx, [0x14021dbe8]
call fcn.140111bd8
jmp 0x140079960
cmp byte [rsi + 0x60], 0
jne 0x140079ca3
lea rbx, [r15 + 0x18]
lea rcx, [rsi + 8]
lea rax, [rsp + 0x38]
mov qword [rax], r14
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
lea r9, [0x1401e8b83]
lea r12, [rsp + 0x50]
mov rdx, r12
mov r8, r14
call fcn.1400c7990
mov rcx, qword [r12]
add rcx, 0x18
mov rdx, rbx
call fcn.140070830
add r15, 0x18
mov rcx, rdi
mov rdx, r15
jmp 0x140079b1d
mov rcx, rsi
call fcn.140081a40
jmp 0x140079981
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140113000
mov rcx, rdi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp fcn.1400ca7c0
lea rbx, [rsp + 0x38]
lea r15, [rsp + 0x50]
mov rcx, rbx
mov rdx, r15
call fcn.1400c9ec0
mov rcx, r15
mov rdx, rbx
call fcn.140070920
mov rcx, rbx
call fcn.140070820
movzx eax, byte [r15 + 0x17]
test al, al
jns 0x140079d2c
mov rax, qword [rsp + 0x58]
jmp 0x140079d2f
mov rcx, rsi
call fcn.140081a40
jmp 0x140079b8d
and eax, 0x7f
test rax, rax
jne 0x140079b6f
xor esi, esi
jmp 0x140079be1