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

Disassembly:
push ebp
push edi
mov edi, eax
push esi
push ebx
mov esi, edx
sub esp, 0x5c
mov ebp, dword [0x66619264]
mov dword [edx], 0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
test ebp, ebp
je 0x66614351
mov eax, dword [esp + 0x3c]
mov ecx, 0x46
mov edx, eax
and edx, 7
bt ecx, edx
jae 0x66614320
mov ebx, dword [0x66619184]
xor ebp, ebp
test ebx, ebx
je 0x6661427c
test ah, 0x80
jne 0x6661427c
test eax, 0x10000
mov ebp, 1
cmove ebp, dword [0x66619188]
test eax, 0x40000
jne 0x66614370
mov ecx, dword [0x6661925c]
mov edx, eax
or edx, 0x20000
test ecx, ecx
cmovne eax, edx
and eax, 0xfff600e7
xor edx, edx
mov dword [esp + 0x3c], eax
mov eax, 0x210
call sym._sqlite3MallocZero
test eax, eax
mov ebx, eax
je 0x666142e0
test ebp, ebp
je 0x66614380
mov ebp, dword [0x66619184]
test ebp, ebp
jne 0x66614650
mov dword [eax + 0xc], 0
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_free
lea esi, [esi]
mov eax, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
nop
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_errcode
cmp eax, 7
mov ecx, eax
je 0x66614630
test eax, eax
je 0x6661430e
mov dword [ebx + 0x4c], 0x4b771290
mov dword [esi], ebx
add esp, 0x5c
movzx eax, cl
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 0x6661a358
mov dword [esp + 8], 0x1fe69
mov dword [esp + 4], 0x6661a81c
mov dword [esp], 0x15
call sym.libsqlite3_0.dll_sqlite3_log
add esp, 0x5c
mov eax, 0x15
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._sqlite3_initialize.part.337
test eax, eax
je 0x66614243
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
and eax, 0xfffdffff
jmp 0x6661429a
mov eax, dword [eax + 0xc]
test eax, eax
je 0x66614390
mov dword [esp], eax
call dword [0x666191d4]
mov edx, dword [0x66623360]
lea eax, [ebx + 0x1c8]
mov byte [ebx + 0x3f], 1
mov byte [ebx + 0x43], 0xff
mov dword [ebx + 0x38], 0xff
mov ecx, 1
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], 2
mov dword [ebx + 0x58], edx
mov edx, dword [0x66623364]
mov dword [ebx + 0x4c], 0xf03b7906
mov dword [ebx + 0x84], 0
mov dword [ebx + 0x5c], edx
mov edx, dword [0x66623368]
mov dword [ebx + 0x60], edx
mov edx, dword [0x6662336c]
mov dword [ebx + 0x64], edx
mov edx, dword [0x66623370]
mov dword [ebx + 0x68], edx
mov edx, dword [0x66623374]
mov dword [ebx + 0x6c], edx
mov edx, dword [0x66623378]
mov dword [ebx + 0x70], edx
mov edx, dword [0x6662337c]
mov dword [ebx + 0x74], edx
mov edx, dword [0x66623380]
mov dword [ebx + 0x78], edx
mov edx, dword [0x66623384]
mov dword [ebx + 0x7c], edx
mov edx, dword [0x66623388]
mov dword [ebx + 0x80], edx
mov eax, dword [0x66619230]
mov edx, dword [0x66619234]
mov dword [ebx + 0x28], eax
mov eax, ebx
mov dword [ebx + 0x2c], edx
or dword [ebx + 0x18], 0x900050
mov edx, str.BINARY
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x88], 0x7fffffff
mov dword [ebx + 0x1b4], 0
mov dword [ebx + 0x1b0], 0
mov dword [ebx + 0x1ac], 0
mov dword [ebx + 0x1b8], 0
mov dword [ebx + 0x13c], 0
mov dword [ebx + 0x138], 0
mov dword [ebx + 0x134], 0
mov dword [ebx + 0x140], 0
mov dword [esp + 8], 0
mov dword [esp + 4], sym._binCollFunc
mov dword [esp], 0
call sym._createCollation
mov ecx, 3
mov edx, str.BINARY
mov dword [esp + 8], 0
mov dword [esp + 4], sym._binCollFunc
mov dword [esp], 0
mov eax, ebx
call sym._createCollation
mov ecx, 2
mov edx, str.BINARY
mov dword [esp + 8], 0
mov dword [esp + 4], sym._binCollFunc
mov dword [esp], 0
mov eax, ebx
call sym._createCollation
mov ecx, 1
mov edx, 0x6661cb48
mov dword [esp + 8], 0
mov dword [esp + 4], sym._nocaseCollatingFunc
mov dword [esp], 0
mov eax, ebx
call sym._createCollation
mov dword [esp + 8], 0
mov dword [esp + 4], sym._binCollFunc
mov ecx, 1
mov dword [esp], 1
mov edx, 0x66620a14
mov eax, ebx
call sym._createCollation
cmp byte [ebx + 0x41], 0
je 0x666145a0
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x666142f0
mov dword [esp], eax
call dword [0x666191dc]
jmp 0x666142f0
xor ecx, ecx
mov edx, str.BINARY
mov eax, ebx
call sym._findCollSeqEntry
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x3c]
mov edx, edi
mov dword [ebx + 0x30], eax
lea eax, [esp + 0x48]
mov dword [esp], ebx
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
call sym._sqlite3ParseUri
test eax, eax
je 0x66614670
cmp eax, 7
je 0x66614620
mov ecx, dword [esp + 0x48]
mov edi, 0
mov edx, 0x6661ac50
mov dword [esp + 4], eax
mov dword [esp], ebx
test ecx, ecx
mov dword [esp + 0xc], ecx
cmove edx, edi
mov dword [esp + 8], edx
call sym._sqlite3ErrorWithMsg
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x66614571
mov byte [ebx + 0x41], 1
jmp 0x666145e7
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, ebx
call sym._sqlite3Close
xor ebx, ebx
mov ecx, dword [esp + 0x38]
jmp 0x6661430e
mov dword [esp], 1
call dword [0x666191cc]
test eax, eax
mov dword [ebx + 0xc], eax
jne 0x66614387
jmp 0x666142d2
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], 0
mov ecx, ebx
mov edx, dword [esp + 0x44]
or ah, 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x10]
add eax, 4
mov dword [esp], eax
mov eax, dword [ebx]
call sym._sqlite3BtreeOpen
test eax, eax
je 0x666146d5
cmp eax, 0xc0a
mov edx, 7
cmove eax, edx
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0xec]
test eax, eax
je 0x66614571
test word [eax + 8], 0x2460
jne 0x66614800
mov ecx, 1
mov word [eax + 8], cx
jmp 0x66614571
mov edi, dword [ebx + 0x10]
mov edx, dword [edi + 4]
cmp byte [edx + 9], 0
jne 0x666147ee
mov eax, ebx
call sym._sqlite3SchemaGet
mov dword [edi + 0xc], eax
cmp byte [ebx + 0x41], 0
mov edi, dword [ebx + 0x10]
jne 0x66614702
mov eax, dword [edi + 0xc]
movzx eax, byte [eax + 0x4d]
mov byte [ebx + 0x3e], al
mov eax, dword [edi + 4]
cmp byte [eax + 9], 0
je 0x6661471c
mov ecx, dword [eax + 0xc]
lea edx, [ecx - 1]
test edx, edx
mov dword [eax + 0xc], edx
je 0x66614958
xor edx, edx
mov eax, ebx
call sym._sqlite3SchemaGet
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [eax], str.main
mov byte [eax + 8], 3
mov eax, dword [ebx + 0x10]
mov dword [eax + 0x10], str.temp
mov byte [eax + 0x18], 1
cmp byte [ebx + 0x41], 0
mov dword [ebx + 0x4c], 0xa029a697
jne 0x66614571
mov eax, dword [ebx + 0xec]
mov dword [ebx + 0x34], 0
test eax, eax
je 0x6661477a
test word [eax + 8], 0x2460
jne 0x66614985
mov edx, 1
mov word [eax + 8], dx
mov dword [esp + 8], 2
mov dword [esp + 4], str.MATCH
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_overload_function
cmp eax, 7
je 0x6661497c
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_errcode
test eax, eax
mov edi, eax
je 0x6661480a
mov eax, dword [ebx + 0xec]
mov dword [ebx + 0x34], edi
test eax, eax
je 0x666147cb
test word [eax + 8], 0x2460
jne 0x666149ab
mov edx, 1
mov word [eax + 8], dx
mov eax, dword [ebx + 0xfc]
test eax, eax
je 0x6661498f
mov dword [esp + 4], 0x3e8
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_wal_autocheckpoint
jmp 0x66614571
mov eax, edx
call sym._sqlite3BtreeEnter.part.88
mov edi, dword [ebx + 0x10]
mov edx, dword [edi + 4]
jmp 0x666146e5
call sym._vdbeMemClearExternAndSetNull
jmp 0x66614571
mov ebp, dword [0x6663c03c]
test ebp, ebp
je 0x666148a4
mov ecx, dword [0x66619184]
test ecx, ecx
jne 0x6661485f
cmp edi, dword [0x6663c03c]
jae 0x66614965
mov eax, dword [0x6663c040]
mov eax, dword [eax + edi*4]
mov dword [esp + 0x4c], 0
test eax, eax
jne 0x66614a05
mov dword [esp], 0
call sym.libsqlite3_0.dll_sqlite3_free
mov ecx, dword [0x66619184]
add edi, 1
test ecx, ecx
je 0x66614822
mov dword [esp], 2
call dword [0x666191cc]
test eax, eax
mov ebp, eax
je 0x66614822
mov dword [esp], eax
call dword [0x666191d4]
cmp edi, dword [0x6663c03c]
jb 0x666149b5
mov dword [esp], ebp
call dword [0x666191dc]
mov dword [esp], 0
mov dword [esp + 0x4c], 0
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_errcode
test eax, eax
jne 0x66614571
cmp byte [ebx + 0x41], 0
jne 0x666147cb
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, 0x66620da0
mov edx, str.fts4aux
mov eax, ebx
call sym._createModule
test eax, eax
mov edi, eax
jne 0x666147a9
mov dword [esp], 0x14
call sym.libsqlite3_0.dll_sqlite3_malloc
test eax, eax
mov ebp, eax
je 0x66614d42
mov byte [eax], 1
mov byte [eax + 1], 1
mov ecx, 7
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov edx, str.simple
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [esp], 0x66623244
call sym._sqlite3Fts3HashInsert
test eax, eax
je 0x66614a43
mov edi, 7
mov eax, ebp
call sym._sqlite3Fts3HashClear
mov dword [esp], ebp
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x666147a9
call sym._sqlite3BtreeLeave.part.89
mov edi, dword [ebx + 0x10]
jmp 0x6661471c
mov dword [esp + 0x4c], 0
xor eax, eax
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x666148a4
mov byte [ebx + 0x41], 1
jmp 0x6661479b
call sym._vdbeMemClearExternAndSetNull
jmp 0x6661477a
mov eax, dword [0x666191a0]
mov ecx, dword [0x6661919c]
xor edx, edx
mov dword [esp], eax
mov eax, ebx
call sym._setupLookaside.part.219
jmp 0x666147d9
call sym._vdbeMemClearExternAndSetNull
jmp 0x666147cb
mov edx, dword [0x6663c040]
mov edx, dword [edx + edi*4]
mov dword [esp], ebp
mov dword [esp + 0x38], edx
call dword [0x666191dc]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x4c], 0
test edx, edx
je 0x666149f4
lea eax, [esp + 0x4c]
mov dword [esp + 8], 0x66625880
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
test eax, eax
jne 0x66614a1e
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x66614852
lea ecx, [esp + 0x4c]
mov dword [esp + 8], 0x66625880
mov dword [esp], ebx
mov dword [esp + 4], ecx
call eax
test eax, eax
je 0x666149f4
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp + 8], str.automatic_extension_loading_failed:__s
mov dword [esp], ebx
mov dword [esp + 0xc], edx
call sym._sqlite3ErrorWithMsg
mov eax, dword [esp + 0x4c]
jmp 0x6661496f
mov dword [esp], 0x66623260
mov ecx, 7
mov edx, str.porter
mov eax, ebp
call sym._sqlite3Fts3HashInsert
test eax, eax
jne 0x6661493f
mov dword [esp], 0x666217ac
mov ecx, 0xa
mov edx, str.unicode61
mov eax, ebp
call sym._sqlite3Fts3HashInsert
test eax, eax
jne 0x6661493f
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], sym._scalarFunc
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], 5
mov dword [esp + 8], 1
mov dword [esp + 4], str.fts3_tokenizer
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_create_function_v2
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], sym._scalarFunc
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], 5
mov dword [esp + 8], 2
mov dword [esp + 4], str.fts3_tokenizer
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_create_function_v2
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], str.snippet
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_overload_function
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 8], 1
mov dword [esp + 4], str.offsets
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_overload_function
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 8], 1
mov dword [esp + 4], str.matchinfo
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_overload_function
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 8], 2
mov dword [esp + 4], str.matchinfo
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_overload_function
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 8], 1
mov dword [esp + 4], str.optimize
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_overload_function
test eax, eax
mov edi, eax
jne 0x66614944
mov dword [esp + 4], sym._hashDestroy
mov dword [esp], ebp
mov ecx, 0x66623300
mov edx, str.fts3
mov eax, ebx
call sym._createModule
test eax, eax
mov edi, eax
jne 0x666147a9
mov dword [esp + 4], 0
mov dword [esp], ebp
mov ecx, 0x66623300
mov edx, str.fts4
mov eax, ebx
call sym._createModule
test eax, eax
mov edi, eax
jne 0x666147a9
mov dword [esp + 4], 0
mov dword [esp], ebp
mov ecx, 0x66620d40
mov edx, str.fts3tokenize
mov eax, ebx
call sym._createModule
cmp byte [ebx + 0x41], 0
mov edi, eax
jne 0x66614d35
test eax, eax
jne 0x666147a9
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], sym._rtreenode
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 2
mov dword [esp + 4], str.rtreenode
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_create_function_v2
test eax, eax
mov edi, eax
jne 0x666147a9
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], sym._rtreedepth
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], str.rtreedepth
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_create_function_v2
test eax, eax
mov edi, eax
jne 0x666147a9
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, 0x66618d20
mov edx, str.rtree
mov eax, ebx
call sym._createModule
test eax, eax
mov edi, eax
jne 0x666147a9
mov dword [esp + 4], 0
mov dword [esp], 1
mov ecx, 0x66618d20
mov edx, str.rtree_i32
mov eax, ebx
call sym._createModule
mov edi, eax
test edi, edi
je 0x666147cb
jmp 0x666147a9
mov edi, 7
jmp 0x666147a9