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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov ebp, dword [eax]
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x20], eax
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], edi
mov dword [esp + 0x5c], 0
jne 0x66646c18
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x24]
test ebx, ebx
jg 0x66646c18
cmp byte [eax + 0xc8], 1
mov esi, edx
mov ebx, ecx
jne 0x66646a4c
cmp byte [esp + 0x24], 2
jne 0x66646c18
mov eax, dword [esp + 0x20]
call fcn.6662cf00
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x66646c18
mov edi, dword [esp + 0x104]
test edi, edi
je 0x66646b10
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
test ecx, ecx
jle 0x66646b10
mov edi, dword [esp + 0x104]
xor eax, eax
jmp 0x66646a97
add eax, 1
cmp eax, ecx
je 0x66646b10
lea edx, [eax + eax*4]
lea edx, [edi + edx*4]
test byte [edx + 0x10], 0x20
je 0x66646a90
movzx eax, byte [edx + 0xc]
test al, al
je 0x66646ede
cmp al, 3
je 0x66646ede
mov eax, str.LAST
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 4], str.unsupported_use_of_NULLS__s
mov dword [esp], eax
call fcn.665b3dd0
mov ebx, dword [esp + 0x110]
test ebx, ebx
jne 0x66646c25
mov edx, dword [esp + 0x104]
mov eax, ebp
call fcn.66597980
mov edx, dword [esp + 0x100]
mov eax, ebp
call fcn.66597680
jmp 0x66646c67
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x66646c78
lea eax, [esp + 0x58]
mov ecx, ebx
mov edx, esi
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.665b7170
mov dword [esp + 0x2c], eax
test eax, eax
js 0x66646c18
cmp byte [ebp + 0xa9], 0
je 0x66646eab
mov edi, eax
shl edi, 4
cmp eax, 1
mov dword [esp + 0x34], edi
sete dl
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
mov eax, dword [esi]
mov dword [esp + 0x60], esi
add edi, dword [eax + 0x10]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi]
mov byte [esp + 0x84], dl
lea edx, [esp + 0x94]
mov edi, edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], ecx
mov ecx, 0x13
mov dword [esp + 0x90], eax
xor eax, eax
mov word [esp + 0x78], ax
lea eax, [esp + 0x60]
mov dword [esp + 0x7c], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x8c], str.index
mov dword [esp + 0x68], 0x665b7f90
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x6c], 0x665b7e50
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.665a6d70
mov eax, dword [esp + 0x100]
xor edx, edx
lea ecx, [eax + 8]
mov eax, esi
call fcn.6662d9b0
mov edi, eax
test eax, eax
jne 0x66646e4d
lea esi, [esi]
xor esi, esi
mov edx, dword [esp + 0x110]
test edx, edx
je 0x66646c33
mov edx, dword [esp + 0x110]
mov eax, ebp
call fcn.665978b0
mov eax, dword [esp + 0x104]
test eax, eax
je 0x66646c4c
mov edx, dword [esp + 0x104]
mov eax, ebp
call fcn.66597980
mov edx, dword [esp + 0x100]
mov eax, ebp
call fcn.66597680
test esi, esi
je 0x66646c67
mov edx, esi
mov eax, ebp
call fcn.665926e0
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0xe4]
test edi, edi
je 0x66646c18
mov ecx, dword [ebp + 0x10]
mov eax, dword [edi + 0x48]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ecx
test eax, eax
je 0x66647c4b
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
cmp ebx, dword [eax + 0xc]
je 0x66646ee8
mov edx, dword [esp + 0x2c]
add eax, 0x10
lea esi, [esi]
add edx, 1
mov ecx, eax
lea eax, [eax + 0x10]
mov esi, edx
shl esi, 4
cmp ebx, dword [ecx + 0xc]
jne 0x66646cc0
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x66646d49
mov ebx, 6
mov ecx, eax
mov edx, 0x6667e6e0
mov dword [esp + 0x28], ebx
jmp 0x66646d29
movzx esi, byte [edx]
movzx ebx, byte [esi + 0x66690a80]
cmp byte [eax + 0x66690a80], bl
jne 0x66646d49
add edx, 1
sub dword [esp + 0x28], 1
add ecx, 1
cmp edx, 0x6667e6e7
je 0x66646f8c
movzx eax, byte [ecx]
test al, al
jne 0x66646d00
movzx eax, byte [ecx]
movzx edx, byte [edx]
movzx ecx, byte [edx + 0x66690a80]
cmp byte [eax + 0x66690a80], cl
je 0x66646f99
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x66646fd8
mov eax, dword [edi + 0x38]
test eax, eax
jne 0x66647492
mov edx, dword [esp + 0x58]
test edx, edx
je 0x66646ff3
mov eax, ebp
call fcn.66593510
mov esi, eax
test eax, eax
je 0x66646f2c
mov eax, dword [edi]
mov ebx, dword [esp + 0x20]
mov ecx, str.index
mov edx, esi
mov dword [esp], eax
mov eax, ebx
call fcn.665beec0
test eax, eax
jne 0x66646f2c
cmp byte [ebx + 0xc8], 1
jbe 0x666475b8
mov ebx, dword [esp + 0x104]
test ebx, ebx
je 0x66647504
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x104]
mov eax, dword [eax]
mov ecx, dword [ecx]
cmp dword [eax + 0x78], ecx
jl 0x66647670
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x24]
test ecx, ecx
jne 0x66646f2c
mov eax, dword [esp + 0x104]
mov edx, dword [eax]
test edx, edx
jle 0x66647811
mov eax, dword [esp + 0x104]
mov dword [esp + 0x28], edi
xor ebx, ebx
mov edi, edx
mov dword [esp + 0x38], ebp
lea ecx, [eax + 4]
xor eax, eax
mov dword [esp + 0x40], esi
mov ebp, ecx
mov esi, eax
jmp 0x66646e26
add ebx, 1
add ebp, 0x14
cmp ebx, edi
je 0x666470de
mov eax, dword [ebp]
cmp byte [eax], 0x70
jne 0x66646e18
mov eax, dword [eax + 8]
test eax, eax
je 0x666474f8
mov dword [esp], eax
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
add eax, 1
add esi, eax
jmp 0x66646e18
mov ecx, dword [edi]
cmp dword [esp + 0x2c], 1
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], ecx
je 0x666470af
add eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], eax
test byte [edi + 0x24], 0x80
je 0x66646ce6
mov eax, dword [edi + 8]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x30]
test eax, eax
jne 0x66646e97
jmp 0x66646ce6
mov edx, dword [edx + 0x14]
test edx, edx
je 0x66646ea2
movzx eax, byte [edx + 0x38]
and eax, 3
cmp al, 2
jne 0x66646e90
mov dword [esp + 0x30], edx
jmp 0x66646ce6
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0x20]
call fcn.6662ee00
mov edx, dword [ebx + 4]
test edx, edx
jne 0x66646ed5
test eax, eax
je 0x66646ed5
mov edx, dword [ebp + 0x10]
mov edi, dword [edx + 0x1c]
cmp dword [eax + 0x48], edi
je 0x666477f0
mov eax, dword [esp + 0x2c]
jmp 0x66646b4c
mov eax, str.FIRST
jmp 0x66646abc
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
jmp 0x66646ce6
mov eax, dword [esp + 0x20]
mov edx, ebp
call fcn.665b40c0
test eax, eax
jne 0x66647308
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x110], eax
mov esi, dword [esp + 0x44]
mov edx, ebx
mov eax, ebp
call fcn.66597cf0
mov ebx, dword [edi + 8]
lea edx, [edi + 8]
test ebx, ebx
je 0x66646c1a
cmp byte [ebx + 0x36], 5
mov eax, dword [ebx + 0x14]
je 0x66646f83
lea edx, [ebx + 0x14]
test eax, eax
je 0x66646c1a
mov ebx, eax
cmp byte [ebx + 0x36], 5
mov eax, dword [ebx + 0x14]
jne 0x66646f43
test eax, eax
je 0x66646c1a
lea esi, [esi]
cmp byte [eax + 0x36], 5
je 0x66646c1a
mov dword [edx], eax
mov edx, dword [eax + 0x14]
mov dword [ebx + 0x14], edx
lea edx, [eax + 0x14]
mov dword [eax + 0x14], ebx
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x66646f68
jmp 0x66646c1a
mov ebx, dword [esp + 0x28]
cmp ebx, 0xffffffff
jne 0x66646d30
cmp byte [ebp + 0xa9], 0
jne 0x66646d49
mov eax, dword [esp + 0x100]
test eax, eax
je 0x66646d49
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.table__s_may_not_be_indexed
xor esi, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646f2c
mov eax, dword [esp + 0x20]
mov dword [esp + 4], str.views_may_not_be_indexed
xor esi, esi
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646f2c
mov eax, dword [edi + 8]
mov edx, 1
test eax, eax
je 0x6664700a
nop
mov eax, dword [eax + 0x14]
add edx, 1
test eax, eax
jne 0x66647000
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 4], str.sqlite_autoindex__s__d
mov dword [esp + 8], eax
mov dword [esp], ebp
call fcn.665bc610
mov esi, eax
test eax, eax
je 0x66646f2c
mov eax, dword [esp + 0x20]
cmp byte [eax + 0xc8], 0
je 0x66647052
add byte [esi + 7], 1
mov eax, dword [esp + 0x20]
cmp byte [eax + 0xc8], 1
ja 0x66646da8
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x2c], 1
mov ebx, dword [eax]
je 0x66647640
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x20]
mov edx, 0x12
mov ecx, str.sqlite_master
mov dword [esp], 0
call fcn.665b6330
mov edx, 1
test eax, eax
jne 0x66646f2c
mov dword [esp + 4], ebx
mov eax, dword [edi]
mov ecx, esi
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.665b6330
test eax, eax
je 0x66646da8
jmp 0x66646f2c
mov ecx, dword [edi + 0x48]
cmp dword [eax + 0x1c], ecx
je 0x66646e61
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.cannot_create_a_TEMP_index_on_non_TEMP_table___s_
xor esi, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646f2c
mov ebx, esi
mov edx, edi
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x28]
mov dword [esp], esi
mov dword [esp + 0x38], edx
call sub.msvcrt.dll_strlen
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
and eax, 0x3fffffff
test ecx, ecx
mov dword [esp + 0x28], eax
mov eax, 1
je 0x66647118
movzx eax, word [ecx + 0x32]
add edx, eax
lea eax, [esp + 0x5c]
mov ecx, dword [esp + 0x28]
mov dword [esp], eax
movsx edx, dx
mov eax, ebp
lea ecx, [ebx + ecx + 1]
call fcn.6659a310
cmp byte [ebp + 0x53], 0
mov ebx, eax
jne 0x666474e7
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
add ecx, 1
mov dword [ebx], eax
mov dword [esp + 8], ecx
lea edx, [eax + ecx]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0x5c], edx
call sub.msvcrt.dll_memcpy
movzx edx, byte [ebx + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0xc], edi
movzx eax, byte [esp + 0x108]
mov byte [ebx + 0x36], al
mov eax, dword [esp + 0x108]
test eax, eax
setne al
and edx, 0xfffffff4
shl eax, 3
or al, byte [esp + 0x24]
and eax, 0xb
or eax, edx
mov byte [ebx + 0x38], al
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x104]
mov edx, dword [eax]
mov word [ebx + 0x32], dx
mov eax, edx
mov edx, dword [esp + 0x110]
test edx, edx
je 0x666471eb
mov eax, dword [esp + 0x110]
mov dword [esp + 4], 0
mov ecx, 2
mov edx, edi
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.665bb1f0
mov eax, dword [esp + 0x110]
mov dword [ebx + 0x24], eax
movzx eax, word [ebx + 0x32]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x104]
cmp byte [edx + 0x4c], 3
seta dl
add ecx, 4
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
movzx edx, dl
neg edx
cmp byte [ecx + 0xc8], 1
mov dword [esp + 0x3c], edx
jbe 0x66647232
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x104], 0
mov dword [ebx + 0x28], ecx
xor edx, edx
test ax, ax
je 0x6664733c
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x44], esi
mov esi, edx
nop
mov eax, dword [edi]
movzx edx, byte [eax]
cmp dl, 0x74
je 0x666473bd
cmp dl, 0x70
je 0x66647464
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp], eax
mov ecx, 0x20
mov dword [esp + 4], 0
mov eax, ebp
call fcn.665bb1f0
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x66647691
mov eax, dword [edi]
test eax, eax
je 0x66647d78
mov edx, eax
jmp 0x666472ab
mov edx, dword [edx + 0xc]
test edx, edx
je 0x66647d7d
test byte [edx + 5], 0x10
jne 0x666472a0
cmp byte [edx], 0xa6
je 0x666473c5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
cmp dword [ecx + 0xe4], edx
je 0x66647818
mov ebp, dword [ebx + 0x28]
test ebp, ebp
je 0x66647478
mov edx, dword [ebx + 4]
mov ecx, 0xfffffffe
mov ebp, str.BINARY
mov word [edx + esi*2], cx
and byte [ebx + 0x38], 0xf7
cmp byte [eax], 0x70
je 0x6664741f
mov eax, dword [esp + 0x38]
cmp byte [eax + 0xa9], 0
je 0x66646efd
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x1c]
add edi, 0x14
mov dword [eax + esi*4], ebp
movzx eax, byte [edi - 0xc]
and eax, dword [esp + 0x3c]
mov byte [edx + esi], al
movzx eax, word [ebx + 0x32]
add esi, 1
cmp eax, esi
jg 0x66647250
mov edx, esi
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x66647c91
xor ecx, ecx
cmp word [eax + 0x32], 0
je 0x666476b9
mov dword [esp + 0x28], edi
mov edi, ecx
mov dword [esp + 0x30], ebp
mov ebp, eax
mov dword [esp + 0x38], esi
mov esi, edx
jmp 0x6664737d
sub word [ebx + 0x34], 1
movzx eax, word [ebp + 0x32]
add edi, 1
cmp eax, edi
jle 0x666476ad
movzx edx, word [ebx + 0x32]
mov dword [esp], edi
mov ecx, ebp
mov eax, ebx
call fcn.66595280
test eax, eax
jne 0x66647369
mov eax, dword [ebp + 4]
movzx edx, word [eax + edi*2]
mov eax, dword [ebx + 4]
mov word [eax + esi*2], dx
mov eax, dword [ebp + 0x20]
mov edx, dword [eax + edi*4]
mov eax, dword [ebx + 0x20]
mov dword [eax + esi*4], edx
mov eax, dword [ebp + 0x1c]
movzx edx, byte [eax + edi]
mov eax, dword [ebx + 0x1c]
mov byte [eax + esi], dl
add esi, 1
jmp 0x6664736e
mov byte [eax], 0x3b
jmp 0x66647267
mov ecx, dword [ebx + 4]
movzx edx, word [edx + 0x20]
lea ecx, [ecx + esi*2]
mov dword [esp + 0x40], ecx
test dx, dx
js 0x666474ad
movsx ecx, dx
lea ebp, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + ebp*4]
cmp byte [ecx + 0xc], 0
jne 0x666473f6
and byte [ebx + 0x38], 0xf7
test byte [ecx + 0x10], 0x20
je 0x66647400
or byte [ebx + 0x39], 4
mov ebp, dword [esp + 0x40]
mov word [ebp], dx
cmp byte [eax], 0x70
je 0x6664741f
mov ebp, dword [ecx + 8]
test ebp, ebp
mov eax, str.BINARY
cmove ebp, eax
jmp 0x666472f7
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x666475ae
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
mov edx, eax
add edx, 1
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 4], ebp
mov dword [esp], eax
mov dword [esp + 0x40], edx
call sub.msvcrt.dll_memcpy
mov ebp, dword [esp + 0x5c]
mov edx, dword [esp + 0x40]
add edx, ebp
mov dword [esp + 0x5c], edx
jmp 0x66647410
mov edx, dword [eax + 0xc]
cmp byte [edx], 0x74
jne 0x66647267
mov byte [edx], 0x3b
jmp 0x66647267
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x104], 0
mov dword [ebx + 0x28], ecx
jmp 0x666472d9
mov eax, dword [esp + 0x20]
mov dword [esp + 4], str.virtual_tables_may_not_be_indexed
xor esi, esi
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646f2c
mov ecx, dword [esp + 0x28]
movzx edx, word [ecx + 0x28]
mov ecx, dword [esp + 0x40]
mov word [ecx], dx
cmp byte [eax], 0x70
je 0x6664741f
movsx eax, dx
mov ebp, str.BINARY
test eax, eax
js 0x666472f7
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
lea ecx, [eax + edx*4]
jmp 0x6664740d
test eax, eax
jne 0x66646f23
jmp 0x66646f2c
mov eax, 1
add esi, eax
jmp 0x66646e18
movsx eax, word [edi + 0x2a]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4 - 0x14]
or word [eax + 0x10], 8
mov eax, dword [eax]
mov dword [esp + 0x94], eax
test eax, eax
je 0x6664780a
mov dword [esp], eax
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
mov dword [esp], 0
lea ecx, [esp + 0x94]
mov edx, 0x3b
mov dword [esp + 0x98], eax
mov eax, ebp
call fcn.6658c010
xor edx, edx
mov ecx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
call fcn.66599380
mov dword [esp + 0x104], eax
test eax, eax
je 0x66646f2c
mov edx, dword [eax]
cmp dword [esp + 0x114], 0xffffffff
mov eax, 0
cmovne eax, dword [esp + 0x114]
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x114], eax
movzx ecx, byte [esp + 0x114]
lea eax, [edx + edx*4 - 5]
mov byte [ebx + eax*4 + 0xc], cl
jmp 0x66646de7
mov edx, 1
jmp 0x6664743c
cmp byte [ebp + 0xa9], 0
jne 0x666475d4
xor ecx, ecx
mov edx, esi
mov eax, ebp
call fcn.665aabb0
test eax, eax
jne 0x66647c2e
mov eax, dword [esp + 0x3c]
mov edx, esi
mov ecx, dword [eax]
mov eax, ebp
call fcn.6659af50
test eax, eax
je 0x66647041
mov eax, dword [esp + 0x118]
test eax, eax
je 0x66647c68
mov ecx, dword [esp + 0x20]
mov edx, 1
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
movzx ecx, byte [esp + 0x2c]
mov dword [esp + 0x20], eax
mov ebx, eax
mov eax, dword [eax + 0x54]
shl edx, cl
test eax, edx
jne 0x66646f2c
or eax, edx
cmp dword [esp + 0x2c], 1
mov dword [ebx + 0x54], eax
jne 0x66646f2c
mov eax, ebx
call fcn.66605410
jmp 0x66646f2c
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x20]
mov edx, 0x12
mov ecx, str.sqlite_temp_master
mov dword [esp], 0
call fcn.665b6330
mov edx, 3
test eax, eax
je 0x6664708e
jmp 0x66646f2c
mov eax, dword [esp + 0x20]
mov dword [esp + 8], str.index
mov dword [esp + 4], str.too_many_columns_in__s
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646dcf
mov dword [esp + 0x110], 0
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
jmp 0x66646f23
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov eax, ebx
call fcn.66586cc0
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xe4]
test eax, eax
je 0x66647c85
mov eax, ebx
call fcn.66583460
mov eax, dword [esp + 0x100]
test eax, eax
je 0x6664775a
movsx edx, word [edi + 0x2a]
movzx ecx, word [ebx + 0x34]
mov dword [esp + 0x30], edx
cmp ecx, edx
jl 0x6664775a
movzx eax, byte [ebx + 0x38]
or eax, 0x20
mov byte [esp + 0x40], al
mov byte [ebx + 0x38], al
test edx, edx
jle 0x6664775a
movsx eax, word [edi + 0x28]
mov dword [esp + 0x38], eax
xor eax, eax
cmp dword [esp + 0x38], eax
je 0x66647751
test ecx, ecx
je 0x66647c1e
mov edx, dword [ebx + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], edx
xor edx, edx
jmp 0x6664773a
add edx, 1
cmp dword [esp + 0x28], edx
je 0x66647c1e
mov ecx, dword [esp + 0x3c]
cmp word [ecx + edx*2], ax
jne 0x6664772d
mov ecx, dword [esp + 0x28]
test dx, dx
js 0x66647c1e
add eax, 1
cmp dword [esp + 0x30], eax
jne 0x66647710
mov eax, dword [esp + 0x20]
cmp dword [eax + 0xe4], edi
je 0x66647aae
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebp + 0xa9]
cmp byte [ecx + 0xc8], 1
jbe 0x6664786e
test al, al
jne 0x66647842
cmp dword [esp + 0x100], 0
je 0x66647842
mov eax, dword [esp + 0x20]
cmp byte [eax + 0xc8], 1
jbe 0x6664785e
mov dword [eax + 0xe8], ebx
mov ebx, dword [edi + 8]
mov dword [esp + 0x110], 0
lea edx, [edi + 8]
test ebx, ebx
jne 0x66646f3a
cmp dword [esp + 0x104], 0
jne 0x66646c3e
mov edx, dword [esp + 0x100]
mov eax, ebp
call fcn.66597680
jmp 0x66646c5e
mov dword [esp + 0x34], 0x10
mov edx, 1
mov dword [esp + 0x2c], 1
jmp 0x66646b5b
xor eax, eax
jmp 0x66647535
xor ebx, ebx
jmp 0x666470ee
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
mov dword [esp], ecx
mov edi, edx
mov dword [esp + 4], str.expressions_prohibited_in_PRIMARY_KEY_and_UNIQUE_constraints
call fcn.665b3dd0
mov dword [esp + 0x110], 0
jmp 0x66646f23
mov eax, dword [edi + 8]
lea edx, [edi + 8]
mov dword [esp + 0x110], 0
mov dword [ebx + 0x14], eax
mov dword [edi + 8], ebx
jmp 0x66646f3a
mov dword [esp + 0x110], 0
jmp 0x66646f23
test al, al
je 0x666478ca
cmp dword [esp + 0x100], 0
je 0x666478a3
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp + 0xa4]
mov eax, dword [eax + 8]
mov dword [ebx + 0x2c], edx
test eax, eax
je 0x666478a3
cmp dword [eax + 0x2c], edx
jne 0x6664789c
cmp ebx, eax
jne 0x66647cec
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x6664788f
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx]
mov ecx, ebx
add eax, 0x18
call fcn.66593bd0
test eax, eax
jne 0x66647d60
or dword [ebp + 0x18], 1
movzx eax, byte [ebp + 0xa9]
jmp 0x66647782
test byte [edi + 0x24], 0x80
je 0x666478de
cmp dword [esp + 0x100], 0
je 0x66647842
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x2c]
add ecx, 1
mov dword [esp + 0x24], ecx
mov dword [eax + 0x2c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x110], ecx
test ecx, ecx
je 0x66647d47
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov edx, 1
call fcn.666057e0
mov dword [esp + 4], 0
mov eax, dword [esp + 0x110]
xor ecx, ecx
mov dword [esp], 0
mov edx, 0xb0
call fcn.6659fdb0
mov ecx, dword [esp + 0x2c]
mov edx, 0x8e
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 2
mov dword [esp], eax
mov eax, dword [esp + 0x110]
call fcn.6659fdb0
cmp dword [esp + 0x10c], 0
je 0x66647ca9
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [edx + 0xbc]
sub eax, ecx
add eax, dword [edx + 0xc0]
cmp byte [ecx + eax - 1], 0x3b
mov dword [esp + 0x28], eax
jne 0x66647992
sub dword [esp + 0x28], 1
cmp dword [esp + 0x108], 0
mov eax, str._UNIQUE
mov dword [esp + 0x10], ecx
mov edx, 0x6667d542
cmovne edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], str.CREATE_s_INDEX__.s
mov dword [esp], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.665bc610
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + ecx]
mov dword [esp + 4], str.INSERT_INTO__Q.sqlite_master_VALUES_index__Q__Q__d__Q__
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.66645940
mov edx, dword [esp + 0x28]
test edx, edx
je 0x66647a14
mov eax, ebp
call fcn.665926e0
cmp dword [esp + 0x100], 0
je 0x66647a90
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, ebx
call fcn.66608220
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 8]
mov eax, dword [eax]
call fcn.665a0a10
mov eax, dword [ebx]
mov dword [esp + 4], str.name_q_AND_typeindex
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.665bc610
mov dword [esp], 0
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, dword [esp + 0x110]
call fcn.665a0fc0
mov dword [esp + 4], 0
mov eax, dword [esp + 0x110]
xor ecx, ecx
mov dword [esp], 1
mov edx, 0xa1
call fcn.6659fdb0
mov eax, dword [esp + 0x110]
mov edx, dword [ebx + 0x2c]
mov ecx, dword [eax + 0x6c]
call fcn.66582b70
movzx eax, byte [ebp + 0xa9]
jmp 0x66647782
mov eax, dword [edi + 8]
mov dword [esp + 0x28], eax
test eax, eax
je 0x6664776a
movzx eax, word [ebx + 0x32]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
mov word [esp + 0x4e], ax
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], esi
jmp 0x66647af3
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x28], eax
test eax, eax
je 0x66647c0d
mov eax, dword [esp + 0x28]
movzx edi, word [esp + 0x4e]
cmp word [eax + 0x32], di
jne 0x66647ae0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x66647b73
mov eax, dword [esp + 0x28]
xor ebp, ebp
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
movzx edi, word [edi + ebp*2]
cmp word [eax + ebp*2], di
jne 0x66647ae0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x20]
mov edi, dword [eax + ebp*4]
mov eax, dword [ebx + 0x20]
mov esi, dword [eax + ebp*4]
xor eax, eax
jmp 0x66647b5a
movzx ecx, byte [ecx + 0x66690a80]
cmp byte [edx + 0x66690a80], cl
jne 0x66647ae0
add eax, 1
movzx edx, byte [edi + eax]
movzx ecx, byte [esi + eax]
cmp edx, ecx
jne 0x66647b48
test edx, edx
jne 0x66647b57
add ebp, 1
cmp ebp, dword [esp + 0x30]
jne 0x66647b1e
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
movzx edx, byte [eax + 0x36]
movzx eax, byte [ebx + 0x36]
cmp dl, al
je 0x66647bc9
cmp dl, 0xb
je 0x66647bb4
cmp al, 0xb
je 0x66647bb4
mov eax, dword [esp + 0x20]
mov dword [esp + 8], 0
mov dword [esp + 4], str.conflicting_ON_CONFLICT_clauses_specified
mov dword [esp], eax
call fcn.665b3dd0
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x36], 0xb
jne 0x66647bc9
movzx eax, byte [ebx + 0x36]
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x36], al
cmp byte [esp + 0x24], 2
jne 0x66647be5
mov ecx, dword [esp + 0x28]
movzx eax, byte [ecx + 0x38]
mov byte [esp + 0x24], al
and eax, 0xfffffffc
or eax, 2
mov byte [ecx + 0x38], al
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0xc8], 1
jbe 0x6664785e
mov eax, dword [ecx + 0xe8]
mov dword [ebx + 0x14], eax
mov dword [ecx + 0xe8], ebx
mov ebx, dword [edi + 8]
jmp 0x666477b2
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
jmp 0x6664776a
movzx eax, byte [esp + 0x40]
and eax, 0xffffffdf
mov byte [ebx + 0x38], al
jmp 0x6664775a
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp + 4], str.there_is_already_a_table_named__s
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646f2c
sub dword [esp + 0x3c], 0x80000
mov dword [esp + 0x34], 0xfff80000
mov dword [esp + 0x2c], 0xffff8000
jmp 0x66646ce6
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp + 4], str.index__s_already_exists
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x66646f2c
mov eax, ebx
call fcn.66596eb0
jmp 0x666476d2
mov eax, dword [ebx + 4]
mov word [eax + edx*2], 0xffff
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4], str.BINARY
jmp 0x666476b9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + ecx]
mov dword [esp + 4], str.INSERT_INTO__Q.sqlite_master_VALUES_index__Q__Q__d__Q__
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.66645940
jmp 0x66647a14
mov eax, dword [esp + 0x20]
mov dword [esp + 4], str.invalid_rootpage
mov dword [esp], eax
call fcn.665b3dd0
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x1c3ad
mov dword [esp + 8], str.database_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0xb
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, dword [esp + 0x20]
mov dword [esp + 0x110], 0
mov dword [eax + 0xc], 0xb
jmp 0x66646f23
call fcn.6659feb0
mov dword [esp + 0x110], eax
test eax, eax
je 0x66646f23
jmp 0x66647901
mov dword [esp], ebp
call fcn.6658a200
mov dword [esp + 0x110], 0
jmp 0x66646f23
jmp 0x66679fee
jmp 0x66679fee
movzx eax, byte [pe_dos_header]
ud2