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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x5c], edx
or ecx, edi
mov dword [esp + 0x50], edi
je 0x66648544
mov ebp, dword [eax + 0xe4]
test ebp, ebp
je 0x66648544
mov eax, dword [eax]
mov dword [esp + 0x48], eax
test edi, edi
je 0x666485b0
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xa9], 0
jne 0x66648850
cmp byte [esp + 0x4c], 0
js 0x666485f0
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x6664928e
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x10]
cmp edx, dword [ecx + 0xc]
je 0x66649106
xor eax, eax
lea esi, [esi]
add eax, 1
mov ebx, eax
shl ebx, 4
cmp edx, dword [ecx + ebx + 0xc]
jne 0x66648260
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x666482b4
mov esi, dword [esp + 0x44]
mov dword [esp + 4], eax
mov ecx, 4
mov edx, ebp
mov dword [esp], 0
mov eax, esi
call fcn.665bb1f0
mov ebx, dword [esi + 0x24]
test ebx, ebx
je 0x666482b4
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x666482ad
mov eax, dword [esp + 0x48]
call fcn.66597980
mov dword [ebp + 0x18], 0
movsx eax, word [ebp + 0x2a]
test byte [ebp + 0x24], 0x60
je 0x666483a4
mov dword [esp + 0x3c], 0
xor ebx, ebx
test ax, ax
jg 0x666482f4
jmp 0x66648d0b
add dword [esp + 0x3c], 1
movsx eax, word [ebp + 0x2a]
add ebx, 1
cmp eax, ebx
jle 0x66648398
mov eax, dword [ebp + 4]
lea esi, [ebx + ebx*4]
shl esi, 2
add eax, esi
test byte [eax + 0x10], 0x60
je 0x666482e0
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x44]
mov ecx, 8
mov edx, ebp
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.665bb1f0
test eax, eax
je 0x666482e5
test edi, edi
je 0x66648336
mov eax, dword [esp + 0x48]
mov edx, edi
call fcn.665978b0
mov eax, dword [esp + 0x48]
mov edx, 0x34
xor ecx, ecx
add esi, dword [ebp + 4]
call fcn.6658bdd0
mov edx, eax
test eax, eax
je 0x66648383
lea edi, [eax + 4]
mov ecx, eax
mov dword [eax], 0
and edi, 0xfffffffc
mov dword [eax + 0x30], 0
xor eax, eax
sub ecx, edi
add ecx, 0x34
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, 0xffffffff
mov byte [edx], 0x78
mov word [edx + 0x22], cx
mov dword [edx + 0x18], 1
movsx eax, word [ebp + 0x2a]
add ebx, 1
mov dword [esi + 4], edx
cmp eax, ebx
jg 0x666482f4
lea esi, [esi]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x66648d0b
mov edx, dword [ebp + 4]
movzx esi, word [ebp + 0x28]
test eax, eax
jle 0x66649123
lea eax, [eax + eax*4]
lea ebx, [edx + eax*4]
xor eax, eax
lea esi, [esi]
nop
movzx ecx, byte [edx + 0xe]
add edx, 0x14
add eax, ecx
cmp ebx, edx
jne 0x666483c0
test si, si
js 0x66648550
xor ecx, ecx
shl eax, 2
mov ebx, 7
xor edx, edx
mov edi, ecx
cmp ebx, eax
sbb edi, edx
jae 0x6664856c
test edx, edx
je 0x66648878
bsr ebx, edx
xor ebx, 0x1f
mov ecx, 0x3c
sub ecx, ebx
shrd eax, edx, cl
lea ebx, [ecx + ecx*4]
shr edx, cl
and ecx, 0x20
cmovne eax, edx
lea ebx, [ebx + ebx + 0x28]
and eax, 7
movzx eax, word [eax + eax + 0x66689498]
lea ebx, [ebx + eax - 0xa]
mov word [ebp + 0x30], bx
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x6664843e
nop
mov eax, ebx
call fcn.66596eb0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x66648430
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xa9], 0
jne 0x666487e0
mov esi, dword [esp + 0x44]
mov eax, dword [esi + 8]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x66648890
mov ebx, dword [esp + 0x3c]
mov dword [esp], 0
xor ecx, ecx
mov edx, 0x75
mov dword [esp + 4], 0
mov eax, ebx
call fcn.6659fdb0
mov esi, dword [ebp + 0xc]
mov edx, str.TABLE
mov eax, str.VIEW
mov ecx, str.table
mov edi, dword [esp + 0x50]
test esi, esi
cmove eax, edx
mov edx, str.view
cmove edx, ecx
mov dword [esp + 0x68], edx
test edi, edi
je 0x6664919c
mov ecx, dword [esp + 0x44]
mov edx, 0x62
mov esi, dword [ecx + 0x2c]
lea eax, [esi + 3]
lea edi, [esi + 1]
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x5c]
mov ecx, 1
mov dword [esp], eax
mov eax, ebx
call fcn.6659fdb0
mov ecx, ebx
mov ebx, dword [ebx + 0x6c]
test ebx, ebx
jle 0x6664850c
mov edx, dword [ecx + 0x68]
lea eax, [ebx + ebx*4]
mov ecx, 0x10
lea eax, [edx + eax*4]
mov word [eax - 0x12], cx
mov eax, dword [esp + 0x44]
mov edx, 0xd
mov ecx, edi
mov dword [eax + 0x28], 2
lea eax, [ebx + 1]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], 0
call fcn.6659fdb0
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 0x24]
test edx, edx
je 0x666488fb
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
lea eax, [eax*4 + 4]
mov ebx, 7
xor edx, edx
mov edi, ecx
cmp ebx, eax
sbb edi, edx
jb 0x666483ee
mov ebx, 1
cmp ebx, eax
sbb ecx, edx
jae 0x66648fbe
mov dword [esp + 0x3c], ebp
mov ecx, 0x1e
mov edi, 7
xor esi, esi
lea esi, [esi]
nop
shld edx, eax, 1
add eax, eax
mov ebx, ecx
mov ebp, esi
sub ecx, 0xa
cmp edi, eax
sbb ebp, edx
jae 0x66648590
mov ebp, dword [esp + 0x3c]
jmp 0x66648415
mov edx, dword [ebp]
call fcn.665aafd0
test eax, eax
jne 0x666488ef
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xa9], 0
je 0x66648231
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0xa4]
mov dword [ebp + 0x1c], eax
cmp eax, 1
jne 0x66648231
or dword [ebp + 0x24], 1
jmp 0x66648231
mov edx, dword [ebp + 0x24]
mov ebx, edx
and ebx, 8
jne 0x66649113
test dl, 4
je 0x66648f9e
mov eax, edx
or eax, 0x280
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 0xac]
mov dword [esp + 0x64], edi
mov byte [esp + 0x3c], al
and eax, 2
mov byte [esp + 0x54], al
je 0x666488b5
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x80]
test eax, eax
jne 0x6664913b
movsx eax, word [ebp + 0x28]
test ax, ax
jns 0x66648fc5
mov esi, dword [ebp + 8]
test esi, esi
je 0x66649312
mov edi, esi
jmp 0x6664867b
mov edi, dword [edi + 0x14]
test edi, edi
je 0x66649317
movzx eax, byte [edi + 0x38]
and eax, 3
cmp al, 2
jne 0x66648670
cmp word [edi + 0x32], 1
mov ebx, 1
mov edx, 1
jbe 0x666492ea
mov esi, edx
jmp 0x666486b4
sub word [edi + 0x34], 1
movzx eax, word [edi + 0x32]
add ebx, 1
cmp ebx, eax
jge 0x66648d28
mov dword [esp], ebx
mov ecx, edi
mov edx, esi
mov eax, edi
call fcn.66595280
test eax, eax
jne 0x666486a0
mov eax, dword [edi + 0x20]
mov edx, esi
mov ecx, dword [eax + ebx*4]
mov dword [eax + esi*4], ecx
mov ecx, dword [edi + 0x1c]
movzx eax, byte [ecx + ebx]
mov byte [ecx + esi], al
mov eax, dword [edi + 4]
add esi, 1
movzx ecx, word [eax + ebx*2]
mov word [eax + edx*2], cx
jmp 0x666486a5
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], 0x6667eaa2
mov dword [esp + 0xc], eax
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
sub eax, ebx
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_snprintf
mov edi, dword [esp + 0x44]
mov eax, dword [ebp]
mov ebx, dword [esp + 0x40]
mov edx, dword [edi + 0x58]
mov dword [esp + 0x1c], esi
shl ebx, 4
mov dword [esp + 0x20], edx
mov edx, dword [edi + 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx]
mov dword [esp + 4], str.UPDATE__Q.sqlite_master_SET_type_s__name_Q__tbl_name_Q__rootpage_d__sql_Q_WHERE_rowid_d
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.66645940
test esi, esi
je 0x66648771
mov eax, dword [esp + 0x48]
mov edx, esi
call fcn.665926e0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + 8]
mov eax, dword [eax]
call fcn.665a0a10
test byte [ebp + 0x24], 8
je 0x6664879e
mov eax, dword [esp + 0x48]
add ebx, dword [eax + 0x10]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax + 0x48]
test esi, esi
je 0x66649254
mov eax, dword [ebp]
mov edi, dword [esp + 0x48]
mov dword [esp + 4], str.tbl_name_q_AND_type_trigger
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.665bc610
mov dword [esp], 0
mov edx, dword [esp + 0x40]
mov ecx, eax
mov eax, dword [esp + 0x3c]
call fcn.665a0fc0
cmp byte [edi + 0xa9], 0
je 0x6664880e
lea esi, [esi]
nop
mov eax, dword [ebp + 0x48]
mov edx, dword [ebp]
mov ecx, ebp
add eax, 8
call fcn.66593bd0
test eax, eax
jne 0x66649178
mov eax, dword [esp + 0x44]
mov dword [eax + 0xe4], 0
mov eax, dword [esp + 0x48]
or dword [eax + 0x18], 1
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x66648544
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x66648544
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
test eax, eax
je 0x66649249
mov esi, dword [esp + 0x44]
sub eax, dword [esi + 0xb4]
add eax, 0xd
mov dword [ebp + 0x34], eax
jmp 0x66648544
mov dword [esp + 0xb4], 0x6667d542
mov eax, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.665b3dd0
bsr ebx, eax
xor ebx, 0x1f
add ebx, 0x20
jmp 0x666483fc
mov eax, dword [esi + 0x74]
test eax, eax
je 0x66648cf6
mov eax, dword [esp + 0x44]
call fcn.6659fe10
mov dword [esp + 0x3c], eax
test eax, eax
je 0x66648544
jmp 0x66648462
movsx ecx, word [ebp + 0x2a]
test cx, cx
jle 0x666488e1
mov eax, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
lea esi, [esi]
nop
test byte [eax + 0x10], 1
je 0x666488da
mov byte [eax + 0xc], 2
add eax, 0x14
cmp ecx, eax
jne 0x666488d0
or edx, 0xa80
mov dword [ebp + 0x24], edx
jmp 0x6664863a
or dword [ebp + 0x24], 0x1000
jmp 0x666485c0
mov edx, dword [esp + 0x50]
mov ecx, 0x41
call fcn.665d6a80
mov edx, eax
test eax, eax
je 0x66648544
movzx eax, word [eax + 0x2a]
mov word [ebp + 0x2c], ax
mov word [ebp + 0x2a], ax
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
xor eax, eax
mov word [edx + 0x2a], ax
mov eax, dword [esp + 0x48]
mov dword [edx + 4], 0
mov eax, dword [eax + 0x200]
test eax, eax
je 0x66649226
mov eax, dword [esp + 0x48]
call fcn.66597f90
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x74]
mov dword [esp + 0x78], edi
mov byte [esp + 0x74], 0xd
mov dword [esp + 0x7c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
call fcn.6660adb0
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x66648544
mov ecx, edi
mov dword [esp], 0
mov edi, dword [esp + 0x3c]
mov edx, 0x42
mov dword [esp + 4], 0
mov eax, edi
call fcn.6659fdb0
mov eax, dword [edi + 0xc]
mov ecx, edi
test ebx, ebx
mov byte [eax + 0x13], 0
mov edi, dword [edi + 0x6c]
mov edx, dword [ecx]
mov dword [eax + 0x1c], 0
lea eax, [edi - 1]
cmovs ebx, eax
cmp byte [edx + 0x53], 0
mov eax, 0x666b004c
jne 0x666489f1
mov eax, dword [ecx + 0x68]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*4]
mov dword [eax + 8], edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x78]
cmp edi, dword [eax + 0x70]
jge 0x666492ca
mov edx, dword [esp + 0x3c]
lea eax, [edi + 1]
mov dword [edx + 0x6c], eax
mov edx, dword [edx + 0x68]
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0xe
mov eax, dword [esp + 0x84]
add esi, 2
mov ebx, dword [esp + 0x3c]
mov edx, 0x5c
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x80]
mov dword [esp], eax
mov eax, ebx
call fcn.6659fdb0
xor ecx, ecx
mov edx, ebp
mov eax, ebx
call fcn.665a2da0
mov eax, dword [esp + 0x4c]
mov ecx, 1
mov dword [esp + 4], 0
mov edx, 0x7a
mov dword [esp], eax
mov eax, ebx
call fcn.6659fdb0
mov eax, dword [esp + 0x4c]
mov dword [esp], esi
mov ecx, 1
mov edx, 0x7b
mov dword [esp + 4], eax
mov eax, ebx
call fcn.6659fdb0
mov edx, edi
mov eax, ebx
call fcn.665a07c0
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ebx]
test edi, edi
lea edx, [eax - 1]
cmovs edi, edx
cmp byte [ecx + 0x53], 0
mov edx, 0x666b004c
jne 0x66648acf
mov edx, dword [ebx + 0x68]
lea ecx, [edi + edi*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x3c]
mov ecx, 1
mov edx, 0x75
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.6659fdb0
movsx eax, word [ebp + 0x2a]
mov esi, dword [ebp + 4]
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x6664929b
lea eax, [eax + eax*4]
mov dword [esp + 0x54], ebp
xor edi, edi
lea eax, [esi + eax*4]
mov ebp, eax
lea esi, [esi]
mov edx, dword [esi]
movzx ecx, byte [edx]
test cl, cl
je 0x66649192
xor eax, eax
lea esi, [esi]
nop
lea ebx, [eax + 1]
add eax, 2
cmp cl, 0x22
cmovne eax, ebx
movzx ecx, byte [edx + 1]
add edx, 1
test cl, cl
jne 0x66648b30
add eax, 7
add esi, 0x14
add edi, eax
cmp ebp, esi
jne 0x66648b18
mov ebp, dword [esp + 0x54]
mov ecx, dword [ebp]
movzx edx, byte [ecx]
test dl, dl
je 0x66648d1b
xor eax, eax
lea esi, [esi]
nop
lea ebx, [eax + 1]
add eax, 2
cmp dl, 0x22
cmovne eax, ebx
movzx edx, byte [ecx + 1]
add ecx, 1
test dl, dl
jne 0x66648b70
add eax, 2
add eax, edi
mov ecx, 0x6667e0c4
mov edx, 0x66684b3b
mov edi, 0x66684b43
cmp eax, 0x32
cmovl edx, ecx
mov ecx, 0x6667e0c2
mov dword [esp + 0x6c], edx
mov edx, str.__n
cmovl edx, ecx
mov dword [esp + 0x64], edx
mov edx, 0x6667d542
cmovl edi, edx
mov esi, dword [esp + 0x4c]
lea edx, [esi + esi*2]
lea eax, [eax + edx*2 + 0x23]
cdq
mov dword [esp + 0x54], eax
call fcn.6658bcf0
mov esi, eax
test eax, eax
je 0x66649301
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], str.CREATE_TABLE
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_snprintf
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov ecx, dword [ebp]
lea edx, [esp + 0x74]
and eax, 0x3fffffff
mov dword [esp + 0x74], eax
mov eax, esi
call fcn.66588f80
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [esp + 0x74], edx
mov byte [esi + eax], 0x28
cmp word [ebp + 0x2a], 0
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x74]
jle 0x666486ef
xor ecx, ecx
mov dword [esp + 0x60], ebp
mov ebp, eax
mov eax, edi
mov edi, ecx
jmp 0x66648c99
mov dword [esp], edx
mov dword [esp + 0x4c], edx
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x4c]
and eax, 0x3fffffff
mov ebx, eax
mov ecx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], ecx
add edi, 1
add ebp, 0x14
mov dword [esp + 4], edx
add eax, esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x60]
add ebx, dword [esp + 0x74]
mov dword [esp + 0x74], ebx
movsx eax, word [eax + 0x2a]
cmp edi, eax
jge 0x666486eb
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
sub eax, ebx
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_snprintf
mov ebx, dword [esp + 0x74]
lea eax, [esi + ebx]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ecx, dword [ebp]
lea edx, [esp + 0x74]
and eax, 0x3fffffff
add eax, ebx
mov dword [esp + 0x74], eax
mov eax, esi
call fcn.66588f80
movsx eax, byte [ebp + 0xd]
mov edx, dword [eax*4 + 0x66689374]
test edx, edx
jne 0x66648c48
xor ebx, ebx
xor ecx, ecx
jmp 0x66648c61
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x6664889b
mov byte [esi + 0x17], 1
jmp 0x6664889b
mov dword [esp + 0xb4], str.must_have_at_least_one_non_generated_column
jmp 0x6664885b
mov eax, 2
jmp 0x66648b8a
mov eax, dword [esp + 0x64]
mov word [esp + 0x68], si
movzx eax, byte [eax + 0xac]
and eax, 2
mov byte [esp + 0x54], al
movzx eax, si
mov esi, dword [ebp + 8]
mov dword [esp + 0x3c], eax
movzx eax, word [esp + 0x68]
mov word [edi + 0x32], ax
movzx eax, byte [edi + 0x38]
mov edx, eax
or edx, 0x20
cmp byte [esp + 0x54], 0
mov byte [edi + 0x38], dl
jne 0x66648d6b
or eax, 0x28
mov byte [edi + 0x38], al
movzx eax, word [esp + 0x68]
mov word [edi + 0x34], ax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x66648d87
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x666491eb
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x2c], eax
test esi, esi
je 0x66649273
mov dword [esp + 0x6c], ebp
lea esi, [esi]
movzx eax, byte [esi + 0x38]
and eax, 3
cmp al, 2
je 0x66648e7f
movzx eax, word [esi + 0x32]
mov ebp, dword [esp + 0x3c]
mov word [esp + 0x60], ax
test ebp, ebp
je 0x66648f90
movzx edx, ax
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x40], ebp
mov ebp, edx
lea esi, [esi]
mov dword [esp], ebx
mov ecx, edi
mov edx, ebp
mov eax, esi
call fcn.66595280
cmp eax, 1
adc dword [esp + 0x40], 0
add ebx, 1
cmp ebx, dword [esp + 0x3c]
jne 0x66648dd8
mov edx, ebp
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x66648f90
movzx eax, word [esi + 0x34]
lea ecx, [edx + ebp]
cmp ecx, eax
jle 0x66648e2b
mov eax, dword [esp + 0x64]
mov edx, esi
call fcn.6659b030
test eax, eax
jne 0x6664921d
movzx edx, word [esi + 0x32]
mov dword [esp + 0x54], edx
mov ebp, dword [esp + 0x54]
xor ebx, ebx
jmp 0x66648e3c
movzx edx, word [esi + 0x32]
mov dword [esp], ebx
mov ecx, edi
mov eax, esi
call fcn.66595280
test eax, eax
jne 0x66648e76
mov eax, dword [edi + 4]
movzx edx, word [eax + ebx*2]
mov eax, dword [esi + 4]
mov word [eax + ebp*2], dx
mov eax, dword [edi + 0x20]
mov edx, dword [eax + ebx*4]
mov eax, dword [esi + 0x20]
mov dword [eax + ebp*4], edx
mov eax, dword [edi + 0x1c]
cmp byte [eax + ebx], 0
je 0x66648e73
or byte [esi + 0x39], 2
add ebp, 1
add ebx, 1
cmp ebx, dword [esp + 0x3c]
jne 0x66648e38
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x66648da0
movzx esi, word [edi + 0x34]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x54], esi
mov eax, esi
movsx esi, word [ebp + 0x2a]
mov edx, esi
test esi, esi
jle 0x66649235
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], edi
xor ecx, ecx
mov dword [esp + 0x40], 0
mov edi, edx
lea ebx, [esi + eax*2]
mov eax, esi
jmp 0x66648ed2
movsx edx, word [eax]
add eax, 2
cmp edx, ecx
je 0x66648eef
cmp eax, ebx
jne 0x66648ec8
mov edx, dword [ebp + 4]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
movzx eax, word [eax + 0x10]
and eax, 0x20
cmp ax, 1
adc dword [esp + 0x40], 0
add ecx, 1
cmp edi, ecx
jne 0x66648ec0
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x60]
add ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x54]
jle 0x66648f25
mov eax, dword [esp + 0x64]
mov edx, edi
call fcn.6659b030
test eax, eax
jne 0x6664823c
cmp word [ebp + 0x2a], 0
jle 0x66648f80
mov esi, dword [edi + 4]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x3c]
xor ecx, ecx
nop
lea ebx, [esi + edi*2]
mov eax, esi
jmp 0x66648f4a
movsx edx, word [eax]
add eax, 2
cmp edx, ecx
je 0x66648f71
cmp eax, ebx
jne 0x66648f40
mov ebx, dword [ebp + 4]
lea edx, [ecx + ecx*4]
lea edx, [ebx + edx*4]
test byte [edx + 0x10], 0x20
jne 0x66648f71
mov word [eax], cx
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x20]
mov dword [eax + edi*4], str.BINARY
add edi, 1
movsx eax, word [ebp + 0x2a]
add ecx, 1
cmp ecx, eax
jl 0x66648f30
mov edi, dword [esp + 0x40]
mov eax, edi
call fcn.66583460
jmp 0x6664823c
movzx eax, word [esp + 0x60]
mov word [esi + 0x34], ax
jmp 0x66648e7f
mov eax, dword [ebp]
mov dword [esp + 4], str.PRIMARY_KEY_missing_on_table__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66648544
xor ebx, ebx
jmp 0x66648424
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
test eax, eax
je 0x66648fe7
mov dword [esp], eax
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp], 0
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x74]
mov edx, 0x3b
mov dword [esp + 0x78], ebx
call fcn.6658c010
mov esi, dword [esp + 0x44]
xor edx, edx
mov ecx, eax
mov eax, dword [esi]
call fcn.66599380
mov ecx, eax
test eax, eax
je 0x6664823c
cmp byte [esi + 0xc8], 1
jbe 0x66649048
mov eax, dword [esi + 0x10c]
lea edx, [ebp + 0x28]
test eax, eax
jne 0x6664903f
jmp 0x66649048
mov eax, dword [eax + 0xc]
test eax, eax
je 0x66649048
cmp edx, dword [eax]
jne 0x66649038
mov edx, dword [ecx + 4]
mov dword [eax], edx
mov edi, dword [esp + 0x44]
xor edx, edx
movzx eax, byte [edi + 0xc6]
mov byte [ecx + 0xc], al
mov eax, 0xffffffff
mov word [ebp + 0x28], ax
mov dword [esp + 0x1c], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
movzx eax, byte [ebp + 0x32]
mov dword [esp + 4], ecx
xor ecx, ecx
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp], 0
call fcn.666469f0
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x53], 0
jne 0x6664823c
mov eax, dword [edi + 0x24]
test eax, eax
jne 0x6664823c
mov esi, dword [ebp + 8]
mov edi, esi
test esi, esi
jne 0x666490d7
jmp 0x666490e2
mov edi, dword [edi + 0x14]
test edi, edi
je 0x666490e2
movzx eax, byte [edi + 0x38]
and eax, 3
cmp al, 2
jne 0x666490d0
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 0xac]
and eax, 2
mov byte [esp + 0x54], al
movzx eax, word [edi + 0x32]
mov word [esp + 0x68], ax
mov dword [esp + 0x3c], eax
jmp 0x66648d52
mov dword [esp + 0x40], 0
jmp 0x66648272
mov dword [esp + 0xb4], str.AUTOINCREMENT_not_allowed_on_WITHOUT_ROWID_tables
jmp 0x6664885b
test si, si
jns 0x66648fbe
mov eax, 8
mov ebx, 0x1e
jmp 0x66648415
jns 0x6664914b
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x3c], eax
sub eax, 1
mov edi, dword [esp + 0x40]
mov edx, 0x666b004c
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
jne 0x66649165
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea edx, [eax + edx*4]
mov dword [edx + 0xc], 2
jmp 0x6664864c
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb0], eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.6658a200
mov eax, 7
jmp 0x66648b4a
mov esi, dword [esp + 0x44]
cmp byte [esp + 0x4c], 0
lea edx, [esi + 0xbc]
cmove edx, dword [esp + 0x58]
mov esi, dword [esi + 0xb4]
mov ebx, dword [edx]
mov ecx, ebx
sub ecx, esi
cmp byte [ebx], 0x3b
je 0x666491c4
add ecx, dword [edx + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 4], str.CREATE__s__.s
mov dword [esp], eax
call fcn.665bc610
mov esi, eax
jmp 0x66648714
jns 0x666491fb
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x54], eax
sub eax, 1
mov ebx, dword [esp + 0x40]
mov edx, 0x666b004c
mov ecx, dword [ebx]
cmp byte [ecx + 0x53], 0
jne 0x66649215
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
lea edx, [eax + edx*4]
mov byte [edx], 0xb
jmp 0x66648d87
mov ebp, dword [esp + 0x6c]
jmp 0x6664823c
sub dword [edx + 0x20], 1
je 0x66648944
jmp 0x6664894d
cmp word [esp + 0x68], ax
jbe 0x66648f80
mov ecx, dword [esp + 0x3c]
jmp 0x66648f08
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
jmp 0x66648833
mov eax, dword [ebx]
mov dword [esp + 4], str.CREATE_TABLE__Q.sqlite_sequence_name_seq_
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.66645940
jmp 0x6664879e
movsx eax, word [ebp + 0x2a]
mov esi, dword [esp + 0x3c]
mov edx, eax
mov dword [esp + 0x54], esi
test eax, eax
jg 0x66648ea6
jmp 0x66648f80
mov dword [esp + 0x40], 0xffff8000
jmp 0x66648272
mov ecx, dword [ebp]
xor edi, edi
movzx edx, byte [ecx]
test dl, dl
jne 0x66648b65
mov dword [esp + 0x6c], 0x6667e0c4
mov eax, 2
mov edi, 0x6667d542
mov dword [esp + 0x64], 0x6667e0c2
jmp 0x66648bbe
mov dword [esp + 4], 0
mov edx, 0xe
mov dword [esp], 0
call fcn.6659fd40
mov edi, eax
jmp 0x66648a36
mov eax, 1
mov dword [esp + 0x3c], 1
mov word [esp + 0x68], ax
jmp 0x66648d49
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.6658a200
jmp 0x66648714
jmp 0x6667a000
jmp 0x6667a000
movzx eax, word [0x32]
ud2