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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0xcc
mov eax, dword [eax]
mov edi, dword [ebp + 8]
mov dword [esp + 0x38], eax
test edi, edi
je 0x666396f0
or byte [edi + 0x98], 0x20
lea eax, [esp + 0x90]
mov ecx, ebx
mov dword [ebp + 0x2c], 2
mov dword [esp], eax
mov eax, ebp
call fcn.665b7170
mov dword [esp + 0x44], eax
test eax, eax
js 0x666396df
mov esi, dword [esp + 0x38]
mov esi, dword [esi + 0x10]
cmp eax, 1
je 0x66639750
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
call fcn.66593510
mov dword [esp + 0x40], eax
test eax, eax
je 0x666396df
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jne 0x66639720
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x38]
call fcn.66593510
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
mov edx, dword [ebx + 4]
mov dword [esp + 0x48], 0
shl eax, 4
add esi, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], esi
test edx, edx
je 0x666395f1
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
mov edx, 0x13
mov ecx, dword [esp + 0x40]
mov dword [esp], eax
mov eax, ebp
mov dword [esp + 4], esi
call fcn.665b6330
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x666396bd
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb0]
mov dword [ecx + 0x1b4], 0
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xe
mov dword [esp], ecx
call sym.libsqlite3_0.dll_sqlite3_file_control
mov esi, eax
test eax, eax
je 0x6663b3a0
cmp eax, 0xc
je 0x66639778
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x666396b6
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6667eaa2
mov dword [esp], ebp
call fcn.665b3dd0
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
add dword [ebp + 0x24], 1
mov dword [ebp + 0xc], esi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
call fcn.665926e0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x666396df
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
call fcn.665926e0
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebp + 0x74]
test esi, esi
je 0x66639768
mov eax, ebp
mov dword [esp + 0x3c], edx
call fcn.6659fe10
mov edx, dword [esp + 0x3c]
test eax, eax
mov edi, eax
jne 0x6663954f
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], 0x6668334b
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.665bc610
mov dword [esp + 0x3c], eax
jmp 0x666395cb
mov eax, ebp
call fcn.66605410
test eax, eax
je 0x6663958c
jmp 0x666396df
test byte [eax + 0x4c], 8
jne 0x666396f7
mov byte [ebp + 0x17], 1
jmp 0x666396f7
mov eax, dword [esp + 0x40]
call fcn.665943a0
mov dword [esp + 0x5c], eax
test eax, eax
je 0x666396bd
movzx eax, byte [eax + 5]
test al, 1
jne 0x6663b428
test al, 2
jne 0x6663b408
test al, 4
je 0x6663b3fd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663b3fd
mov eax, dword [esp + 0x5c]
cmp byte [eax + 4], 0x2a
ja case.0x666397c7.0
movzx eax, byte [eax + 4]
jmp dword [eax*4 + 0x666834d0]
cmp dword [ebx], 0
mov eax, 0xc
cmovne eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x66639801
mov edx, str.full
call fcn.66581700
test eax, eax
jne 0x6663caa6
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov edx, 6
mov dword [ebp + 0x2c], 3
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, edi
call fcn.6659fdb0
mov dword [esp + 4], 0
mov ecx, 1
mov eax, edi
mov dword [esp], 3
mov edx, 0x51
call fcn.6659fdb0
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x66639882
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_wal_autocheckpoint
mov ebx, dword [esp + 0x38]
xor eax, eax
xor edx, edx
cmp dword [ebx + 0xfc], 0x666021b0
je 0x6663c757
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.665a0b20
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x666398ed
lea edx, [esp + 0xa0]
call fcn.6658ab40
test eax, eax
jne 0x666398ed
cmp dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa0]
js 0x666398ed
and eax, 0x7fffffff
mov edx, 8
mov ebx, dword [esp + 0x38]
cmp eax, 8
cmovg eax, edx
mov dword [ebx + 0x9c], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x9c]
cdq
jmp 0x6663989a
cmp dword [esp + 0x3c], 0
je 0x6663c728
mov edi, dword [esp + 0x3c]
cmp byte [edi], 0
je 0x66639947
mov eax, dword [esp + 0x38]
lea edx, [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [eax + 0x20]
test eax, eax
jne 0x6663c742
cmp dword [esp + 0xa0], 0
je 0x6663c742
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x52], 1
jbe 0x6663ca63
mov eax, dword [sym.libsqlite3_0.dll_sqlite3_temp_directory]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0
jne 0x6663ca49
mov dword [sym.libsqlite3_0.dll_sqlite3_temp_directory], 0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
call fcn.665926e0
jmp 0x666396d2
cmp dword [esp + 0x3c], 0
je 0x6663c79c
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax]
mov byte [esp + 0x44], al
sub eax, 0x30
cmp al, 2
ja 0x6663c763
movsx eax, al
mov dword [esp + 0x4c], eax
mov ebx, dword [ebp]
mov edi, dword [esp + 0x4c]
movzx eax, byte [ebx + 0x52]
cmp eax, edi
je 0x66639979
mov eax, ebp
call fcn.665fbb50
test eax, eax
jne 0x66639979
mov eax, edi
mov byte [ebx + 0x52], al
jmp 0x66639979
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x6663b5ac
mov esi, dword [esp + 0x48]
mov eax, ebp
mov edx, esi
call fcn.66605730
mov dword [esp], esi
mov ecx, ebx
mov edx, 2
mov eax, ebp
call fcn.6662d630
mov dword [esp + 0x60], eax
test eax, eax
je 0x66639979
mov esi, dword [eax + 8]
test esi, esi
jne 0x66639a1f
jmp 0x66639a2a
mov esi, dword [esi + 0x14]
test esi, esi
je 0x66639a2a
movzx eax, byte [esi + 0x38]
and eax, 3
cmp al, 2
jne 0x66639a18
mov ebx, dword [esp + 0x60]
mov dword [ebp + 0x2c], 7
mov eax, ebp
mov edx, ebx
call fcn.665d6bb0
movsx edx, word [ebx + 0x2a]
mov ebp, dword [ebx + 4]
test edx, edx
jle 0x66639979
mov dword [esp + 0x58], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x70], edi
mov dword [esp + 0x64], esi
jmp 0x66639b63
or edi, ebx
je 0x6663c5b3
mov ecx, eax
and ecx, 1
test al, 0x20
jne 0x6663c5e8
test al, 0x40
jne 0x6663c5bd
mov edi, dword [ebp + 4]
mov dword [esp + 0x48], edi
test cx, cx
jne 0x6663c455
mov esi, 1
test edi, edi
je 0x6663c5c7
xor ebx, ebx
mov esi, 1
mov edi, dword [esp + 0x48]
mov edi, dword [edi + 8]
xor ecx, ecx
cmp byte [ebp + 0xc], 0
mov edx, dword [ebp]
mov dword [esp + 0x48], 0x6667d542
setne cl
mov dword [esp + 0x4c], ecx
test al, 4
je 0x66639ae6
mov dword [esp], edx
mov dword [esp + 0x48], edx
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x48]
lea eax, [edx + eax + 1]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x58]
mov ecx, str.issisii
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x6c]
or eax, dword [esp + 0x68]
mov eax, str.issisi
cmovne eax, ecx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 4], 1
call fcn.665a0550
mov eax, dword [esp + 0x60]
movsx edx, word [eax + 0x2a]
add dword [esp + 0x44], 1
mov eax, dword [esp + 0x44]
add ebp, 0x14
cmp edx, eax
jle 0x66639979
mov edi, dword [esp + 0x5c]
movzx eax, word [ebp + 0x10]
mov ebx, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
test al, 0x62
jne 0x66639a6a
mov edi, dword [ebp + 4]
xor esi, esi
mov dword [esp + 0x48], edi
test al, 1
jne 0x6663c45a
xor ebx, ebx
test edi, edi
jne 0x66639aab
jmp 0x66639ab2
cmp dword [esp + 0x3c], 0
je 0x6663ca39
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x51], 0
je 0x6663c978
cmp dword [esp + 0x44], 1
je 0x66639979
mov eax, dword [esp + 0x3c]
mov ecx, 1
xor edx, edx
call fcn.66591cd0
add eax, 1
and eax, 7
jne 0x66639be2
mov eax, 1
mov edi, dword [esp + 0x50]
mov byte [edi + 8], al
mov eax, dword [esp + 0x38]
mov byte [edi + 9], 1
cmp byte [eax + 0x51], 0
je 0x66639979
call fcn.665997c0
jmp 0x66639979
mov eax, dword [esp + 0x50]
or ebp, 0xffffffff
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x66639c74
mov edx, str.fast
mov ebp, 2
call fcn.66581700
test eax, eax
jne 0x6663caf0
cmp dword [ebx + 4], 0
jne 0x66639c74
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x14], 0
jle 0x66639c74
mov eax, ebp
mov ebx, dword [esp + 0x4c]
mov ebp, edi
mov edi, esi
mov esi, eax
mov ecx, dword [esp + 0x38]
mov eax, ebx
mov edx, esi
add ebx, 1
shl eax, 4
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 4]
call fcn.66597490
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 0x14], ebx
jg 0x66639c4a
mov eax, esi
mov esi, edi
mov edi, ebp
mov ebp, eax
mov edx, ebp
mov eax, esi
call fcn.66597490
cdq
jmp 0x6663989a
mov esi, 0x6668f940
mov ebx, 0x6668fd60
lea esi, [esi]
mov eax, dword [esi]
mov dword [esp + 8], 0x6667e0aa
add esi, 0x10
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], edi
call fcn.665a0550
cmp ebx, esi
jne 0x66639c90
jmp 0x666396bd
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x3c], 0
mov ebx, dword [eax + 4]
je 0x6663b58e
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xa0]
xor ecx, ecx
mov dword [eax + 0x60], edx
mov eax, ebx
mov dword [esp], 0
call fcn.6659d680
cmp eax, 7
jne 0x66639979
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.6658a200
jmp 0x66639979
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663c621
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov eax, dword [esp + 0xa0]
test al, 2
je 0x66639979
mov ebx, dword [ebp + 0x28]
cmp dword [esp + 0x48], 0
lea edx, [ebx + 1]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x44]
mov dword [ebp + 0x28], edx
mov dword [esp + 0x60], ebx
je 0x6663c98d
and eax, 1
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x44], 1
je 0x6663b49f
mov ebx, dword [esp + 0x48]
movzx ecx, byte [esp + 0x44]
mov edx, 1
mov eax, dword [ebx + 0x74]
test eax, eax
cmove eax, ebx
shl edx, cl
mov ebx, dword [eax + 0x54]
test ebx, edx
jne 0x66639daf
or edx, ebx
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x44]
shl eax, 4
mov ebx, eax
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
jne 0x66639dda
jmp 0x6663b49f
mov ebx, dword [ebx]
test ebx, ebx
je 0x6663b49f
mov esi, dword [ebx + 8]
test byte [esi + 0x25], 1
je 0x66639dd0
mov eax, dword [esi + 8]
test eax, eax
jne 0x66639dfb
jmp 0x6663b444
mov eax, dword [eax + 0x14]
test eax, eax
je 0x6663b444
cmp byte [eax + 0x38], 0
js 0x66639df0
mov eax, dword [esi]
mov esi, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + esi]
mov dword [esp + 4], str.ANALYZE___w_.__w_
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.665bc610
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x6663b5f0
mov esi, dword [esp + 0x48]
movzx edx, byte [esi + 0x13]
test dl, dl
je 0x6663b98d
mov esi, dword [esp + 0x48]
sub edx, 1
mov byte [esi + 0x13], dl
movzx edx, dl
mov esi, dword [esi + edx*4 + 0x94]
mov dword [esp + 8], eax
xor ecx, ecx
mov edx, 0x74
mov eax, edi
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.665a0890
mov dword [esp], 1
mov ecx, esi
mov eax, edi
mov dword [esp + 4], 0
mov edx, 0x51
call fcn.6659fdb0
jmp 0x66639dd0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x66639eb8
lea edx, [esp + 0xa0]
call fcn.6658ab40
test eax, eax
je 0x6663ca1a
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call sym.libsqlite3_0.dll_sqlite3_soft_heap_limit64
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.665a0b20
jmp 0x666396bd
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_db_release_memory
jmp 0x666396bd
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x2c], 1
mov ebx, dword [eax + 0x178]
test ebx, ebx
je 0x666396bd
mov eax, dword [ebx + 8]
mov eax, dword [eax + 4]
mov dword [esp + 8], 0x6667e0aa
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], edi
call fcn.665a0550
mov ebx, dword [ebx]
test ebx, ebx
jne 0x66639f06
jmp 0x666396bd
lea eax, [esp + 0xa0]
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x4c], eax
je 0x6663a057
mov edx, eax
mov eax, dword [esp + 0x3c]
call fcn.6658ab40
cmp dword [esp + 0xa4], 0
jns 0x66639f77
mov eax, dword [0x6667cea8]
mov edx, dword [0x6667ceac]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
cmp dword [ebx + 4], 0
jne 0x66639f95
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov esi, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x14]
mov esi, eax
mov dword [esp + 0x50], eax
sub esi, 1
js 0x6663a057
mov dword [esp + 0x58], edi
mov eax, ebx
mov ebx, esi
mov esi, ebp
mov ebp, eax
mov edi, dword [esp + 0x38]
mov eax, ebx
shl eax, 4
add eax, dword [edi + 0x10]
mov edi, dword [eax + 4]
test edi, edi
je 0x6663a048
cmp dword [esp + 0x44], ebx
je 0x66639fd7
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x6663a048
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
cmp byte [edi + 9], 0
mov ecx, dword [edi + 4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
je 0x6663a00f
add dword [edi + 0xc], 1
cmp byte [edi + 0xa], 0
jne 0x6663a00f
mov eax, edi
mov dword [esp + 0x5c], ecx
call fcn.6658e4e0
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [eax + 0x84], ecx
mov ecx, dword [eax + 0x3c]
mov dword [eax + 0x80], edx
mov ecx, dword [ecx]
test ecx, ecx
je 0x6663a038
cmp dword [ecx], 2
jle 0x6663a038
call fcn.6658e310
cmp byte [edi + 9], 0
je 0x6663a048
sub dword [edi + 0xc], 1
je 0x6663ca0a
sub ebx, 1
jae 0x66639fb7
mov edi, dword [esp + 0x58]
mov ebp, esi
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], 0x12
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_file_control
test eax, eax
je 0x6663c85b
cmp eax, 0xc
je 0x666396bd
add dword [ebp + 0x24], 1
mov dword [ebp + 0xc], eax
jmp 0x666396bd
mov eax, dword [ebp + 0x74]
mov edx, dword [esp + 0x44]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
test eax, eax
cmove eax, ebp
call fcn.66605700
mov eax, dword [ebp + 0x2c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x2c], ebx
movzx eax, byte [eax]
cmp byte [eax + 0x66690a80], 0x70
je 0x6663c9ea
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663c4e9
lea edx, [esp + 0xa0]
call fcn.6658ab40
mov edx, eax
test eax, eax
jne 0x6663c4e9
mov esi, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
test esi, esi
js 0x6663c4e9
mov ecx, 0xfffffffe
cmp ecx, eax
sbb edx, esi
jge 0x6663a150
mov dword [esp + 0xa0], 0xfffffffe
mov eax, 0xfffffffe
mov dword [esp + 0xa4], 0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x44]
mov edx, 0xac
mov eax, edi
mov dword [esp], ebx
call fcn.6659fdb0
mov dword [esp], 1
mov ecx, ebx
mov edx, 0x51
mov eax, edi
mov dword [esp + 4], 0
call fcn.6659fdb0
jmp 0x666396bd
mov esi, dword [esp + 0x38]
mov dword [ebp + 0x2c], 3
cmp dword [esi + 0x14], 0
jle 0x666396bd
mov ebx, dword [esp + 0x4c]
mov eax, ebx
shl eax, 4
add eax, dword [esi + 0x10]
mov edx, dword [eax + 4]
test edx, edx
je 0x6663a1ed
mov edx, dword [edx + 4]
mov ecx, dword [edx]
mov edx, 0x666897ec
cmp byte [ecx + 0xf], 0
jne 0x6663a1c7
mov edx, dword [ecx + 0xa8]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x666833d4
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.665a0550
add ebx, 1
cmp dword [esi + 0x14], ebx
jg 0x6663a1a2
jmp 0x666396bd
cmp dword [esp + 0x3c], 0
je 0x6663c81f
mov edi, dword [esp + 0x3c]
cmp byte [edi], 0
je 0x6663a247
mov eax, dword [esp + 0x38]
lea edx, [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [eax + 0x20]
test eax, eax
jne 0x6663c742
cmp dword [esp + 0xa0], 0
je 0x6663c742
mov eax, dword [sym.libsqlite3_0.dll_sqlite3_data_directory]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0
jne 0x6663cad6
mov dword [sym.libsqlite3_0.dll_sqlite3_data_directory], 0
jmp 0x66639979
mov dword [ebp + 0x2c], 1
mov ebx, 1
mov ecx, str.COMPILERgcc_10_win32_20210110
mov edx, 1
mov eax, edi
add ebx, 1
call fcn.665a0a80
mov dword [esp + 4], 0
mov ecx, 1
mov eax, edi
mov dword [esp], 1
mov edx, 0x51
call fcn.6659fdb0
cmp ebx, 0xa
je 0x6663a2c0
mov ecx, dword [ebx*4 + 0x66690bfc]
test ecx, ecx
jne 0x6663a281
and byte [edi + 0x98], 0xdf
jmp 0x666396bd
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x2c], 2
mov ebx, dword [eax + 0x1a4]
test ebx, ebx
je 0x666396bd
mov esi, dword [esp + 0x4c]
mov edx, dword [ebx + 8]
mov eax, esi
add esi, 1
mov edx, dword [edx]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x666833d8
mov dword [esp + 0x10], edx
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.665a0550
mov ebx, dword [ebx]
test ebx, ebx
jne 0x6663a2e9
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663b5ac
xor ecx, ecx
mov edx, 1
mov ebx, 0x6668fefc
call fcn.66591cd0
mov edi, dword [esp + 0x38]
mov dword [esp + 0x1c], 0
mov ecx, 2
test al, al
mov eax, 4
mov dword [esp + 0x18], 0
mov edx, str.like
cmove esi, eax
mov eax, 0x6668ff00
mov dword [esp + 0x14], 0
cmove ebx, eax
mov dword [esp + 0x10], 0
mov eax, edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x665ad280
mov dword [esp + 4], ebx
mov dword [esp], 1
call fcn.665b32b0
mov dword [esp + 0x1c], 0
mov eax, edi
mov ecx, 3
mov dword [esp + 0x18], 0
mov edx, str.like
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x665ad280
mov dword [esp + 4], ebx
mov dword [esp], 1
call fcn.665b32b0
mov dword [esp + 4], 0
mov ecx, 2
mov eax, edi
mov dword [esp], 1
mov edx, str.like
call fcn.6659f700
mov ecx, 3
mov edx, str.like
or dword [eax + 4], esi
mov eax, edi
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.6659f700
or dword [eax + 4], esi
jmp 0x66639979
cmp dword [esp + 0x3c], 0
je 0x6663c591
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 1
call fcn.66581af0
test eax, eax
jne 0x6663cb6a
xor ecx, ecx
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0xa0], 0
mov edx, 1
setne cl
call fcn.66591cd0
mov edi, dword [esp + 0x38]
test al, al
mov eax, dword [edi + 0x20]
mov dword [esp + 0x44], eax
je 0x6663c8f8
mov edx, dword [edi + 0x24]
or eax, 0x20
mov edi, dword [esp + 0x38]
cmp byte [edi + 0x51], 0
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
je 0x66639979
mov eax, edi
call fcn.665997c0
jmp 0x66639979
cmp dword [esp + 0x3c], 0
je 0x6663c7d7
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0xa0]
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], edx
mov eax, dword [edi + 4]
call fcn.66596fa0
jmp 0x66639979
cmp dword [esp + 0x3c], 0
je 0x6663cb82
mov eax, dword [esp + 0x5c]
mov ebx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x51], 0
jne 0x6663a51c
and bh, 0xbf
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov edx, 1
call fcn.66591cd0
test al, al
je 0x6663c7e6
mov eax, dword [esp + 0x38]
or dword [eax + 0x20], ebx
or dword [eax + 0x24], esi
mov eax, edi
mov edx, 0xa1
call fcn.665a0820
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x51], 0
je 0x66639979
jmp 0x66639bfb
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x3c], 0
mov ebx, dword [eax + 4]
je 0x6663c7c1
mov ebp, dword [esp + 0x3c]
mov edx, str.none
mov eax, ebp
call fcn.66581700
test eax, eax
je 0x6663c7ab
mov edx, str.full
mov eax, ebp
mov esi, 1
call fcn.66581700
test eax, eax
je 0x6663c908
mov edx, str.incremental
mov eax, ebp
call fcn.66581700
test eax, eax
je 0x6663c903
lea edx, [esp + 0xa0]
mov eax, ebp
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov esi, dword [esp + 0xa0]
cmp esi, 2
ja 0x6663c7ab
mov ecx, dword [esp + 0x38]
mov eax, esi
mov edx, esi
mov byte [ecx + 0x56], al
mov eax, ebx
call fcn.66596e20
test eax, eax
jne 0x66639979
lea ebx, [esi - 1]
cmp ebx, 1
ja 0x66639979
mov esi, dword [edi + 0x6c]
mov ecx, 0x66689264
mov edx, 5
mov eax, edi
call fcn.665992b0
mov ecx, dword [esp + 0x44]
add esi, 4
mov dword [eax + 0x5c], ebx
mov dword [eax + 4], ecx
mov edx, ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x30], esi
mov dword [eax + 0x54], ecx
mov eax, edi
call fcn.66582ba0
jmp 0x66639979
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663b5ac
mov edx, eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.6659af50
mov ebx, eax
test eax, eax
je 0x6663cbae
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x6663cc52
mov eax, dword [esp + 0x38]
call fcn.66588e60
mov edx, eax
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 0xc]
or eax, dword [esi + 8]
je 0x6663c9ae
movzx esi, word [ebx + 0x34]
mov eax, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x74]
test eax, eax
cmove eax, ebp
call fcn.66605700
test esi, esi
je 0x66639979
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x4c]
jmp 0x6663a6e4
mov dword [esp + 4], 0
mov eax, dword [ebp + 0x2c]
mov ecx, 1
mov edx, 0x51
add esi, 1
mov dword [esp], eax
mov eax, edi
call fcn.6659fdb0
cmp dword [esp + 0x44], esi
je 0x66639979
mov eax, dword [ebx + 4]
xor edx, edx
movsx eax, word [eax + esi*2]
test ax, ax
js 0x6663a701
mov ecx, dword [esp + 0x48]
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 4]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], str.iisX
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.665a0550
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + 0xc]
or eax, dword [ecx + 8]
je 0x6663a6b8
movzx eax, word [ebx + 0x32]
cmp eax, esi
setg al
movzx eax, al
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1c]
movzx eax, byte [eax + esi]
mov dword [esp + 8], str.isiX
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
mov dword [esp], edi
call fcn.665a0550
jmp 0x6663a6b8
cmp dword [esp + 0x3c], 0
je 0x6663c481
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
call fcn.66581af0
test eax, eax
je 0x6663c481
cmp dword [esp + 0xa0], 0
jle 0x6663c481
mov ebx, dword [esp + 0x44]
xor edx, edx
mov eax, ebp
mov ecx, ebx
call fcn.666057e0
mov dword [esp + 4], 0
mov edx, 0x45
mov eax, edi
mov dword [esp], 1
mov ecx, dword [esp + 0xa0]
call fcn.6659fdb0
mov dword [esp], 0
mov ecx, ebx
mov eax, edi
mov dword [esp + 4], 0
mov edx, 0x3c
call fcn.6659fdb0
mov ecx, 1
mov edx, 0x51
mov dword [esp + 4], 0
mov dword [esp], 0
mov ebx, eax
mov eax, edi
call fcn.6659fdb0
mov dword [esp + 4], 0
mov ecx, 1
mov eax, edi
mov dword [esp], 0xffffffff
mov edx, 0x53
call fcn.6659fdb0
mov dword [esp], ebx
mov ecx, 1
mov eax, edi
mov dword [esp + 4], 0
mov edx, 0x30
call fcn.6659fdb0
mov ecx, dword [edi + 0x6c]
mov edx, ebx
mov eax, edi
call fcn.66582b70
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663a87f
lea edx, [esp + 0xa0]
call fcn.6658ab40
mov ebx, eax
test eax, eax
je 0x6663cbf7
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call sym.libsqlite3_0.dll_sqlite3_hard_heap_limit64
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.665a0b20
jmp 0x666396bd
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x18]
mov dword [ebp + 0x2c], 6
mov ebp, dword [esp + 0x4c]
mov ebx, eax
mov dword [esp + 0x44], eax
shr ebx, 5
and ebx, 1
lea esi, [esi]
mov esi, dword [ebp*4 + 0x666b0420]
test esi, esi
je 0x6663a8f0
lea esi, [esi]
nop
mov dword [esp], ebx
mov edx, esi
mov ecx, 1
mov eax, edi
call fcn.665a06e0
mov esi, dword [esi + 0x24]
test esi, esi
jne 0x6663a8d8
add ebp, 1
cmp ebp, 0x17
jne 0x6663a8c8
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x194]
test esi, esi
je 0x666396bd
mov edx, dword [esi + 8]
mov dword [esp], ebx
xor ecx, ecx
mov eax, edi
call fcn.665a06e0
mov esi, dword [esi]
test esi, esi
jne 0x6663a90a
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663a95c
lea edx, [esp + 0xa0]
call fcn.6658ab40
test eax, eax
jne 0x6663a95c
cmp dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa0]
js 0x6663a95c
mov ebx, dword [esp + 0x38]
and eax, 0x7fffffff
mov dword [ebx + 0x1dc], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x1dc]
cdq
jmp 0x6663989a
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x44]
mov eax, edi
mov ebx, dword [esi + 8]
call fcn.66582ba0
cmp dword [esp + 0x3c], 0
je 0x6663a98f
test byte [esi + 5], 8
je 0x6663c92a
mov ecx, 0x666891ac
mov edx, 3
mov eax, edi
call fcn.665992b0
mov esi, dword [esp + 0x44]
mov dword [eax + 0x20], ebx
mov dword [eax + 4], esi
mov dword [eax + 0x18], esi
and byte [edi + 0x98], 0xdf
jmp 0x666396bd
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ebx, dword [eax]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa0], 0xfffffffe
mov dword [esp + 0xa4], 0xffffffff
test eax, eax
je 0x6663aa43
lea edx, [esp + 0xa0]
call fcn.6658ab40
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0xa0], 0xffffffff
sbb eax, 0xffffffff
jge 0x6663aa19
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp + 0xa4], 0xffffffff
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov eax, dword [ebx + 0xd8]
mov dword [ebx + 0xa0], edx
mov dword [ebx + 0xa4], ecx
test eax, eax
je 0x6663aa43
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov eax, dword [ebx + 0xa0]
mov edx, dword [ebx + 0xa4]
mov dword [esp + 0xa0], eax
mov ecx, edx
mov dword [esp + 0xa4], edx
mov edx, eax
mov eax, edi
call fcn.665a0b20
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663aabe
mov dword [esp], eax
xor ebp, ebp
call sub.msvcrt.dll_strlen
mov dword [esp + 0x48], ebx
mov edx, str.delete
mov ebx, dword [esp + 0x3c]
mov esi, eax
and esi, 0x3fffffff
jmp 0x6663aaa1
mov edx, dword [ebp*4 + str._a3hf]
test edx, edx
je 0x6663aaba
mov ecx, esi
mov eax, ebx
call fcn.6658b5e0
test eax, eax
je 0x6663c54a
add ebp, 1
cmp ebp, 6
jne 0x6663aa96
mov ebx, dword [esp + 0x48]
or ebp, 0xffffffff
cmp dword [ebx + 4], 0
jne 0x6663aad6
mov dword [ebx + 4], 1
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x14]
mov esi, eax
mov dword [esp + 0x48], eax
sub esi, 1
js 0x6663ab58
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x38]
mov edx, dword [ebp + 0x10]
mov eax, esi
shl eax, 4
mov ecx, dword [edx + eax + 4]
test ecx, ecx
je 0x6663ab53
cmp dword [esp + 0x44], esi
je 0x6663ab0d
mov edx, dword [ebx + 4]
test edx, edx
jne 0x6663ab53
mov edx, 1
mov ecx, esi
shl edx, cl
or dword [edi + 0x9c], edx
cmp esi, 1
je 0x6663ab36
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x10]
mov eax, dword [ecx + eax + 4]
cmp byte [eax + 9], 0
je 0x6663ab36
or dword [edi + 0xa0], edx
mov eax, dword [esp + 0x48]
mov dword [esp], 1
mov ecx, esi
mov edx, 7
mov dword [esp + 4], eax
mov eax, edi
call fcn.6659fdb0
sub esi, 1
jae 0x6663aaf0
mov dword [esp + 4], 0
mov ecx, 1
mov edx, 0x51
mov eax, edi
mov dword [esp], 1
call fcn.6659fdb0
jmp 0x666396bd
mov eax, dword [esp + 0x40]
cmp dword [ebx], 0
movzx eax, byte [eax]
mov dword [ebp + 0x2c], 6
mov dword [esp + 0x94], 0x64
movzx eax, byte [eax + 0x66690a80]
mov byte [esp + 0x78], al
mov eax, 0xffffffff
cmovne eax, dword [esp + 0x44]
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x44], eax
je 0x6663abe6
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x94]
call fcn.66581af0
test eax, eax
je 0x6663c9bc
cmp dword [esp + 0x94], 0
jg 0x6663abe6
mov dword [esp + 0x94], 0x64
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x94]
mov dword [esp + 4], 0
mov edx, 0x45
mov dword [esp], 1
lea ecx, [eax - 1]
mov eax, edi
call fcn.6659fdb0
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x14], 0
jle 0x6663c3fd
mov eax, dword [esp + 0x44]
mov dword [esp + 0x74], ebp
mov ebp, edi
mov dword [esp + 0x48], 0
not eax
shr eax, 0x1f
mov dword [esp + 0x88], eax
jmp 0x6663ac5e
mov edi, dword [esp + 0x38]
add dword [esp + 0x48], 1
mov eax, dword [esp + 0x48]
cmp dword [edi + 0x14], eax
jle 0x6663c3fb
mov edi, dword [esp + 0x48]
cmp dword [esp + 0x44], edi
je 0x6663ac72
cmp byte [esp + 0x88], 0
jne 0x6663ac48
mov edi, dword [esp + 0x74]
mov edx, 1
mov eax, dword [edi + 0x74]
test eax, eax
cmove eax, edi
mov edi, dword [esp + 0x48]
mov ebx, dword [eax + 0x54]
mov ecx, edi
shl edx, cl
test ebx, edx
jne 0x6663aca0
or edx, ebx
mov dword [eax + 0x54], edx
cmp edi, 1
je 0x6663c506
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
shl edi, 4
mov dword [esp + 0x64], edi
mov eax, dword [eax + edi + 0xc]
mov esi, dword [eax + 0x10]
mov dword [esp + 0x60], eax
test esi, esi
je 0x6663ac48
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x4c], ebp
test edi, edi
mov ebp, edi
setne byte [esp + 0x58]
xor ebx, ebx
xor ecx, ecx
jmp 0x6663acf1
cmp byte [esp + 0x58], 0
je 0x6663acf8
mov esi, dword [esi]
test esi, esi
je 0x6663b4c3
mov eax, dword [esi + 8]
cmp ebp, eax
jne 0x6663ace0
mov edx, dword [eax + 0x24]
and edx, 0x80
cmp edx, 1
mov edx, dword [eax + 8]
adc ecx, 0
xor eax, eax
test edx, edx
je 0x6663ad25
lea edi, [ecx + 1]
lea esi, [esi]
nop
mov edx, dword [edx + 0x14]
lea ecx, [edi + eax]
add eax, 1
test edx, edx
jne 0x6663ad18
cmp ebx, eax
cmovl ebx, eax
jmp 0x6663ace7
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663b5ac
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, eax
mov eax, esi
call fcn.665aabb0
mov ebx, eax
test eax, eax
je 0x66639979
mov edx, dword [eax + 0x48]
test edx, edx
je 0x6663cca5
mov eax, esi
call fcn.66588e60
mov edx, eax
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x2c], 5
test eax, eax
cmovne ebp, eax
mov eax, ebp
call fcn.66605700
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x66639979
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xa0], 0x666833c7
mov edx, dword [ebx + 0x24]
xor eax, eax
mov dword [esp + 0xa4], 0x666833c9
mov dword [esp + 0xa8], 0x666833cb
test edx, edx
setne al
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx + 0x38]
and eax, 3
mov eax, dword [esp + eax*4 + 0xa0]
mov dword [esp + 0x18], eax
xor eax, eax
cmp byte [ebx + 0x36], 0
setne al
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], esi
add esi, 1
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.isisi
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.665a0550
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x6663ad8c
jmp 0x66639979
mov esi, dword [esp + 0x3c]
mov eax, esi
test esi, esi
je 0x6663ae42
mov edx, 0x66681cf4
call fcn.66581700
mov ecx, 1
test eax, eax
je 0x6663c875
mov edx, str.normal
mov eax, esi
call fcn.66581700
mov ecx, eax
test eax, eax
je 0x6663c875
cmp dword [ebx + 4], 0
je 0x6663ca99
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
movzx eax, byte [eax + 4]
sub eax, 1
mov edx, str.normal
mov eax, 0x66681cf4
cmove edx, eax
mov eax, edi
call fcn.665a1140
jmp 0x666396bd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6663b5ac
mov edx, eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.665aabb0
mov dword [esp + 0x44], eax
test eax, eax
je 0x66639979
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x66639979
mov edx, dword [eax + 0x48]
test edx, edx
je 0x6663cc48
mov eax, dword [esp + 0x38]
call fcn.66588e60
mov edx, eax
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x2c], 8
test eax, eax
cmovne ebp, eax
mov eax, ebp
xor ebp, ebp
call fcn.66605700
mov eax, dword [ebx + 0x14]
xor esi, esi
test eax, eax
jle 0x6663af7e
lea esi, [esi]
movzx eax, byte [ebx + 0x19]
mov ecx, str.NO_ACTION
sub eax, 7
cmp al, 3
ja 0x6663af02
movzx eax, al
mov ecx, dword [eax*4 + 0x66686e0c]
movzx eax, byte [ebx + 0x1a]
mov edx, str.NO_ACTION
sub eax, 7
cmp al, 3
ja 0x6663af1c
movzx eax, al
mov edx, dword [eax*4 + 0x66686e0c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x28], str.NONE
mov dword [esp + 0x20], edx
mov eax, dword [ebx + esi*8 + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + esi*8 + 0x24]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [ecx + 4]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], esi
add esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.iissssss
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.665a0550
cmp dword [ebx + 0x14], esi
jg 0x6663aee8
mov ebx, dword [ebx + 4]
add ebp, 1
test ebx, ebx
jne 0x6663aed8
jmp 0x66639979
cmp dword [esp + 0x3c], 0
je 0x6663ca6f
mov eax, dword [esp + 0x38]
test byte [eax + 0x18], 0x40
jne 0x66639979
mov edi, dword [esp + 0x3c]
mov ebx, str.3hf
mov edx, str.UTF8
mov dword [esp + 0x44], ebx
mov ecx, edi
jmp 0x6663afd9
movzx ebx, byte [esi + 0x66690a80]
cmp byte [eax + 0x66690a80], bl
jne 0x6663b61e
add ecx, 1
add edx, 1
movzx eax, byte [ecx]
movzx esi, byte [edx]
cmp eax, esi
jne 0x6663afc0
test eax, eax
jne 0x6663afd3
mov ebx, dword [esp + 0x44]
movzx esi, byte [ebx + 4]
mov eax, esi
test al, al
jne 0x6663affa
mov esi, 2
mov edi, dword [esp + 0x38]
mov ecx, esi
mov edx, str.BINARY
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], cl
mov eax, edi
mov byte [edi + 0x50], cl
xor ecx, ecx
call fcn.6659c1f0
test eax, eax
je 0x6663b02a
mov ecx, esi
movzx edx, cl
imul edx, edx, 0x14
lea eax, [eax + edx - 0x14]
mov edi, dword [esp + 0x38]
cmp dword [ebx], 0
mov dword [edi + 8], eax
jne 0x66639979
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.unsupported_encoding:__s
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.665b3dd0
jmp 0x66639979
mov eax, dword [ebp + 0x2c]
lea ebx, [eax + 1]
mov dword [esp + 0x84], eax
mov dword [esp + 0x68], ebx
lea ebx, [eax + 5]
add eax, 6
mov dword [esp + 0x50], eax
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x58]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x666396bd
mov dword [esp + 0x5c], ebp
mov ebp, edi
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x6663b5be
mov eax, dword [esp + 0x48]
xor edx, edx
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
call fcn.6662d630
mov dword [esp + 0x44], eax
test eax, eax
je 0x666396bd
mov eax, dword [eax + 0x10]
test eax, eax
je 0x666396bd
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x48]
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x5c]
mov ebx, dword [eax + 0x74]
test ecx, ecx
je 0x6663cc5c
cmp ecx, dword [edx + 0xc]
je 0x6663c4b8
lea eax, [edx + 0x10]
xor edi, edi
lea esi, [esi]
add edi, 1
mov edx, eax
add eax, 0x10
mov esi, edi
shl esi, 4
cmp ecx, dword [eax - 4]
jne 0x6663b108
mov dword [esp + 0x58], esi
mov eax, dword [edx]
test ebx, ebx
cmove ebx, dword [esp + 0x5c]
mov ecx, edi
mov dword [esp + 0x48], eax
mov edx, dword [ebx + 0x54]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x6663b97f
or eax, edx
mov dword [ebx + 0x54], eax
cmp edi, 1
je 0x6663c53e
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edx, dword [eax]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi + 4]
cmp byte [eax + 9], 0
je 0x6663b181
mov dword [esp + 4], edx
mov eax, ebx
mov edx, edi
mov dword [esp], 0
call fcn.665995a0
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x5c]
movsx eax, word [eax + 0x2a]
add eax, dword [esp + 0x50]
cmp eax, dword [ebx + 0x2c]
jle 0x6663b199
mov dword [ebx + 0x2c], eax
mov ebx, dword [esp + 0x44]
mov dword [esp + 4], 0x61
mov ecx, edi
xor edx, edx
mov eax, dword [esp + 0x5c]
mov dword [esp], ebx
call fcn.665b4280
mov ecx, dword [ebx]
mov edx, dword [esp + 0x68]
mov eax, ebp
call fcn.665a0a80
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x6663c7cd
mov ebx, 1
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x4c], edi
mov edi, ebx
jmp 0x6663b222
mov ebx, dword [esp + 0x4c]
mov edx, 0x61
mov ecx, edi
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
call fcn.6659fdb0
mov edx, dword [esp + 0x9c]
mov eax, ebp
call fcn.665b4220
mov esi, dword [esi + 4]
add edi, 1
test esi, esi
je 0x6663b638
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.665aabb0
mov ebx, eax
test eax, eax
je 0x6663b214
mov dword [esp + 0x9c], 0
mov edx, dword [esp + 0x4c]
cmp edx, 1
je 0x6663b277
mov eax, dword [ebp]
mov ecx, dword [esp + 0x58]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x6663b277
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x1c]
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, ebp
call fcn.665995a0
lea eax, [esp + 0x9c]
mov dword [esp + 4], 0
mov ecx, esi
mov edx, ebx
mov dword [esp], eax
mov eax, ebp
call fcn.665b8c40
test eax, eax
jne 0x666396bd
mov eax, dword [esp + 0x9c]
test eax, eax
jne 0x6663b1e8
mov dword [esp + 4], 0x61
mov ecx, dword [esp + 0x4c]
mov edx, edi
mov eax, ebp
mov dword [esp], ebx
call fcn.665b4280
jmp 0x6663b214
mov edx, dword [esp + 0x44]
mov eax, edi
call fcn.66582ba0
cmp dword [esp + 0x3c], 0
je 0x6663c832
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov ebx, dword [esp + 0xa0]
test ebx, ebx
jns 0x6663b312
cmp ebx, 0x80000000
je 0x6663cc9b
neg ebx
mov esi, dword [esp + 0x44]
xor edx, edx
mov eax, ebp
mov ecx, esi
call fcn.666057e0
mov dword [esp + 4], ebx
mov ecx, esi
mov edx, 0x5f
mov dword [esp], 3
mov eax, edi
call fcn.6659fdb0
mov edi, dword [esp + 0x50]
mov edx, ebx
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], ebx
mov eax, dword [edi + 4]
call fcn.66596fa0
jmp 0x66639979
cmp dword [esp + 0x3c], 0
je 0x6663b38c
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_busy_timeout
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x1e0]
cdq
jmp 0x6663989a
mov edx, 1
mov eax, edi
call fcn.665944f0
mov eax, dword [edi]
mov edx, dword [esp + 0xb0]
cmp byte [eax + 0x53], 0
jne 0x6663b3de
mov eax, dword [edi + 0x74]
mov dword [esp + 4], 0xffffffff
mov ecx, 0xffffffff
mov dword [esp], 1
call fcn.665a4a40
mov edx, dword [esp + 0xb0]
test edx, edx
je 0x6663b3f0
mov eax, edi
call fcn.665a1140
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x666396bd
mov edx, dword [esp + 0x5c]
mov eax, edi
call fcn.665a5e20
mov eax, dword [esp + 0x5c]
cmp byte [eax + 4], 0x2a
ja case.0x6663b41a.0
movzx eax, byte [eax + 4]
jmp dword [eax*4 + 0x6668357c]
mov eax, ebp
call fcn.6662cf00
test eax, eax
jne 0x666396bd
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + 5]
jmp 0x66639799
movzx eax, word [esi + 0x2e]
add ax, 0x2e
mov word [esp + 0x58], ax
je 0x66639e01
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], 0x61
mov dword [esp], esi
mov eax, dword [esp + 0x48]
call fcn.665b4280
movsx eax, word [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov edx, 0x22
mov dword [esp + 4], eax
mov eax, dword [edi + 0x6c]
lea eax, [eax + ecx + 2]
mov ecx, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, edi
call fcn.6659fdb0
jmp 0x66639e01
add dword [esp + 0x44], 1
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x60], eax
jge 0x66639d80
mov edx, 0xa1
mov eax, edi
call fcn.665a0820
jmp 0x666396bd
mov ebp, dword [esp + 0x4c]
test ecx, ecx
je 0x6663ac48
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x6663c491
lea eax, [ecx*4 + 8]
xor edx, edx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x38]
call fcn.6658bdd0
mov ecx, eax
test eax, eax
je 0x6663c3fb
mov dword [eax + 4], 0
mov edx, 1
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 0x10]
test esi, esi
je 0x6663b9ad
mov dword [esp + 0x68], ebx
movzx edi, byte [esp + 0x58]
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x4c], ecx
jmp 0x6663b540
mov ecx, edi
test cl, cl
je 0x6663b547
mov esi, dword [esi]
test esi, esi
je 0x6663b9a1
mov eax, dword [esi + 8]
cmp ebx, eax
jne 0x6663b530
test byte [eax + 0x24], 0x80
jne 0x6663b55b
mov ecx, dword [eax + 0x1c]
mov ebp, dword [esp + 0x4c]
add edx, 1
mov dword [ebp + edx*4], ecx
mov eax, dword [eax + 8]
test eax, eax
je 0x6663b536
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x5c], ebx
nop
mov ebx, dword [eax + 0x2c]
mov eax, dword [eax + 0x14]
add edx, 1
mov dword [ecx + edx*4], ebx
test eax, eax
jne 0x6663b570
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x4c], ecx
jmp 0x6663b536
test ebx, ebx
je 0x6663b59c
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
cdq
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.665a0b20
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
call fcn.665926e0
jmp 0x666396df
mov edi, dword [esp + 0x7c]
mov eax, dword [edi + 8]
mov edi, dword [edi]
mov dword [esp + 0x44], eax
mov dword [esp + 0x7c], edi
test eax, eax
je 0x6663b5de
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x6663b0da
mov edi, dword [esp + 0x7c]
test edi, edi
jne 0x6663b09d
jmp 0x666396bd
mov dword [esp + 8], eax
xor ecx, ecx
mov edx, 0x8f
mov eax, edi
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.665a0890
jmp 0x66639dd0
mov ebx, dword [esp + 0x44]
mov edx, dword [ebx + 8]
add ebx, 8
test edx, edx
jne 0x6663afb8
jmp 0x6663b03a
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
cmp dword [eax + 0x28], edi
jge 0x6663b64c
mov eax, dword [esp + 0x5c]
mov dword [eax + 0x28], edi
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0x78], eax
cmp eax, dword [ebp + 0x70]
jge 0x6663c3a2
mov edi, dword [esp + 0x78]
mov edx, dword [ebp + 0x68]
lea eax, [edi + 1]
mov dword [ebp + 0x6c], eax
mov dword [esp + 0x80], eax
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov dword [eax], 0x25
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x58], 1
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0x84]
lea ebx, [eax + 3]
add eax, 2
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], eax
test edi, edi
je 0x6663b8bc
lea esi, [esi]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.665aabb0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x64], eax
mov edx, eax
mov dword [esp + 0xa0], 0
test eax, eax
je 0x6663b718
lea eax, [esp + 0xa0]
mov ecx, edi
mov dword [esp + 4], eax
lea eax, [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
call fcn.665b8c40
mov eax, dword [esp + 0x5c]
mov esi, dword [edi + 0x14]
mov ebx, dword [eax + 0x38]
mov dword [esp + 0x60], ebx
sub ebx, 1
mov dword [esp + 0x4c], ebx
mov dword [eax + 0x38], ebx
test esi, esi
jle 0x6663b7a0
xor ebx, ebx
jmp 0x6663b785
mov eax, dword [eax + ebx*4]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov dword [esp], eax
mov eax, ebp
lea esi, [ecx + ebx]
xor ecx, ecx
add ebx, 1
mov dword [esp + 4], esi
call fcn.66613730
mov eax, dword [esp + 0x4c]
mov ecx, esi
mov edx, 0x32
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, ebp
call fcn.6659fdb0
mov esi, dword [edi + 0x14]
cmp esi, ebx
jle 0x6663b7a0
mov eax, dword [esp + 0xa0]
test eax, eax
jne 0x6663b740
mov eax, dword [edi + ebx*8 + 0x24]
jmp 0x6663b743
mov edx, dword [esp + 0x9c]
test edx, edx
je 0x6663b930
mov eax, dword [esp + 0x38]
call fcn.6658c2d0
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], esi
mov edx, 0x5c
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x14]
mov dword [esp], eax
mov eax, ebp
call fcn.665a0890
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov edx, 0x1e
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x58]
mov dword [esp], eax
mov eax, ebp
call fcn.665a0980
mov eax, dword [esp + 0x44]
mov ecx, 0
test byte [eax + 0x24], 0x80
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], 0
mov dword [esp], eax
jne 0x6663b918
mov edx, 0x82
mov eax, ebp
call fcn.6659fdb0
mov eax, dword [esp + 0x58]
sub eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [edi + 8]
mov dword [esp + 8], 0x666833e9
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.665a0550
mov ecx, dword [esp + 0x68]
mov edx, 0x51
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp], 4
call fcn.6659fdb0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x38]
add edx, dword [eax + 0x3c]
js 0x6663b96d
mov ecx, dword [esp + 0x60]
mov edx, dword [ebp + 0x6c]
shl ecx, 2
neg ecx
add ecx, dword [eax + 0x40]
mov dword [ecx], edx
mov edx, dword [esp + 0xa0]
test edx, edx
je 0x6663b8ac
mov eax, dword [esp + 0x38]
call fcn.665926e0
mov edi, dword [edi + 4]
add dword [esp + 0x58], 1
test edi, edi
jne 0x6663b6c8
mov eax, dword [esp + 0x80]
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, 5
mov dword [esp], eax
mov eax, ebp
call fcn.6659fdb0
mov edi, dword [esp + 0x78]
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
test edi, edi
lea edx, [eax - 1]
cmovns edx, edi
cmp byte [ecx + 0x53], 0
mov dword [esp + 0x78], edx
mov edx, 0x666b004c
jne 0x6663b90a
mov edi, dword [esp + 0x78]
mov edx, dword [ebp + 0x68]
lea ecx, [edi + edi*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
jmp 0x6663b5de
mov edx, 0x48
mov eax, ebp
call fcn.6659fdb0
jmp 0x6663b82f
mov eax, dword [esp + 0x64]
test eax, eax
je 0x6663b801
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
mov edx, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x6c]
add eax, 2
mov dword [esp], eax
mov eax, ebp
call fcn.6659fdb0
mov edx, dword [esp + 0x4c]
mov eax, ebp
call fcn.665a07c0
jmp 0x6663b801
mov ecx, dword [esp + 0x60]
mov edx, ebp
neg ecx
call fcn.6659a020
jmp 0x6663b898
cmp edi, 1
jne 0x6663b14d
jmp 0x6663b181
mov ecx, esi
mov esi, dword [esi + 0x2c]
mov dword [esp + 0x58], esi
add esi, 1
mov dword [ecx + 0x2c], esi
jmp 0x66639e55
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x74]
mov dword [ecx], edx
add ebx, 8
mov eax, dword [edi + 0x2c]
mov byte [edi + 0x13], 0
mov dword [edi + 0x1c], 0
cmp ebx, eax
cmovl ebx, eax
mov eax, ebp
mov dword [edi + 0x2c], ebx
mov dword [esp + 8], ecx
mov ecx, 2
mov dword [esp], edx
mov edx, 0x95
mov dword [esp + 0xc], 0xfffffff1
mov dword [esp + 4], 1
call fcn.665a0890
mov ebx, dword [ebp + 0x6c]
test ebx, ebx
jle 0x6663ba0d
mov edx, dword [ebp + 0x68]
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
movzx edx, byte [esp + 0x48]
mov word [eax - 0x12], dx
cmp ebx, dword [ebp + 0x70]
jge 0x6663c56a
mov edx, dword [ebp + 0x68]
lea eax, [ebx + 1]
mov dword [ebp + 0x6c], eax
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
mov dword [eax], 0x32
mov dword [eax + 4], 2
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x64]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + esi]
mov dword [esp + 4], str._in_database__s__n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.665bc610
mov dword [esp + 0xc], 0xfffffff9
xor ecx, ecx
mov edx, 0x74
mov dword [esp + 8], eax
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp], 3
call fcn.665a0890
mov dword [esp + 4], 3
mov ecx, 2
mov eax, ebp
mov dword [esp], 3
mov edx, 0x6f
call fcn.6659fdb0
mov eax, ebp
call fcn.665a0bf0
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
test ebx, ebx
lea edx, [eax - 1]
cmovs ebx, edx
cmp byte [ecx + 0x53], 0
mov edx, 0x666b004c
jne 0x6663badb
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x6663bb11
jmp 0x6663ac48
cmp byte [esp + 0x58], 0
je 0x6663bb25
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
je 0x6663ac48
mov eax, dword [esp + 0x50]
mov edi, dword [eax + 8]
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x6663baff
cmp dword [esp + 0x6c], edi
jne 0x6663baf8
mov dword [esp + 0x5c], 0
test byte [edi + 0x24], 0x80
jne 0x6663c311
mov esi, dword [edi + 0x38]
test esi, esi
jne 0x6663bb7b
lea eax, [esp + 0x9c]
mov dword [esp], 0
mov edx, edi
mov ecx, 0x61
mov dword [esp + 0x10], eax
lea eax, [esp + 0x98]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], 0
mov dword [esp + 4], 1
call fcn.665b4530
mov dword [esp], 7
xor ecx, ecx
mov edx, 0x45
mov eax, ebp
mov dword [esp + 4], 0
mov esi, 8
call fcn.6659fdb0
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x6663bbcb
lea esi, [esi]
mov dword [esp], esi
xor ecx, ecx
mov edx, 0x45
mov eax, ebp
mov dword [esp + 4], 0
add esi, 1
call fcn.6659fdb0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x6663bba8
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x98]
mov edx, 0x25
mov eax, ebp
mov dword [esp], 0
call fcn.6659fdb0
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0x7c], eax
cmp eax, dword [ebp + 0x70]
jge 0x6663c379
mov ebx, dword [esp + 0x7c]
mov edx, dword [ebp + 0x68]
lea eax, [ebx + 1]
mov dword [ebp + 0x6c], eax
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
mov dword [eax], 0x53
mov dword [eax + 4], 7
mov dword [eax + 8], 1
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
cmp byte [esp + 0x78], 0x71
je 0x6663bc77
mov dword [esp + 4], 3
movsx eax, word [edi + 0x2c]
mov edx, 0x5a
mov ecx, dword [esp + 0x98]
sub eax, 1
mov dword [esp], eax
mov eax, ebp
call fcn.6659fdb0
mov eax, dword [ebp + 0x6c]
test eax, eax
jle 0x6663bc77
mov ecx, dword [ebp + 0x68]
lea eax, [eax + eax*4]
mov ebx, pe_nt_image_headers32
lea eax, [ecx + eax*4]
mov word [eax - 0x12], bx
xor ebx, ebx
cmp word [edi + 0x2a], 0
jle 0x6663bdc2
lea esi, [esi]
movsx eax, word [edi + 0x28]
cmp eax, ebx
je 0x6663bdb3
lea eax, [ebx + ebx*4]
mov ecx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 4]
cmp byte [eax + ecx*4 + 0xc], 0
je 0x6663bdb3
mov dword [esp], ebx
mov ecx, dword [esp + 0x98]
mov edx, edi
mov eax, ebp
mov dword [esp + 4], 3
call fcn.66613730
mov edx, dword [ebp]
mov esi, dword [ebp + 0x6c]
mov eax, 0x666b004c
cmp byte [edx + 0x53], 0
jne 0x6663bce1
mov edx, dword [ebp + 0x68]
lea eax, [esi + esi*4 - 5]
lea eax, [edx + eax*4]
cmp byte [eax], 0x5a
jne 0x6663bcfc
test esi, esi
jle 0x6663bcfc
mov ecx, dword [ebp + 0x68]
lea eax, [esi + esi*4]
mov edx, pe_nt_image_headers32
lea eax, [ecx + eax*4]
mov word [eax - 0x12], dx
cmp esi, dword [ebp + 0x70]
jge 0x6663bf6c
mov edx, dword [ebp + 0x68]
lea eax, [esi + 1]
mov dword [ebp + 0x6c], eax
lea eax, [esi + esi*4]
lea eax, [edx + eax*4]
mov dword [eax], 0x33
mov dword [eax + 4], 3
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xc], eax
mov eax, dword [edi]
mov dword [esp + 4], str.NULL_value_in__s._s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.665bc610
mov dword [esp + 0xc], 0xfffffff9
xor ecx, ecx
mov edx, 0x74
mov dword [esp + 8], eax
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp], 3
call fcn.665a0890
mov eax, ebp
call fcn.665a0bf0
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
test esi, esi
lea edx, [eax - 1]
cmovs esi, edx
cmp byte [ecx + 0x53], 0
mov edx, 0x666b004c
jne 0x6663bdb0
mov edx, dword [ebp + 0x68]
lea ecx, [esi + esi*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
movsx eax, word [edi + 0x2a]
add ebx, 1
cmp eax, ebx
jg 0x6663bc88
mov edx, dword [edi + 0x18]
test edx, edx
je 0x6663bdd7
mov eax, dword [esp + 0x38]
test byte [eax + 0x21], 2
je 0x6663c34c
cmp byte [esp + 0x78], 0x71
mov ecx, dword [esp + 0x98]
jne 0x6663bf93
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], 0
mov edx, 5
mov eax, ebp
mov dword [esp], ebx
call fcn.6659fdb0
mov edx, dword [ebp + 0x6c]
mov eax, ebx
mov ebx, dword [ebp]
sub eax, 1
lea ecx, [edx - 1]
cmovs eax, ecx
cmp byte [ebx + 0x53], 0
mov ecx, 0x666b004c
jne 0x6663be29
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x68]
lea ecx, [eax + ecx*4]
cmp byte [esp + 0x78], 0x71
mov dword [ecx + 8], edx
je 0x6663baff
mov ecx, str.wrong__of_entries_in_index
mov edx, 2
mov eax, ebp
call fcn.665a0a80
mov esi, dword [edi + 8]
test esi, esi
je 0x6663baff
xor edi, edi
jmp 0x6663bf08
mov ecx, dword [ebp + 0x68]
lea edx, [ebx + ebx*4]
lea eax, [ebx + 1]
mov dword [ebp + 0x6c], eax
lea edx, [ecx + edx*4]
lea ecx, [edi + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], 0
mov dword [edx + 0xc], 3
mov dword [edx + 0x10], 0
mov dword [edx], 0x35
test eax, eax
jle 0x6663bea0
mov ecx, dword [ebp + 0x68]
lea eax, [eax + eax*4]
mov edx, 0x90
lea eax, [ecx + eax*4]
mov word [eax - 0x12], dx
mov ecx, dword [esi]
mov edx, 4
mov eax, ebp
call fcn.665a0a80
mov dword [esp + 4], 3
mov ecx, 4
mov eax, ebp
mov dword [esp], 2
mov edx, 0x6f
call fcn.6659fdb0
mov eax, ebp
call fcn.665a0bf0
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
test ebx, ebx
lea edx, [eax - 1]
cmovs ebx, edx
cmp byte [ecx + 0x53], 0
mov edx, 0x666b004c
jne 0x6663bef7
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
mov esi, dword [esi + 0x14]
add edi, 1
test esi, esi
je 0x6663baff
cmp dword [esp + 0x5c], esi
je 0x6663befa
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], 0
mov edx, 0x5d
mov eax, ebp
mov dword [esp], 3
add ecx, edi
call fcn.6659fdb0
lea eax, [edi + 8]
mov ebx, dword [ebp + 0x6c]
mov dword [esp + 0x4c], eax
cmp ebx, dword [ebp + 0x70]
jl 0x6663be5a
mov dword [esp + 4], 3
mov ecx, eax
mov edx, 0x35
mov eax, ebp
mov dword [esp], 0
call fcn.6659fd40
mov ebx, eax
mov eax, dword [ebp + 0x6c]
jmp 0x6663be8a
mov dword [esp + 4], 0
mov ecx, 3
mov edx, 0x33
mov eax, ebp
mov dword [esp], 0
call fcn.6659fd40
mov esi, eax
jmp 0x6663bd36
mov esi, dword [edi + 8]
test esi, esi
je 0x6663bde9
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x60], 0
xor eax, eax
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x70], edi
mov dword [esp + 0x64], ebx
jmp 0x6663bfd9
mov ecx, dword [esp + 0x98]
mov eax, esi
mov esi, dword [esi + 0x14]
add dword [esp + 0x60], 1
test esi, esi
je 0x6663c308
mov edi, dword [esp + 0x64]
mov ebx, dword [edi + 0x38]
sub ebx, 1
mov dword [edi + 0x38], ebx
cmp dword [esp + 0x5c], esi
je 0x6663bfc9
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp + 0x10], edx
mov edx, esi
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.66607fd0
mov edi, dword [esp + 0x60]
mov edx, 0x53
mov dword [esp + 4], 0
mov dword [esp], 1
mov ecx, edi
mov dword [esp + 0x4c], eax
mov eax, ebp
add ecx, 8
call fcn.6659fdb0
movzx eax, word [esi + 0x34]
mov dword [esp], ebx
mov edx, 0x1e
mov ecx, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
add ecx, edi
mov edi, 0x666b004c
mov dword [esp + 4], eax
mov eax, ebp
call fcn.665a0980
mov ecx, str.row
mov edx, 3
mov ebx, eax
mov eax, ebp
call fcn.665a0a80
mov dword [esp + 4], 3
mov ecx, 7
mov eax, ebp
mov dword [esp], 3
mov edx, 0x6f
call fcn.6659fdb0
mov ecx, str._missing_from_index
mov edx, 4
mov eax, ebp
call fcn.665a0a80
mov dword [esp + 4], 3
mov ecx, 4
mov eax, ebp
mov dword [esp], 3
mov edx, 0x6f
call fcn.6659fdb0
mov ecx, dword [esi]
mov edx, 4
mov eax, ebp
call fcn.665a0a80
mov ecx, 4
mov edx, 0x6f
mov dword [esp + 4], 3
mov dword [esp], 3
mov dword [esp + 0x80], eax
mov eax, ebp
call fcn.6659fdb0
mov eax, ebp
call fcn.665a0bf0
test ebx, ebx
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x6c]
lea ecx, [eax - 1]
mov edx, eax
cmovs ebx, ecx
mov ecx, dword [ebp]
movzx ecx, byte [ecx + 0x53]
test cl, cl
jne 0x6663c135
mov edi, dword [ebp + 0x68]
lea ebx, [ebx + ebx*4]
lea edi, [edi + ebx*4]
mov dword [edi + 8], eax
cmp byte [esi + 0x36], 0
jne 0x6663c196
mov ebx, dword [esp + 0x68]
lea eax, [edx - 1]
test ebx, ebx
cmovns eax, ebx
mov ebx, eax
mov eax, 0x666b004c
test cl, cl
jne 0x6663c15e
mov eax, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x6663bfc0
mov eax, dword [esp + 0x64]
not ecx
mov edx, dword [eax + 8]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + 0x38]
add ebx, dword [eax + 0x3c]
js 0x6663c3d2
mov edx, dword [edx + 0x6c]
mov eax, dword [eax + 0x40]
mov dword [eax + ecx*4], edx
jmp 0x6663bfc0
mov ebx, dword [esp + 0x64]
mov edi, dword [ebx + 0x38]
mov dword [esp + 0x8c], edi
sub edi, 1
mov dword [ebx + 0x38], edi
xor ebx, ebx
cmp word [esi + 0x32], 0
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x84]
je 0x6663c213
lea esi, [esi]
mov eax, dword [esi + 4]
movsx eax, word [eax + ebx*2]
test ax, ax
js 0x6663c1e7
mov ecx, dword [esp + 0x70]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [ecx + 4]
cmp byte [eax + 0xc], 0
jne 0x6663c205
mov eax, dword [esp + 0x4c]
mov dword [esp], edi
mov edx, 0x32
mov dword [esp + 4], 0
lea ecx, [eax + ebx]
mov eax, ebp
call fcn.6659fdb0
movzx eax, word [esi + 0x32]
add ebx, 1
cmp eax, ebx
jg 0x6663c1c8
mov eax, dword [ebp + 0x6c]
mov ecx, dword [esp + 0x60]
mov ebx, eax
add ecx, dword [esp + 0x9c]
cmp eax, dword [ebp + 0x70]
jge 0x6663c4c7
mov edx, dword [ebp + 0x68]
lea eax, [eax + 1]
mov dword [ebp + 0x6c], eax
lea eax, [ebx + ebx*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], 5
mov edx, dword [esp + 0x84]
mov eax, ebp
call fcn.665a07c0
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
test ebx, ebx
lea edx, [eax - 1]
cmovs ebx, edx
cmp byte [ecx + 0x53], 0
mov edx, 0x666b004c
jne 0x6663c286
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
movzx eax, word [esi + 0x32]
mov edx, 0x27
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov eax, ebp
call fcn.665a0980
mov ecx, str.non_unique_entry_in_index
mov edx, 3
mov eax, ebp
call fcn.665a0a80
mov edx, dword [esp + 0x80]
mov eax, ebp
call fcn.665a07c0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x38]
add edx, dword [eax + 0x3c]
js 0x6663c3dc
mov ecx, dword [esp + 0x8c]
mov edx, dword [ebp + 0x6c]
shl ecx, 2
neg ecx
add ecx, dword [eax + 0x40]
mov eax, dword [ebp]
mov dword [ecx], edx
movzx ecx, byte [eax + 0x53]
jmp 0x6663c13e
mov edi, dword [esp + 0x70]
jmp 0x6663bde9
mov eax, dword [edi + 8]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x6663bb37
mov eax, dword [esp + 0x5c]
jmp 0x6663c337
mov eax, dword [eax + 0x14]
test eax, eax
je 0x6663c343
movzx edx, byte [eax + 0x38]
and edx, 3
cmp dl, 2
jne 0x6663c330
mov dword [esp + 0x5c], eax
jmp 0x6663bb37
xor ecx, ecx
mov esi, eax
call fcn.665a7910
cmp byte [esi + 0x53], 0
mov ebx, eax
je 0x6663c62b
test eax, eax
je 0x6663bdd7
mov eax, dword [esp + 0x38]
mov edx, ebx
call fcn.66597980
jmp 0x6663bdd7
mov dword [esp + 4], 0
mov ecx, 7
mov edx, 0x53
mov eax, ebp
mov dword [esp], 1
call fcn.6659fd40
mov dword [esp + 0x7c], eax
jmp 0x6663bc32
mov dword [esp], 0
xor ecx, ecx
mov edx, 0x25
mov eax, ebp
mov dword [esp + 4], 0
call fcn.6659fd40
mov dword [esp + 0x78], eax
add eax, 1
mov dword [esp + 0x80], eax
jmp 0x6663b698
call fcn.6659a020
jmp 0x6663bfc0
mov ecx, dword [esp + 0x8c]
mov edx, ebp
neg ecx
call fcn.6659a020
mov eax, dword [ebp]
mov edx, dword [ebp + 0x6c]
movzx ecx, byte [eax + 0x53]
jmp 0x6663c13e
mov edi, ebp
mov ecx, 0x66689248
mov edx, 7
mov eax, edi
call fcn.665992b0
test eax, eax
je 0x6663c437
mov edx, 1
sub edx, dword [esp + 0x94]
mov byte [eax + 0x29], 0xff
mov dword [eax + 8], edx
mov dword [eax + 0x38], 0x6668348e
mov byte [eax + 0x65], 0xff
mov dword [eax + 0x74], str.database_disk_image_is_malformed
mov eax, dword [edi + 0x6c]
mov ecx, dword [edi]
mov edx, 0x666b004c
sub eax, 2
cmp byte [ecx + 0x53], 0
jne 0x6663c44d
mov edx, dword [edi + 0x68]
mov dword [edx + 0xc], eax
jmp 0x666396bd
mov esi, 1
cmp dword [esp + 0x64], 0
mov ebx, 1
jne 0x6663c517
cmp esi, 1
jg 0x6663c47a
cmp dword [esp + 0x48], 0
jne 0x66639aab
xor edi, edi
jmp 0x66639ab2
mov dword [esp + 0xa0], 0x7fffffff
jmp 0x6663a7a4
lea eax, [ecx*4 + 4]
xor edx, edx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x38]
call fcn.6658bdd0
mov ecx, eax
test eax, eax
je 0x6663c3fb
xor edx, edx
jmp 0x6663b507
mov dword [esp + 0x58], 0
xor edi, edi
jmp 0x6663b11e
mov dword [esp + 4], 0
mov edx, 5
mov eax, ebp
mov dword [esp], 0
call fcn.6659fd40
mov ebx, eax
jmp 0x6663c256
mov dword [esp + 0xa0], 0
xor eax, eax
mov dword [esp + 0xa4], 0
jmp 0x6663a150
call fcn.66605410
jmp 0x6663aca0
mov edi, dword [ebp + 4]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x64]
mov ebx, 1
mov edi, dword [edi + 4]
movsx ecx, word [edi + ebx*2 - 2]
cmp ecx, dword [esp + 0x44]
je 0x6663c46a
add ebx, 1
cmp ebx, edx
jle 0x6663c523
jmp 0x6663c46a
mov eax, ebx
call fcn.66605410
jmp 0x6663b181
mov ebx, dword [esp + 0x48]
cmp ebp, 2
jne 0x6663aad6
mov eax, dword [esp + 0x38]
test byte [eax + 0x23], 0x10
je 0x6663aad6
jmp 0x6663aabe
mov dword [esp + 4], 0
mov ecx, 2
mov edx, 0x32
mov eax, ebp
mov dword [esp], 0
call fcn.6659fd40
mov ebx, eax
jmp 0x6663ba47
mov ebx, dword [esp + 0x38]
xor eax, eax
xor edx, edx
test byte [ebx + 0x20], 0x20
jne 0x6663cb0f
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.665a0b20
jmp 0x6663b5ac
add dword [esp + 0x58], 1
jmp 0x66639b4f
mov esi, 3
test cx, cx
jne 0x6663c5f2
xor ebx, ebx
cmp byte [ebp + 0xc], 0
mov edx, dword [ebp]
setne bl
mov dword [esp + 0x4c], ebx
test al, 4
je 0x6663cb48
xor ebx, ebx
xor edi, edi
jmp 0x66639ace
mov esi, 2
test cx, cx
je 0x6663c5c7
cmp dword [esp + 0x64], 0
jne 0x6663c510
xor ebx, ebx
cmp byte [ebp + 0xc], 0
mov edx, dword [ebp]
setne bl
mov dword [esp + 0x4c], ebx
test al, 4
je 0x6663cb23
xor edi, edi
mov ebx, 1
jmp 0x66639ace
mov eax, 0xfffe
jmp 0x66639d51
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 0x38]
lea esi, [eax - 1]
sub eax, 2
mov dword [esp + 0x4c], eax
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x98]
add eax, 1
mov dword [ecx + 0x34], eax
mov eax, dword [ebx]
lea edx, [eax - 1]
test edx, edx
jle 0x6663c697
imul eax, eax, 0x14
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
lea eax, [ebx + eax - 0x10]
mov ebx, edx
mov edi, eax
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x74]
sub edi, 0x14
mov dword [esp + 8], esi
mov edx, dword [edi + 0x14]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.66607b00
sub ebx, 1
jne 0x6663c668
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.666076e0
mov edx, esi
mov eax, ebp
call fcn.6659a120
mov eax, dword [edi]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x38]
mov dword [ecx + 0x34], 0
mov dword [esp + 8], eax
mov dword [esp + 4], str.CHECK_constraint_failed_in__s
mov dword [esp], esi
call fcn.665bc610
mov dword [esp + 0xc], 0xfffffff9
xor ecx, ecx
mov edx, 0x74
mov dword [esp + 8], eax
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp], 3
call fcn.665a0890
mov eax, ebp
call fcn.665a0bf0
mov edx, dword [esp + 0x4c]
mov eax, ebp
call fcn.6659a120
jmp 0x6663c369
mov edx, dword [sym.libsqlite3_0.dll_sqlite3_temp_directory]
test edx, edx
je 0x6663b5ac
mov eax, edi
call fcn.665a1140
jmp 0x6663b5ac
mov dword [esp + 4], str.not_a_writable_directory
mov dword [esp], ebp
call fcn.665b3dd0
jmp 0x66639979
mov eax, dword [ebx + 0x100]
cdq
jmp 0x6663989a
mov edi, dword [esp + 0x3c]
mov edx, str.file
mov eax, edi
call fcn.66581700
test eax, eax
je 0x6663cac9
mov edx, str.memory
mov eax, edi
call fcn.66581700
test eax, eax
mov eax, 2
cmovne eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
jmp 0x666399b3
mov eax, dword [esp + 0x38]
xor edx, edx
movzx eax, byte [eax + 0x52]
jmp 0x6663c5a3
mov eax, dword [esp + 0x38]
xor edx, edx
mov byte [eax + 0x56], 0
mov eax, ebx
call fcn.66596e20
jmp 0x66639979
mov eax, ebx
call fcn.66595b40
jmp 0x6663b5a0
mov edi, 1
jmp 0x6663b63c
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x6663b5a0
mov ecx, dword [esp + 0x38]
mov edx, ebx
mov eax, esi
xor ebx, 0x80000
not edx
not eax
and dword [ecx + 0x20], edx
and dword [ecx + 0x24], eax
or ebx, esi
jne 0x6663a53e
mov dword [ecx + 0x1f8], 0
mov dword [ecx + 0x1fc], 0
jmp 0x6663a53e
mov edx, dword [sym.libsqlite3_0.dll_sqlite3_data_directory]
test edx, edx
jne 0x6663c736
jmp 0x6663b5ac
add dword [ebp + 0x2c], 2
mov ecx, 0x66689280
mov edx, 9
call fcn.665992b0
mov edi, dword [esp + 0x44]
mov dword [eax + 0x7c], 0xfffff830
mov dword [eax + 4], edi
mov dword [eax + 0x18], edi
jmp 0x6663b5ac
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov eax, edi
call fcn.665a0b20
jmp 0x666396bd
cmp dword [ebx + 4], 0
jne 0x6663c8c6
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x14]
cmp edx, 2
jle 0x6663c8bf
mov eax, dword [esp + 0x38]
shl edx, 4
mov ebx, dword [eax + 0x10]
lea eax, [ebx + 0x24]
lea ebx, [ebx + edx + 4]
mov edx, dword [eax]
mov edx, dword [edx + 4]
mov edx, dword [edx]
cmp byte [edx + 0xc], 0
jne 0x6663c8b8
mov esi, dword [edx + 0xd8]
test esi, esi
je 0x6663c8b5
cmp byte [esi + 0x2b], 2
je 0x6663c8b8
mov byte [edx + 4], cl
add eax, 0x10
cmp ebx, eax
jne 0x6663c898
mov eax, dword [esp + 0x38]
mov byte [eax + 0x55], cl
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x6663ae58
mov edx, dword [eax + 0xd8]
test edx, edx
je 0x6663c8f0
cmp byte [edx + 0x2b], 2
je 0x6663ae58
mov byte [eax + 4], cl
jmp 0x6663ae58
mov edx, dword [edi + 0x24]
and eax, 0xffffffdf
jmp 0x6663a496
mov esi, 2
mov ecx, dword [esp + 0x38]
mov eax, esi
mov edx, esi
mov byte [ecx + 0x56], al
mov eax, ebx
lea ebx, [esi - 1]
call fcn.66596e20
test eax, eax
jne 0x66639979
jmp 0x6663a603
mov ecx, 0x666891b8
mov edx, 2
call fcn.665992b0
lea edx, [esp + 0xa0]
mov esi, eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x1c], ebx
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa0], 0
call fcn.66581af0
mov eax, dword [esp + 0xa0]
mov word [esi + 0x16], 1
mov dword [esi + 0x20], eax
jmp 0x66639979
mov dword [esp + 4], str.Safety_level_may_not_be_changed_inside_a_transaction
mov dword [esp], ebp
call fcn.665b3dd0
jmp 0x66639979
mov ebx, dword [esp + 0x38]
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x48], ebx
sub ebx, 1
mov dword [esp + 0x60], ebx
cmp dword [esp + 0x44], ebx
jle 0x66639d71
jmp 0x6663b4b2
movzx esi, word [ebx + 0x32]
mov eax, 3
jmp 0x6663a68f
mov eax, dword [esp + 0x44]
cmp eax, 0xffffffff
je 0x6663ca16
mov ebx, dword [esp + 0x38]
shl eax, 4
add eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov dword [esp], eax
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov eax, ebp
call fcn.6662d630
mov dword [esp + 0x6c], eax
jmp 0x6663abee
mov dword [esp], ebx
mov ecx, dword [esp + 0x44]
mov edx, 0xab
mov eax, edi
mov dword [esp + 4], 0
call fcn.6659fdb0
jmp 0x6663a167
mov eax, edi
call fcn.66582810
jmp 0x6663a048
xor eax, eax
jmp 0x6663c9d1
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.libsqlite3_0.dll_sqlite3_soft_heap_limit64
jmp 0x66639eb8
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + 8]
sub eax, 1
jmp 0x6663b5a0
mov dword [esp + 4], eax
mov dword [esp], 0x6667eaa2
call sym.libsqlite3_0.dll_sqlite3_mprintf
mov dword [sym.libsqlite3_0.dll_sqlite3_temp_directory], eax
jmp 0x66639979
mov eax, ebp
call fcn.665fbb50
jmp 0x66639955
mov eax, ebp
call fcn.6662cf00
test eax, eax
jne 0x6663b5ac
mov eax, dword [ebp]
movzx eax, byte [eax + 0x50]
mov edx, dword [eax*8 + str.3hf]
test edx, edx
jne 0x6663c736
jmp 0x6663b5ac
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x55]
jmp 0x6663ae5c
mov eax, dword [esp + 0x3c]
mov edx, str.restart
call fcn.66581700
test eax, eax
jne 0x6663cc78
mov dword [esp + 0x4c], 2
jmp 0x66639801
mov dword [esp + 0x4c], 1
jmp 0x666399b3
mov dword [esp + 4], eax
mov dword [esp], 0x6667eaa2
call sym.libsqlite3_0.dll_sqlite3_mprintf
mov dword [sym.libsqlite3_0.dll_sqlite3_data_directory], eax
jmp 0x66639979
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov edx, 1
call fcn.66591cd0
test al, al
setne al
movzx eax, al
mov ebp, eax
jmp 0x66639c2e
mov eax, dword [esp + 0x50]
xor edx, edx
mov eax, dword [eax + 4]
call fcn.665972d0
cdq
jmp 0x6663c5a3
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x58]
xor edi, edi
mov ebx, 1
mov dword [esp + 0x50], eax
mov eax, str.issisii
mov dword [esp + 0x48], 0x6667d542
jmp 0x66639b07
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x58]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x50], eax
mov eax, str.issisii
mov dword [esp + 0x48], 0x6667d542
jmp 0x66639b07
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xa0]
mov eax, dword [eax + 4]
call fcn.665972d0
jmp 0x6663a462
mov ebx, dword [esp + 0x5c]
mov eax, edi
mov edx, ebx
call fcn.665a5e20
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
and edx, dword [ebx + 8]
and eax, dword [ebx + 0xc]
or edx, eax
setne al
xor edx, edx
movzx eax, al
jmp 0x6663c5a3
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov edx, 2
mov dword [esp], eax
mov eax, ebp
call fcn.6662d630
test eax, eax
je 0x66639979
test byte [eax + 0x24], 0x80
je 0x66639979
mov ebx, dword [eax + 8]
jmp 0x6663cbee
movzx eax, byte [ebx + 0x38]
and eax, 3
cmp al, 2
je 0x6663a660
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x6663cbdc
jmp 0x66639979
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call sym.libsqlite3_0.dll_sqlite3_hard_heap_limit64
mov ecx, dword [esp + 0xa0]
mov esi, eax
mov eax, edx
mov edx, dword [esp + 0xa4]
cmp ebx, ecx
sbb ebx, edx
jge 0x6663a87f
cmp ecx, esi
mov ebx, edx
sbb ebx, eax
jl 0x6663cc37
or esi, eax
jne 0x6663a87f
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.libsqlite3_0.dll_sqlite3_hard_heap_limit64
jmp 0x6663a87f
mov edx, 0xffff8000
jmp 0x6663aec0
mov edx, 0xffff8000
jmp 0x6663a676
mov eax, dword [edx - 0x80000]
mov dword [esp + 0x58], 0xfff80000
mov edi, 0xffff8000
mov dword [esp + 0x48], eax
jmp 0x6663b14d
mov eax, dword [esp + 0x3c]
mov edx, str.truncate
call fcn.66581700
test eax, eax
mov eax, 3
cmovne eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
jmp 0x66639801
mov ebx, 0x7fffffff
jmp 0x6663b312
mov edx, 0xffff8000
jmp 0x6663ad67