Function at 0x1400655e0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0xf0], xmm6
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x14029a038]
xor rax, rsp
mov qword [rsp + 0xe8], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, 0x451
mov edx, 1
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov r14, rax
cmp qword [rsi + 0xa0], rax
je 0x140065686
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi + 0xa0]
inc rax
cmp rax, 2
jae 0x140065ab0
mov rax, r14
inc rax
cmp rax, 2
jb 0x140065677
mov qword [rsi + 0xa0], r14
call fcn.140105b90
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsi + 0xa0]
inc r14
cmp r14, 2
jb 0x140065ad1
lea rcx, [rsi + 0x10]
mov edx, 1
call fcn.1400571e0
test al, al
je 0x140065ad1
mov rax, qword [rsi + 0xa0]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x140065ad1
xorps xmm7, xmm7
movups xmmword [rsp + 0x28], xmm7
mov qword [rsp + 0x20], 8
xor ebp, ebp
lea r9, [rsp + 0xa8]
mov r8d, 0x20002
xor edx, edx
call qword [sym.imp.KERNEL32.dll_UpdateProcThreadAttribute]
test eax, eax
je 0x140065a7a
movaps xmm6, xmmword [0x140270690]
lea r14, [rsp + 0x50]
movaps xmmword [r14 + 0x40], xmm6
movaps xmmword [r14 + 0x30], xmm6
movaps xmmword [r14 + 0x20], xmm6
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
mov rcx, r14
mov rdx, rdi
call fcn.140065d40
movzx eax, byte [rbx + 0x17]
mov ecx, eax
and ecx, 0x7f
test al, al
mov rax, qword [rbx]
cmovns rax, rbx
lea rdi, [rsp + 0xc0]
mov qword [rdi], rax
cmovs rcx, qword [rbx + 8]
mov qword [rdi + 8], rcx
lea rax, str.database
lea rbx, [rsp + 0x38]
mov qword [rbx], rax
mov qword [rbx + 8], 8
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14002bff0
mov rcx, rbx
mov rdx, rsi
call fcn.140169840
movzx eax, byte [rbx + 0x17]
mov edx, eax
and edx, 0x7f
test al, al
mov rcx, qword [rbx]
cmovs rdx, qword [rbx + 8]
cmovns rcx, rbx
movaps xmmword [rdi], xmm7
mov qword [rdi + 0x10], 0
mov r8, rdi
call fcn.140143000
movzx eax, byte [rdi + 0x17]
mov ecx, eax
and ecx, 0x7f
test al, al
mov rax, qword [rdi]
cmovns rax, rdi
lea r8, [rsp + 0xd8]
mov qword [r8], rax
cmovs rcx, qword [rdi + 8]
mov qword [r8 + 8], rcx
lea rax, str.exception_pointers
lea rdx, [rsp + 0xb0]
mov qword [rdx], rax
mov qword [rdx + 8], 0x12
mov rcx, r14
call fcn.14002bff0
cmp byte [rdi + 0x17], 0
jns 0x140065803
mov rcx, qword [rsp + 0xc0]
call fcn.14017b254
cmp byte [rsp + 0x4f], 0
js 0x140065ada
mov edx, dword [rsi + 0xa0]
mov rcx, rbx
call fcn.140169740
movzx eax, byte [rsp + 0x4f]
mov edx, eax
and edx, 0x7f
test al, al
cmovs rbx, qword [rsp + 0x38]
cmovs rdx, qword [rsp + 0x40]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0xd0], 0
mov rcx, rbx
mov r8, rdi
call fcn.140143000
movzx eax, byte [rsp + 0xd7]
mov ecx, eax
and ecx, 0x7f
test al, al
mov rax, qword [rsp + 0xc0]
cmovns rax, rdi
lea r8, [rsp + 0xd8]
mov qword [r8], rax
cmovs rcx, qword [rsp + 0xc8]
mov qword [r8 + 8], rcx
lea rax, [0x140281bf3]
lea rdx, [rsp + 0xb0]
mov qword [rdx], rax
mov qword [rdx + 8], 7
lea rcx, [rsp + 0x50]
call fcn.14002bff0
cmp byte [rsp + 0xd7], 0
jns 0x1400658c4
mov rcx, qword [rsp + 0xc0]
call fcn.14017b254
cmp byte [rsp + 0x4f], 0
js 0x140065ae9
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xd0], rax
movaps xmmword [rsp + 0xc0], xmm6
lea rcx, [rsp + 0x50]
mov rdx, rdi
call fcn.140023500
lea rdx, str.___thread
mov r8d, 0xa
mov rcx, rdi
call fcn.140017700
movzx eax, byte [rsp + 0xd7]
mov r12d, eax
and r12d, 0x7f
test al, al
cmovs rdi, qword [rsp + 0xc0]
cmovs r12, qword [rsp + 0xc8]
lea rbx, [rsi + 0x88]
mov r14, qword [rsi + 0x88]
mov rax, qword [rsi + 0x98]
mov rcx, rax
sub rcx, r14
sar rcx, 1
cmp r12, rcx
jbe 0x140065af8
test r14, r14
jne 0x140065b93
test r12, r12
js 0x140065ad5
cmp rax, r12
mov rcx, r12
cmova rcx, rax
movabs rdx, 0x7ffffffffffffffe
lea r15, [rdx + 1]
cmp rax, rdx
cmovb r15, rcx
test r15, r15
js 0x140065ad5
lea rcx, [r15 + r15]
call fcn.14017b1d8
mov r14, rax
mov qword [rsi + 0x88], rax
mov qword [rsi + 0x90], rax
lea rax, [rax + r15*2]
mov qword [rsi + 0x98], rax
add r12, r12
xor eax, eax
mov rcx, r14
add rcx, rax
je 0x140065b67
movzx edx, word [rdi + rax]
mov word [rcx], dx
add rax, 2
cmp r12, rax
jne 0x1400659b9
add r14, rax
mov qword [rsi + 0x90], r14
mov word [rsp + 0x38], 0
mov rax, qword [rbx]
sub r14, rax
cmp r14, 0xffffffffffffffbf
ja 0x140065bb7
lea r8, [rsp + 0x38]
mov edx, 0x20
mov rcx, rbx
call fcn.140065be0
cmp byte [rsp + 0xd7], 0
jns 0x140065a1f
mov rcx, qword [rsp + 0xc0]
call fcn.14017b254
lea rsi, [rsp + 0x80]
mov rdx, qword [rsi + 8]
mov rcx, rsi
call fcn.140033910
mov rsi, qword [rsi - 0x18]
test rsi, rsi
je 0x140065a77
mov rax, qword [rsp + 0x70]
mov rcx, rsi
cmp rax, rsi
je 0x140065a6d
lea rdi, [rax - 0x18]
cmp byte [rax - 1], 0
js 0x140065a5d
mov rax, rdi
cmp rdi, rsi
jne 0x140065a49
jmp 0x140065a68
mov rcx, qword [rax - 0x18]
call fcn.14017b254
jmp 0x140065a53
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x70], rsi
call fcn.14017b254
mov bpl, 1
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.14017e7b0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140105b90
mov rcx, qword [rsi + 0xa0]
call fcn.1401651a0
mov qword [rsi + 0xa0], 0
jmp 0x14006565f
xor ebp, ebp
jmp 0x140065a7a
call fcn.14017b5a8
mov rcx, qword [rsp + 0x38]
call fcn.14017b254
jmp 0x14006580e
mov rcx, qword [rsp + 0x38]
call fcn.14017b254
jmp 0x1400658cf
lea r15, [rdi + r12*2]
mov r13, qword [rsi + 0x90]
sub r13, r14
mov rbp, r13
sar rbp, 1
and r13, 0xfffffffffffffffe
add r13, rdi
cmp r12, rbp
cmova r15, r13
sub r15, rdi
je 0x140065b2d
mov rcx, r14
mov rdx, rdi
mov r8, r15
call fcn.140180220
cmp r12, rbp
jbe 0x140065bca
mov r14, qword [rsi + 0x90]
add r12, r12
add rbp, rbp
sub r12, rbp
xor eax, eax
mov rcx, r14
add rcx, rax
je 0x140065b67
movzx edx, word [r13 + rax]
mov word [rcx], dx
add rax, 2
cmp r12, rax
jne 0x140065b48
jmp 0x1400659d5
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.1401bdbc0
mov qword [rsi + 0x90], r14
mov rcx, r14
call fcn.14017b254
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
xor eax, eax
jmp 0x14006595e
add rax, r14
add rax, 0x40
mov qword [rsi + 0x90], rax
jmp 0x140065a08
add r14, r15
jmp 0x1400659d8