Function at 0x14038d920
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 ebp, dword [r8 + 0x38]
mov r12, qword [rcx + 0x10]
mov rdi, qword [r8 + 0x30]
mov dword [rsp + 0x98], edx
mov r15, rcx
mov qword [rsp + 0xa0], r8
mov dword [rsp + 0xa8], r9d
mov byte [r8], 1
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x34], 0
test ebp, ebp
jg 0x14038daa0
jmp 0x14038de00
mov ebp, dword [rbx]
mov rcx, r15
mov edx, ebp
call sym.sqlite3GetTempRange
mov dword [rsp + 0x20], 1
xor r9d, r9d
mov rdx, rbx
mov r8d, eax
mov r13d, eax
call sym.sqlite3ExprCodeExprList.isra.0
mov r8d, dword [rdi + 0x14]
test r8d, r8d
js 0x14038d9dc
test esi, esi
jne 0x14038d9bd
mov eax, dword [r15 + 0x44]
lea esi, [rax - 1]
mov dword [r15 + 0x44], esi
mov dword [rsp + 0x28], r13d
mov edx, dword [rsp + 0xa8]
mov r9d, esi
mov rcx, r15
mov qword [rsp + 0x20], rbx
call dbg.codeDistinct
mov dword [rdi + 0x14], eax
movzx eax, bpl
mov word [rsp + 0x3a], ax
mov rax, qword [rdi + 8]
test byte [rax + 4], 0x20
jne 0x14038dc18
mov eax, dword [rdi + 0x10]
xor r8d, r8d
mov rcx, r12
mov r9d, r13d
mov edx, 0x9e
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov rcx, qword [r12]
mov r8, qword [rdi + 8]
cmp byte [rcx + 0x63], 0
jne 0x14038dbd0
movsxd rax, dword [r12 + 0x90]
lea rcx, [rax + rax*2]
mov rdx, rax
mov rax, qword [r12 + 0x88]
lea rax, [rax + rcx*8 - 0x18]
mov byte [rax + 1], 0xf8
mov qword [rax + 0x10], r8
test edx, edx
jle 0x14038da63
mov r8, qword [r12 + 0x88]
movsxd rax, edx
movzx ebx, word [rsp + 0x3a]
lea rax, [rax + rax*2]
lea rax, [r8 + rax*8]
mov word [rax - 0x16], bx
cmp ebp, 1
je 0x14038dc60
cmp dword [r15 + 0x28], ebp
jge 0x14038da7a
mov dword [r15 + 0x28], ebp
mov dword [r15 + 0x2c], r13d
test esi, esi
jne 0x14038dbf0
mov rsi, qword [rsp + 0xa0]
add dword [rsp + 0x34], 1
add rdi, 0x20
mov eax, dword [rsp + 0x34]
cmp dword [rsi + 0x38], eax
jle 0x14038dca0
mov rax, qword [rdi]
xor esi, esi
mov rbx, qword [rax + 0x20]
test byte [rax + 7], 1
je 0x14038db07
mov rax, qword [rax + 0x40]
mov r13, qword [rax + 0x48]
mov rax, qword [rsp + 0xa0]
mov esi, dword [rax + 0x2c]
test esi, esi
je 0x14038dae8
mov rax, qword [rdi + 8]
test byte [rax + 4], 0x20
je 0x14038dae8
mov r11d, dword [rsp + 0x98]
test r11d, r11d
jne 0x14038ddc0
nop dword [rax]
mov eax, dword [r15 + 0x44]
mov r9d, 0x10
mov rdx, r13
mov rcx, r15
lea esi, [rax - 1]
mov dword [r15 + 0x44], esi
mov r8d, esi
call sym.sqlite3ExprIfFalse
test rbx, rbx
jne 0x14038d980
mov rax, qword [rdi + 8]
mov r13d, 0
mov ebp, 0
test byte [rax + 4], 0x20
mov eax, 0
mov word [rsp + 0x3a], ax
je 0x14038d9f3
mov rax, qword [r15]
mov rbx, qword [rax + 0x10]
mov r9d, dword [rsp + 0x3c]
test r9d, r9d
jne 0x14038db66
mov rax, qword [rsp + 0xa0]
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x14038db66
mov eax, dword [r15 + 0x38]
add eax, 1
mov dword [rsp + 0x3c], eax
mov dword [r15 + 0x38], eax
mov edx, dword [r12 + 0x90]
cmp edx, dword [r12 + 0x94]
jge 0x14038de50
lea eax, [rdx + 1]
mov dword [r12 + 0x90], eax
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea rax, [rax + rcx*8]
mov ecx, dword [rsp + 0x3c]
mov qword [rax + 8], 0
mov dword [rax + 4], ecx
mov qword [rax + 0x10], 0
mov dword [rax], 0x52
mov r9d, 0xfffffffe
mov r8, rbx
mov rcx, r12
call sym.sqlite3VdbeChangeP4
jmp 0x14038d9f3
test byte [r8 + 4], 0x10
jne 0x14038dd98
mov edx, dword [r12 + 0x90]
jmp 0x14038da43
mov rcx, qword [r12 + 0x18]
not esi
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x14038dda8
mov rax, qword [rcx + 0x50]
movsxd rsi, esi
mov dword [rax + rsi*4], edx
jmp 0x14038da82
lea r8, [rbx + 8]
test ebp, ebp
jle 0x14038db33
xor r14d, r14d
mov rbx, r8
nop word [rax + rax]
mov rdx, qword [rbx]
mov rcx, r15
add r14d, 1
add rbx, 0x20
call dbg.sqlite3ExprCollSeq
test rax, rax
jne 0x14038dc90
cmp ebp, r14d
jg 0x14038dc30
mov rbx, rax
test rax, rax
je 0x14038db33
jmp 0x14038db3a
test r13d, r13d
je 0x14038da7a
movzx eax, byte [r15 + 0x1f]
cmp al, 7
ja 0x14038da7a
lea ecx, [rax + 1]
mov byte [r15 + 0x1f], cl
mov dword [r15 + rax*4 + 0xd0], r13d
jmp 0x14038da7a
mov rbx, rax
jmp 0x14038db3a
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
je 0x14038de00
mov esi, dword [r12 + 0x90]
cmp esi, dword [r12 + 0x94]
jge 0x14038dec5
lea eax, [rsi + 1]
mov edi, dword [rsp + 0x3c]
mov dword [r12 + 0x90], eax
movsxd rax, esi
lea rdx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], edi
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x12
mov rax, qword [rsp + 0xa0]
mov edx, dword [rax + 0x2c]
mov rbx, qword [rax + 0x20]
test edx, edx
jle 0x14038dd71
mov r13, qword [rsp + 0xa0]
xor edi, edi
nop word [rax + rax]
cmp qword [r15 + 0x10], 0
je 0x14038dd64
mov ebp, dword [rbx + 0x14]
mov r14, qword [rbx + 8]
mov rcx, r15
mov r8d, ebp
mov rdx, r14
call sym.sqlite3ExprCodeTarget
mov r8d, eax
cmp ebp, eax
je 0x14038dd64
xor edx, edx
test byte [r14 + 6], 0x20
mov rcx, qword [r15 + 0x10]
mov r9d, ebp
mov dword [rsp + 0x20], 0
sete dl
add edx, 0x4d
call sym.sqlite3VdbeAddOp3
add edi, 1
add rbx, 0x20
cmp dword [r13 + 0x2c], edi
jg 0x14038dd20
mov rax, qword [rsp + 0xa0]
mov byte [rax], 0
test esi, esi
jne 0x14038de78
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r8
call sym.sqlite3DbFreeNN
jmp 0x14038dbdb
mov r8d, esi
mov rdx, r12
call dbg.resizeResolveLabel
jmp 0x14038da82
mov r10d, dword [rsp + 0x3c]
test r10d, r10d
jne 0x14038ddd9
mov eax, dword [r15 + 0x38]
add eax, 1
mov dword [rsp + 0x3c], eax
mov dword [r15 + 0x38], eax
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x3c]
mov edx, 0x4d
mov rcx, r12
mov r8d, dword [rsp + 0x98]
call sym.sqlite3VdbeAddOp3
jmp 0x14038dae8
mov rax, qword [rsp + 0xa0]
mov edi, dword [rsp + 0x98]
mov eax, dword [rax + 0x2c]
test edi, edi
jne 0x14038de38
mov rdi, qword [rsp + 0xa0]
xor esi, esi
mov rbx, qword [rdi + 0x20]
test eax, eax
jg 0x14038dd10
mov byte [rdi], 0
jmp 0x14038dd84
test eax, eax
je 0x14038de16
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x3c], eax
jmp 0x14038dcac
mov r8d, dword [rsp + 0x3c]
mov edx, 0x52
xor r9d, r9d
mov rcx, r12
mov dword [rsp + 0x20], 0
call dbg.growOp3
mov edx, eax
jmp 0x14038dbb7
mov eax, dword [r12 + 0x90]
lea edx, [rax - 1]
cmp esi, edx
jne 0x14038de94
mov dword [r12 + 0x90], esi
jmp 0x14038dd84
mov rcx, qword [r12]
test esi, esi
cmovs esi, edx
lea rdx, [0x1407d6d60]
cmp byte [rcx + 0x63], 0
jne 0x14038debd
mov rdx, qword [r12 + 0x88]
movsxd rsi, esi
lea rcx, [rsi + rsi*2]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], eax
jmp 0x14038dd84
mov r8d, dword [rsp + 0x3c]
xor r9d, r9d
mov edx, 0x12
mov rcx, r12
mov dword [rsp + 0x20], 0
call dbg.growOp3
mov esi, eax
jmp 0x14038dcfd