Function at 0x14036cc50
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, 0x48
mov rbx, rcx
mov rcx, qword [r8]
mov ebp, edx
mov rsi, r8
movzx eax, word [rcx + 0x14]
mov edx, eax
not edx
test dx, 0x202
je 0x14036cebc
test al, 1
jne 0x14036cee2
mov edx, 1
call sym.valueToText
mov rcx, qword [rsi]
mov r15, rax
test r15, r15
sete r13b
movzx eax, word [rcx + 0x14]
test al, 2
je 0x14036ccaf
cmp byte [rcx + 0x16], 1
je 0x14036ced9
test al, 0x10
jne 0x14036ccf0
xor r12d, r12d
test al, 1
jne 0x14036ccc7
mov edx, 1
call sym.valueBytes
mov r12d, eax
lea rdi, [0x14046c378]
xor edx, edx
cmp ebp, 2
je 0x14036cd0a
test r13b, r13b
je 0x14036cd2f
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test ah, 4
mov r12d, dword [rcx + 0x10]
je 0x14036ccc7
add r12d, dword [rcx]
lea rdi, [0x14046c378]
xor edx, edx
cmp ebp, 2
jne 0x14036ccd5
mov rcx, qword [rsi + 8]
call sym.sqlite3ValueText.constprop.0
mov rcx, qword [rsi + 8]
mov rdi, rax
call sym.sqlite3ValueBytes.constprop.0
test rdi, rdi
mov edx, eax
sete al
or r13d, eax
test r13b, r13b
jne 0x14036ccda
mov rax, qword [rbx]
mov ecx, r12d
shr ecx, 0x1f
add ecx, r12d
sar ecx, 1
mov r8, qword [rax + 0x18]
add ecx, 1
cmp ecx, dword [r8 + 0x88]
jg 0x14036d020
movsxd rsi, ecx
lea rax, [rsi - 1]
cmp rax, 0x7ffffefe
ja 0x14036cef0
mov eax, dword [0x140395120]
test eax, eax
je 0x14036d051
mov rcx, qword [0x140394dc0]
test rcx, rcx
je 0x14036cd8c
mov dword [rsp + 0x3c], edx
call qword [0x1403951a0]
mov edx, dword [rsp + 0x3c]
mov rcx, rsi
mov dword [rsp + 0x3c], edx
call sym.sqlite3Malloc.part.0
movsxd rdx, dword [rsp + 0x3c]
mov r12, rax
test r12, r12
je 0x14036cef0
movzx eax, byte [r15]
xor r8d, r8d
mov r14, r12
lea r13, [0x14047ec80]
lea rbp, [0x14047f000]
lea r11, [rdi + rdx]
test al, al
je 0x14036cefe
mov rsi, r15
test byte [r13 + rax], 8
movzx edx, al
jne 0x14036cfc6
movzx r10d, byte [rsi]
lea r8, [rsi + 1]
cmp r10b, 0xbf
ja 0x14036cf40
mov rsi, r8
mov rdx, rdi
jmp 0x14036ce0c
mov rdx, rcx
cmp r10d, eax
je 0x14036cea8
cmp rdx, r11
jae 0x14036cf20
movzx eax, byte [rdx]
lea rcx, [rdx + 1]
cmp al, 0xbf
jbe 0x14036ce00
movzx edx, byte [rdx + 1]
sub eax, 0xc0
movzx eax, byte [rbp + rax]
mov r9d, edx
and r9d, 0xffffffc0
cmp r9b, 0x80
jne 0x14036cfb8
nop
and edx, 0x3f
shl eax, 6
add rcx, 1
add eax, edx
movzx edx, byte [rcx]
mov r9d, edx
and r9d, 0xffffffc0
cmp r9b, 0x80
je 0x14036ce40
cmp eax, 0x7f
jbe 0x14036ce90
mov edx, eax
and edx, 0xfffff800
cmp edx, 0xd800
je 0x14036ce90
mov r9d, eax
mov rdx, rcx
and r9d, 0xfffffffe
cmp r9d, 0xfffe
jne 0x14036ce03
nop dword [rax + rax]
mov eax, 0xfffd
mov rdx, rcx
cmp r10d, eax
jne 0x14036ce0c
nop dword [rax]
movzx eax, byte [r8]
test al, al
jne 0x14036cdd0
mov r8d, r14d
sub r8d, r12d
jmp 0x14036cefe
cmp byte [rcx + 0x16], 1
jne 0x14036cc7e
mov r15, qword [rcx + 8]
test r15, r15
sete r13b
test al, 2
je 0x14036ccaf
mov r12d, dword [rcx + 0x10]
jmp 0x14036ccc7
mov r13d, 1
xor r15d, r15d
jmp 0x14036cca1
mov rcx, rbx
call sym.sqlite3_result_error_nomem
xor r8d, r8d
xor r12d, r12d
lea rax, [sym.sqlite3_free]
xor r9d, r9d
mov rdx, r12
mov qword [rsp + 0x20], rax
mov rcx, rbx
call sym.setResultStrOrError
jmp 0x14036ccda
mov rcx, r12
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3_free
lea eax, [r10 - 0xc0]
movzx r10d, byte [rbp + rax]
movzx eax, byte [rsi + 1]
mov edx, eax
and edx, 0xffffffc0
cmp dl, 0x80
jne 0x14036d068
nop
and eax, 0x3f
shl r10d, 6
add r8, 1
add r10d, eax
movzx eax, byte [r8]
mov edx, eax
and edx, 0xffffffc0
cmp dl, 0x80
je 0x14036cf60
cmp r10d, 0x7f
jbe 0x14036cfa5
mov eax, r10d
and eax, 0xfffff800
cmp eax, 0xd800
je 0x14036cfa5
mov eax, r10d
mov rsi, r8
and eax, 0xfffffffe
cmp eax, 0xfffe
jne 0x14036cdf4
mov rsi, r8
mov r10d, 0xfffd
jmp 0x14036cdf4
cmp eax, 0x7f
ja 0x14036ce00
jmp 0x14036ce90
movzx eax, byte [rsi + 1]
lea r15, [rsi + 2]
test byte [r13 + rax], 8
mov r8, rax
je 0x14036cf20
sar eax, 6
add r14, 1
and eax, 1
lea ecx, [rax + rax*8]
mov eax, edx
sar eax, 6
add ecx, r8d
and eax, 1
and ecx, 0xf
lea eax, [rax + rax*8]
add eax, edx
shl eax, 4
or ecx, eax
mov byte [r14 - 1], cl
movzx eax, byte [rsi + 2]
test al, al
jne 0x14036cdcd
jmp 0x14036ceb4
mov dword [rbx + 0x24], 0x12
mov r9d, 1
mov rcx, rax
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x20], 0
lea rdx, [0x14046d1a6]
call sym.sqlite3VdbeMemSetStr
jmp 0x14036cef8
mov dword [rsp + 0x3c], edx
call qword [0x140395140]
movsxd rdx, dword [rsp + 0x3c]
mov r12, rax
jmp 0x14036cda0
cmp r10d, 0x7f
ja 0x14036cdf1
jmp 0x14036cfa5