Function at 0x140041e30
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rdi, rdx
mov ebx, ecx
mov rax, qword [0x1401f6040]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x5c], ecx
mov eax, dword [0x140208380]
mov ecx, dword [0x1402053a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140042167
cmp ebx, 9
je 0x140042350
mov rsi, qword [0x140208378]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400421f3
mov r9b, byte [rsi + 0x60]
movsxd rcx, ebx
cmp r9b, 1
je 0x140041ffd
mov r10, qword [rsi + 0x10]
test r10, r10
je 0x140041ffd
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 0x140041fb6
mov r8, rcx
cmp r10, rcx
ja 0x140041f30
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 0x140041ffd
mov r14, qword [rax]
test r14, r14
je 0x140041ffd
lea r15, [r10 - 1]
mov rax, qword [r14 + 8]
cmp rax, rcx
jne 0x140041fd9
cmp dword [r14 + 0x10], ebx
jne 0x140041ff1
lea rdx, [r14 + 0x18]
cmp rdx, rdi
je 0x140041f8f
cmp byte [rdi + 0x17], 0
movzx r8d, byte [r14 + 0x2f]
js 0x14004220a
test r8b, r8b
js 0x140041fc2
mov rax, qword [rdx + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rdx]
movups xmmword [rdi], xmm0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov sil, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400d4e20
mov eax, esi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
lea r8, [r10 - 1]
and r8, rcx
jmp 0x140041f30
mov rdx, qword [r14 + 0x18]
mov r8, qword [r14 + 0x20]
mov rcx, rdi
call fcn.140012f20
jmp 0x140041f8f
and rax, r15
jmp 0x140041fec
cmp r11d, 1
jbe 0x140041fd4
cmp rax, r10
jb 0x140041fec
xor edx, edx
div r10
mov rax, rdx
cmp rax, r8
jne 0x140041ffd
mov r14, qword [r14]
test r14, r14
jne 0x140041f51
mov dword [rsp + 0x60], ebx
mov r10, qword [rsi + 0x38]
test r10, r10
jne 0x140042224
mov r15, qword [rsi + 0x58]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
test r15, r15
je 0x140042065
lea r14, [rsp + 0x40]
mov rax, qword [r15]
mov ecx, ebx
mov rdx, r14
call qword [0x1401e8220]
test al, al
jne 0x140042051
mov r15, qword [r15 + 8]
test r15, r15
jne 0x140042036
mov al, byte [rsp + 0x57]
test al, al
js 0x140042200
movzx eax, al
test rax, rax
jne 0x140042095
xor esi, esi
cmp byte [rsp + 0x57], 0
jns 0x140041f9b
mov rcx, qword [rsp + 0x40]
call fcn.1400d2b80
jmp 0x140041f9b
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov rcx, rdi
call fcn.140012f20
jmp 0x1400420d5
lea rbx, [rsp + 0x40]
mov rcx, rbx
call fcn.1400c7f80
test al, al
jne 0x14004237d
cmp rbx, rdi
je 0x1400420d5
cmp byte [rdi + 0x17], 0
movzx r8d, byte [rsp + 0x57]
js 0x1400423e8
test r8b, r8b
js 0x140042081
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rdi], xmm0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140042370
cmp byte [rsi + 0x60], 0
jne 0x140042145
lea rcx, [rsi + 8]
lea r8, [rsp + 0x5c]
lea r9, [rsp + 0x60]
mov qword [r9], r8
lea rdi, [rsp + 0x28]
mov rdx, rdi
call fcn.140042420
mov rax, qword [rdi]
test rax, rax
je 0x14004234e
lea rcx, [rax + 0x18]
cmp rcx, rbx
je 0x140042145
cmp byte [rax + 0x2f], 0
movzx r8d, byte [rsp + 0x57]
js 0x1400423cc
test r8b, r8b
js 0x140042156
mov rax, qword [rsp + 0x50]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx], xmm0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov sil, 1
jmp 0x140042067
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
call fcn.140012f20
jmp 0x140042145
lea rcx, [0x140208380]
call fcn.1400d2c50
cmp dword [0x140208380], 0xffffffff
jne 0x140041e78
mov ecx, 0x68
call fcn.1400d2b88
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
mov qword [rax + 0x20], 0
mov eax, 0x3f800000
mov dword [rsi + 0x28], eax
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x40], xmm0
mov dword [rsi + 0x50], eax
mov byte [rsi + 0x60], 0
lea r14, [0x1401f8600]
movabs rax, 0xfffffffc00000000
and rax, r14
cmp rax, qword [0x1401f8688]
je 0x140042407
mov qword [rsi + 0x58], r14
mov qword [0x140208378], rsi
lea rcx, [0x140208380]
call fcn.1400d2be4
jmp 0x140041e78
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x140041e99
mov rax, qword [rsp + 0x48]
jmp 0x140042060
test r8b, r8b
jns 0x140042217
mov r8, qword [r14 + 0x20]
mov rdx, qword [r14 + 0x18]
mov rcx, rdi
call fcn.14012b050
jmp 0x140041f8f
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 0x14004229b
mov r8, rcx
cmp r10, rcx
ja 0x1400422a2
mov rax, rcx
xor edx, edx
div r10
mov r8, rdx
jmp 0x1400422a2
lea r8, [r10 - 1]
and r8, rcx
mov rax, qword [rsi + 0x30]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14004200e
mov r14, qword [rax]
test r14, r14
je 0x14004200e
lea r15, [r10 - 1]
jmp 0x1400422d7
cmp dword [r14 + 0x10], ebx
je 0x140042302
mov r14, qword [r14]
test r14, r14
je 0x14004200e
mov rax, qword [r14 + 8]
cmp rax, rcx
je 0x1400422c5
cmp r11d, 1
ja 0x1400422f3
and rax, r15
cmp rax, r8
je 0x1400422cb
jmp 0x14004200e
cmp rax, r10
jb 0x1400422e9
xor edx, edx
div r10
mov rax, rdx
jmp 0x1400422e9
test r9b, r9b
jne 0x14004233a
lea rcx, [rsi + 8]
lea r8, [rsp + 0x60]
lea r9, [rsp + 0x28]
mov qword [r9], r8
lea rbx, [rsp + 0x40]
mov rdx, rbx
call fcn.140042420
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004234e
lea rdx, [r14 + 0x18]
add rcx, 0x18
call fcn.140018620
add r14, 0x18
mov rcx, rdi
mov rdx, r14
call fcn.140018620
jmp 0x140041f8f
ud2
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400d4e20
mov rcx, rdi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp fcn.14012fde0
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x1400420e6
lea r14, [rsp + 0x28]
lea r15, [rsp + 0x40]
mov rcx, r14
mov rdx, r15
call fcn.14012edc0
mov rcx, r15
mov rdx, r14
call fcn.14004e500
cmp byte [r14 + 0x17], 0
jns 0x1400423ae
mov rcx, qword [rsp + 0x28]
call fcn.1400d2b80
movsx rax, byte [rsp + 0x57]
test rax, rax
jns 0x1400423be
mov rax, qword [rsp + 0x48]
test rax, rax
jne 0x1400420aa
jmp 0x140042065
test r8b, r8b
cmovs r8, qword [rsp + 0x48]
cmovs rbx, qword [rsp + 0x40]
mov rdx, rbx
call fcn.14012b050
jmp 0x140042145
test r8b, r8b
cmovs r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
cmovns rdx, rbx
mov rcx, rdi
call fcn.14012b050
jmp 0x1400420d5
lea rcx, [0x1401f8600]
call fcn.14007c0e0
jmp 0x1400421d7