Function at 0x1402208d0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
mov r9, rcx
mov rax, rdx
push r14
push r13
push r12
push rbp
mov rbp, r8
push rdi
push rsi
push rbx
sub rsp, 0x68
mov r12, qword [r8]
mov r13, qword [rdx + 0xb0]
cmp qword [rdx + 8], r13
je 0x1402208fc
xor r13d, r13d
mov rdx, qword [r9 + 8]
mov edi, dword [rax + 0x30]
mov r14, qword [rax + 0x50]
mov rsi, qword [rax + 0x80]
test rdx, rdx
setne r8b
cmp edi, 0xffffffff
je 0x14022092f
test r8b, r8b
je 0x14022092f
movzx ecx, byte [r9 + 0x80]
shl rdi, cl
add rdi, rdx
jmp 0x140220931
xor edi, edi
mov ebx, dword [rax + 0x60]
cmp ebx, 0xffffffff
je 0x14022094e
test r8b, r8b
je 0x14022094e
movzx ecx, byte [r9 + 0x80]
shl rbx, cl
add rbx, rdx
jmp 0x140220950
xor ebx, ebx
test rdi, rdi
mov r10, qword [rax]
setne r15b
cmp r14, r13
ja 0x14022097e
movabs rax, 0x59659dbdef4c1103
test r14, r14
sete dl
cmp r10, rax
sete al
test dl, al
je 0x1402209dd
test r15b, r15b
je 0x1402209dd
test r12, r12
jne 0x1402209eb
cmp byte [0x1403eba08], 1
jbe 0x1402209eb
mov qword [rsp + 0x30], r13
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.catch_invalid__sdb_mod_txnid__lli_for_meta_txnid__lli__s_n
mov r8d, 0x2b10
mov qword [rsp + 0x38], rax
lea rax, str.free
mov ecx, 2
lea rdx, str.meta_checktxnid
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], r10
call fcn.14021df10
cmp rsi, r13
mov r10, qword [rsp + 0x48]
jbe 0x1402209f0
jmp 0x140220a13
mov al, 1
cmp rsi, r13
jbe 0x1402209f2
test r12, r12
je 0x140220a13
jmp 0x140220a5c
cmp rsi, r13
ja 0x140220a5c
xor eax, eax
movabs rdx, 0x59659dbdef4c1103
test rsi, rsi
sete cl
cmp r10, rdx
sete dl
test cl, dl
je 0x140220a5e
test rbx, rbx
je 0x140220a5e
jmp 0x1402209e4
cmp byte [0x1403eba08], 1
jbe 0x140220a5c
mov qword [rsp + 0x30], r13
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.catch_invalid__sdb_mod_txnid__lli_for_meta_txnid__lli__s_n
mov r8d, 0x2b1b
mov qword [rsp + 0x38], rax
lea rax, str.main
mov ecx, 2
lea rdx, str.meta_checktxnid
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
call fcn.14021df10
xor eax, eax
test r14, r14
je 0x140220ac8
test r15b, r15b
je 0x140220ac8
mov rdx, qword [rdi]
cmp r14, rdx
je 0x140220ac8
xor eax, eax
test r12, r12
jne 0x140220ac8
cmp byte [0x1403eba08], 1
jbe 0x140220ac8
mov byte [rsp + 0x48], al
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.catch_invalid_root_page_txnid__lli_for__sdb_mod_txnid__lli__s_n
mov r8d, 0x2b29
mov qword [rsp + 0x38], rax
lea rax, str.free
mov ecx, 2
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea rdx, str.meta_checktxnid
mov qword [rsp + 0x30], rsi
call fcn.14021df10
mov al, byte [rsp + 0x48]
test rbx, rbx
je 0x140220b2a
test rsi, rsi
je 0x140220b2a
mov rdx, qword [rbx]
cmp rsi, rdx
je 0x140220b2a
test r12, r12
jne 0x140220b35
cmp byte [0x1403eba08], 1
jbe 0x140220b35
mov qword [rsp + 0x20], rdx
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.catch_invalid_root_page_txnid__lli_for__sdb_mod_txnid__lli__s_n
mov r8d, 0x2b38
mov qword [rsp + 0x38], rax
lea rax, str.main
mov ecx, 2
lea rdx, str.meta_checktxnid
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
call fcn.14021df10
jmp 0x140220b35
xor r12d, r12d
test al, al
jne 0x140220bb6
cmp qword [rbp], 0
mov rax, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x58], 0
jne 0x140220b5e
call rax
mov rax, qword [rsp + 0x58]
mov qword [rbp], rax
jmp 0x140220bac
call rax
mov rax, qword [rsp + 0x58]
sub rax, qword [rbp]
cmp rax, 0x1999
jbe 0x140220bac
cmp byte [0x1403eba08], 0
mov r12d, 0xffff87b4
je 0x140220bb6
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.bailout_waiting_for_valid_snapshot__s_n
mov r8d, 0x2b4d
mov ecx, 1
mov qword [rsp + 0x20], rax
lea rdx, str.meta_waittxnid
call fcn.14021df10
jmp 0x140220bb6
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
or r12d, 0xffffffff
add rsp, 0x68
mov eax, r12d
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret