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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14c
mov ebx, dword [ebp + 8]
test ebx, ebx
jne 0x61e610eb
mov dword [esp + 4], str.API_called_with_NULL_prepared_statement
jmp 0x61e610ff
mov eax, dword [ebx]
test eax, eax
mov dword [ebp - 0x114], eax
jne 0x61e6111a
mov dword [esp + 4], str.API_called_with_finalized_prepared_statement
mov dword [esp], 0x15
call sym.sqlite3.dll_sqlite3_log
mov eax, 0x13cca
call sym._sqlite3MisuseError
jmp 0x61e61cf0
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_mutex_enter
and byte [ebx + 0x94], 0xef
lea eax, [ebx + 0x80]
mov dword [ebp - 0x13c], 0x33
mov dword [ebp - 0x140], eax
cmp dword [ebx + 0x14], 0x2df20da3
je 0x61e61159
mov dword [esp], ebx
call sym.sqlite3.dll_sqlite3_reset
mov esi, dword [ebx]
cmp byte [esi + 0x49], 0
je 0x61e61172
mov dword [ebx + 0x28], 7
mov esi, 7
jmp 0x61e617a3
mov eax, dword [ebx + 0x24]
test eax, eax
jg 0x61e6120c
test byte [ebx + 0x94], 3
je 0x61e6119c
mov dword [ebx + 0x28], 0x11
mov dword [ebp - 0x10c], 1
jmp 0x61e615d8
test eax, eax
je 0x61e6120c
cmp dword [esi + 0xa4], 0
jne 0x61e611b3
mov dword [esi + 0x100], 0
cmp dword [esi + 0xc8], 0
jne 0x61e611c2
test byte [esi + 0x50], 2
je 0x61e611e1
cmp byte [esi + 0x9d], 0
jne 0x61e611e1
cmp dword [ebx + 0xbc], 0
je 0x61e611e1
mov edx, dword [ebp - 0x140]
mov eax, dword [esi]
call sym._sqlite3OsCurrentTimeInt64
inc dword [esi + 0xa4]
test byte [ebx + 0x95], 1
jne 0x61e611f6
inc dword [esi + 0xac]
test byte [ebx + 0x95], 2
je 0x61e61205
inc dword [esi + 0xa8]
mov dword [ebx + 0x24], 0
mov al, byte [ebx + 0x94]
and al, 0xc
je 0x61e6147e
mov edi, dword [ebx]
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x128], edi
mov edi, dword [ebx + 0x5c]
mov dword [ebp - 0x118], edi
add edi, 0x28
cmp al, 4
mov dword [ebp - 0x10c], edi
je 0x61e61255
mov eax, dword [ebp - 0x128]
movzx eax, byte [eax + 0x1f]
and eax, 1
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x10c]
mov edx, 8
call sym._releaseMemArray
cmp dword [ebx + 0x28], 7
mov dword [ebx + 0x68], 0
jne 0x61e61282
mov eax, dword [ebp - 0x128]
call sym._sqlite3OomFault
jmp 0x61e61ce1
cmp dword [ebp - 0x12c], 0
mov eax, dword [ebx + 0x88]
mov dword [ebp - 0x130], eax
je 0x61e612e9
mov edx, dword [ebx + 0x5c]
test byte [edx + 0x170], 0x10
lea eax, [edx + 0x168]
mov dword [ebp - 0x124], eax
je 0x61e612f3
mov eax, dword [edx + 0x174]
xor ecx, ecx
shr eax, 2
mov dword [ebp - 0x11c], eax
mov eax, dword [edx + 0x178]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x11c], ecx
jle 0x61e61307
mov eax, dword [ebp - 0x120]
mov edi, dword [eax + ecx*4]
inc ecx
mov edi, dword [edi + 4]
add dword [ebp - 0x130], edi
jmp 0x61e612cc
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
mov edi, dword [ebx + 0x24]
cmp edi, dword [ebp - 0x130]
lea ecx, [edi + 1]
mov dword [ebp - 0x110], edi
mov dword [ebx + 0x24], ecx
jl 0x61e61334
mov dword [ebx + 0x28], 0
mov dword [ebp - 0x10c], 0x65
jmp 0x61e614a0
mov ecx, dword [ebx + 0x88]
cmp dword [ebp - 0x110], ecx
jge 0x61e61350
imul ecx, dword [ebp - 0x110], 0x14
mov edi, dword [ebx + 0x58]
add edi, ecx
jmp 0x61e61381
sub dword [ebp - 0x110], ecx
mov eax, dword [ebp - 0x120]
mov edi, dword [eax]
add eax, 4
mov edx, dword [edi + 4]
cmp dword [ebp - 0x110], edx
mov ecx, edx
jl 0x61e61376
sub dword [ebp - 0x110], ecx
jmp 0x61e6135c
imul ecx, dword [ebp - 0x110], 0x14
add ecx, dword [edi]
mov edi, ecx
cmp dword [ebp - 0x12c], 0
je 0x61e61446
xor ecx, ecx
cmp byte [edi + 1], 0xfc
jne 0x61e61446
cmp dword [ebp - 0x11c], ecx
jle 0x61e613b3
mov eax, dword [ebp - 0x120]
mov edx, dword [edi + 0x10]
cmp dword [eax + ecx*4], edx
je 0x61e613b3
inc ecx
jmp 0x61e6139a
cmp dword [ebp - 0x11c], ecx
jne 0x61e61446
mov eax, dword [ebp - 0x11c]
lea edx, [eax + 1]
lea ecx, [edx*4]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x134], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x134]
test eax, eax
mov eax, dword [ebp - 0x124]
setne cl
call sym._sqlite3VdbeMemGrow
test eax, eax
mov dword [ebx + 0x28], eax
jne 0x61e61ce1
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x134]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x120]
mov dword [edx + ecx - 4], eax
mov eax, dword [ebp - 0x124]
or word [eax + 8], 0x10
mov dword [eax + 0xc], ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 4]
add dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x11c], eax
mov cl, byte [ebx + 0x94]
mov dl, cl
shr cl, 2
and ecx, 3
dec ecx
jle 0x61e617bb
mov cl, byte [edi]
cmp cl, 0xac
je 0x61e617bb
cmp cl, 0x3d
jne 0x61e61307
cmp dword [ebx + 0x24], 1
jle 0x61e61307
jmp 0x61e617bb
inc dword [esi + 0xb0]
mov eax, ebx
call sym._sqlite3VdbeExec
dec dword [esi + 0xb0]
cmp eax, 0x64
mov dword [ebp - 0x10c], eax
je 0x61e61cd2
cmp dword [ebx + 0x84], 0
jl 0x61e614bd
jg 0x61e614b4
cmp dword [ebx + 0x80], 0
jbe 0x61e614bd
mov edx, ebx
mov eax, esi
call sym._invokeProfileCallback
cmp dword [ebp - 0x10c], 0x65
jne 0x61e615b9
cmp byte [esi + 0x47], 0
je 0x61e615b9
mov dword [ebp - 0x110], 0
xor ecx, ecx
mov eax, dword [ebp - 0x110]
cmp eax, dword [esi + 0x14]
jge 0x61e615a2
mov eax, dword [ebp - 0x110]
shl eax, 4
mov dword [ebp - 0x118], eax
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0x118]
mov edi, dword [eax + edi + 4]
test edi, edi
je 0x61e61597
mov eax, edi
mov dword [ebp - 0x11c], ecx
call sym._sqlite3BtreeEnter
mov eax, dword [edi + 4]
xor edx, edx
mov ecx, dword [ebp - 0x11c]
mov eax, dword [eax]
mov eax, dword [eax + 0xd8]
test eax, eax
je 0x61e61541
mov edx, dword [eax + 0xc]
mov dword [eax + 0xc], 0
mov eax, edi
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], edx
call sym._sqlite3BtreeLeave
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
test edx, edx
jle 0x61e61597
test ecx, ecx
mov eax, dword [esi + 0xe8]
jne 0x61e61597
test eax, eax
je 0x61e61597
mov dword [esp + 0xc], edx
mov edi, dword [ebp - 0x118]
mov edx, dword [esi + 0x10]
mov edx, dword [edx + edi]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov edx, dword [esi + 0xec]
mov dword [esp], edx
call eax
mov ecx, eax
inc dword [ebp - 0x110]
jmp 0x61e614e0
test ecx, ecx
mov eax, 1
cmove eax, dword [ebp - 0x10c]
mov dword [ebx + 0x28], ecx
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebx + 0x28]
mov dword [esi + 0x38], eax
mov eax, dword [ebx]
call sym._sqlite3ApiExit
cmp eax, 7
jne 0x61e615d8
mov dword [ebx + 0x28], 7
cmp byte [ebx + 0x90], 0
jns 0x61e615fc
mov eax, dword [ebp - 0x10c]
sub eax, 0x64
cmp eax, 1
jbe 0x61e615fc
mov eax, ebx
call sym._sqlite3VdbeTransferError
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
and eax, dword [esi + 0x3c]
cmp eax, 0x11
mov esi, eax
jne 0x61e617a3
dec dword [ebp - 0x13c]
je 0x61e617a3
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx]
or ecx, 0xffffffff
mov edx, dword [ebx + 0xbc]
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0xfc]
mov dword [esp + 8], eax
movzx eax, byte [ebx + 0x90]
mov dword [esp], eax
mov eax, esi
call sym._sqlite3LockAndPrepare
test eax, eax
je 0x61e61675
cmp eax, 7
jne 0x61e61722
mov eax, esi
mov edi, 7
call sym._sqlite3OomFault
jmp 0x61e61728
mov eax, dword [ebp - 0xfc]
lea edi, [ebp - 0xf8]
mov ecx, 0x38
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov esi, ebx
mov ecx, 0x38
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0xf8]
mov edi, ebx
mov ecx, 0x38
rep movsd dword es:[edi], dword [esi]
lea esi, [eax + 0xa0]
mov edx, dword [eax + 8]
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov dword [ebx + 8], edx
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 4]
mov dword [eax + 4], ecx
mov dword [ebx + 4], edx
mov ecx, dword [ebx + 0xbc]
mov edx, dword [eax + 0xbc]
mov dword [eax + 0xbc], ecx
mov dword [ebx + 0xbc], edx
mov ecx, 7
mov edx, dword [eax + 0xd0]
mov dword [ebx + 0xd0], edx
mov dl, byte [eax + 0x90]
mov byte [ebx + 0x90], dl
lea edx, [ebx + 0xa0]
mov edi, edx
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
inc dword [ebx + 0xb4]
call sym._sqlite3TransferBindings
mov eax, dword [ebp - 0xfc]
mov dword [eax + 0x28], 0
call sym._sqlite3VdbeFinalize
jmp 0x61e61782
test eax, eax
mov edi, eax
je 0x61e61782
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0xfc]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_value_text
mov edx, dword [ebx + 0x6c]
mov esi, eax
mov eax, dword [ebp - 0x114]
call sym._sqlite3DbFree
mov eax, dword [ebp - 0x114]
cmp byte [eax + 0x49], 0
jne 0x61e61776
mov edx, esi
call sym._sqlite3DbStrDup
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp - 0x114]
mov edx, edi
call sym._sqlite3ApiExit
mov esi, eax
mov dword [ebx + 0x28], eax
jmp 0x61e617a3
mov dword [ebx + 0x6c], 0
jmp 0x61e61161
mov dword [esp], ebx
call sym.sqlite3.dll_sqlite3_reset
cmp dword [ebp - 0x10c], 0
js 0x61e61148
or byte [ebx + 0x94], 0x10
jmp 0x61e61148
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_mutex_leave
mov eax, esi
jmp 0x61e61cf0
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x100]
test eax, eax
je 0x61e617e7
mov dword [ebx + 0x28], 9
mov dword [esp + 4], str.interrupted
mov dword [esp], ebx
call sym._sqlite3VdbeError
jmp 0x61e61ce1
mov al, dl
and eax, 0xc
cmp al, 4
jne 0x61e61841
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x118]
mov dword [eax + 0x28], ecx
sar ecx, 0x1f
mov word [eax + 0x30], 4
mov dword [eax + 0x2c], ecx
mov word [eax + 0x58], 0xa02
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x61ea17c0]
mov dword [edx + 0x60], eax
call sym._sqlite3Strlen30
mov ecx, dword [ebp - 0x118]
mov dword [ecx + 0x5c], eax
mov eax, ecx
mov byte [ecx + 0x5a], 1
add eax, 0x78
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x10c]
mov word [eax + 8], 4
mov eax, dword [edi + 4]
mov ecx, edx
mov word [edx + 0x30], 4
mov dword [edx], eax
sar eax, 0x1f
mov dword [edx + 4], eax
mov eax, dword [edi + 8]
mov dword [edx + 0x28], eax
cdq
mov word [ecx + 0x58], 4
mov dword [ecx + 0x2c], edx
mov eax, dword [edi + 0xc]
mov edx, 0x64
mov dword [ecx + 0x50], eax
sar eax, 0x1f
mov dword [ecx + 0x54], eax
mov eax, ecx
add eax, 0x78
mov dword [ebp - 0x120], eax
call sym._sqlite3VdbeMemClearAndResize
test eax, eax
jne 0x61e61ce1
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
mov word [eax + 0x80], 0x202
mov edx, dword [ecx + 0x88]
mov eax, dword [eax + 0x90]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xf4], edx
mov byte [ebp - 0xe4], 0
mov dword [ebp - 0xf0], eax
mov byte [ebp - 0xe3], 0
mov al, byte [edi + 1]
mov dword [ebp - 0x110], edx
add eax, 0x11
cmp al, 0xf
ja case.0x61e6190f.1
movzx eax, al
jmp dword [eax*4 + 0x61e9b87c]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x118], eax
movzx eax, word [eax + 6]
mov dword [esp + 4], str.k__d
mov dword [esp + 8], eax
lea eax, [ebp - 0xf8]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
mov dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0x118]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x11c], eax
jge 0x61e619e7
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x11c]
mov ecx, 0x61e984ec
mov eax, dword [eax + edx*4 + 0x14]
test eax, eax
je 0x61e61978
mov ecx, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], 0x61e9b842
mov dword [ebp - 0x124], ecx
call sym._strcmp
mov ecx, dword [ebp - 0x124]
test eax, eax
mov eax, 0x61e9b828
mov edx, dword [ebp - 0x11c]
cmove ecx, eax
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x10]
cmp byte [eax + edx], 0
mov edx, 0x61e995b1
mov eax, 0x61e984ec
mov dword [esp + 0xc], ecx
mov dword [esp + 4], str.__s_s
cmovne eax, edx
mov dword [esp + 8], eax
lea eax, [ebp - 0xf8]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
inc dword [ebp - 0x11c]
jmp 0x61e61947
mov dword [esp + 8], 1
mov dword [esp + 4], 0x61e98b32
jmp 0x61e61b69
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
mov dword [esp + 4], str.__.20s_
mov dword [esp + 8], eax
jmp 0x61e61a54
mov eax, dword [edi + 0x10]
movsx edx, byte [eax]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0x20]
mov dword [esp + 4], str._s__d_
mov dword [esp + 8], eax
lea eax, [ebp - 0xf8]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
jmp 0x61e61bbf
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [eax]
jmp 0x61e61a8d
mov eax, dword [edi + 0x10]
mov dword [esp + 4], 0x61e9b85e
mov dword [esp + 8], eax
lea eax, [ebp - 0xf8]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
jmp 0x61e61bbf
mov eax, dword [edi + 0x10]
fld qword [eax]
fstp qword [esp + 8]
jmp 0x61e61aba
mov edx, dword [edi + 0x10]
mov eax, dword [edx + 8]
test al, 2
je 0x61e61a84
mov eax, dword [edx + 0x10]
jmp 0x61e61bb9
test al, 4
je 0x61e61ab0
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
lea eax, [ebp - 0xf8]
mov dword [esp + 0xc], edx
mov dword [esp + 4], str._lld
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
jmp 0x61e61bbf
test al, 8
je 0x61e61ad5
fld qword [edx]
fstp qword [esp + 8]
lea eax, [ebp - 0xf8]
mov dword [esp + 4], str._.16g
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
jmp 0x61e61bbf
test al, 1
mov edx, str._blob_
mov eax, str.NULL
cmove eax, edx
jmp 0x61e61bb9
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 4], str.vtab:_p
mov dword [esp + 8], eax
jmp 0x61e61a54
mov edx, dword [edi + 0x10]
mov eax, dword [edx]
mov dword [ebp - 0x118], eax
mov eax, 1
cmp dword [ebp - 0x118], eax
jl 0x61e61b50
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0xf8]
mov dword [esp + 4], 0x61e9b869
mov dword [ebp - 0x124], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call sym.sqlite3.dll_sqlite3_str_appendf
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x124]
inc eax
jmp 0x61e61b10
mov eax, dword [ebp - 0x110]
mov byte [eax], 0x5b
mov dword [esp + 8], 1
mov dword [esp + 4], 0x61e9b86d
lea eax, [ebp - 0xf8]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_append
jmp 0x61e61bbf
lea eax, [ebp - 0xf8]
mov dword [esp + 4], str.program
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_str_appendf
jmp 0x61e61bbf
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
mov dword [esp + 4], 0x61e98be8
mov dword [esp + 8], eax
jmp 0x61e61a54
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x61e61bb9
mov eax, dword [ebp - 0x110]
mov byte [eax], 0
jmp 0x61e61bbf
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0xf8]
call sym._sqlite3StrAccumFinish
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x110]
cmp dword [eax + 0x88], edx
je 0x61e61c07
mov dword [eax + 0x84], 0
mov eax, dword [ebp - 0x120]
or ecx, 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 1
call sym._sqlite3VdbeMemSetStr
jmp 0x61e61c25
mov eax, dword [ebp - 0x110]
call sym._sqlite3Strlen30
mov ecx, dword [ebp - 0x10c]
mov dword [ecx + 0x84], eax
mov byte [ecx + 0x82], 1
mov al, byte [ebx + 0x94]
and eax, 0xc
cmp al, 4
jne 0x61e61caa
mov eax, dword [ebp - 0x10c]
mov edx, 4
add eax, 0xa0
call sym._sqlite3VdbeMemClearAndResize
test eax, eax
jne 0x61e61ce1
mov eax, dword [ebp - 0x10c]
mov word [eax + 0xa8], 0x202
mov dword [eax + 0xac], 2
movzx eax, word [edi + 2]
mov dword [esp + 8], str._.2x
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax + 0xb0]
mov dword [esp], 3
mov dword [esp + 4], eax
call sym.sqlite3.dll_sqlite3_snprintf
mov eax, dword [ebp - 0x10c]
mov byte [eax + 0xaa], 1
mov word [eax + 0xd0], 1
mov al, byte [ebx + 0x94]
mov dword [ebx + 0x28], 0
shr al, 2
not eax
and eax, 3
shl eax, 2
mov word [ebx + 0x8c], ax
mov eax, dword [ebx + 0x5c]
add eax, 0x28
mov dword [ebx + 0x68], eax
mov dword [ebp - 0x10c], 0x64
jmp 0x61e615b9
mov dword [ebp - 0x10c], 1
jmp 0x61e614a0
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret