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

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push r15
sub rsp, 0xb0
mov rbp, qword [rcx]
mov rsi, rcx
mov r15, qword [rsp + 0xf0]
test r8, r8
jne 0x14012ab56
test r15, r15
je 0x14012b2af
mov qword [rsp + 0xa8], rbx
mov rbx, qword [rcx + 0x140]
test rbx, rbx
je 0x14012b2a7
test r15, r15
jne 0x14012ab92
mov rdx, qword [rbx]
mov rcx, rbp
call fcn.14014ee00
movzx r9d, byte [rsp + 0xe8]
test eax, eax
je 0x14012ab92
or dword [rbx + 0x40], 0x1000
cmp byte [rbp + 0xbd], 0
je 0x14012abc5
test r15, r15
je 0x14012abb4
lea rdx, [0x14023d684]
mov rcx, rsi
call fcn.14012b3a0
jmp 0x14012b2a7
mov eax, dword [rbp + 0xb8]
mov dword [rbx + 0x38], eax
cmp eax, 1
jne 0x14012abc5
or dword [rbx + 0x40], eax
test r9b, r9b
jns 0x14012ac0d
mov eax, dword [rbx + 0x40]
mov rcx, rsi
test al, 8
je 0x14012abe5
lea rdx, str.AUTOINCREMENT_not_allowed_on_WITHOUT_ROWID_tables
call fcn.14012b3a0
jmp 0x14012b2a7
test al, 4
jne 0x14012abfd
mov r8, qword [rbx]
lea rdx, str.PRIMARY_KEY_missing_on_table__s
call fcn.14012b3a0
jmp 0x14012b2a7
or eax, 0x280
mov rdx, rbx
mov dword [rbx + 0x40], eax
call fcn.1400f5a40
mov rcx, qword [rbx + 0x70]
mov qword [rsp + 0x98], r12
mov r12d, 0xffff8000
mov qword [rsp + 0x90], r13
xor r13d, r13d
mov dword [rsp + 0xd0], r12d
test rcx, rcx
je 0x14012ac64
mov rax, qword [rbp + 0x20]
mov r12d, r13d
add rax, 0x18
mov dword [rsp + 0xd0], r13d
cmp qword [rax], rcx
je 0x14012ac64
nop
inc r12d
lea rax, [rax + 0x20]
cmp qword [rax], rcx
jne 0x14012ac50
mov dword [rsp + 0xd0], r12d
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x14012ac9f
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov rcx, rsi
lea r8d, [r9 + 4]
call fcn.140148e20
cmp dword [rsi + 0x30], r13d
je 0x14012ac9f
mov rdx, qword [rbx + 0x30]
test rdx, rdx
je 0x14012ac9b
mov rcx, rbp
call fcn.1400fc470
mov qword [rbx + 0x30], r13
test byte [rbx + 0x40], 0x60
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x88], r14
je 0x14012ad9b
xor eax, eax
mov r15d, eax
cmp ax, word [rbx + 0x46]
jge 0x14012ad7c
xor r12d, r12d
mov edi, r12d
nop
mov rax, qword [rbx + 8]
test byte [rdi + rax + 0x1c], 0x60
je 0x14012ad58
mov r14, qword [rdi + rax + 8]
mov r8d, 8
mov r9, r14
mov qword [rsp + 0x20], r12
mov rdx, rbx
mov rcx, rsi
call fcn.140148e20
test eax, eax
je 0x14012ad5b
test r14, r14
je 0x14012ad0d
mov rdx, r14
mov rcx, rbp
call fcn.14012fd70
mov edx, 0x48
mov rcx, rbp
call fcn.140128a50
mov rcx, rax
test rax, rax
je 0x14012ad4d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm0
mov qword [rcx + 0x40], rax
mov eax, 0xffffffff
mov word [rcx + 0x32], ax
mov byte [rcx], 0x78
mov dword [rcx + 0x28], 1
mov rax, qword [rbx + 8]
mov qword [rdi + rax + 8], rcx
jmp 0x14012ad5b
inc r13d
movsx eax, word [rbx + 0x46]
inc r15d
add rdi, 0x20
cmp r15d, eax
jl 0x14012acd0
mov r12d, dword [rsp + 0xd0]
test r13d, r13d
jne 0x14012ad90
lea rdx, str.must_have_at_least_one_non_generated_column
mov rcx, rsi
call fcn.14012b3a0
jmp 0x14012b287
mov r15, qword [rsp + 0xf0]
xor r13d, r13d
movsx r10d, word [rbx + 0x46]
mov edx, r13d
mov rcx, qword [rbx + 8]
mov r8d, r13d
mov r11d, r13d
cmp r10d, 2
jl 0x14012ade7
lea eax, [r10 - 2]
shr eax, 1
inc eax
mov r9d, eax
neg eax
lea r10d, [r10 + rax*2]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + 0x1a]
add edx, eax
movzx eax, byte [rcx + 0x3a]
add r8d, eax
add rcx, 0x40
sub r9, 1
jne 0x14012add0
test r10d, r10d
jle 0x14012adf1
movzx r11d, byte [rcx + 0x1a]
lea ecx, [rdx + r11]
add ecx, r8d
cmp word [rbx + 0x44], 0
lea eax, [rcx + 1]
cmovge eax, ecx
shl eax, 2
mov ecx, eax
call fcn.14013dc30
mov rdi, qword [rbx + 0x10]
mov word [rbx + 0x4c], ax
test rdi, rdi
je 0x14012ae31
nop word [rax + rax]
mov rcx, rdi
call fcn.1400f80f0
mov rdi, qword [rdi + 0x28]
test rdi, rdi
jne 0x14012ae20
movzx eax, byte [rbp + 0xbd]
test al, al
jne 0x14012b1e2
mov r14, qword [rsi + 0x10]
test r14, r14
jne 0x14012ae73
cmp qword [rsi + 0xa0], r14
jne 0x14012ae5f
mov rax, qword [rsi]
test byte [rax + 0x5c], 8
jne 0x14012ae5f
mov byte [rsi + 0x23], 1
mov rcx, rsi
call fcn.140156c40
mov r14, rax
test rax, rax
je 0x14012b287
movsxd rcx, dword [r14 + 0x90]
cmp dword [r14 + 0x94], ecx
jg 0x14012ae9c
xor r9d, r9d
mov dword [rsp + 0x20], r13d
xor r8d, r8d
mov rcx, r14
lea edx, [r9 + 0x75]
call fcn.140104130
jmp 0x14012aec7
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov qword [rax + rcx*8], 0x75
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r13
mov rax, qword [rbx + 0x18]
lea rcx, str.VIEW
test rax, rax
lea r8, str.TABLE
lea r13, str.table
cmovne r8, rcx
lea rcx, str.view
cmovne r13, rcx
test r15, r15
je 0x14012b0de
mov edi, dword [rsi + 0x38]
mov edx, 0x62
inc edi
mov dword [rsp + 0x20], r12d
mov rcx, rsi
lea r8d, [rdx - 0x61]
lea eax, [rdi + 1]
mov dword [rsp + 0xd0], eax
inc eax
mov dword [rsi + 0x38], eax
mov rax, qword [rsi + 0xa0]
test rax, rax
cmovne rcx, rax
mov byte [rcx + 0x21], 1
mov rcx, r14
mov r9d, dword [rsi + 0x7c]
call fcn.1401561e0
movsxd rax, dword [r14 + 0x90]
test eax, eax
jle 0x14012af5e
lea rcx, [rax + rax*2]
mov edx, 0x10
mov rax, qword [r14 + 0x88]
mov word [rax + rcx*8 - 0x16], dx
mov dword [rsi + 0x34], 2
xor r9d, r9d
mov r15d, dword [r14 + 0x90]
mov r8d, edi
mov rcx, r14
lea edx, [r9 + 0xd]
lea eax, [r15 + 1]
mov dword [rsp + 0x20], eax
call fcn.1401561e0
cmp dword [rsi + 0x30], 0
jne 0x14012b287
mov rdx, qword [rsp + 0xf0]
mov r8b, 0x41
mov rcx, rsi
call fcn.140148f20
test rax, rax
je 0x14012b287
movzx ecx, word [rax + 0x46]
mov word [rbx + 0x48], cx
mov word [rbx + 0x46], cx
mov rcx, qword [rax + 8]
mov qword [rbx + 8], rcx
xor ecx, ecx
mov word [rax + 0x46], cx
mov qword [rax + 8], rcx
cmp qword [rbp + 0x2e0], rcx
jne 0x14012afd9
add dword [rax + 0x3c], 0xffffffff
jne 0x14012afe6
mov rdx, rax
mov rcx, rbp
call fcn.1400f7240
xor ecx, ecx
mov rdx, qword [rsp + 0xf0]
lea r8, [rsp + 0x50]
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x60], ecx
mov rcx, rsi
mov byte [rsp + 0x50], 0xd
mov dword [rsp + 0x54], edi
mov qword [rsp + 0x58], 0
call fcn.14014a780
cmp dword [rsi + 0x30], 0
jne 0x14012b287
mov edx, edi
mov rcx, r14
call fcn.140157380
mov edx, r15d
mov rcx, r14
call fcn.140161190
mov r8d, dword [rsp + 0x54]
mov edx, 0xe
mov rcx, r14
call fcn.140156100
mov r9d, dword [rsp + 0x60]
mov edx, 0x5c
mov r8d, dword [rsp + 0x5c]
mov rcx, r14
mov r15d, dword [rsp + 0xd0]
mov edi, eax
mov dword [rsp + 0x20], r15d
call fcn.1401561e0
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.140150960
mov edx, 0x7a
lea r9d, [r15 + 1]
mov rcx, r14
lea r8d, [rdx - 0x79]
call fcn.140156170
mov edx, 0x7b
lea eax, [r15 + 1]
mov r9d, r15d
mov dword [rsp + 0x20], eax
mov rcx, r14
lea r8d, [rdx - 0x7a]
call fcn.1401561e0
mov edx, edi
mov rcx, r14
call fcn.1401609c0
mov edx, edi
mov rcx, r14
call fcn.140161190
mov edx, 0x75
mov rcx, r14
lea r8d, [rdx - 0x74]
call fcn.140156100
mov rdx, rbx
mov rcx, rbp
call fcn.1400f66f0
jmp 0x14012b128
cmp byte [rsp + 0xe8], 0
lea rcx, [rsi + 0x100]
jne 0x14012b0f7
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx]
mov r9d, dword [rcx]
sub r9d, dword [rsi + 0xf0]
cmp byte [rax], 0x3b
je 0x14012b10d
add r9d, dword [rcx + 8]
mov rax, qword [rsi + 0xf0]
lea rdx, str.CREATE__s__.s
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.14013de00
mov rcx, qword [rbx]
lea rdx, str.UPDATE__Q.sqlite_master_SET_type_s__name_Q__tbl_name_Q__rootpage_d__sql_Q_WHERE_rowid_d
mov r8, qword [rbp + 0x20]
mov r15, rax
mov eax, dword [rsi + 0x78]
mov r9, r13
mov dword [rsp + 0x40], eax
mov eax, dword [rsi + 0x7c]
mov qword [rsp + 0x38], r15
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
mov rcx, rsi
movsxd rdi, r12d
shl rdi, 5
mov r8, qword [rdi + r8]
call fcn.14013e6d0
test r15, r15
je 0x14012b17c
mov rdx, r15
mov rcx, rbp
call fcn.1401288c0
mov edx, r12d
mov rcx, rsi
call fcn.140123880
test byte [rbx + 0x40], 8
je 0x14012b1b0
mov r8, qword [rbp + 0x20]
mov rax, qword [r8 + rdi + 0x18]
cmp qword [rax + 0x68], 0
jne 0x14012b1b0
mov r8, qword [r8 + rdi]
lea rdx, str.CREATE_TABLE__Q.sqlite_sequence_name_seq_
mov rcx, rsi
call fcn.14013e6d0
mov r8, qword [rbx]
lea rdx, str.tbl_name_q_AND_type_trigger
mov rcx, rbp
call fcn.14013de00
xor r13d, r13d
mov r8, rax
movzx r9d, r13w
mov edx, r12d
mov rcx, r14
call fcn.140156520
movzx eax, byte [rbp + 0xbd]
test al, al
je 0x14012b24f
mov rcx, qword [rbx + 0x70]
mov r8, rbx
mov rdx, qword [rbx]
add rcx, 8
call fcn.1401390a0
test rax, rax
je 0x14012b244
cmp byte [rbp + 0x63], 0
jne 0x14012b287
cmp byte [rbp + 0x64], 0
jne 0x14012b287
cmp dword [rbp + 0xdc], 0
mov byte [rbp + 0x63], 1
jle 0x14012b221
mov dword [rbp + 0x178], 1
inc dword [rbp + 0x180]
mov rax, qword [rbp + 0x140]
mov word [rbp + 0x184], r13w
test rax, rax
je 0x14012b287
mov dword [rax + 0x18], 7
jmp 0x14012b287
mov qword [rsi + 0x140], r13
or dword [rbp + 0x2c], 1
cmp qword [rsp + 0xf0], 0
jne 0x14012b287
cmp qword [rbx + 0x18], 0
jne 0x14012b287
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax]
test rax, rax
jne 0x14012b27b
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax]
sub eax, dword [rsi + 0xf0]
add eax, 0xd
mov dword [rbx + 0x50], eax
mov rdi, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov r12, qword [rsp + 0x98]
mov r13, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xa8]
add rsp, 0xb0
pop r15
pop rsi
pop rbp
ret