Function at 0x14002d460
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov rax, qword [0x1400a8378]
xor rax, rsp
mov qword [rbp + 0x250], rax
movzx ebx, dl
mov r13, rcx
mov qword [rsp + 0x30], rcx
xor r15d, r15d
mov dword [rsp + 0x20], r15d
lea rcx, [rsp + 0x38]
call fcn.140029950
nop
mov qword [rbp - 0x78], r15
mov r12d, 7
mov qword [rbp - 0x70], r12
mov word [rsp + 0x78], r15w
mov dword [rsp + 0x20], 2
mov rdx, qword [rsp + 0x48]
add rdx, 0xc
lea rcx, [rsp + 0x78]
call fcn.14000ef40
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.14000b0b0
lea r8d, [r15 + 0xc]
lea rdx, str.ksolite.dll
lea rcx, [rsp + 0x78]
call fcn.14000b0b0
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x14002d56b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002d566
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de75
call fcn.140036990
test edi, edi
jne 0x14002de2e
movzx r9d, bl
lea r8, str.InstallRoot
lea rdx, str.SoftwareKingsoftOffice6.0Common
lea rcx, [rbp - 0x28]
call fcn.140027df0
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x14002d5d0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002d5cb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de7b
call fcn.140036990
movups xmm0, xmmword [rbp - 0x28]
movups xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [rbp - 0x18]
movups xmmword [rsp + 0x48], xmm1
movq rax, xmm1
test rax, rax
je 0x14002d609
lea rcx, [rsp + 0x38]
cmp qword [rbp - 0x10], 8
cmovae rcx, qword [rbp - 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14002d6e0
movzx r9d, bl
lea r8, str.LocationRoot
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionUninstallKingsoft_Office
lea rcx, [rbp - 0x28]
call fcn.140027df0
mov rbx, rax
lea rax, [rsp + 0x38]
cmp rax, rbx
je 0x14002d6a0
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x14002d673
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002d66e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de81
call fcn.140036990
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r12
mov word [rsp + 0x38], r15w
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsp + 0x48], xmm1
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], r12
mov word [rbx], r15w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x14002d6e0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002d6db
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de81
call fcn.140036990
cmp qword [rsp + 0x48], 0
je 0x14002d71c
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rcx, qword [rsp + 0x38]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14002d71c
mov r8d, 8
lea rdx, str.office6
lea rcx, [rsp + 0x38]
call fcn.14000b0b0
jmp 0x14002d736
mov qword [rsp + 0x48], r15
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rax, qword [rsp + 0x38]
mov word [rax], r15w
cmp qword [rsp + 0x48], 0
jne 0x14002de2e
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x40]
call fcn.140055870
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x50], r12
mov word [rbp - 0x68], r15w
mov qword [rbp + 0x28], r15
mov qword [rbp + 0x30], r12
mov word [rbp + 0x18], r15w
mov r8d, 0x104
lea rdx, [rbp + 0x40]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14002ddb5
lea rax, [rbp + 0x40]
mov rsi, 0xffffffffffffffff
mov r8, rsi
inc r8
cmp word [rax + r8*2], 0
jne 0x14002d795
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x68]
call fcn.14000b390
lea rdx, [rbp - 0x68]
mov r10, qword [rbp - 0x68]
mov r11, qword [rbp - 0x50]
cmp r11, 8
cmovae rdx, r10
mov r9, qword [rbp - 0x58]
test r9, r9
je 0x14002d7fb
lea rcx, [r9 - 1]
mov rax, rsi
cmp rcx, rsi
cmovb rax, rcx
lea r8, [rdx + rax*2]
cmp word [r8], 0x5c
je 0x14002d7f3
cmp r8, rdx
je 0x14002d7fb
sub r8, 2
cmp word [r8], 0x5c
jne 0x14002d7e3
sub r8, rdx
sar r8, 1
jmp 0x14002d7fe
mov r8, rsi
mov qword [rbp + 8], r15
mov qword [rbp + 0x10], r12
mov word [rbp - 8], r15w
cmp r9, r8
cmovb r8, r9
lea rdx, [rbp - 0x68]
cmp r11, 8
cmovae rdx, r10
lea rcx, [rbp - 8]
call fcn.14000b390
movups xmm0, xmmword [rbp - 8]
movups xmmword [rbp + 0x18], xmm0
movups xmm1, xmmword [rbp + 8]
movups xmmword [rbp + 0x28], xmm1
lea rdx, [rbp - 0x68]
mov r9, qword [rbp - 0x68]
mov r10, qword [rbp - 0x50]
cmp r10, 8
cmovae rdx, r9
mov r8, qword [rbp - 0x58]
test r8, r8
je 0x14002d887
lea rcx, [r8 - 1]
mov rax, rsi
cmp rcx, rsi
cmovb rax, rcx
lea rcx, [rdx + rax*2]
cmp word [rcx], 0x5c
je 0x14002d87f
nop dword [rax]
cmp rcx, rdx
je 0x14002d887
sub rcx, 2
cmp word [rcx], 0x5c
jne 0x14002d870
sub rcx, rdx
sar rcx, 1
jmp 0x14002d88a
mov rcx, rsi
inc rcx
mov qword [rsp + 0x70], r12
mov word [rsp + 0x58], r15w
cmp r8, rcx
jb 0x14002de87
sub r8, rcx
mov rdi, rsi
cmp r8, rsi
cmovb rdi, r8
lea rax, [rbp - 0x68]
cmp r10, 8
cmovae rax, r9
lea rax, [rax + rcx*2]
mov qword [rsp + 0x30], rax
movabs r14, 0x7ffffffffffffffe
cmp rdi, 7
ja 0x14002d903
mov qword [rsp + 0x68], rdi
lea rbx, [rdi + rdi]
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140055460
mov word [rsp + rbx + 0x58], r15w
mov r15, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x58]
jmp 0x14002d96d
cmp rdi, r14
ja 0x14002de8d
mov r15, rdi
or r15, 7
cmp r15, r14
jbe 0x14002d91d
mov r15, r14
jmp 0x14002d929
mov eax, 0xa
cmp r15, rax
cmovb r15, rax
lea rdx, [r15 + 1]
lea rcx, [rsp + 0x58]
call fcn.14000afb0
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], r15
lea rbx, [rdi + rdi]
mov r8, rbx
mov rdx, qword [rsp + 0x30]
mov rcx, rax
call fcn.140055460
mov rax, qword [rsp + 0x28]
xor ecx, ecx
mov word [rax + rbx], cx
mov qword [rsp + 0x58], rax
mov rbx, rax
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x14002d9ad
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002d9a8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de93
call fcn.140036990
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rbp - 0x68], xmm0
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [rbp - 0x58], xmm1
lea rdx, [rbp - 0x68]
cmp r15, 8
cmovae rdx, rbx
cmp rdi, 0xd
jne 0x14002ddb1
lea rcx, str.ksolaunch.exe
test rdi, rdi
je 0x14002da07
sub rdx, rcx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rcx]
cmp word [rcx + rdx], ax
jne 0x14002ddb1
add rcx, 2
sub rdi, 1
jne 0x14002d9f0
xor r15d, r15d
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], r12
mov word [rbp - 0x48], r15w
lea rax, [rbp + 0x40]
nop dword [rax + rax]
inc rsi
cmp word [rax + rsi*2], r15w
jne 0x14002da20
mov r8, rsi
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x48]
call fcn.14000b390
nop
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.1400277d0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14002da8a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002da84
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de99
call fcn.140036990
nop
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x70], r12
mov word [rsp + 0x78], r15w
mov dword [rsp + 0x20], 0x3c
mov rbx, qword [rbp + 8]
lea rdx, [rbx + 1]
lea rcx, [rsp + 0x78]
call fcn.14000ef40
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x10], 8
cmovae rdx, qword [rbp - 8]
mov r8, rbx
lea rcx, [rsp + 0x78]
call fcn.14000b0b0
mov r8d, 1
lea rdx, [0x14007dd14]
lea rcx, [rsp + 0x78]
call fcn.14000b0b0
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x18]
lea rcx, [rsp + 0x78]
call fcn.14000b0b0
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r12
mov word [rax], r15w
mov dword [rsp + 0x20], 0x7c
mov r8d, 8
lea rdx, str.office6
lea rcx, [rbp - 0x48]
call fcn.14000b0b0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r12
mov word [rax], r15w
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14002dba8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002dba3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de9f
call fcn.140036990
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], r12
mov word [rbp - 0x48], r15w
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x14002dbf6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002dbf1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002dea5
call fcn.140036990
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x70], r12
mov word [rsp + 0x78], r15w
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14002dd1f
lea r15, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae r15, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x50]
cmp rbx, rsi
ja 0x14002dc75
lea rdi, [rsp + 0x38]
cmp rsi, 8
cmovae rdi, qword [rsp + 0x38]
mov qword [rsp + 0x48], rbx
add rbx, rbx
mov r8, rbx
mov rdx, r15
mov rcx, rdi
call fcn.140055460
xor r15d, r15d
mov word [rbx + rdi], r15w
jmp 0x14002dd1f
cmp rbx, r14
ja 0x14002deab
mov rcx, rbx
or rcx, 7
cmp rcx, r14
ja 0x14002dca9
mov rdx, rsi
shr rdx, 1
mov rax, r14
sub rax, rdx
cmp rsi, rax
ja 0x14002dca9
lea rax, [rsi + rdx]
mov r14, rcx
cmp rcx, rax
cmovb r14, rax
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x38]
call fcn.14000afb0
mov rdi, rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], r14
add rbx, rbx
mov r8, rbx
mov rdx, r15
mov rcx, rax
call fcn.140055460
xor r15d, r15d
mov word [rbx + rdi], r15w
cmp rsi, 8
jb 0x14002dd1a
lea rdx, [rsi*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002dd15
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002deb1
call fcn.140036990
mov qword [rsp + 0x38], rdi
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x14002dd61
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002dd5c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002deb7
call fcn.140036990
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r12
mov word [rsp + 0x58], r15w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x14002ddb1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002ddac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002debd
call fcn.140036990
mov r12, qword [rbp + 0x30]
cmp r12, 8
jb 0x14002ddf2
lea rdx, [r12*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002ddec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002dec3
call fcn.140036990
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x14002de2e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002de29
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002de6f
call fcn.140036990
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [r13 + 0x10], xmm1
mov rax, r13
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.140036fa0
mov rbx, qword [rsp + 0x3b0]
add rsp, 0x360
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140059e3c
nop
call fcn.140059e3c
int3
call fcn.140059e3c
int3
call fcn.140059e3c
nop
call fcn.14000af90
int3
call fcn.14000af70
int3
call fcn.140059e3c
nop
call fcn.140059e3c
nop
call fcn.140059e3c
nop
call fcn.140059e3c
int3
call fcn.14000af70
int3
call fcn.140059e3c
nop
call fcn.140059e3c
nop
call fcn.140059e3c
nop
call fcn.140059e3c
int3