Function at 0x14016f860
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x158], rbx
mov rax, qword [0x14044b080]
xor rax, rsp
mov qword [rbp + 8], rax
mov r13, r8
mov qword [rsp + 0x50], r8
mov esi, edx
mov dword [rsp + 0x60], edx
mov r14, rcx
xor r15d, r15d
mov dword [rsp + 0x68], r15d
mov qword [rbp], r15
lea rdx, [rbp]
call fcn.140170210
nop
mov rcx, qword [rbp]
cmp dword [rcx - 0x10], r15d
je 0x14016fbce
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14016fbce
test esi, esi
je 0x14016faa6
mov qword [rsp + 0x50], r15
mov rax, qword [rbp]
mov rcx, qword [rax - 0x18]
test rcx, rcx
je 0x14016f908
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14004487d.0]
mov rcx, rax
test rax, rax
jne 0x14016f923
call fcn.140039c50
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x14004487d.0]
mov rcx, rax
test rcx, rcx
je 0x14016fed5
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x14004487d.0]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov esi, 1
mov dword [rsp + 0x68], esi
mov r9, qword [r13]
mov eax, dword [r9 - 0x10]
mov rdx, qword [rbp]
mov dword [rsp + 0x20], eax
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.1400666a0
mov rdx, qword [rsp + 0x50]
lea rdi, [rdx - 0x18]
mov rbx, qword [r13]
sub rbx, 0x18
lea r12, [rsi - 2]
cmp rdi, rbx
je 0x14016f9d5
cmp dword [rbx + 0x10], 0
jl 0x14016f9c8
mov rax, qword [rbx]
cmp qword [rdi], rax
jne 0x14016f9c8
mov rcx, rdi
call fcn.14003c400
mov r15, rax
mov ecx, r12d
lock xadd dword [rbx + 0x10], ecx
sub ecx, esi
jg 0x14016f9bb
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x14004487d.0]
lea rax, [r15 + 0x18]
mov qword [r13], rax
xor r15d, r15d
jmp 0x14016f9d5
mov r8d, dword [rdx - 0x10]
mov rcx, r13
call fcn.14003beb0
nop
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14016f9f5
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
mov rax, qword [rax + 8]
call qword [case.0x14004487d.0]
xor edx, edx
lea r8d, [rdx + 0x68]
lea rcx, [rbp - 0x70]
call fcn.140222790
mov dword [rbp - 0x70], 0x68
mov dword [rbp - 0x34], 0x100
movdqa xmm0, xmmword [0x1403a9d30]
movdqa xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r12
lea rbx, [r14 + 0x28]
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov rdx, qword [r13]
mov ecx, esi
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
or eax, ecx
jge 0x14016fa52
xor edx, edx
mov rcx, r13
call fcn.14003b630
mov rdx, qword [r13]
mov qword [rsp + 0x48], rbx
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x8000020
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x14016fbc7
mov rcx, qword [r14 + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, 1
jmp 0x14016fe77
lea rax, str.ShowGUI_____CLOSE
mov qword [rsp + 0x30], rax
lea rax, [0x14031b830]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov r9d, 2
lea r8, [0x1404675c0]
lea edx, [r9 + 0x53]
lea rcx, str.d:jenkinsworkspacemainrel4_dellconsumermainrel4_dellconsumerplatform_vista_sharedjackbase.cpp
call fcn.140039f30
lea r8, str.__CLOSE
mov rdx, r13
lea rcx, [rsp + 0x70]
call fcn.140081cb0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [r13]
sub rbx, 0x18
mov r12, 0xffffffffffffffff
cmp rcx, rbx
je 0x14016fb5d
cmp dword [rbx + 0x10], 0
jl 0x14016fb50
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14016fb50
call fcn.14003c400
mov rdi, rax
mov ecx, r12d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14016fb46
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
mov rax, qword [r8 + 8]
call qword [case.0x14004487d.0]
lea rax, [rdi + 0x18]
mov qword [r13], rax
jmp 0x14016fb5d
mov r8d, dword [rdx - 0x10]
mov rcx, r13
call fcn.14003beb0
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14016fb83
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14004487d.0]
lea rax, [rsp + 0x58]
mov qword [rbp - 0x80], rax
mov rcx, qword [r13]
sub rcx, 0x18
call fcn.14003c400
add rax, 0x18
mov qword [rsp + 0x58], rax
mov rcx, qword [rbp]
add rcx, 0xffffffffffffffe8
call fcn.14003c400
add rax, 0x18
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x60]
call fcn.140170520
mov bl, 1
jmp 0x14016fe77
mov rcx, qword [r13]
mov rsi, 0xffffffffffffffff
cmp dword [rcx - 0x10], 0
jl 0x14016fe68
lea r12, str.JACKDO
mov rdx, r12
call fcn.140221480
test rax, rax
je 0x14016fe68
mov rbx, qword [r13]
sub rax, rbx
sar rax, 1
cmp eax, esi
je 0x14016fe68
mov r15, rsi
inc r15
cmp word [r12 + r15*2], 0
jne 0x14016fc10
test r15d, r15d
je 0x14016fe68
lea rax, str.JACK
mov r13, rsi
nop
inc r13
cmp word [rax + r13*2], 0
jne 0x14016fc30
mov qword [rsp + 0x58], r13
xor edx, edx
mov edi, edx
movsxd rax, dword [rbx - 0x10]
lea r14, [rbx + rax*2]
cmp rbx, r14
jae 0x14016fe63
xor r13d, r13d
nop dword [rax + rax]
mov rdx, r12
mov rcx, rbx
call fcn.140221480
test rax, rax
je 0x14016fc9a
movsxd rcx, r15d
lea rsi, [rcx + rcx]
nop word [rax + rax]
inc edi
lea rbx, [rax + rsi]
mov rdx, r12
mov rcx, rbx
call fcn.140221480
test rax, rax
jne 0x14016fc80
lea rsi, [rax - 1]
test rbx, rbx
je 0x14016fcae
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x14016fca2
jmp 0x14016fcb1
mov eax, r13d
inc eax
movsxd rcx, eax
lea rbx, [rbx + rcx*2]
cmp rbx, r14
jb 0x14016fc60
test edi, edi
mov r13, qword [rsp + 0x58]
jle 0x14016fe63
mov rbx, qword [rsp + 0x50]
mov rax, qword [rbx]
mov qword [rsp + 0x58], rax
movsxd r12, dword [rax - 0x10]
mov r14d, r13d
sub r14d, r15d
imul r14d, edi
add r14d, r12d
mov dword [rsp + 0x70], r14d
mov edx, r12d
cmp r14d, r12d
cmovg edx, r14d
test edx, edx
js 0x14016fee0
mov esi, 1
sub esi, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, edx
or eax, esi
jge 0x14016fd24
mov rcx, rbx
call fcn.14003b630
mov rsi, qword [rbx]
mov qword [rsp + 0x58], rsi
jmp 0x14016fd29
mov rsi, qword [rsp + 0x58]
mov rbx, rsi
lea rax, [rsi + r12*2]
mov qword [rbp - 0x80], rax
cmp rsi, rax
jae 0x14016fe38
nop dword [rax]
lea rdx, str.JACKDO
mov rcx, rbx
call fcn.140221480
mov rdi, rax
test rax, rax
je 0x14016fe06
movsxd rdx, r13d
movsxd rcx, r15d
lea rax, [rcx + rcx]
mov qword [rsp + 0x78], rax
lea r14, [rdx + rdx]
nop
mov rcx, rdi
sub rcx, rsi
sar rcx, 1
mov esi, r12d
sub esi, ecx
sub esi, r15d
movsxd r8, esi
add r8, r8
lea rdx, [rdi + rax]
lea rbx, [r14 + rdi]
je 0x14016fdab
test rbx, rbx
je 0x14016feeb
test rdx, rdx
je 0x14016feeb
mov rcx, rbx
call fcn.140222330
test r14, r14
je 0x14016fdcb
test rdi, rdi
je 0x14016ff06
mov r8, r14
lea rdx, str.JACK
mov rcx, rdi
call fcn.140222330
lea eax, [rsi + r13]
movsxd rcx, eax
xor eax, eax
mov word [rdi + rcx*2], ax
mov eax, r13d
sub eax, r15d
add r12d, eax
lea rdx, str.JACKDO
mov rcx, rbx
call fcn.140221480
mov rdi, rax
test rax, rax
mov rax, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x58]
jne 0x14016fd70
test rbx, rbx
je 0x14016fe1e
mov rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], 0
jne 0x14016fe12
jmp 0x14016fe20
xor eax, eax
inc eax
movsxd rcx, eax
lea rbx, [rbx + rcx*2]
cmp rbx, qword [rbp - 0x80]
jb 0x14016fd40
mov r14d, dword [rsp + 0x70]
test r14d, r14d
js 0x14016feca
mov r13, qword [rsp + 0x50]
mov rax, qword [r13]
cmp r14d, dword [rax - 0xc]
jg 0x14016feca
mov dword [rax - 0x10], r14d
movsxd rcx, r14d
mov rax, qword [r13]
xor edx, edx
mov word [rax + rcx*2], dx
jmp 0x14016fe68
mov r13, qword [rsp + 0x50]
mov r8, r13
mov edx, dword [rsp + 0x60]
call fcn.14016ff30
movzx ebx, al
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov rax, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14016fea0
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x14004487d.0]
movzx eax, bl
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.140202880
mov rbx, qword [rsp + 0x158]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.140039950
nop
mov ecx, 0x80004005
call fcn.140039950
nop
mov ecx, 0x80070057
call fcn.140039950
int3
call fcn.1402384dc
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.140238370
mov ecx, 0x80070057
call fcn.140039950
int3
call fcn.1402384dc
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.140238370
mov ecx, 0x80070057
call fcn.140039950
int3