Function at 0x140227840
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
lea rax, str.table
lea rdi, str.sqlite_temp_master
mov esi, dword [rcx + 0x2c]
or esi, 0xffffffbf
movsxd rbx, edx
mov qword [rsp + 0xa0], rax
lea rax, str.sqlite_master
lea rdx, [0x140333406]
cmp ebx, 1
mov qword [rsp + 0x130], r8
mov r15, rcx
lea r13, [rsp + 0x70]
cmovne rdi, rax
lea rax, str.CREATE_TABLE_x_type_text_name_text_tbl_name_text_rootpage_int_sql_text_
mov byte [rcx + 0xc5], 1
lea r8, [rsp + 0xa0]
movq xmm1, rax
mov dword [rsp + 0x88], r9d
xor r9d, r9d
movq xmm0, rdi
mov qword [rsp + 0xc8], 0
punpcklqdq xmm0, xmm0
mov dword [rsp + 0x80], ebx
movups xmmword [rsp + 0xa8], xmm0
movq xmm0, rdx
mov edx, 5
mov dword [rsp + 0x84], 0
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0xb8], xmm0
movq xmm0, rcx
mov rcx, r13
movhps xmm0, qword [rsp + 0x130]
mov qword [rsp + 0x8c], 0
movups xmmword [rsp + 0x70], xmm0
call sym.sqlite3InitCallback
mov r12d, dword [rsp + 0x84]
and dword [r15 + 0x2c], esi
test r12d, r12d
jne 0x140227c28
mov rax, qword [r15 + 0x20]
movsxd rbp, ebx
shl rbp, 5
lea rsi, [rax + rbp]
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140228100
cmp byte [rcx + 0x11], 0
je 0x14022796d
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
je 0x140227ce0
cmp byte [rcx + 0x10], 0
je 0x140227bb0
mov dword [rsp + 0x3c], 0
movzx eax, byte [rcx + 0x11]
mov r14, qword [rcx + 8]
test al, al
je 0x140227d1e
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
jne 0x1402280e0
mov qword [rsp + 0x40], rcx
call sym.btreeLockCarefully
mov rax, qword [r14 + 0x18]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax + 0x50]
cmp byte [rcx + 0x11], 0
mov r14d, dword [rax + 0x28]
bswap r14d
mov dword [rsp + 0x50], r14d
je 0x1402279d0
sub dword [rcx + 0x14], 1
je 0x140228200
mov rcx, qword [rsi + 8]
cmp byte [rcx + 0x11], 0
mov rax, qword [rcx + 8]
je 0x140227d40
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
jne 0x1402280a0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
call sym.btreeLockCarefully
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x2c]
bswap eax
mov dword [rsp + 0x54], eax
je 0x140227a2a
sub dword [rcx + 0x14], 1
je 0x1402281f0
mov rcx, qword [rsi + 8]
cmp byte [rcx + 0x11], 0
mov rax, qword [rcx + 8]
je 0x140227d5f
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
jne 0x140228080
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
call sym.btreeLockCarefully
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x30]
bswap eax
mov dword [rsp + 0x58], eax
je 0x140227a84
sub dword [rcx + 0x14], 1
je 0x1402281b8
mov rcx, qword [rsi + 8]
cmp byte [rcx + 0x11], 0
mov rax, qword [rcx + 8]
je 0x140227d7e
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
jne 0x1402280c0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
call sym.btreeLockCarefully
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x34]
bswap eax
mov dword [rsp + 0x5c], eax
je 0x140227ade
sub dword [rcx + 0x14], 1
je 0x1402281e0
mov rcx, qword [rsi + 8]
cmp byte [rcx + 0x11], 0
mov rax, qword [rcx + 8]
je 0x140227d9d
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
jne 0x140228060
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
call sym.btreeLockCarefully
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
movzx edx, byte [rcx + 0x11]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x38]
bswap eax
mov dword [rsp + 0x60], eax
test dl, dl
je 0x140227b3a
sub dword [rcx + 0x14], 1
je 0x1402281c8
test byte [r15 + 0x33], 2
jne 0x140227db9
mov rcx, qword [rsi + 0x18]
mov dword [rcx], r14d
test eax, eax
je 0x140227ddd
test ebx, ebx
jne 0x140228030
mov edx, dword [r15 + 0x2c]
test dl, 0x40
jne 0x140228030
mov r9d, dword [r15 + 0xd8]
and eax, 3
mov ecx, 1
cmove eax, ecx
test r9d, r9d
jle 0x140227b8f
cmp byte [r15 + 0x64], al
je 0x140227b8f
and edx, 4
je 0x140228243
movzx edx, al
mov rcx, r15
call sym.sqlite3SetTextEncoding
mov rcx, qword [rsi + 0x18]
movzx edx, byte [r15 + 0x64]
jmp 0x140227de2
xor r8d, r8d
xor edx, edx
call sym.btreeBeginTrans
mov r14d, eax
test eax, eax
je 0x1402281a0
lea rdx, str.no_more_rows_available
cmp eax, 0x65
je 0x140227be3
lea rdx, str.abort_due_to_ROLLBACK
cmp eax, 0x204
jne 0x140227f20
mov rcx, r15
call sym.sqlite3DbStrDup
mov rdi, rax
mov rax, qword [rsp + 0x130]
mov rdx, qword [rax]
test rdx, rdx
je 0x140227c06
mov rcx, r15
call sym.sqlite3DbFreeNN
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsi + 8]
mov qword [rax], rdi
cmp byte [rcx + 0x11], 0
jne 0x140228180
mov r12d, r14d
nop word [rax + rax]
cmp r12d, 7
je 0x140227cb8
cmp r12d, 0xc0a
je 0x140227cb8
test ebx, ebx
js 0x140227c5f
mov rax, qword [r15 + 0x20]
shl rbx, 5
mov rdx, qword [rax + rbx + 0x18]
mov rax, qword [rax + 0x38]
or word [rdx + 0x72], 8
or word [rax + 0x72], 8
and dword [r15 + 0x2c], 0xffffffef
mov eax, dword [r15 + 0x48]
test eax, eax
jne 0x140227c95
mov r8d, dword [r15 + 0x28]
test r8d, r8d
jle 0x140227c95
xor ebx, ebx
mov rax, qword [r15 + 0x20]
mov rdx, rbx
shl rdx, 5
mov rcx, qword [rax + rdx + 0x18]
test byte [rcx + 0x72], 8
jne 0x140227f68
add rbx, 1
cmp r8d, ebx
jg 0x140227c76
mov eax, r12d
mov byte [r15 + 0xc5], 0
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r15 + 0x67], 0
jne 0x140227c3b
cmp byte [r15 + 0x68], 0
jne 0x140227c3b
mov rcx, r15
call sym.sqlite3OomFault.part.0
jmp 0x140227c3b
call sym.btreeLockCarefully
mov rcx, qword [rsi + 8]
test rcx, rcx
jne 0x14022796d
cmp byte [0x11], 0
jne 0x140227bb0
cmp byte [0x10], 0
je 0x140227bb0
mov r14, qword [8]
mov dword [rsp + 0x3c], 1
mov rax, qword [r14 + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov r14d, dword [rax + 0x28]
mov rax, qword [rcx + 8]
bswap r14d
mov dword [rsp + 0x50], r14d
jne 0x1402279e2
mov rax, qword [rax + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x2c]
bswap eax
mov dword [rsp + 0x54], eax
mov rax, qword [rcx + 8]
jne 0x140227a3c
mov rax, qword [rax + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x30]
bswap eax
mov dword [rsp + 0x58], eax
mov rax, qword [rcx + 8]
jne 0x140227a96
mov rax, qword [rax + 0x18]
cmp byte [rcx + 0x11], 0
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x34]
bswap eax
mov dword [rsp + 0x5c], eax
mov rax, qword [rcx + 8]
jne 0x140227af0
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x38]
bswap eax
mov dword [rsp + 0x60], eax
test byte [r15 + 0x33], 2
je 0x140227b45
mov rcx, qword [rsi + 0x18]
mov dword [rsp + 0x60], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov dword [rcx], 0
movzx edx, byte [r15 + 0x64]
mov r8d, dword [rcx + 0x74]
mov byte [rcx + 0x71], dl
test r8d, r8d
jne 0x140227e1c
mov edx, dword [rsp + 0x58]
test edx, edx
jns 0x140228170
mov eax, edx
neg eax
cmp edx, 0x80000000
mov edx, 0x7fffffff
cmovne edx, eax
mov dword [rcx + 0x74], edx
mov rcx, qword [rsi + 8]
call sym.sqlite3BtreeSetCacheSize.isra.0
mov rcx, qword [rsi + 0x18]
mov eax, dword [rsp + 0x54]
mov byte [rcx + 0x70], al
test al, al
jne 0x140227f88
mov byte [rcx + 0x70], 1
test ebx, ebx
jne 0x140227e3d
cmp eax, 3
jle 0x140227e3d
and qword [r15 + 0x30], 0xfffffffffffffffd
mov rax, qword [rsi + 8]
mov r9, rdi
lea rdx, str.SELECTFROM__w_._s_ORDER_BY_rowid
mov rcx, r15
mov rax, qword [rax + 8]
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x90], eax
mov rax, qword [r15 + 0x20]
mov r8, qword [rax + rbp]
call sym.sqlite3MPrintf
mov r14, qword [r15 + 0x200]
mov r9, r13
mov rcx, r15
mov rdx, rax
lea r8, [sym.sqlite3InitCallback]
mov qword [r15 + 0x200], 0
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x40], rax
call sym.sqlite3_exec
mov qword [r15 + 0x200], r14
mov rdx, qword [rsp + 0x40]
test eax, eax
mov edi, eax
jne 0x140228050
mov edi, dword [rsp + 0x84]
test rdx, rdx
je 0x140227ec8
mov rcx, r15
call sym.sqlite3DbFreeNN
test edi, edi
je 0x140228140
cmp byte [r15 + 0x67], 0
je 0x140228110
mov rcx, r15
mov r12d, 7
call sym.sqlite3ResetAllSchemasOfConnection
mov rsi, qword [r15 + 0x20]
add rsi, rbp
mov edx, dword [rsp + 0x3c]
test edx, edx
jne 0x140227fd7
mov rcx, qword [rsi + 8]
cmp byte [rcx + 0x11], 0
je 0x140227f10
sub dword [rcx + 0x14], 1
je 0x140228190
test r12d, r12d
je 0x140227c95
jmp 0x140227c28
lea rdx, str.another_row_available
cmp eax, 0x64
je 0x140227be3
movzx eax, al
lea rdx, str.unknown_error
cmp eax, 0x1c
jg 0x140227be3
lea rdx, str.not_an_error
mov rdx, qword [rdx + rax*8]
lea rax, str.unknown_error
test rdx, rdx
cmove rdx, rax
jmp 0x140227be3
call sym.sqlite3SchemaClear
mov r8d, dword [r15 + 0x28]
add rbx, 1
cmp r8d, ebx
jg 0x140227c72
jmp 0x140227c95
cmp al, 4
jbe 0x140227e2f
lea rdx, str.unsupported_file_format
mov rcx, r15
call sym.sqlite3DbStrDup
mov rdi, rax
mov rax, qword [rsp + 0x130]
mov rdx, qword [rax]
test rdx, rdx
je 0x140227fba
mov rcx, r15
call sym.sqlite3DbFreeNN
mov rax, qword [rsp + 0x130]
mov edx, dword [rsp + 0x3c]
mov r12d, 1
mov qword [rax], rdi
test edx, edx
je 0x140227efc
mov r13, qword [rsi + 8]
cmp byte [r13 + 0x11], 0
je 0x140227ff6
add dword [r13 + 0x14], 1
cmp byte [r13 + 0x12], 0
jne 0x140227ff6
mov rcx, r13
call sym.btreeLockCarefully
cmp byte [r13 + 0x10], 2
je 0x140228210
xor edx, edx
mov rcx, r13
call sym.sqlite3BtreeCommitPhaseTwo
cmp byte [r13 + 0x11], 0
je 0x140227efc
sub dword [r13 + 0x14], 1
jne 0x140227efc
mov rcx, r13
call sym.unlockBtreeMutex
jmp 0x140227efc
movzx r8d, byte [r15 + 0x64]
and eax, 3
mov edx, r8d
cmp eax, r8d
je 0x140227de2
lea rdx, str.attached_databases_must_use_the_same_text_encoding_as_main_database
jmp 0x140227f97
test rdx, rdx
jne 0x140227ec0
jmp 0x140227ed0
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x38]
bswap eax
mov dword [rsp + 0x60], eax
jmp 0x140227b30
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x30]
bswap eax
mov dword [rsp + 0x58], eax
jmp 0x140227a7a
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x2c]
bswap eax
mov dword [rsp + 0x54], eax
jmp 0x140227a20
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x34]
bswap eax
mov dword [rsp + 0x5c], eax
jmp 0x140227ad4
mov rax, qword [r14 + 0x18]
mov rax, qword [rax + 0x50]
mov r14d, dword [rax + 0x28]
bswap r14d
mov dword [rsp + 0x50], r14d
jmp 0x1402279c6
mov rax, qword [rax + 0x38]
or word [rax + 0x72], 1
jmp 0x140227c95
test byte [r15 + 0x33], 8
je 0x140228230
cmp edi, 7
je 0x140228238
mov rax, qword [r15 + 0x20]
mov rax, qword [rax + rbp + 0x18]
or word [rax + 0x72], 1
jmp 0x140227ef0
mov edx, ebx
mov rcx, r15
call sym.sqlite3AnalysisLoad
cmp byte [r15 + 0x67], 0
jne 0x140227edb
mov rax, qword [r15 + 0x20]
mov rax, qword [rax + rbp + 0x18]
or word [rax + 0x72], 1
jmp 0x140227ef0
mov eax, 0xfffff830
cmove edx, eax
jmp 0x140227e0c
sub dword [rcx + 0x14], 1
jne 0x140227c1f
mov r12d, r14d
nop dword [rax]
call sym.unlockBtreeMutex
jmp 0x140227f10
mov rcx, qword [rsi + 8]
mov dword [rsp + 0x3c], 1
movzx eax, byte [rcx + 0x11]
jmp 0x140227983
call sym.unlockBtreeMutex
jmp 0x140227a84
mov dword [rsp + 0x40], eax
call sym.unlockBtreeMutex
mov eax, dword [rsp + 0x40]
jmp 0x140227b3a
call sym.unlockBtreeMutex
jmp 0x140227ade
call sym.unlockBtreeMutex
jmp 0x140227a2a
call sym.unlockBtreeMutex
jmp 0x1402279d0
xor edx, edx
mov rcx, r13
call sym.sqlite3BtreeCommitPhaseOne.part.0
test eax, eax
je 0x140228001
jmp 0x14022800b
mov r12d, edi
jmp 0x140227ef0
mov r12d, 7
jmp 0x140227ef0
mov r12d, 6
jmp 0x140227ef0