Function at 0x140096850
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movaps xmmword [rsp + 0x70], xmm6
mov r14, r8
mov qword [rsp + 0x48], rdx
mov rdi, rcx
mov rax, qword [0x1402e0038]
xor rax, rsp
mov qword [rsp + 0x68], rax
movabs rsi, 0xfffffffc00000000
movzx eax, byte [r8 + 7]
shl eax, 3
or rax, 0x230
mov rax, qword [rcx + rax]
mov qword [rsp + 0x40], rax
mov ecx, 0x200
call fcn.14010cc14
mov r15, rax
mov rbx, rax
lea rax, str.0_r__
mov qword [r15], rax
mov eax, dword [r14]
mov dword [r15 + 8], eax
mov rax, rdi
and rax, rsi
cmp rax, qword [0x1402e3948]
je 0x140096c86
mov qword [rbx + 0x10], rdi
test rdi, rdi
je 0x140096cd5
mov rax, qword [rdi + 0x20]
mov qword [rbx + 0x18], rax
test rax, rax
je 0x140096906
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x140096ca8
mov ecx, 0x28
call fcn.14010cc14
mov r13, rax
xor eax, eax
mov dword [r13], eax
mov dword [r13 + 8], eax
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [r13 + 0x10], 0
test rax, rax
je 0x140096ca0
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
mov rax, qword [r13 + 0x10]
inc rax
cmp rax, 2
jae 0x140096d18
lea rax, [rbp + 1]
cmp rax, 2
jb 0x140096971
mov qword [r13 + 0x10], rbp
call fcn.140096510
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [r13 + 0x10]
mov byte [r13 + 0x18], 0
inc rax
cmp rax, 1
jbe 0x140096ca5
and rsi, r15
cmp rsi, qword [0x1402e3948]
je 0x140096c93
mov qword [r13 + 0x20], rbx
mov qword [rbx + 0x20], r13
test r13, r13
je 0x1400969c3
mov eax, 1
lock xadd dword [r13], eax
cmp eax, 0x7fffffff
je 0x140096cab
xorps xmm6, xmm6
movups xmmword [rbx + 0x48], xmm6
movups xmmword [rbx + 0x38], xmm6
movups xmmword [rbx + 0x28], xmm6
mov word [rbx + 0x58], 0x101
xor eax, eax
mov byte [rbx + 0x5a], al
movups xmmword [rbx + 0x60], xmm6
mov qword [rbx + 0x70], 0
mov byte [rbx + 0x78], 1
mov byte [rbx + 0x80], al
mov byte [rbx + 0x88], al
mov byte [rbx + 0x90], al
lea rcx, [r15 + 0x98]
mov rdx, rbx
mov r8, qword [rsp + 0x40]
call fcn.140096f20
add r15, 0x1c8
test rdi, rdi
je 0x140096cc4
cmp rsi, qword [0x1402e3948]
je 0x140096c79
lea r12, [rdi + 0x70]
mov ecx, 0x30
call fcn.14010cc14
mov dword [rax], 1
lea rcx, [0x140102960]
mov qword [rax + 8], rcx
lea rcx, [0x1400b46b0]
mov qword [rax + 0x10], rcx
lea rcx, [0x1401ce200]
mov qword [rax + 0x18], rcx
lea rcx, [0x1400805e0]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rcx, r12
mov rdx, r15
mov r8, rax
call fcn.140096dd0
mov al, byte [r14 + 4]
mov byte [rbx + 0x1e0], al
mov al, byte [r14 + 5]
mov byte [rbx + 0x1e1], al
mov al, byte [r14 + 6]
mov byte [rbx + 0x1e2], al
mov ecx, 0x28
call fcn.14010cc14
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140096ac8
mov edx, 1
lock xadd dword [rcx], edx
cmp edx, 0x7fffffff
je 0x140096cae
mov rdx, qword [rbx + 0x20]
test rdx, rdx
je 0x140096ae9
mov r8d, 1
lock xadd dword [rdx], r8d
cmp r8d, 0x7fffffff
je 0x140096cb1
mov dword [rax + 8], 0
lea r8, [0x14029f880]
mov qword [rax], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rcx
mov byte [rax + 0x20], 0
test rax, rax
je 0x140096b21
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x140096cb4
mov qword [rbx + 0x1e8], rax
mov ecx, 8
call fcn.14010cc14
mov dword [rax], 0
mov byte [rax + 4], 0
mov qword [rbx + 0x1f0], rax
test rax, rax
je 0x140096b5d
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x140096cb7
mov qword [rbx + 0x1f8], rbx
mov rax, qword [rbx + 0xb0]
cmp qword [rax + 0x10], 0
sete byte [rbx + 0x58]
cmp qword [rbx + 0xa0], 0
mov al, byte [rbx + 0x120]
jne 0x140096b94
test al, al
je 0x140096cba
mov al, byte [rbx + 0x140]
xor al, 1
mov byte [rbx + 0x59], al
cmp qword [rbx + 0x10], 0
je 0x140096be6
mov rcx, qword [rbx + 0x20]
mov eax, dword [rcx + 8]
nop word cs:[rax + rax]
mov edx, eax
or edx, 0x40000000
lock cmpxchg dword [rcx + 8], edx
jne 0x140096bb0
mov edx, 0x3fffffff
and eax, 0x3fffffff
mov r8d, eax
neg r8d
lock xadd dword [rcx + 8], r8d
test r8d, r8d
jns 0x140096be6
and r8d, edx
cmp r8d, eax
je 0x140096d5e
lea rcx, [rdi + 0x250]
lea r8, [rsp + 0x50]
mov qword [r8], rbx
lea rdx, [rsp + 0x58]
mov r9, r8
call fcn.1400970e0
mov r8b, byte [rdi + 0x51]
add rdi, 0x120
mov rcx, rdi
mov rdx, rbx
call fcn.140097330
mov rsi, qword [rsp + 0x48]
mov qword [rsi], rbx
mov rax, qword [rbx + 0x10]
mov rcx, qword [rax + 0x308]
mov rax, qword [rax + 0x310]
test rcx, rcx
je 0x140096c48
mov edx, 1
lock xadd dword [rcx], edx
cmp edx, 0x7fffffff
je 0x140096cc1
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14010fba0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.140105e30
jmp 0x140096a30
mov rcx, rdi
call fcn.140105e30
jmp 0x1400968d7
mov rcx, rbx
call fcn.140103420
jmp 0x1400969a0
mov byte [r13 + 0x18], 0
int3
int3
int3
int3
int3
int3
int3
xor eax, eax
jmp 0x140096b94
int3
movups xmmword [r15], xmm6
mov qword [r15 + 0x10], 0
jmp 0x140096a82
mov ecx, 8
call fcn.14010cc14
mov r12, rax
mov qword [rax], 0
test rax, rax
je 0x140096d04
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x140096dbd
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [r12 + 4], eax
mov qword [rbx + 0x18], r12
jmp 0x140096906
call fcn.140096510
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x38], rax
mov rcx, qword [0x1402f4238]
test rcx, rcx
je 0x140096d50
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, qword [rsp + 0x38]
call qword [0x140318008]
mov qword [r13 + 0x10], 0
jmp 0x14009695e
call fcn.14004ba00
mov rcx, qword [0x1402f4238]
jmp 0x140096d32
lea rsi, [rcx + 0x10]
cmp byte [rcx + 0x18], 0
je 0x140096d76
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x140096be6
test byte [0x1402e2d90], 0x19
je 0x140096d68
mov rax, qword [0x1402f2300]
xor rax, rsi
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 0
lea rdx, [0x1402e2d90]
lea r8, str.WaitableEvent::Signal
lea r9, [0x1402a8a58]
mov cl, 0x49
call sym.msedge.exe_OQS_destroy
jmp 0x140096d68
int3