Function at 0x140029110
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 [0x140075238]
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.1400271e0
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.14000efa0
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.14000b0e0
lea r8d, [r15 + 0xc]
lea rdx, str.ksolite.dll
lea rcx, [rsp + 0x78]
call fcn.14000b0e0
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 0x14002921b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029216
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b25
call fcn.14002cf0c
test edi, edi
jne 0x140029ade
movzx r9d, bl
lea r8, str.InstallRoot
lea rdx, str.SoftwareKingsoftOffice6.0Common
lea rcx, [rbp - 0x28]
call fcn.140025dc0
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x140029280
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002927b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b2b
call fcn.14002cf0c
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 0x1400292b9
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 0x140029390
movzx r9d, bl
lea r8, str.LocationRoot
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionUninstallKingsoft_Office
lea rcx, [rbp - 0x28]
call fcn.140025dc0
mov rbx, rax
lea rax, [rsp + 0x38]
cmp rax, rbx
je 0x140029350
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x140029323
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002931e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b31
call fcn.14002cf0c
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 0x140029390
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002938b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b31
call fcn.14002cf0c
cmp qword [rsp + 0x48], 0
je 0x1400293cc
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 0x1400293cc
mov r8d, 8
lea rdx, str.office6
lea rcx, [rsp + 0x38]
call fcn.14000b0e0
jmp 0x1400293e6
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 0x140029ade
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x40]
call fcn.14002f630
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 0x140029a65
lea rax, [rbp + 0x40]
mov rsi, 0xffffffffffffffff
mov r8, rsi
inc r8
cmp word [rax + r8*2], 0
jne 0x140029445
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x68]
call fcn.14000b3c0
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 0x1400294ab
lea rcx, [r9 - 1]
mov rax, rsi
cmp rcx, rsi
cmovb rax, rcx
lea r8, [rdx + rax*2]
cmp word [r8], 0x5c
je 0x1400294a3
cmp r8, rdx
je 0x1400294ab
sub r8, 2
cmp word [r8], 0x5c
jne 0x140029493
sub r8, rdx
sar r8, 1
jmp 0x1400294ae
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.14000b3c0
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 0x140029537
lea rcx, [r8 - 1]
mov rax, rsi
cmp rcx, rsi
cmovb rax, rcx
lea rcx, [rdx + rax*2]
cmp word [rcx], 0x5c
je 0x14002952f
nop dword [rax]
cmp rcx, rdx
je 0x140029537
sub rcx, 2
cmp word [rcx], 0x5c
jne 0x140029520
sub rcx, rdx
sar rcx, 1
jmp 0x14002953a
mov rcx, rsi
inc rcx
mov qword [rsp + 0x70], r12
mov word [rsp + 0x58], r15w
cmp r8, rcx
jb 0x140029b37
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 0x1400295b3
mov qword [rsp + 0x68], rdi
lea rbx, [rdi + rdi]
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.14002f220
mov word [rsp + rbx + 0x58], r15w
mov r15, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x58]
jmp 0x14002961d
cmp rdi, r14
ja 0x140029b3d
mov r15, rdi
or r15, 7
cmp r15, r14
jbe 0x1400295cd
mov r15, r14
jmp 0x1400295d9
mov eax, 0xa
cmp r15, rax
cmovb r15, rax
lea rdx, [r15 + 1]
lea rcx, [rsp + 0x58]
call fcn.14000afe0
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.14002f220
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 0x14002965d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029658
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b43
call fcn.14002cf0c
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 0x140029a61
lea rcx, str.ksolaunch.exe
test rdi, rdi
je 0x1400296b7
sub rdx, rcx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rcx]
cmp word [rcx + rdx], ax
jne 0x140029a61
add rcx, 2
sub rdi, 1
jne 0x1400296a0
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 0x1400296d0
mov r8, rsi
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x48]
call fcn.14000b3c0
nop
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.1400258a0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14002973a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029734
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b49
call fcn.14002cf0c
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.14000efa0
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x10], 8
cmovae rdx, qword [rbp - 8]
mov r8, rbx
lea rcx, [rsp + 0x78]
call fcn.14000b0e0
mov r8d, 1
lea rdx, [0x140054bf4]
lea rcx, [rsp + 0x78]
call fcn.14000b0e0
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.14000b0e0
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.14000b0e0
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 0x140029858
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029853
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b4f
call fcn.14002cf0c
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], r12
mov word [rbp - 0x48], r15w
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x1400298a6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400298a1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b55
call fcn.14002cf0c
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 0x1400299cf
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 0x140029925
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.14002f220
xor r15d, r15d
mov word [rbx + rdi], r15w
jmp 0x1400299cf
cmp rbx, r14
ja 0x140029b5b
mov rcx, rbx
or rcx, 7
cmp rcx, r14
ja 0x140029959
mov rdx, rsi
shr rdx, 1
mov rax, r14
sub rax, rdx
cmp rsi, rax
ja 0x140029959
lea rax, [rsi + rdx]
mov r14, rcx
cmp rcx, rax
cmovb r14, rax
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x38]
call fcn.14000afe0
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.14002f220
xor r15d, r15d
mov word [rbx + rdi], r15w
cmp rsi, 8
jb 0x1400299ca
lea rdx, [rsi*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400299c5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b61
call fcn.14002cf0c
mov qword [rsp + 0x38], rdi
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x140029a11
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029a0c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b67
call fcn.14002cf0c
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r12
mov word [rsp + 0x58], r15w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140029a61
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029a5c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b6d
call fcn.14002cf0c
mov r12, qword [rbp + 0x30]
cmp r12, 8
jb 0x140029aa2
lea rdx, [r12*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029a9c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b73
call fcn.14002cf0c
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140029ade
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029ad9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140029b1f
call fcn.14002cf0c
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.14002d580
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.14003350c
nop
call fcn.14003350c
int3
call fcn.14003350c
int3
call fcn.14003350c
nop
call fcn.14000afc0
int3
call fcn.14000afa0
int3
call fcn.14003350c
nop
call fcn.14003350c
nop
call fcn.14003350c
nop
call fcn.14003350c
int3
call fcn.14000afa0
int3
call fcn.14003350c
nop
call fcn.14003350c
nop
call fcn.14003350c
nop
call fcn.14003350c
int3