Function at 0x14002a980
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
movaps xmmword [rsp + 0x110], xmm6
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140260028]
xor rax, rsp
mov qword [rsp + 0x108], 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 0x14002aa1e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi + 0xa0]
inc rax
cmp rax, 2
jae 0x14002ad43
mov rax, r14
inc rax
cmp rax, 2
jb 0x14002aa0f
mov qword [rsi + 0xa0], r14
call fcn.1400bbc10
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsi + 0xa0]
inc r14
cmp r14, 2
jb 0x14002af74
lea rcx, [rsi + 0x10]
mov edx, 1
call fcn.14003f4b0
test al, al
je 0x14002af74
mov rax, qword [rsi + 0xa0]
mov qword [rsp + 0xf0], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x14002af74
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], 8
xor ebp, ebp
lea r9, [rsp + 0xf0]
mov r8d, 0x20002
xor edx, edx
call qword [sym.imp.KERNEL32.dll_UpdateProcThreadAttribute]
test eax, eax
je 0x14002ae66
movaps xmm6, xmmword [0x14022cb50]
lea rcx, [rsp + 0xa0]
movaps xmmword [rcx + 0x40], xmm6
movaps xmmword [rcx + 0x30], xmm6
movaps xmmword [rcx + 0x20], xmm6
movaps xmmword [rcx + 0x10], xmm6
movaps xmmword [rcx], xmm6
mov rdx, rbx
call fcn.14002b190
movsx rax, byte [rdi + 0x17]
test rax, rax
jns 0x14002aacc
mov rax, qword [rdi + 8]
mov rdi, qword [rdi]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rax
test rax, rax
js 0x14002af2e
sete al
test rdi, rdi
setne cl
or cl, al
je 0x14002af2e
lea rax, str.database
lea rdx, [rsp + 0xf8]
mov qword [rdx], rax
mov qword [rdx + 8], 8
lea rcx, [rsp + 0xa0]
lea rdi, [rsp + 0x70]
mov r8, rdi
call fcn.140028790
mov rcx, rdi
mov rdx, rsi
call fcn.14012ea90
movsx rax, byte [rdi + 0x17]
test rax, rax
jns 0x14002ab3e
mov rax, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x98], rax
test rax, rax
js 0x14002af2e
sete al
test rdi, rdi
setne cl
or cl, al
je 0x14002af2e
lea rax, str.exception_pointers
lea rdx, [rsp + 0x60]
mov qword [rdx], rax
mov qword [rdx + 8], 0x12
lea rcx, [rsp + 0xa0]
lea r8, [rsp + 0x90]
call fcn.14002afb0
cmp byte [rsp + 0x87], 0
js 0x14002af83
mov edx, dword [rsi + 0xa0]
lea rdi, [rsp + 0x70]
mov rcx, rdi
call fcn.1400be930
movsx rax, byte [rdi + 0x17]
test rax, rax
jns 0x14002abc9
mov rax, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rax
test rax, rax
js 0x14002af2e
sete al
test rdi, rdi
setne cl
or cl, al
je 0x14002af2e
lea rax, [0x1402465ff]
lea rdx, [rsp + 0x40]
mov qword [rdx], rax
mov qword [rdx + 8], 7
lea rcx, [rsp + 0xa0]
lea r8, [rsp + 0x50]
call fcn.14002afb0
cmp byte [rsp + 0x87], 0
js 0x14002af92
movabs r12, 0x7fffffffffffffff
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x70]
mov qword [rdi + 0x10], rax
movaps xmmword [rdi], xmm6
lea rcx, [rsp + 0xa0]
mov rdx, rdi
call fcn.14002b500
movsx r9, byte [rdi + 0x17]
test r9, r9
jns 0x14002acf0
mov rdx, qword [rsp + 0x80]
and rdx, r12
dec rdx
mov r9, qword [rsp + 0x78]
mov rax, rdx
sub rax, r9
cmp rax, 0xa
jb 0x14002acff
mov rdi, qword [rsp + 0x70]
lea rax, [rdi + r9*2]
lea rcx, [rdi + r9*2]
add rcx, 0x14
lea rdx, str.___thread
cmp rax, rdx
seta r8b
cmp rcx, rdx
setbe cl
or cl, r8b
je 0x14002af2e
movups xmm0, xmmword [str.___thread]
movups xmmword [rax], xmm0
mov dword [rax + 0x10], 0x3d0064
lea rax, [r9 + 0xa]
cmp byte [rsp + 0x87], 0
jns 0x14002ad38
mov qword [rsp + 0x78], rax
mov word [rdi + r9*2 + 0x14], 0
movsx rbp, byte [rsp + 0x87]
test rbp, rbp
js 0x14002ad64
lea r14, [rsp + 0x70]
jmp 0x14002ad6e
lea rax, [r9 - 1]
cmp rax, 0xa
jae 0x14002ac86
mov edx, 0xa
mov r8, r9
sub r8, rdx
add r8, 0xa
lea rax, str.___thread
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x30], 0xa
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x70]
call fcn.14000afa0
jmp 0x14002acdb
and al, 0x7f
mov byte [rsp + 0x87], al
jmp 0x14002acd3
call fcn.1400bbc10
mov rcx, qword [rsi + 0xa0]
call fcn.1401365c0
mov qword [rsi + 0xa0], 0
jmp 0x14002a9f7
mov r14, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
lea rdi, [rsi + 0x88]
lea rbx, [rbp*2]
mov r15, qword [rsi + 0x88]
mov rax, qword [rsi + 0x98]
mov rcx, rax
sub rcx, r15
sar rcx, 1
cmp rcx, rbp
jae 0x14002ae94
test r15, r15
jne 0x14002af3c
test rbp, rbp
js 0x14002af7b
lea rcx, [r12 - 1]
cmp rax, rbp
cmova rbp, rax
cmp rax, rcx
cmovae rbp, r12
test rbp, rbp
js 0x14002af7b
lea rcx, [rbp*2]
call fcn.140146648
mov r15, rax
mov qword [rsi + 0x88], rax
mov qword [rsi + 0x90], rax
lea rax, [rax + rbp*2]
mov qword [rsi + 0x98], rax
mov rcx, r15
mov rdx, r14
mov r8, rbx
call fcn.14014ac10
add r15, rbx
mov qword [rsi + 0x90], r15
mov word [rsp + 0xf8], 0
mov rax, qword [rsi + 0x88]
mov rcx, r15
sub rcx, rax
cmp rcx, 0xffffffffffffffbf
ja 0x14002af1c
lea r8, [rsp + 0xf8]
mov edx, 0x20
mov rcx, rdi
call fcn.14002b060
cmp byte [rsp + 0x87], 0
jns 0x14002ae56
mov rcx, qword [rsp + 0x70]
call fcn.140146640
lea rcx, [rsp + 0xa0]
call fcn.140029850
mov bpl, 1
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.140149190
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r12, qword [rsi + 0x90]
mov r13, r12
sub r13, r15
mov rax, r13
sar rax, 1
cmp rax, rbp
jb 0x14002aeda
test rbp, rbp
je 0x14002aec6
mov rcx, r15
mov rdx, r14
mov r8, rbx
call fcn.14014ac10
mov r12, qword [rsi + 0x90]
add r15, rbx
cmp r12, r15
je 0x14002ae05
add r12, 0xfffffffffffffffe
jne 0x14002aec9
jmp 0x14002af2e
cmp r12, r15
je 0x14002aef4
mov rcx, r15
mov rdx, r14
mov r8, r13
call fcn.14014ac10
mov r12, qword [rsi + 0x90]
sub rbx, r13
je 0x14002af0a
add r14, r13
mov rcx, r12
mov rdx, r14
mov r8, rbx
call fcn.14014ac10
add r12, rbx
mov qword [rsi + 0x90], r12
mov r15, r12
jmp 0x14002ae0c
add rax, rcx
add rax, 0x40
cmp r15, rax
je 0x14002af30
add r15, 0xfffffffffffffffe
jne 0x14002af23
ud2
mov qword [rsi + 0x90], rax
jmp 0x14002ae42
mov rax, qword [rsi + 0x90]
cmp rax, r15
je 0x14002af50
add rax, 0xfffffffffffffffe
jne 0x14002af43
jmp 0x14002af2e
mov qword [rsi + 0x90], r15
mov rcx, r15
call fcn.140146640
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
xor eax, eax
jmp 0x14002ada6
xor ebp, ebp
jmp 0x14002ae66
mov rcx, rdi
call fcn.140187c70
mov rcx, qword [rsp + 0x70]
call fcn.140146640
jmp 0x14002aba2
mov rcx, qword [rsp + 0x70]
call fcn.140146640
jmp 0x14002ac24