Function at 0x140228460
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, 0x228
mov rax, qword [rsp + 0x2a0]
mov qword [rax], 0
xor eax, eax
mov qword [rsp + 0x280], r8
mov rbp, rcx
mov rcx, qword [rcx + 0x18]
mov rsi, r9
mov r8d, dword [rsp + 0x298]
mov qword [rsp + 0x278], rdx
mov qword [rsp + 0x78], 0
test r8d, r8d
setne al
mov dword [rsp + 0x64], eax
test rcx, rcx
je 0x1402284c4
call qword [0x14026b4e0]
mov edx, 0x38
mov rcx, rbp
call fcn.140174530
mov r14, rax
test rax, rax
je 0x140228510
mov qword [r14], 0
mov qword [r14 + 8], 0
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], 0
mov qword [r14 + 0x20], 0
mov qword [r14 + 0x28], 0
mov qword [r14 + 0x30], 0
lea rax, [rsp + 0x88]
mov dword [rsp + 0x3c], 0
lea r15, [rsp + 0x80]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x190]
lea rbx, [0x1403cfba0]
mov dword [rsp + 0x60], 0
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x58]
xor eax, eax
mov ecx, 0x1a
cmp byte [rbp + 0x67], 0
mov qword [rsp + 0x80], rbp
rep stosq qword [rdi], rax
mov rdi, qword [rsp + 0x50]
mov ecx, 0x11
rep stosq qword [rdi], rax
mov rax, qword [rbp + 0x150]
mov qword [rbp + 0x150], r15
mov qword [rsp + 0x178], rax
jne 0x140228a10
test r14, r14
je 0x140228a28
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x1402285a8
mov rcx, rbp
call fcn.140165990
mov qword [rsp + 0x78], 0
cmp byte [rbp + 0x6f], 0
je 0x140228a50
mov r9, qword [rsp + 0x278]
mov r8, qword [rsp + 0x280]
xor edx, edx
mov rcx, r15
call fcn.1401fd430
mov r11, rax
test rax, rax
je 0x140228b46
movzx eax, byte [rax + 0x3f]
cmp al, 1
je 0x140228b99
mov edi, dword [r11 + 0x30]
and edi, 0x80
mov dword [rsp + 0x40], edi
jne 0x140228b2f
cmp al, 2
je 0x140228c8f
mov rcx, qword [r11 + 0x60]
mov rdx, qword [rbp + 0x20]
mov qword [r14 + 0x30], r11
test rcx, rcx
je 0x140228cab
cmp rcx, qword [rdx + 0x18]
je 0x14022863d
lea rax, [rdx + 0x20]
nop dword [rax + rax]
mov rdx, rax
add rax, 0x20
cmp rcx, qword [rax - 8]
jne 0x140228630
mov rax, qword [rdx]
movsx r12d, word [r11 + 0x36]
mov qword [r14 + 0x28], rax
test r12d, r12d
jle 0x140228955
mov r9, qword [r11 + 8]
xor edi, edi
nop dword [rax + rax]
mov r8, qword [r9]
xor ecx, ecx
jmp 0x140228681
movzx edx, byte [rbx + rdx]
cmp byte [rbx + rax], dl
jne 0x140228860
add rcx, 1
movzx eax, byte [r8 + rcx]
movzx edx, byte [rsi + rcx]
cmp eax, edx
jne 0x140228670
test eax, eax
jne 0x14022867d
mov ecx, dword [rsp + 0x298]
test ecx, ecx
jne 0x14022896c
mov rcx, r15
mov qword [rsp + 0x48], r11
call fcn.1401817c0
mov qword [r14 + 0x18], rax
mov r13, rax
test rax, rax
je 0x1402287f6
mov r11, qword [rsp + 0x48]
mov rdx, qword [r11 + 0x60]
test rdx, rdx
je 0x140228ce0
mov rax, qword [rbp + 0x20]
cmp rdx, qword [rax + 0x18]
je 0x140228c3d
add rax, 0x38
xor r12d, r12d
nop dword [rax]
add rax, 0x20
add r12d, 1
cmp rdx, qword [rax - 0x20]
jne 0x1402286e8
mov eax, 1
mov ecx, r12d
shl eax, cl
mov dword [rsp + 0x40], eax
mov r10d, dword [rdx + 4]
mov r8d, dword [rdx]
mov eax, dword [r13 + 0x90]
cmp eax, dword [r13 + 0x94]
jge 0x140228bb2
movsxd rcx, eax
lea edx, [rax + 1]
lea r9, [rcx + rcx*2]
mov rcx, qword [r13 + 0x88]
mov dword [r13 + 0x90], edx
lea rcx, [rcx + r9*8]
mov r9d, dword [rsp + 0x64]
mov dword [rcx + 4], r12d
mov dword [rcx + 8], r9d
mov dword [rcx + 0xc], r8d
mov qword [rcx + 0x10], 0
mov dword [rcx], 2
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x14022877d
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 0x88]
lea rax, [rax + rcx*8]
mov byte [rax + 1], 0xfd
mov dword [rax + 0x10], r10d
test edx, edx
jle 0x14022879c
mov r10, qword [r13 + 0x88]
movsxd rdx, edx
lea rax, [rdx + rdx*2]
mov edx, 1
lea rax, [r10 + rax*8]
mov word [rax - 0x16], dx
lea r8, [0x1403c7f70]
mov edx, 6
mov rcx, r13
mov qword [rsp + 0x48], r11
call fcn.1401815f0
mov r10d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
or dword [r13 + 0xcc], r10d
cmp r12d, 1
je 0x1402287ec
mov rcx, qword [r13]
movsxd rdx, r12d
shl rdx, 5
add rdx, qword [rcx + 0x20]
mov rdx, qword [rdx + 8]
cmp byte [rdx + 0x11], 0
je 0x1402287ec
or dword [r13 + 0xd0], r10d
cmp byte [rbp + 0x67], 0
je 0x140228a80
mov word [r14 + 8], di
mov qword [r14 + 0x20], rbp
cmp byte [rbp + 0x6f], 0
je 0x140228a5d
cmp byte [rbp + 0x67], 0
jne 0x140228a6f
mov rdx, qword [rsp + 0x290]
lea r8, [rsp + 0x78]
mov rcx, r14
call fcn.1402282b0
add dword [rsp + 0x60], 1
mov edi, dword [rsp + 0x60]
cmp eax, 0x11
mov dword [rsp + 0x3c], eax
setne al
cmp edi, 0x32
sete dl
or al, dl
jne 0x140228c61
mov rcx, r15
call fcn.14016b2c0
mov dword [rsp + 0x3c], 0x11
jmp 0x140228549
add edi, 1
add r9, 0x18
cmp r12d, edi
jne 0x140228660
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140228882
mov rcx, rbp
call fcn.140165990
mov r8, rsi
lea rdx, str.no_such_column:___s_
mov rcx, rbp
call fcn.140190f70
mov qword [rsp + 0x78], rax
cmp byte [rbp + 0x6f], 0
je 0x140228b8c
mov dword [rsp + 0x3c], 1
mov edi, 1
mov r12, qword [r14 + 0x18]
test r12, r12
je 0x1402288d0
cmp byte [r12 + 0xc5], 0
jne 0x140228cb7
mov rcx, r12
call fcn.14016cf10
mov rdx, r14
mov rcx, rbp
call fcn.140165990
mov r9, qword [rsp + 0x78]
mov eax, 0
mov edx, dword [rsp + 0x3c]
mov rcx, rbp
lea r8, [0x1403bfbe8]
test r9, r9
cmove r8, rax
call fcn.140197ad0
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140228911
mov rcx, rbp
call fcn.140165990
mov rcx, r15
call fcn.14016b2c0
cmp byte [rbp + 0x67], 0
jne 0x140228c4d
xor r12d, r12d
test dil, dil
jne 0x140228c4d
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x14022893e
call qword [0x14026b4f0]
mov eax, r12d
add rsp, 0x228
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
je 0x140228870
mov ecx, dword [rsp + 0x298]
xor edi, edi
test ecx, ecx
je 0x1402286a1
mov r9, qword [r11 + 0x10]
test byte [rbp + 0x31], 0x40
jne 0x140228bec
xor r12d, r12d
test r9, r9
je 0x1402286a1
nop word cs:[rax + rax]
movzx eax, word [r9 + 0x5e]
test ax, ax
je 0x1402289d8
mov rdx, qword [r9 + 8]
lea ecx, [rax - 1]
lea rax, [rdx + 2]
lea r8, [rax + rcx*2]
jmp 0x1402289c2
cmp cx, 0xfffe
je 0x1402289c9
mov rdx, rax
cmp r8, rax
je 0x1402289d8
add rax, 2
movsx ecx, word [rdx]
cmp ecx, edi
jne 0x1402289b0
lea r12, str.indexed
mov rdx, rax
cmp r8, rax
jne 0x1402289be
mov r9, qword [r9 + 0x28]
test r9, r9
jne 0x140228990
test r12, r12
je 0x1402286a1
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x1402289fc
mov rcx, rbp
call fcn.140165990
mov r8, r12
lea rdx, str.cannot_open__s_column_for_writing
jmp 0x14022888c
lea rdx, [0x1403bf398]
mov rcx, r15
call fcn.140174330
test r14, r14
jne 0x140228596
mov eax, dword [rsp + 0x3c]
mov edi, 1
test eax, eax
jne 0x1402288db
cmp byte [rbp + 0x67], 0
je 0x140228c75
xor edi, edi
jmp 0x1402288db
mov rcx, rbp
call fcn.140166810
jmp 0x1402285bb
mov rcx, rbp
call fcn.1401655d0
cmp byte [rbp + 0x67], 0
je 0x140228813
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
setne dil
jmp 0x1402288b0
mov ecx, dword [rsp + 0x64]
mov edx, dword [r11 + 0x28]
mov dword [rax + 4], r12d
mov r8, qword [r11]
mov dword [rax + 0xc], ecx
mov rcx, qword [r13]
mov dword [rax + 8], edx
cmp byte [rcx + 0x67], 0
jne 0x140228ad7
mov qword [rsp + 0x48], rax
mov rax, qword [r13 + 0x88]
xor r9d, r9d
mov rcx, r13
mov qword [rsp + 0x40], r11
lea rdx, [rax + 0x30]
call fcn.140176030
cmp byte [rbp + 0x67], 0
jne 0x1402287f6
mov r11, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov edx, dword [r11 + 0x28]
mov r9d, dword [rsp + 0x298]
test r9d, r9d
je 0x140228ae8
mov byte [rax + 0x18], 0x71
mov dword [rax + 0x20], edx
xor r8d, r8d
mov byte [rax + 0x19], 0xfd
movsx edx, word [r11 + 0x36]
mov dword [rax + 0x24], r12d
lea ecx, [rdx + 1]
mov dword [rax + 0x50], edx
mov rdx, r15
mov dword [rax + 0x28], ecx
mov rcx, r13
movabs rax, 0x100000001
mov word [rsp + 0x1a0], r8w
mov qword [rsp + 0xb4], rax
call fcn.14017e770
jmp 0x1402287f6
mov r8, qword [rsp + 0x280]
lea rdx, str.cannot_open_table_without_rowid:__s
mov rcx, r15
call fcn.140174330
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x140228899
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140228b71
mov rcx, rbp
call fcn.140165990
mov rax, qword [rsp + 0x88]
cmp byte [rbp + 0x6f], 0
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x88], 0
jne 0x1402288a3
mov rcx, rbp
call fcn.1401655d0
jmp 0x1402288a3
mov r8, qword [rsp + 0x280]
lea rdx, str.cannot_open_virtual_table:__s
mov rcx, r15
call fcn.140174330
jmp 0x140228b46
mov dword [rsp + 0x20], r8d
mov r9d, dword [rsp + 0x64]
mov edx, 2
mov r8d, r12d
mov rcx, r13
mov qword [rsp + 0x68], r11
mov dword [rsp + 0x48], r10d
call fcn.1401816c0
mov r10d, dword [rsp + 0x48]
mov r11, qword [rsp + 0x68]
mov edx, dword [r13 + 0x90]
jmp 0x14022875a
mov r8, qword [r11 + 0x48]
xor r12d, r12d
lea rcx, str.foreign_key
test r8, r8
je 0x140228cc4
mov edx, dword [r8 + 0x28]
test edx, edx
jle 0x140228c2f
sub edx, 1
lea rax, [r8 + 0x40]
shl rdx, 4
lea rdx, [r8 + rdx + 0x50]
nop dword [rax + rax]
cmp dword [rax], edi
cmove r12, rcx
add rax, 0x10
cmp rdx, rax
jne 0x140228c20
mov r8, qword [r8 + 8]
test r8, r8
jne 0x140228c03
jmp 0x1402289dc
mov dword [rsp + 0x40], 1
xor r12d, r12d
jmp 0x140228704
mov edx, dword [rsp + 0x3c]
mov rcx, rbp
call fcn.140167280
mov r12d, eax
jmp 0x14022892f
mov edx, dword [rsp + 0x3c]
mov edi, eax
test edx, edx
jne 0x1402288b0
cmp byte [rbp + 0x67], 0
jne 0x140228cd2
mov rax, qword [rsp + 0x2a0]
mov dword [rsp + 0x3c], 0
xor edi, edi
mov qword [rax], r14
jmp 0x1402288db
mov r8, qword [rsp + 0x280]
lea rdx, str.cannot_open_view:__s
mov rcx, r15
call fcn.140174330
jmp 0x140228b46
sub rdx, 0x100000
jmp 0x14022863d
mov rcx, r12
call fcn.1401cb540
jmp 0x1402288c8
test r9, r9
jne 0x140228990
jmp 0x1402286a1
xor edi, edi
jmp 0x1402288b0
mov r12d, 0xffff8000
jmp 0x140228704