Function at 0x140029c90
Capabilities:
Check if file exists
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov rax, qword [0x1400cb008]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov rsi, rdx
mov r15, rcx
mov edx, 0x104
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x140029cf7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.GetSystemDirectory_failed
call fcn.140002388
jmp 0x140029d0a
cmp eax, 0x104
jb 0x140029d0a
lea rcx, str.GetSystemDirectory:_path_is_longer_than_MAX_PATH
call fcn.140002a86
xor ebx, ebx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], 7
mov word [rsp + 0x60], bx
lea rax, [rbp - 0x60]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], bx
jne 0x140029d30
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.14000454d
nop
mov r8d, 0xc
lea rdx, str._version.dll
lea rcx, [rsp + 0x60]
call fcn.14000233d
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 7
mov word [rax], bx
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 8
cmovae rdx, qword [rsp + 0x40]
mov r8d, 1
lea rcx, [rsp + 0x38]
call fcn.1400030ee
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140029df3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029dee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a166
call fcn.140003b75
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x140029e48
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029e43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a16c
call fcn.140003b75
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], 7
mov word [rsp + 0x60], bx
lea rdx, str.GetFileVersionInfoSizeW
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x140029e97
lea rdx, str.GetFileVersionInfoSizeW
lea rcx, str.GetProcAddress:__s_is_missing
call fcn.140004610
lea rcx, str.GetFileVersionInfoSizeW_is_missing
call fcn.140002a86
lea rdx, str.GetFileVersionInfoW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
test rax, rax
jne 0x140029ece
lea rdx, str.GetFileVersionInfoW
lea rcx, str.GetProcAddress:__s_is_missing
call fcn.140004610
lea rcx, str.GetFileVersionInfoW_is_missing
call fcn.140002a86
lea rdx, str.VerQueryValueW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
test rax, rax
jne 0x140029f05
lea rdx, str.VerQueryValueW
lea rcx, str.GetProcAddress:__s_is_missing
call fcn.140004610
lea rcx, str.VerQueryValueW_is_missing
call fcn.140002a86
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140029f12
mov rcx, qword [rsi]
xor edx, edx
call rbx
mov r14d, eax
test eax, eax
jne 0x140029fb2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x14002a17e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x714
je 0x14002a17e
mov r8, rsi
lea rdx, str.GetFileVersionInfoSizeW_failed_on
lea rcx, [rbp - 0x80]
call fcn.140004999
mov rbx, rax
cmp qword [rax + 0x18], 8
jb 0x140029f61
mov rbx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call fcn.140002388
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x140029fb2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029fad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a172
call fcn.140003b75
mov rcx, r14
call fcn.14000274d
mov rbx, rax
mov qword [rsp + 0x30], rax
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140029fcf
mov rcx, qword [rsi]
mov r9, rbx
mov r8d, r14d
xor edx, edx
call r12
test eax, eax
jne 0x14002a04f
mov r8, rsi
lea rdx, str.GetFileVersionInfoW_failed_on
lea rcx, [rbp - 0x80]
call fcn.140004999
mov r14, rax
cmp qword [rax + 0x18], 8
jb 0x140029ffe
mov r14, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r14
call fcn.140002388
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x14002a04f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002a04a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a178
call fcn.140003b75
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x28]
lea rdx, [0x1400ae420]
mov rcx, rbx
call r13
test eax, eax
je 0x14002a08e
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14002a08e
cmp dword [rsp + 0x20], 0x34
jne 0x14002a08e
cmp dword [rax], 0xfeef04bd
je 0x14002a0f6
mov r8, rsi
lea rdx, str.VerQueryValueW_failed_on
lea rcx, [rbp - 0x80]
call fcn.140004999
nop
cmp qword [rax + 0x18], 8
jb 0x14002a0ac
mov rax, qword [rax]
mov rcx, rax
call fcn.140002a86
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x14002a0f1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002a0ec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a160
call fcn.140003b75
mov rax, qword [rsp + 0x28]
movups xmm0, xmmword [rax]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [r15 + 0x20], xmm0
mov eax, dword [rax + 0x30]
mov dword [r15 + 0x30], eax
test rbx, rbx
je 0x14002a124
mov rcx, rbx
call fcn.1400029a5
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, r15
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.1400029d2
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14000215d
nop
call fcn.14000215d
nop
call fcn.14000215d
int3
call fcn.14000215d
nop
call fcn.14000215d
nop
xor eax, eax
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x30]
call fcn.140028750
lea rdx, [0x1400c99e8]
lea rcx, [rsp + 0x30]
call fcn.140004a25
int3