Function at 0x12857b80
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x148], rbx
mov rax, qword [0x12a52ee0]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov ebx, r8d
mov r15, rdx
mov rbp, rcx
xor r13d, r13d
mov r12d, r13d
mov dword [rsp + 0x44], r13d
lea esi, [r13 + 1]
cmp dword [0x129abce8], r13d
jne 0x12857be2
mov dword [0x129abce8], esi
call fcn.12821bb0
cmp dword [0x129abcec], r12d
je 0x12858144
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], r13
mov word [rsp + 0x98], r13w
mov rax, qword [rsp + 0xa8]
cmp rax, 0x104
jb 0x12857c34
or r8, 0xffffffffffffffff
mov edx, 0x104
lea rcx, [rsp + 0x90]
call fcn.128033a0
jmp 0x12857c4c
xor r8d, r8d
mov edx, 0x104
sub rdx, rax
lea rcx, [rsp + 0x90]
call fcn.12803b90
lea rcx, [rsp + 0x98]
cmp qword [rsp + 0xb0], 8
cmovae rcx, qword [rsp + 0x98]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edx, eax
lea rcx, [rsp + 0x90]
call fcn.1280d350
mov rdi, qword [rsp + 0xa8]
test rdi, rdi
je 0x12857db0
lea r14, str.WinSxS_
lea rax, [rsp + 0x98]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xb0]
cmp rdx, 8
cmovae rax, rcx
lea rsi, [rax + rdi*2]
test rsi, rsi
je 0x12857cef
lea rax, [rsp + 0x98]
cmp rdx, 8
cmovae rax, rcx
cmp rax, rsi
ja 0x12857cef
lea rax, [rsp + 0x98]
cmp rdx, 8
cmovae rax, rcx
lea rax, [rax + rdi*2]
cmp rsi, rax
jbe 0x12857d0c
call fcn.1295850c
mov rdx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x98]
lea rax, [rsp + 0x90]
cmp rax, 0xfffffffffffffffc
je 0x12857d4c
lea rax, [rsp + 0x98]
cmp rdx, 8
cmovae rax, rcx
cmp rsi, rax
ja 0x12857d4c
call fcn.1295850c
mov rdx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x98]
add rsi, 0xfffffffffffffffe
lea rax, [rsp + 0x90]
cmp rax, 0xfffffffffffffffc
je 0x12857d7c
lea rax, [rsp + 0x98]
cmp rdx, 8
cmovae rax, rcx
lea rax, [rax + rdi*2]
cmp rsi, rax
jb 0x12857d7c
call fcn.1295850c
lea rdx, [0x129cd6d2]
cmp word [rsi], 0x5c
cmovne rdx, r14
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x90]
call fcn.12803a10
mov esi, 1
mov dword [rsp + 0x58], 0x38
xor edx, edx
lea r8d, [rdx + 0x34]
lea rcx, [rsp + 0x5c]
call fcn.12959590
mov dword [rsp + 0x5c], 8
mov qword [rsp + 0x60], rbp
test ebx, ebx
jne 0x12857e03
mov ebx, 2
lea edx, [rbx + 0x2c]
mov rcx, rbp
call fcn.1295be94
test rax, rax
je 0x12857e03
lea rdx, [0x129cd6c8]
lea rcx, [rax + 2]
call fcn.1295a6e4
test eax, eax
cmove ebx, esi
movzx eax, bx
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x58]
call qword [0x129abcf0]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x1285810a
mov r12d, r13d
mov ebp, 0x888
mov qword [rsp + 0x48], r13
mov rcx, rbp
call fcn.1295bf44
mov rsi, rax
test rax, rax
je 0x128580f4
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rsi
mov r9d, 2
xor r8d, r8d
mov rdx, r14
xor ecx, ecx
call qword [0x129abd00]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x12857ec3
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x12857ec3
mov rbp, rcx
mov rcx, rsi
call fcn.1295bffc
mov rcx, rbp
call fcn.1295bf44
mov rsi, rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rsi
mov r9d, 2
xor r8d, r8d
mov rdx, r14
xor ecx, ecx
call qword [0x129abd00]
mov edi, eax
test edi, edi
je 0x128580f4
mov r13d, dword [rsi + 8]
inc r13d
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x44], 1
mov qword [rsp + 0xd8], 7
xor eax, eax
mov qword [rsp + 0xd0], rax
mov word [rsp + 0xc0], ax
cmp dword [rsp + 0x40], r13d
jae 0x128580bc
nop dword [rax + rax]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rsi
mov r9d, 3
lea r8, [rsp + 0x40]
mov rdx, r14
xor ecx, ecx
call qword [0x129abd00]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test edi, edi
jne 0x12857f94
mov rcx, rsi
call fcn.1295bffc
xor esi, esi
cmp ebx, 0x7a
jne 0x128580bc
mov rbp, qword [rsp + 0x48]
cmp rbp, 0x888
ja 0x128580bc
mov eax, r12d
cmp rbp, rax
cmova r12d, ebp
mov rcx, rbp
call fcn.1295bf44
mov rsi, rax
test rax, rax
je 0x128580bc
mov eax, dword [rsp + 0x40]
jmp 0x128580b3
cmp qword [rsi + 0x58], 0
je 0x128580a9
mov eax, dword [rsi + 0x3c]
test eax, eax
je 0x128580a9
mov r8, rax
shr r8, 1
mov rdx, qword [rsi + 0x58]
lea rcx, [rsp + 0xb8]
call fcn.12803dc0
mov rbx, qword [r15 + 0x28]
lea r9, [rsp + 0xb8]
mov r8, qword [rbx + 8]
mov rdx, rbx
mov rcx, r15
call fcn.128088b0
mov rdi, rax
mov edx, 1
mov rcx, r15
call fcn.12808040
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
mov rdx, qword [rsi + 0x48]
test rdx, rdx
je 0x12858050
mov eax, dword [rsi + 0xc]
test eax, eax
je 0x12858050
mov r8, rax
shr r8, 1
lea rcx, [rsp + 0xb8]
call fcn.12803dc0
mov rbx, qword [r15 + 0x28]
lea r9, [rsp + 0xb8]
mov r8, qword [rbx + 8]
mov rdx, rbx
mov rcx, r15
call fcn.128088b0
mov rdi, rax
mov edx, 1
mov rcx, r15
call fcn.12808040
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
mov rdx, qword [rsi + 0x50]
test rdx, rdx
je 0x128580a9
mov eax, dword [rsi + 0x1c]
test eax, eax
je 0x128580a9
mov r8, rax
shr r8, 1
lea rcx, [rsp + 0xb8]
call fcn.12803dc0
mov rbx, qword [r15 + 0x28]
lea r9, [rsp + 0xb8]
mov r8, qword [rbx + 8]
mov rdx, rbx
mov rcx, r15
call fcn.128088b0
mov rdi, rax
mov edx, 1
mov rcx, r15
call fcn.12808040
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp eax, r13d
jb 0x12857f10
cmp qword [rsp + 0xd8], 8
jb 0x128580d4
mov rcx, qword [rsp + 0xc0]
call fcn.12958250
mov qword [rsp + 0xd8], 7
xor r13d, r13d
mov qword [rsp + 0xd0], r13
mov word [rsp + 0xc0], r13w
mov rcx, rsi
call fcn.1295bffc
mov rcx, r14
call qword [0x129abcf8]
mov r12d, dword [rsp + 0x44]
cmp qword [rsp + 0xb0], 8
jb 0x12858122
mov rcx, qword [rsp + 0x98]
call fcn.12958250
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], r13
mov word [rsp + 0x98], r13w
mov eax, r12d
jmp 0x12858147
mov eax, r12d
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.12959850
mov rbx, qword [rsp + 0x148]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret