Function at 0x66621e59
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, eax
push esi
push ebx
sub esp, 0x18c
mov ebp, dword [edi]
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x68]
mov esi, dword [edi + 0xa0]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
movzx eax, byte [ebp + 0x50]
mov byte [esp + 0x6b], al
test esi, esi
je 0x6661fca9
mov eax, edi
call fcn.66594330
mov ebx, dword [ebp + 0x160]
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
test ebx, ebx
je 0x6661fce5
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x168]
xor edx, edx
mov dword [esp + 0x4c], 0
mov eax, dword [eax + 0xb4]
div ecx
sub ecx, edx
mov dword [esp + 0x48], ecx
mov edi, dword [esp + 0x38]
cmp dword [edi + 0x28], 7
je 0x6661ffd0
lea eax, [ebp + 0x118]
mov dword [edi + 0x28], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x78], 0
mov dword [esp + 0x6c], eax
mov dword [ebp + 0x1b4], 0
mov eax, dword [ebp + 0x118]
test eax, eax
jne 0x6661fd90
mov eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
lea eax, [eax + eax*4]
mov byte [esp + 0x6a], 0
mov dword [esp + 0x90], 0
lea eax, [ecx + eax*4]
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], ebp
mov ebp, eax
lea esi, [esi]
nop
movzx edi, byte [ebp]
add dword [esp + 0x28], 1
adc dword [esp + 0x2c], 0
mov ebx, edi
cmp bl, 0xad
ja case.0x6661fd89.86
jmp dword [edi*4 + str.j_bf0bf]
mov eax, dword [esp + 0x44]
mov byte [esp + 0x6a], 0
xor ebx, ebx
mov esi, 9
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x38]
cmp byte [ebp + 0x53], 0
mov eax, dword [eax + 0x7c]
je 0x6661fef0
mov esi, 7
test eax, eax
je 0x666256f0
mov edi, dword [esp + 0x38]
mov edx, esi
mov eax, ebp
mov dword [edi + 0x28], esi
call fcn.66588250
mov eax, dword [edi + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0xc0]
mov dword [esp + 4], str.statement_aborts_at__d:___s___s
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp], esi
mov dword [esp + 8], eax
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, edi
call fcn.665fa5c0
cmp byte [esp + 0x6a], 0
mov dword [esp + 0x30], 1
jne 0x6661ffaf
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
jmp 0x6661fe69
mov ecx, dword [ebp + 0x160]
test ecx, ecx
je 0x6661fe79
mov eax, dword [ebp + 0x168]
xor edx, edx
add esi, eax
mov eax, dword [ebp + 0x164]
adc edi, edx
mov dword [esp], eax
call ecx
test eax, eax
jne 0x66620020
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
cmp eax, esi
mov eax, edx
sbb eax, edi
jae 0x6661fe40
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xa0]
add dword [eax + 0xb4], ebx
test ecx, ecx
je 0x6661fe92
call fcn.665940b0
mov eax, dword [esp + 0x30]
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
mov ecx, 4
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, ebp
sub eax, dword [esp + 0x44]
sar eax, 2
mov word [edx + 8], cx
imul eax, eax, 0xcccccccd
mov dword [edx], eax
sar eax, 0x1f
mov dword [edx + 4], eax
nop
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*4 - 0x14]
nop
add ebp, 0x14
jmp 0x6661fd70
test eax, eax
jne 0x6661fdda
mov eax, str.abort_due_to_ROLLBACK
cmp esi, 0x204
je 0x6661ff30
mov eax, str.another_row_available
cmp esi, 0x64
je 0x6661ff30
mov eax, esi
movzx edx, al
mov eax, str.unknown_error
cmp edx, 0x1c
jg 0x6661ff30
mov eax, dword [edx*4 + 0x66689700]
test eax, eax
jne 0x6661ff30
mov eax, str.unknown_error
nop
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0x6667eaa2
mov dword [esp], eax
call fcn.665bc5e0
mov edi, dword [esp + 0x38]
mov edx, esi
mov eax, ebp
mov dword [edi + 0x28], esi
call fcn.66588250
mov eax, dword [edi + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0xc0]
mov dword [esp + 4], str.statement_aborts_at__d:___s___s
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp], esi
mov dword [esp + 8], eax
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, edi
call fcn.665fa5c0
cmp esi, 0xc0a
jne 0x6661fe1a
mov dword [esp], ebp
call fcn.6658a200
cmp byte [esp + 0x6a], 0
mov dword [esp + 0x30], 1
je 0x6661fe2d
movzx edx, byte [esp + 0x6a]
mov eax, ebp
sub edx, 1
call fcn.66598620
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
jmp 0x6661fe69
mov eax, dword [esp + 0x44]
mov byte [esp + 0x6a], 0
xor ebx, ebx
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp], ebp
mov esi, 7
call fcn.6658a200
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0x6667f387
mov dword [esp], eax
call fcn.665bc5e0
jmp 0x6661fdbc
mov dword [esp + 0x48], 0xffffffff
mov esi, 9
mov dword [esp + 0x4c], 0xffffffff
mov edx, dword [esp + 0x50]
sub edx, dword [esp + 0x44]
sar edx, 2
mov eax, dword [esp + 0x38]
imul edi, edx, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x58], edi
jne 0x6661fdcd
jmp 0x6662297c
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ebp + 0xc]
movzx edx, word [esi + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, edx
mov word [esp + 0x58], dx
movzx ecx, word [ebx + 8]
or eax, ecx
mov word [esp + 0x70], cx
mov word [esp + 0x50], cx
movzx ecx, word [ebp + 2]
test al, 1
jne 0x66625a9a
and ecx, 0x47
cmp cl, 0x42
jle 0x6662725c
test al, 2
je 0x66628fd4
movzx eax, word [esp + 0x58]
and eax, 0x2e
cmp ax, 2
je 0x6662a693
movzx edx, word [esp + 0x70]
mov eax, edx
and eax, 0x2e
cmp ax, 2
je 0x6662a7a0
movzx eax, word [esi + 8]
and eax, edx
test al, 4
je 0x666272a6
mov eax, dword [ebx]
movzx ecx, word [ebp + 2]
mov edx, dword [esi]
movzx edi, byte [ebp]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x80], eax
mov eax, ecx
and eax, 0x20
cmp edx, dword [esp + 0x70]
mov word [esp + 0x60], ax
mov eax, dword [esp + 0x80]
sbb eax, dword [esp + 0x78]
jl 0x66625ace
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x70], edx
sbb eax, dword [esp + 0x80]
jge 0x666272d4
mov eax, 0xffffffff
movzx edx, byte [edi + 0x666886f8]
movzx edi, word [esp + 0x50]
cmp word [esp + 0x60], 0
mov word [ebx + 8], di
movzx edi, word [esp + 0x58]
mov word [esi + 8], di
je 0x6662724f
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x40]
and ecx, 8
lea ebx, [ebx + ebx*4]
lea ebx, [edi + ebx*8]
je 0x6662018e
xor ecx, ecx
cmp byte [ebp], 0x35
mov dword [esp + 0x90], eax
sete cl
cmp ecx, edx
je case.0x6661fd89.86
movzx ecx, word [ebx + 8]
mov dword [ebx], edx
sar edx, 0x1f
mov dword [ebx + 4], edx
and cx, 0x3e40
mov dword [esp + 0x90], eax
or ecx, 4
mov word [ebx + 8], cx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
movzx esi, word [edi + 8]
mov ebx, esi
and bx, 0x2c
jne 0x666260bf
test si, 0x12
jne 0x666260b6
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x60], eax
movzx eax, word [eax + 8]
mov ebx, eax
and bx, 0x2c
jne 0x6662aed9
test al, 0x12
jne 0x66628788
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x40]
movzx esi, word [edi + 8]
lea edx, [edx + edx*4]
lea ebx, [ebx + edx*8]
or eax, esi
mov dword [esp + 0x70], ebx
test al, 1
jne 0x6662715a
test esi, 8
jne 0x666287a9
test si, 0x24
jne 0x66629253
test si, 0x12
jne 0x66629821
fldz
mov eax, dword [esp + 0x60]
movzx eax, word [eax + 8]
test al, 8
jne 0x6662879e
test al, 0x24
jne 0x66628ff8
test al, 0x12
jne 0x6662996d
fldz
movzx eax, byte [ebp]
cmp al, 0x6c
je 0x66629408
ja 0x6662713b
cmp al, 0x6a
je 0x666293b8
cmp al, 0x6b
jne 0x66629347
fsubrp st(1)
fstp qword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ff00000
je 0x66628dff
mov ebx, dword [esp + 0x70]
fld qword [esp + 0x50]
movzx eax, word [ebx + 8]
fstp qword [ebx]
mov word [esp + 0x50], ax
and ax, 0x3e40
or eax, 8
mov word [ebx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
cmp bl, 0x27
mov edi, 0x7ffffffe
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + edx*4]
mov eax, dword [edx + 0x34]
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 0x10]
mov word [esp + 0xd8], ax
setbe al
neg eax
mov byte [esp + 0xda], al
mov eax, dword [ebp + 0xc]
mov ebx, dword [edx + 0x30]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd4], eax
mov eax, ebx
call fcn.66587740
mov ecx, dword [ebx + 0x2c]
xor edx, edx
mov eax, ecx
add eax, 0xffffffff
adc edx, 0xffffffff
xor esi, esi
cmp edi, eax
mov edi, esi
sbb edi, edx
jb 0x6662ab1e
xor eax, eax
mov edx, dword [ebx + 0x28]
movzx edi, word [ebx + 0x30]
mov dword [esp + 0x130], 0
mov word [esp + 0x120], ax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x138], eax
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x128], edx
sub eax, edx
cmovs eax, esi
cmp edi, eax
cmovle eax, edi
cmp ecx, eax
ja 0x66626690
mov dword [esp + 0x124], ecx
mov eax, 0x1010
mov word [esp + 0x120], ax
mov eax, ecx
mov dword [esp], 0
lea ebx, [esp + 0xd0]
mov ecx, ebx
call fcn.665b0490
mov ebx, eax
test word [esp + 0x120], 0x2400
jne 0x666203d1
mov edi, dword [esp + 0x130]
test edi, edi
je 0x666203df
lea esi, [esp + 0x118]
mov eax, esi
call fcn.66592910
lea eax, [ebx + 1]
neg ebx
test byte [ebp], 1
mov dword [esp + 0x30], 0
cmove eax, ebx
test eax, eax
jle case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ebx + 8]
or ax, word [edx + 8]
mov dword [esp + 0x58], ecx
test al, 1
jne 0x66625a7c
mov eax, edx
call fcn.6658cc70
mov dword [esp + 0x50], eax
mov eax, ebx
mov dword [esp + 0x54], edx
call fcn.6658cc70
mov ebx, edx
movzx edx, byte [ebp]
mov ecx, eax
cmp dl, 0x66
je 0x66628412
cmp dl, 0x67
je 0x66629236
mov edi, ebx
or edi, ecx
je 0x666204e3
test ebx, ebx
js 0x66629d4a
mov eax, 0x3f
cmp eax, ecx
mov eax, 0
sbb eax, ebx
jl 0x66629d19
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov eax, ecx
cmp dl, 0x68
je 0x6662a67a
shrd esi, edi, cl
xor edx, edx
shr edi, cl
test cl, 0x20
cmovne esi, edi
mov ecx, dword [esp + 0x54]
cmovne edi, edx
mov ebx, esi
mov esi, edi
test ecx, ecx
jns 0x666204db
mov ecx, 0x40
xor edi, edi
sub ecx, eax
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
mov ecx, ebx
cmovne edx, eax
cmovne eax, edi
mov edi, esi
or ecx, eax
or edi, edx
mov ebx, ecx
mov esi, edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [ecx], eax
movzx eax, word [ecx + 8]
mov dword [ecx + 4], edx
mov word [esp + 0x50], ax
and ax, 0x3e40
or eax, 4
mov word [ecx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
xor esi, esi
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + edx*4]
mov word [ecx + 2], si
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x40]
cmp byte [ecx + 4], 0
mov dword [ecx + 0x24], 0
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
jne 0x66625adf
mov eax, dword [ecx + 0x30]
and ebx, 1
mov dword [esp + 0x58], ecx
movzx edx, byte [eax + 3]
and edx, 2
cmp bl, 1
lea ebx, [esp + 0xd0]
mov byte [esp + 0x50], dl
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x34]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x118], edx
movzx edx, word [esp + 0x30]
mov dword [esp + 8], 0
mov word [esp + 0x120], dx
sbb edx, edx
mov dword [esp], 0
and edx, 2
mov dword [esp + 4], 0
sub edx, 1
mov dword [esp + 0x11c], esi
lea esi, [esp + 0x118]
mov byte [esp + 0x122], dl
mov edx, esi
mov byte [esp + 0x126], 0
call fcn.665e4f30
mov esi, eax
test eax, eax
jne 0x66622780
cmp byte [esp + 0x50], 0
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x58]
je 0x666205f4
cmp byte [esp + 0x126], 0
mov esi, 1
je 0x666293fb
cmp edi, 0x17
jle 0x666271dd
test edx, edx
js 0x66628cd6
jne 0x66620610
cmp edi, 0x19
je 0x66628cd6
mov dword [esp + 0xd0], 0
test esi, esi
je 0x66625b64
add ebp, 0x14
jmp 0x66625b64
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x66625f75
mov ecx, dword [edi + 0x34]
mov byte [esp + 0x122], 0
mov word [esp + 0x120], ax
mov dword [esp + 0x118], ecx
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x11c], edx
cmp bl, 0x1c
je 0x6662821b
lea ebx, [esp + 0xd0]
mov dword [esp + 8], 0
lea esi, [esp + 0x118]
mov eax, ecx
mov dword [esp + 0xc], ebx
mov edx, esi
mov dword [esp], 0
mov dword [esp + 4], 0
call fcn.665e4f30
mov dword [esp + 0x50], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x66621a37
mov edx, dword [esp + 0xd0]
mov eax, 1
mov byte [edi + 3], 0
mov dword [edi + 0x24], 0
cmp edx, 1
mov dword [edi + 0x28], edx
sbb al, 0
mov byte [edi + 2], al
movzx eax, byte [ebp]
cmp al, 0x1e
je 0x6662703c
mov esi, dword [esp + 0x50]
or esi, edx
jne 0x6661fed0
cmp al, 0x1b
jne case.0x6661fd89.86
mov eax, dword [ebp + 0x10]
mov word [edi + 0xc], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
mov edx, 2
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
call fcn.6659bba0
mov edx, 2
mov ebx, eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
call fcn.6659bba0
cmp byte [ebp], 0x2c
je 0x66626260
lea edx, [ebx + ebx*2 + 0x66688704]
movzx ecx, byte [edx + eax]
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
movzx eax, word [edx + 8]
and ax, 0x3e40
cmp ecx, 2
je 0x66627533
mov dword [edx], ecx
or eax, 4
sar ecx, 0x1f
mov dword [edx + 4], ecx
mov word [edx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
add dword [eax + 0xac], 1
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x30]
cmp byte [eax], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], ecx
je 0x66626e62
mov eax, dword [esp + 0x58]
call fcn.665b1280
mov esi, eax
test eax, eax
je 0x66625f44
cmp eax, 0x10
je 0x66627870
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov byte [eax + 3], 0
mov dword [eax + 0x24], 0
movzx eax, byte [ebp + 0x53]
jmp 0x6662278c
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x118], 0
cmp bl, 0x84
jne 0x66620825
mov dword [edi + 0x28], 0xffffffff
cmp byte [eax], 0
je case.0x6661fd89.86
lea esi, [esp + 0x118]
mov edx, esi
call fcn.665b2fa0
mov edx, dword [esp + 0x118]
mov byte [edi + 3], 0
mov dword [esp + 0x30], eax
mov byte [edi + 2], dl
mov dword [edi + 0x24], 0
test eax, eax
jne 0x66621a37
mov eax, dword [ebp + 8]
test edx, edx
je case.0x6661fd89.86
test eax, eax
jle case.0x6661fd89.86
jmp 0x6661fed3
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x98]
mov byte [esp + 0x30], al
and eax, 3
cmp al, 1
je 0x6662a013
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
mov esi, dword [ebp + 8]
mov eax, edx
shl eax, 4
add eax, dword [ecx + 0x10]
movzx ecx, word [ebp + 2]
mov edi, dword [eax + 4]
mov dword [esp + 0x50], edi
cmp bl, 0x62
jne 0x666208d8
mov ebx, ecx
mov eax, dword [eax + 0xc]
and ebx, 8
or ebx, 4
movzx eax, byte [eax + 0x4c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x38]
cmp al, byte [ebx + 0x93]
jae 0x666208d8
mov byte [ebx + 0x93], al
lea esi, [esi]
and ecx, 0x10
jne 0x66626f0c
movzx eax, byte [ebp + 1]
cmp al, 0xf7
je 0x66626f00
xor edi, edi
xor ecx, ecx
cmp al, 0xfd
je 0x66626013
mov eax, dword [ebp + 4]
mov dword [esp], edx
mov dword [esp + 4], 0
mov edx, eax
mov eax, dword [esp + 0x38]
call fcn.665fa3c0
mov ebx, eax
test eax, eax
je 0x66624490
or byte [eax + 8], 4
mov ecx, dword [esp + 0x30]
mov edx, esi
mov byte [eax + 2], 1
mov dword [eax + 0x3c], esi
mov eax, dword [eax + 0x30]
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
call fcn.665b1570
mov dword [ebx + 0x34], edi
cmp byte [ebp + 1], 0xf7
mov dword [esp + 0x30], eax
setne byte [ebx + 4]
movzx eax, word [ebp + 2]
mov edx, dword [ebx + 0x30]
mov edi, dword [esp + 0x30]
and eax, 3
mov byte [edx + 3], al
test edi, edi
jne 0x66621a37
add ebp, 0x14
jmp 0x6661fd70
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x6662098f
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0x6667d542
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
test edi, edi
je 0x666209aa
test byte [edi + 8], 8
je 0x66626dfd
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
call fcn.665fa3c0
mov edi, eax
test eax, eax
je 0x66624490
or byte [eax + 8], 1
mov ebx, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 8], 0x41e
movzx eax, word [ebp + 2]
mov ecx, ebx
or eax, 5
movzx eax, ax
mov dword [esp + 4], eax
lea eax, [edi + 0x10]
mov dword [esp], eax
mov eax, dword [ebx]
call fcn.66604360
mov esi, eax
test eax, eax
je 0x66627de9
mov dword [esp + 0x50], ebp
movzx eax, byte [ebx + 0x53]
mov ebp, ebx
jmp 0x6662278c
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
movzx ecx, byte [ebx + 0x19]
lea esi, [edi + eax*8]
cmp dword [ebx], esi
jne 0x66625f04
movzx eax, word [esi + 8]
lea edx, [ebx + 0x1c]
and ax, 0x3e40
or eax, 1
mov word [esi + 8], ax
mov eax, dword [ebx + 4]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [eax + 0x10]
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x6662542e
jg 0x666281c0
mov eax, dword [ebp + 4]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0xdc]
lea edi, [eax + 0xdc]
test edx, edx
je 0x6662541b
mov dword [esp + 0x50], ebx
mov ebx, ecx
mov dword [esp + 0x58], esi
mov esi, edx
mov dword [esp + 0x60], ebp
mov ebp, edi
mov edi, dword [esp + 0x3c]
jmp 0x66620abe
cmp ebx, dword [esi]
je 0x66626dd7
lea ebp, [esi + 0x10]
mov esi, dword [ebp]
test esi, esi
je 0x6662540f
test ebx, ebx
jns 0x66620aa8
mov eax, dword [esi + 0xc]
test eax, eax
je 0x66620ad1
mov ecx, dword [esi + 8]
mov dword [esp], ecx
call eax
mov eax, dword [esi + 0x10]
mov edx, esi
mov dword [ebp], eax
mov eax, edi
call fcn.665926e0
jmp 0x66620ab3
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
mov ebx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x66625b71
mov edx, ebx
mov eax, edi
call fcn.66592750
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x6662a8da
movzx eax, word [edi + 8]
test al, 2
je 0x66620b33
movzx edx, byte [esp + 0x6b]
cmp byte [edi + 0xa], dl
je 0x66620b33
mov eax, edi
call fcn.665a3300
movzx eax, word [edi + 8]
test al, 0x12
je case.0x6661fd89.86
mov edx, dword [edi + 0xc]
test ah, 0x40
je 0x66620b45
add edx, dword [edi]
mov eax, dword [edi + 0x20]
cmp dword [eax + 0x70], edx
jge case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
mov esi, 0x12
mov dword [esp + 4], str.string_or_blob_too_big
mov ebp, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
sar eax, 2
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 0x5a]
test al, 0x41
je 0x66620bf4
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x95], 0
jne 0x66620bf4
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x666298c0
test al, 0x40
jne 0x66629e8d
mov edi, dword [esp + 0x3c]
cmp dword [edi + 0xc0], 1
jg 0x66629da0
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xd4]
mov dword [esp], 1
mov dword [esp + 4], eax
call dword [ebx + 0xd0]
mov eax, dword [ebp + 4]
cmp eax, dword [0x6667cefc]
jl 0x6662631c
cmp byte [ebp], 0xad
je case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x6c]
cmp edx, 1
jle 0x66620c3c
mov eax, dword [esp + 0x38]
lea edx, [edx + edx*4]
mov ecx, dword [eax + 0x68]
lea eax, [ecx + 0x14]
lea edx, [ecx + edx*4]
cmp byte [eax], 0x11
jne 0x66620c35
mov dword [eax + 4], 0
add eax, 0x14
cmp edx, eax
jne 0x66620c29
mov eax, 1
jmp 0x6662631f
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call dword [ebp + 0x10]
mov dword [ebx + 0x24], 0
mov esi, eax
test eax, eax
je 0x66620fab
cmp esi, 0x65
jne 0x66622780
mov byte [ebx + 2], 1
mov dword [esp + 0x30], 0
jmp 0x66620fd5
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov eax, dword [edi + 0x30]
cmp byte [eax], 0
jne 0x666269ff
cmp byte [edi + 2], 0
jne 0x66625e04
mov esi, dword [edi + 0x30]
mov eax, esi
call fcn.66587740
xor eax, eax
mov ecx, dword [esi + 0x2c]
movzx edx, word [esi + 0x30]
mov word [esp + 0xd8], ax
mov eax, dword [esp + 0x3c]
mov ebx, dword [esi + 0x28]
mov dword [esp + 0x30], edx
mov edx, 0
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 0x74]
mov dword [esp + 0xe8], 0
mov eax, dword [eax + 0x3c]
mov dword [esp + 0xe0], ebx
sub eax, ebx
cmovs eax, edx
mov edx, dword [esp + 0x30]
cmp edx, eax
cmovle eax, edx
cmp ecx, eax
ja 0x6662857b
mov eax, 0x1010
mov dword [esp + 0xdc], ecx
mov word [esp + 0xd8], ax
movzx eax, byte [ebx]
mov dword [esp + 0xc4], eax
cmp eax, 0x7f
ja 0x66629127
cmp eax, 2
jbe 0x66627edb
cmp eax, dword [esp + 0xdc]
ja 0x66627edb
mov edx, dword [esp + 0xe0]
lea eax, [edx + eax - 1]
movzx edx, byte [eax]
mov dword [esp + 0xc8], edx
cmp edx, 0x7f
ja 0x66629c88
lea eax, [edx - 1]
cmp eax, 8
ja 0x66627edb
cmp edx, 7
je 0x66627edb
movzx ecx, byte [edx + 0x66690040]
mov ebx, dword [esp + 0xc4]
mov eax, dword [esp + 0xdc]
add ebx, ecx
cmp eax, ebx
jb 0x66627edb
lea esi, [esp + 0x118]
sub eax, ecx
add eax, dword [esp + 0xe0]
mov ecx, esi
call fcn.66582c00
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
test word [esp + 0xd8], 0x2400
jne 0x66620de4
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x66620df2
lea ebx, [esp + 0xd0]
mov eax, ebx
call fcn.66592910
cmp byte [ebp], 0x88
jne 0x66627f55
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x4c], ebx
mov ebx, 0x100
mov word [eax + 2], bx
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x48], ecx
mov dword [eax + 0x20], edx
mov dword [eax + 0x2c], edi
jmp case.0x6661fd89.86
movzx eax, word [ebp + 2]
xor edx, edx
mov ecx, edx
lea edi, [eax*4 + 0x44]
mov esi, eax
mov eax, dword [esp + 0x3c]
mov edx, edi
call fcn.6658bdd0
mov ebx, eax
mov eax, ebp
sub eax, dword [esp + 0x44]
sar eax, 2
imul ecx, eax, 0xcccccccd
test ebx, ebx
je 0x6662a864
lea eax, [ebx + edi - 0x28]
mov edi, 1
mov dword [ebx + 8], 0
mov edx, dword [ebp + 0x10]
mov dword [ebx], eax
mov word [eax + 8], di
mov edi, dword [esp + 0x3c]
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x10], ecx
mov ecx, esi
mov dword [ebx + 0xc], eax
mov eax, 0xfffff09e
mov dword [ebx + 4], edx
mov byte [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov byte [ebx + 0x19], cl
mov dword [ebp + 0x10], ebx
mov word [ebp], ax
xor eax, eax
mov edx, dword [ebp + 0xc]
mov edi, dword [esp + 0x40]
movzx ecx, cl
lea edx, [edx + edx*4]
lea esi, [edi + edx*8]
cmp eax, esi
jne 0x66626d2d
add dword [esi + 0xc], 1
mov esi, dword [ebp + 4]
lea edx, [ebx + 0x1c]
mov eax, dword [ebx + 4]
test esi, esi
je 0x66625890
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [eax + 0x1c]
mov eax, dword [ebx + 0x14]
test eax, eax
je case.0x6661fd89.86
jg 0x6662602e
cmp byte [ebx + 0x18], 0
je 0x66620f1e
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x666284c0
mov byte [ebx + 0x18], 0
mov eax, dword [ebx]
test word [eax + 8], 0x2400
jne 0x66620f2f
mov esi, dword [eax + 0x18]
test esi, esi
je 0x66620f36
call fcn.66592910
mov eax, dword [ebx]
mov ecx, dword [esp + 0x30]
mov edx, 1
mov word [eax + 8], dx
mov dword [ebx + 0x14], 0
test ecx, ecx
je case.0x6661fd89.86
jmp 0x66621a37
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov edi, dword [ebx + 0x30]
cmp byte [edi + 0x38], 0
je 0x66625d3c
cmp byte [edi + 0x39], 0
je 0x66627c42
mov eax, dword [edi + 0x10]
call fcn.6659ca40
mov esi, eax
test eax, eax
jne 0x66627ddd
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x24], 0
test eax, eax
je 0x66620c7d
mov byte [ebx + 2], 0
mov ecx, dword [esp + 0x38]
movzx eax, word [ebp + 2]
mov dword [esp + 0x30], 0
add dword [ecx + eax*4 + 0xa4], 1
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*4 - 0x14]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
test eax, eax
jne 0x66628691
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x3c]
jmp 0x66621025
mov ecx, dword [ebx + 0x160]
test ecx, ecx
je 0x66625700
mov eax, dword [ebx + 0x168]
xor edx, edx
add esi, eax
mov eax, dword [ebx + 0x164]
adc edi, edx
mov dword [esp], eax
call ecx
test eax, eax
jne 0x66625710
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
cmp eax, esi
mov eax, edx
sbb eax, edi
jae 0x66620ff8
mov dword [esp + 0x48], esi
add ebp, 0x14
mov dword [esp + 0x4c], edi
jmp 0x6661fd70
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea ebx, [eax + edx*8]
test word [ebx + 8], 0x2400
jne 0x6662660d
mov edi, 4
mov word [ebx + 8], di
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x66628370
mov dword [esp], esi
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
cmp byte [esp + 0x6b], 1
mov dword [ebp + 4], eax
je 0x66621102
mov dword [esp], 1
mov ecx, 0xffffffff
mov edx, esi
mov eax, ebx
mov dword [esp + 4], 0
call fcn.665a4a40
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66620b51
movzx eax, word [ebx + 8]
test al, 2
je 0x666210da
movzx edx, byte [esp + 0x6b]
cmp byte [ebx + 0xa], dl
je 0x666210da
mov eax, ebx
call fcn.665a3300
test eax, eax
jne 0x66624490
movzx eax, word [ebx + 8]
or ah, 8
mov dword [ebx + 0x18], 0
mov word [ebx + 8], ax
cmp byte [ebp + 1], 0xf9
je 0x666285f4
mov byte [ebp + 1], 0xf9
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp + 4], eax
mov esi, dword [esp + 0x3c]
cmp dword [esi + 0x70], eax
jl 0x66620b51
mov byte [ebp], 0x47
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x66626e9f
mov esi, 4
mov word [eax + 8], si
mov edx, dword [ebp + 0x10]
mov ebx, 0xa02
mov word [eax + 8], bx
mov dword [eax + 0x10], edx
mov edx, dword [ebp + 4]
mov dword [eax + 0xc], edx
movzx edx, byte [esp + 0x6b]
mov byte [eax + 0xa], dl
mov edx, dword [ebp + 0xc]
test edx, edx
jle case.0x6661fd89.86
mov edi, dword [esp + 0x40]
lea ecx, [edx + edx*4]
movzx edx, word [ebp + 2]
xor edx, dword [edi + ecx*8]
or edx, dword [edi + ecx*8 + 4]
jne case.0x6661fd89.86
mov ecx, 0xa10
mov word [eax + 8], cx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x6661fd89.86
mov eax, ebp
sub eax, dword [esp + 0x44]
sar eax, 2
imul ebx, eax, 0xcccccccd
mov eax, dword [ebp + 4]
test eax, eax
jne 0x6662a110
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x6662a0bd
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x3c]
sub dword [edi + 0xd0], 1
mov dword [edi + 0xc8], edx
mov edx, dword [edi + 0x2c]
add dword [ecx + 0x6c], edx
mov dword [ecx + 0x68], edx
call fcn.665fa4e0
cmp dword [ebp + 8], 4
je 0x66627090
mov edi, dword [edi + 0x68]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [edi + 0x58]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
lea ebp, [edi + eax*4]
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov edi, dword [esp + 0x44]
mov eax, dword [edx]
lea eax, [eax + eax*4]
mov eax, dword [edi + eax*4 + 8]
lea eax, [eax + eax*4]
lea ebp, [edi + eax*4 - 0x14]
mov eax, pe_nt_image_headers32
mov word [edx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edx, dword [eax]
lea edx, [edx + edx*4]
lea ebp, [ebx + edx*4]
mov edx, pe_nt_image_headers32
mov word [eax + 8], dx
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 0x53]
test al, al
jne 0x66624490
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x6662a222
mov edx, dword [ebx]
test edx, edx
je 0x6662a222
mov ecx, dword [edx + 0x34]
test ecx, ecx
je case.0x6661fd89.86
mov eax, dword [esp + 0x3c]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x40]
movzx eax, byte [eax + 0x58]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x5c]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x30], esi
lea edx, [edx + eax*8]
mov eax, esi
lea esi, [esi + edi*4]
test edi, edi
jle 0x666212dc
lea esi, [esi]
mov dword [eax], edx
add eax, 4
add edx, 0x28
cmp esi, eax
jne 0x666212d0
movzx eax, word [ebp + 2]
mov esi, dword [esp + 0x3c]
mov byte [esi + 0x58], al
mov eax, dword [esp + 0x30]
lea esi, [esp + 0x118]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x50]
mov byte [ecx + 0x58], al
mov edx, dword [ebx + 8]
test edx, edx
je 0x66621353
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x66621333
mov edx, eax
mov eax, esi
call fcn.665926e0
mov edx, dword [ebx + 8]
mov eax, esi
call fcn.66591c60
mov esi, dword [esp + 0x38]
mov dword [esi + 0x7c], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [ebx + 8], 0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x66627ff8
mov eax, dword [ebp + 4]
test eax, eax
je 0x6662137e
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x3c]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], edx
mov eax, dword [esp + 0x38]
add dword [eax + 0x2c], 1
jmp case.0x6661fd89.86
mov ebx, dword [esp + 0x38]
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 0x58]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8]
test word [ebx + 8], 0x2400
jne 0x66626270
mov edx, 4
mov word [ebx + 8], dx
mov esi, dword [ebp + 0xc]
sub esi, eax
cmp dword [ebp + 4], 1
mov dword [ebx + 0xc], 0
sbb edi, edi
and di, 0xff00
add di, 0x101
mov word [ebx + 8], di
test esi, esi
jg 0x666213f4
jmp case.0x6661fd89.86
mov word [ebx + 8], di
mov dword [ebx + 0xc], 0
sub esi, 1
je case.0x6661fd89.86
add ebx, 0x28
test word [ebx + 8], 0x2400
je 0x666213e0
mov eax, ebx
call fcn.66592820
jmp 0x666213e0
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax + 3], 0
je case.0x6661fd89.86
call fcn.665e6bc0
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov dword [esp + 0x118], 0
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x118]
mov ebx, dword [esp + 0x3c]
mov edx, dword [ebp + 4]
test eax, eax
mov eax, 0
cmove ecx, eax
mov eax, dword [ebp + 8]
shl eax, 4
add eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
call fcn.665e4470
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x666214a0
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x118]
add dword [ebx + 0x2c], edx
test eax, eax
jle 0x666214a0
mov edi, dword [esp + 0x40]
lea ecx, [eax + eax*4]
mov eax, edx
cdq
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
lea esi, [esi]
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x66621a37
add ebp, 0x14
jmp 0x6661fd70
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x58], eax
test word [eax + 8], 0x2400
jne 0x6662617f
mov eax, dword [esp + 0x58]
mov esi, 4
mov word [eax + 8], si
mov eax, dword [esp + 0x58]
mov ebx, 1
mov word [eax + 8], bx
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 0xc4]
mov dword [esp + 0x30], eax
add eax, 1
cmp dword [ebx + 0xb8], eax
jg 0x6662a8a8
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x78], ecx
shl ecx, 4
mov eax, dword [eax + 0x10]
mov dword [esp + 0x70], ecx
mov edi, dword [eax + ecx + 4]
cmp byte [edi + 9], 0
je 0x66621542
add dword [edi + 0xc], 1
cmp byte [edi + 0xa], 0
jne 0x66621542
mov eax, edi
call fcn.6658e4e0
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x50]
mov dword [esp + 0xc8], 0
mov dword [esp + 0x60], eax
cmp esi, dword [eax + 0x30]
ja 0x66626d64
mov esi, dword [esp + 0x50]
mov dword [esp], 0
lea ecx, [esp + 0xc8]
mov eax, dword [esp + 0x60]
mov edx, esi
call fcn.665829b0
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66626d98
xor ecx, ecx
mov edx, esi
mov eax, edi
call fcn.665e4470
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66628e9d
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x11], 0
je 0x66628eb9
lea ebx, [esp + 0xd0]
mov edx, 4
mov eax, edi
mov ecx, ebx
call fcn.66597040
mov edx, dword [esp + 0xd0]
cmp dword [esp + 0x50], edx
je 0x6662a047
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x666215ef
mov eax, dword [eax + 0x48]
call fcn.6658dc20
mov edx, dword [esp + 0xd0]
mov dword [esp], 0
mov eax, dword [esp + 0x60]
lea esi, [esp + 0x118]
mov ecx, esi
call fcn.665829b0
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66626d98
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x60]
mov ecx, 1
mov dword [esp + 8], 0
mov dword [esp], 0
mov edx, dword [esp + 0x118]
mov dword [esp + 4], ebx
call fcn.665e09f0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x118]
test eax, eax
je 0x66621657
mov eax, dword [eax + 0x48]
call fcn.6658dc20
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x66626d98
mov dword [esp], 0
mov edx, dword [esp + 0xd0]
mov ecx, esi
mov dword [esp + 0x118], 0
mov eax, dword [esp + 0x60]
call fcn.665829b0
mov edx, dword [esp + 0x118]
mov dword [esp + 0x30], eax
test eax, eax
je 0x6662ae1c
test edx, edx
je 0x66626d98
mov eax, dword [edx + 0x48]
call fcn.6658dc20
cmp dword [esp + 0x30], 0
jne 0x66626d98
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x30], eax
mov ecx, eax
mov dword [esp + 0x50], eax
sar eax, 0x1f
mov dword [esp + 0x54], eax
sub ecx, 1
mov eax, dword [0x6667cdf0]
mov ebx, dword [esp + 0x60]
xor edx, edx
mov dword [esp + 0xd0], ecx
xor esi, esi
div dword [ebx + 0x24]
add eax, 1
mov dword [esp + 0x80], eax
jmp 0x66621700
sub ecx, 1
mov esi, 1
cmp ecx, dword [esp + 0x80]
je 0x666216f8
xor eax, eax
cmp ecx, 1
jbe 0x66621745
mov ebx, dword [esp + 0x60]
mov eax, 0xcccccccd
mov ebx, dword [ebx + 0x28]
mul ebx
mov dword [esp + 0x88], ebx
lea eax, [ecx - 2]
shr edx, 2
lea ebx, [edx + 1]
xor edx, edx
div ebx
imul ebx, eax
lea eax, [ebx + 2]
add ebx, 3
cmp dword [esp + 0x80], eax
cmove eax, ebx
cmp ecx, eax
je 0x666216f8
mov eax, esi
test al, al
je 0x66621756
mov dword [esp + 0xd0], ecx
mov edx, 4
mov eax, edi
call fcn.665df880
mov esi, eax
cmp byte [edi + 9], 0
jne 0x6662ad8e
mov ebx, dword [esp + 0x58]
mov eax, 4
mov edx, dword [esp + 0x54]
mov word [ebx + 8], ax
mov eax, dword [esp + 0x50]
mov dword [ebx + 4], edx
mov dword [ebx], eax
test esi, esi
jne 0x66622780
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x6661fd89.86
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x70]
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + edi + 0xc]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x666217d1
lea esi, [esi]
mov edx, dword [eax + 8]
cmp esi, dword [edx + 0x1c]
jne 0x666217cb
mov dword [edx + 0x1c], ecx
mov eax, dword [eax]
test eax, eax
jne 0x666217c0
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x30]
test eax, eax
je 0x666217f1
lea esi, [esi]
mov edx, dword [eax + 8]
cmp ebx, dword [edx + 0x2c]
jne 0x666217eb
mov dword [edx + 0x2c], ecx
mov eax, dword [eax]
test eax, eax
jne 0x666217e0
movzx eax, byte [esp + 0x78]
mov dword [esp + 0x30], 0
add eax, 1
mov byte [esp + 0x6a], al
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov ebx, dword [ebp + 4]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x10]
lea esi, [eax + 0x7c]
mov eax, ebx
shl eax, 4
add eax, dword [ecx + 0x10]
test edx, edx
je 0x666266f0
mov ecx, dword [eax + 4]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x11c], esi
mov ecx, dword [ecx + 4]
mov dword [esp + 0x118], edi
mov dword [esp + 0x128], 0
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.sqlite_master
mov eax, dword [eax]
mov dword [esp + 4], str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 0x130], ecx
call fcn.665bc610
mov ebx, eax
test eax, eax
je 0x6662ab0a
lea esi, [esp + 0x118]
mov byte [edi + 0xa9], 1
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 8], fcn.666456d0
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x124], 0
mov dword [esp + 0x12c], 0
call sym.libsqlite3_0.dll_sqlite3_exec
mov esi, eax
test eax, eax
jne 0x666272e2
mov esi, dword [esp + 0x124]
test esi, esi
jne 0x666272e2
mov edi, dword [esp + 0x12c]
test edi, edi
je 0x6662914e
mov edx, ebx
mov ebx, dword [esp + 0x3c]
mov eax, ebx
call fcn.665926e0
mov byte [ebx + 0xa9], 0
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov edi, dword [esp + 0x3c]
add byte [edi + 0x5c], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [ebp + 0x10]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym.libsqlite3_0.dll_sqlite3_exec
sub byte [edi + 0x5c], 1
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea edi, [eax + edx*8]
test word [edi + 8], 0x2400
jne 0x66626343
mov eax, 4
mov word [edi + 8], ax
mov dword [esp + 0x118], 0
mov esi, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
shl eax, 4
add eax, dword [esi + 0x10]
mov ebx, dword [eax + 4]
cmp byte [ebx + 9], 0
je 0x666219c2
add dword [ebx + 0xc], 1
cmp byte [ebx + 0xa], 0
jne 0x666219c2
mov eax, ebx
mov dword [esp + 0x30], ecx
call fcn.6658e4e0
mov ecx, dword [esp + 0x30]
lea esi, [esp + 0x118]
mov eax, ebx
mov edx, esi
call fcn.665e47c0
cmp byte [ebx + 9], 0
mov dword [esp + 0x30], eax
je 0x666219e6
sub dword [ebx + 0xc], 1
je 0x6662856f
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x66621a37
mov eax, dword [esp + 0x118]
mov dword [edi + 4], 0
mov dword [edi], eax
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax], 1
mov edx, dword [eax + 0x30]
je 0x66626682
mov ebx, dword [edx + 0x40]
mov eax, dword [edx + 8]
xor ecx, ecx
mov edx, ebx
call fcn.665e4470
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
movzx eax, byte [ebp + 0x53]
mov esi, dword [esp + 0x30]
jmp 0x6662278c
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x66626559
mov ecx, 4
mov word [eax + 8], cx
mov edx, 8
mov word [eax + 8], dx
mov edx, dword [ebp + 0x10]
fld qword [edx]
fstp qword [eax]
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x66626481
mov edi, dword [esp + 0x38]
mov ebx, 4
mov word [eax + 8], bx
mov ebx, dword [ebp + 4]
mov ecx, dword [edi + 0xc8]
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 8]
lea edx, [edx + edx*4]
lea edx, [esi + edx*4]
add ebx, dword [edx + 4]
mov edx, dword [ecx + 0x10]
lea ebx, [ebx + ebx*4]
lea edx, [edx + ebx*8]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
test byte [edx + 9], 8
jne case.0x6661fd89.86
movzx edx, word [eax + 8]
and dh, 0xe3
or dh, 0x10
mov word [eax + 8], dx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
test byte [ebx + 8], 0x10
jne 0x66621b34
mov eax, ebx
call fcn.665953e0
test eax, eax
jne 0x66624490
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
call fcn.6658e770
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x78], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 4]
mov dword [esp + 0x70], edi
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x50], eax
mov eax, dword [edi]
lea esi, [eax + 1]
movzx eax, word [ebp + 2]
shl eax, 4
add eax, dword [ebx + 0x10]
mov ebx, dword [ecx + 4]
mov eax, dword [eax + 4]
mov edi, dword [eax + 4]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 4]
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], eax
test ebx, ebx
jne 0x66625d8d
mov dword [esp + 0x88], 1
xor ebx, ebx
cmp dword [ecx + 8], 1
sete bl
mov eax, dword [esp + 0x58]
cmp byte [eax + 9], 0
je 0x66621bde
add dword [eax + 0xc], 1
cmp byte [eax + 0xa], 0
jne 0x66621bde
call fcn.6658e4e0
mov eax, dword [esp + 0x3c]
mov edx, dword [edi + 0x30]
mov ecx, 0x100
mov dword [esp + 0xd0], edi
mov dword [esp + 0x114], eax
mov eax, dword [edi]
mov dword [esp + 0xe0], esi
lea esi, [esp + 0x118]
mov dword [esp + 0xd4], eax
xor eax, eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf8], 0
mov dword [esp + 0x100], 0x64
mov dword [esp + 0x104], 0x3b9aca00
mov dword [esp + 0x108], 0
mov word [esp + 0x10c], cx
test edx, edx
je 0x66626c08
shr edx, 3
lea esi, [edx + 1]
xor edx, edx
mov eax, esi
call fcn.6658bcf0
test eax, eax
je 0x66628541
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x94], eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x94]
mov eax, dword [edi + 0x24]
mov dword [esp + 0xd8], edx
call fcn.6658c3b0
mov dword [esp + 0x110], eax
test eax, eax
je 0x66629f21
mov eax, dword [0x6667cdf0]
xor edx, edx
div dword [edi + 0x24]
add eax, 1
cmp eax, dword [esp + 0xdc]
ja 0x66621d31
mov edx, eax
and eax, 7
mov esi, 1
mov ecx, eax
shr edx, 3
add edx, dword [esp + 0xd8]
shl esi, cl
mov eax, esi
or byte [edx], al
test ebx, ebx
jne 0x666292ec
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x88]
add eax, 4
test edx, edx
jne 0x666286c4
mov edx, dword [edi + 0xc]
cmp byte [edi + 0x11], 0
mov esi, dword [edx + 0x38]
je 0x66629ca2
mov ebx, dword [esp + 0x60]
test ebx, ebx
jle 0x6662ab68
lea ebx, [eax + ebx*4]
xor edx, edx
mov ecx, dword [eax]
cmp edx, ecx
cmovb edx, ecx
add eax, 4
cmp ebx, eax
jne 0x66621d70
mov eax, dword [esi + 0x34]
bswap eax
cmp edx, eax
je 0x6662a270
lea ebx, [esp + 0xd0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], str.max_rootpage___d__disagrees_with_header___d_
mov dword [esp], ebx
call fcn.665bd2a0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x60]
and dword [eax + 0x20], 0xffdfffff
test ecx, ecx
jle 0x6662ab8f
movzx esi, byte [esp + 0x88]
mov dword [esp + 0x94], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x78]
xor esi, 1
mov eax, esi
mov esi, dword [esp + 0x60]
mov byte [esp + 0x78], al
jmp 0x66621e0a
mov dword [esp], 0xffffffff
lea ecx, [esp + 0xc8]
mov dword [esp + 4], 0x7fffffff
call fcn.665bd730
add ebx, 1
cmp esi, ebx
jle 0x66627ad6
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x66627ad6
mov edx, dword [ebp + ebx*4 + 4]
test edx, edx
je 0x66621dff
cmp byte [edi + 0x11], 0
lea eax, [esp + 0xd0]
setne cl
test byte [esp + 0x78], cl
je 0x66621de4
cmp edx, 1
je 0x66621de4
mov dword [esp], 0
mov ecx, 1
mov dword [esp + 0x60], eax
call fcn.665bd400
mov edx, dword [ebp + ebx*4 + 4]
mov eax, dword [esp + 0x60]
jmp 0x66621de4
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x10]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
mov eax, dword [eax + 0xc]
add eax, 0x28
call fcn.66593bd0
mov ebx, eax
test eax, eax
je case.0x6661fd89.86
mov eax, dword [eax + 0x18]
cmp dword [ebx + 0x14], eax
je 0x66628da4
cmp byte [ebx + 0xa], 0
jne 0x66621e9d
mov eax, dword [esp + 0x3c]
mov edx, ebx
call fcn.665982f0
mov eax, dword [esp + 0x3c]
or dword [eax + 0x18], 1
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x3c]
xor ecx, ecx
mov edx, dword [ebp + 0x10]
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 0x18
call fcn.66593bd0
mov ecx, eax
test eax, eax
je 0x66621efc
mov edx, dword [eax + 0xc]
mov eax, dword [edx + 8]
cmp ecx, eax
jne 0x66621eed
jmp 0x66627fed
mov edx, dword [eax + 0x14]
cmp ecx, edx
je 0x66627315
mov eax, edx
test eax, eax
jne 0x66621ee0
mov eax, dword [esp + 0x3c]
mov edx, ecx
call fcn.66597cf0
mov eax, dword [esp + 0x3c]
or dword [eax + 0x18], 1
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x3c]
xor ecx, ecx
mov edx, dword [ebp + 0x10]
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
call fcn.66593bd0
mov edx, eax
test eax, eax
je 0x66621f43
mov esi, dword [esi + 0x200]
test esi, esi
je 0x6662717c
mov eax, dword [esp + 0x3c]
call fcn.66597f90
mov eax, dword [esp + 0x3c]
or dword [eax + 0x18], 1
jmp case.0x6661fd89.86
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x3c]
call fcn.6662c7f0
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov eax, dword [ebx + 0x20]
mov edi, eax
or eax, 0x4000000
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0x10]
and edi, 0x4000000
mov ebx, dword [eax + 8]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
test byte [ecx + 8], 2
je 0x66621fc4
cmp byte [ecx + 0xa], 1
je 0x66621fc4
mov eax, ecx
mov edx, 1
mov dword [esp + 0x30], ecx
call fcn.665a3300
mov ecx, dword [esp + 0x30]
test eax, eax
mov esi, eax
jne 0x66622780
mov eax, dword [ebx]
mov edx, dword [ecx + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x4c]
mov dword [esp + 0x30], eax
test edi, edi
jne 0x66621fe6
mov eax, dword [esp + 0x3c]
and dword [eax + 0x20], 0xfbffffff
mov edx, dword [ebx + 8]
test edx, edx
je 0x66622026
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x66622006
mov edx, eax
mov eax, esi
call fcn.665926e0
mov edx, dword [ebx + 8]
mov eax, esi
call fcn.66591c60
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [ebx + 8], 0
mov eax, dword [esp + 0x38]
and byte [eax + 0x98], 0xfc
jmp 0x666214a0
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x40]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp + 0xc]
cmp byte [esi + 2], 0
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
je 0x66625bda
test word [ebx + 8], 0x2400
jne 0x66628563
mov edi, 1
mov word [ebx + 8], di
jmp case.0x6661fd89.86
mov dword [esp + 0x118], 0
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x6662a210
mov ebx, dword [edi]
test ebx, ebx
je 0x6662a210
lea esi, [esp + 0x118]
mov dword [esp], edi
mov dword [esp + 4], esi
call dword [ebx + 0x18]
mov edx, dword [edi + 8]
mov dword [esp + 0x30], eax
test edx, edx
je 0x666220ec
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x666220cc
mov edx, eax
mov eax, esi
call fcn.665926e0
mov edx, dword [edi + 8]
mov eax, esi
call fcn.66591c60
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x7c], eax
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [edi + 8], 0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x6662a25f
mov eax, dword [esp + 0x118]
mov edx, dword [ebp + 4]
xor ecx, ecx
mov dword [eax], edi
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 2
mov dword [esp], 0xffffffff
call fcn.665fa3c0
test eax, eax
je 0x66626a25
mov edx, dword [esp + 0x118]
mov dword [eax + 0x30], edx
add dword [edi + 4], 1
jmp case.0x6661fd89.86
mov edi, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x10]
add dword [edi + 0xc4], 1
shl eax, 4
add eax, dword [edi + 0x10]
mov ecx, dword [eax]
mov eax, edi
call fcn.665aabb0
mov esi, eax
test eax, eax
je 0x66626750
mov eax, dword [eax + 0x40]
mov ebx, eax
test eax, eax
je 0x66628095
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 4]
test ecx, ecx
jg 0x6662a2bc
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x66622170
mov dword [esi + 0x40], 0
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x30], ebp
jmp 0x666221ad
mov ebp, dword [edx + 0x188]
mov dword [ecx + 0x18], ebp
mov dword [edx + 0x188], ecx
test eax, eax
je 0x66627c83
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [eax + 0x18]
cmp edi, edx
jne 0x66622196
mov dword [esi + 0x40], ecx
mov ebx, ecx
mov dword [ecx + 0x18], 0
jmp 0x666221a5
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x30]
or byte [eax + 1], 0x40
jmp case.0x6661fd89.86
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
test edx, edx
je 0x6662685d
mov esi, dword [esp + 0x38]
add eax, 1
and eax, 3
movzx edx, byte [esi + 0x98]
mov byte [esp + 0x50], dl
and edx, 0xfffffffc
or eax, edx
mov byte [esi + 0x98], al
jmp case.0x6661fd89.86
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 8]
movzx ecx, byte [ebx + 0x19]
jmp 0x66620ebd
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x40]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 0xc8]
shl ecx, 3
lea ebx, [esi + ecx]
test eax, eax
jne 0x66622280
mov eax, ebx
call fcn.6659ac20
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, esi
call fcn.6659ac20
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 4]
mov edx, dword [esi]
cmp dword [ebx], edx
sbb ecx, eax
jge case.0x6661fd89.86
mov dword [ebx], edx
mov dword [ebx + 4], eax
jmp case.0x6661fd89.86
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x66622280
add ecx, dword [edx + 0x10]
mov ebx, ecx
jmp 0x6662223f
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x3c]
cdq
test byte [ecx + 0x22], 8
jne 0x66625d04
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x66627d00
mov edi, dword [esp + 0x3c]
add dword [edi + 0x1f0], eax
adc dword [edi + 0x1f4], edx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x40]
mov ebx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea esi, [eax + edx*8]
test word [esi + 8], 0x2400
jne 0x666265d8
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [edi]
xor ecx, ecx
mov edx, dword [edi + 4]
cmp ecx, eax
sbb ecx, edx
jge 0x66626e50
mov edi, dword [esp + 0x40]
lea ecx, [ebx + ebx*4]
mov ebx, dword [edi + ecx*8 + 4]
mov ecx, dword [edi + ecx*8]
test ebx, ebx
jns 0x6662231e
xor ecx, ecx
xor ebx, ebx
add eax, ecx
adc edx, ebx
jo 0x66626e50
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x6661fd89.86
lea esi, [esp + 0x118]
xor eax, eax
mov ecx, 0xa
mov ebx, dword [esp + 0x40]
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x138], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, esi
call fcn.665a3990
mov dword [esp + 0x30], eax
movzx eax, word [esp + 0x120]
mov edx, eax
and dx, 0x202
cmp dx, 0x202
je 0x66626246
test al, 1
jne 0x66622489
mov edx, 1
mov eax, esi
call fcn.665ac380
mov edx, eax
test edx, edx
je 0x66622481
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ebx + 0x10]
mov ecx, dword [eax]
mov eax, ebx
call fcn.665aabb0
xor ecx, ecx
mov edi, eax
mov eax, dword [eax + 0x3c]
mov ebx, dword [eax]
mov eax, dword [esp + 0x3c]
mov edx, ebx
add eax, 0x170
call fcn.66593b10
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x6662721b
mov edx, dword [ecx]
mov eax, dword [edx + 4]
test eax, eax
je 0x6662721b
mov edx, dword [edx + 0x14]
test edx, edx
je 0x6662721b
mov ebx, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
lea edx, [ebx + 0x7c]
mov dword [esp + 4], edx
mov edx, edi
call fcn.665bc630
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66622481
mov eax, dword [edi + 0x40]
mov edx, dword [esp + 0x3c]
test eax, eax
jne 0x66622427
jmp 0x66622481
mov eax, dword [eax + 0x18]
test eax, eax
je 0x66622481
cmp edx, dword [eax]
jne 0x66622420
mov eax, dword [esp + 0x3c]
call fcn.665990e0
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66622481
mov eax, dword [edi + 0x40]
test eax, eax
jne 0x6662245b
jmp 0x6662afb3
mov eax, dword [eax + 0x18]
test eax, eax
je 0x6662afbc
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [eax]
jne 0x66622450
mov edi, ecx
mov ecx, dword [ecx + 0x184]
mov edx, dword [edi + 0x16c]
lea ebx, [edx + 1]
mov dword [edi + 0x16c], ebx
mov dword [ecx + edx*4], eax
add dword [eax + 0xc], 1
movzx eax, word [esp + 0x120]
test ah, 0x24
jne 0x6662249d
mov ebx, dword [esp + 0x130]
test ebx, ebx
je 0x666214a0
mov eax, esi
call fcn.66592910
jmp 0x666214a0
mov eax, dword [esp + 0x3c]
mov ebx, dword [ebp + 0x10]
mov edx, dword [eax + 0x16c]
test edx, edx
jle 0x66625630
mov eax, dword [eax + 0x184]
test eax, eax
jne 0x66625630
test ebx, ebx
jne 0x6662ab78
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x28]
mov esi, 6
mov ebp, dword [esp + 0x3c]
jmp 0x66620035
mov edx, dword [ebp + 0xc]
test dl, dl
jne 0x66622505
mov eax, dword [esp + 0x3c]
test byte [eax + 0x21], 4
jne case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
shl eax, 4
add eax, dword [edi + 0x10]
mov esi, dword [eax + 4]
cmp byte [esi + 9], 0
je case.0x6661fd89.86
mov ebx, dword [ebp + 8]
lea eax, [edx + 1]
add dword [esi + 0xc], 1
cmp byte [esi + 0xa], 0
mov byte [esp + 0x50], al
jne 0x66622542
mov eax, esi
call fcn.6658e4e0
movzx ecx, byte [esp + 0x50]
mov edx, ebx
mov eax, esi
call fcn.66582840
mov dword [esp + 0x30], eax
test eax, eax
je 0x666298ee
cmp byte [esi + 9], 0
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jne 0x666298d8
mov esi, dword [esp + 0x30]
mov eax, esi
cmp al, 6
jne 0x66622788
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], str.database_table_is_locked:__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.665bc5e0
movzx eax, byte [ebp + 0x53]
mov esi, dword [esp + 0x30]
jmp 0x6662278c
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x30]
and byte [eax + 1], 0xbf
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
test byte [ecx + 8], 1
jne 0x66625da2
xor edx, edx
mov eax, ecx
call fcn.6659bba0
test eax, eax
sete al
xor edx, edx
movzx eax, al
test word [ebx + 8], 0x2400
jne 0x666285ac
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov word [ebx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x40]
mov edx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
call fcn.6659bba0
test eax, eax
je case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0xc8]
mov edx, dword [eax + 0x68]
test ebx, ebx
je 0x6662678d
mov eax, ebp
sub eax, edx
sar eax, 2
imul ecx, eax, 0xcccccccd
mov edx, ecx
and ecx, 7
shr edx, 3
add edx, dword [ebx + 0x18]
movzx ebx, byte [edx]
bt ebx, ecx
mov eax, ebx
jb 0x6661fed0
mov edi, 1
shl edi, cl
or eax, edi
mov byte [edx], al
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [ebp + 4], eax
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x90]
test eax, eax
js 0x6662601b
jne 0x666278cb
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ebp, [esi + eax*4 - 0x14]
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
movzx eax, word [ebx + 8]
test al, 4
je 0x6662635f
and ax, 0x3e40
or eax, 4
mov word [ebx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
mov edi, 4
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, ebp
mov word [edx + 8], di
mov edi, dword [esp + 0x44]
mov ecx, dword [edx]
sub eax, edi
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [edx], eax
sar eax, 0x1f
mov dword [edx + 4], eax
lea eax, [ecx + ecx*4]
lea ebp, [edi + eax*4]
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
sub eax, 1
mov dword [edi + edx*8], eax
sar eax, 0x1f
mov dword [edi + edx*8 + 4], eax
mov eax, 4
mov word [edi + edx*8 + 8], ax
mov eax, dword [ebp + 8]
test eax, eax
je case.0x6661fd89.86
jmp 0x6661fed3
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
mov eax, ebx
call fcn.665b1280
mov esi, eax
test eax, eax
je 0x666263b0
cmp eax, 0x10
je 0x66622e90
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
movzx eax, byte [ebp + 0x53]
mov edx, dword [esp + 0x50]
sub edx, dword [esp + 0x44]
sar edx, 2
mov ebx, dword [esp + 0x28]
imul edi, edx, 0xcccccccd
mov dword [esp + 0x58], edi
test al, al
jne 0x666290be
cmp esi, 0x210a
jne 0x6662af0b
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x16fda
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 + 0x38]
mov esi, dword [eax + 0x7c]
test esi, esi
je 0x66626f54
mov esi, 0xb
jmp 0x6661fdda
mov edi, dword [esp + 0x38]
mov edx, dword [ebp + 8]
mov eax, dword [edi + 0x60]
mov ebx, dword [eax + edx*4]
mov edx, dword [ebp + 4]
mov eax, edi
movsx ecx, word [ebx + 0x40]
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
call fcn.665fa3c0
test eax, eax
je 0x66624490
mov byte [eax + 2], 1
mov ecx, dword [ebx + 0x34]
mov dword [eax + 0x34], ecx
movzx edx, byte [ebx + 4]
mov byte [eax + 4], dl
mov edi, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x10]
mov dword [eax + 0x3c], edi
movzx edx, byte [ebx + 8]
mov dword [eax + 0x10], esi
and edx, 4
or edx, 9
mov byte [esp + 0x30], dl
movzx edx, byte [eax + 8]
and edx, 0xfffffff2
or dl, byte [esp + 0x30]
mov byte [eax + 8], dl
mov edx, edi
or byte [ebx + 8], 8
mov eax, dword [eax + 0x30]
mov dword [esp], ecx
mov ecx, 4
mov dword [esp + 4], eax
mov eax, esi
call fcn.665b1570
mov dword [esp + 0x30], eax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
lea esi, [esp + 0x118]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x34]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
xor edx, edx
mov eax, dword [ebx + 0x30]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp], esi
mov dword [esp + 0x118], 0
call fcn.665e4f30
mov dword [ebx + 0x48], esi
xor esi, esi
mov dword [esp + 0x30], eax
mov dword [ebx + 0x24], 0
mov word [ebx + 2], si
mov eax, dword [esp + 0x118]
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x28], eax
test eax, eax
je 0x666214a0
mov eax, dword [ebp + 8]
test eax, eax
jne 0x6661fed3
mov dword [esp + 0x10], 0x6667e21c
mov edi, ebp
mov dword [esp + 0xc], 0x162cb
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
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, edi
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov esi, 0xb
sar eax, 2
imul eax, eax, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], eax
jne 0x666290be
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
sar eax, 2
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x7c], 0
jne 0x6661ff48
jmp 0x6661fef8
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
test byte [eax + 8], 0x24
jne 0x6662289b
mov edx, dword [eax]
lea esi, [esp + 0x118]
movzx ecx, byte [esp + 0x6b]
mov dword [esp + 0x118], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x11c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x120], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x124], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x128], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x12c], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x130], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x134], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x138], edx
mov eax, dword [eax + 0x24]
mov edx, 0x43
mov dword [esp + 0x13c], eax
mov eax, esi
call fcn.665be040
test byte [esp + 0x120], 4
je 0x6661fed0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
jmp 0x666228af
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax + 2], 0
je case.0x6661fd89.86
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
test word [eax + 8], 0x2400
jne 0x666297ac
mov ecx, 1
mov word [eax + 8], cx
mov eax, dword [ebp + 8]
jmp 0x6661fed3
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
xor edx, edx
test ebx, ebx
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
sete dl
lea eax, [ebx + eax*8]
call fcn.6659bba0
test eax, eax
jne case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
test eax, eax
jne case.0x6661fd89.86
jmp case.0x6661fd89.11
mov dword [esp + 0x118], 0
mov edx, dword [ebp + 8]
test edx, edx
je 0x66625480
mov eax, dword [esp + 0x3c]
test byte [eax + 0x22], 0x10
je 0x66625480
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], 8
jmp 0x66621a3f
mov eax, ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov esi, dword [eax + 4]
mov edx, dword [eax + 8]
movzx eax, byte [ebp + 0x51]
mov ebx, dword [esp + 0x28]
cmp eax, esi
je 0x666269b8
test edx, edx
jne 0x66627a77
test esi, esi
je 0x66622b6a
mov eax, dword [ebp + 0xbc]
test eax, eax
jg 0x66629630
mov edi, dword [esp + 0x38]
mov eax, dword [edi]
mov edx, dword [eax + 0x1f0]
mov ecx, dword [eax + 0x1f4]
add edx, dword [eax + 0x1f8]
adc ecx, dword [eax + 0x1fc]
mov eax, edx
mov edx, ecx
xor ecx, ecx
cmp ecx, eax
sbb ecx, edx
jl 0x6662818d
mov eax, esi
mov byte [ebp + 0x51], al
mov eax, dword [esp + 0x38]
call fcn.665fa5c0
mov dword [esp + 0x30], eax
cmp eax, 5
je 0x66628155
mov eax, ebp
call fcn.665938d0
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x28], 1
mov esi, dword [esp + 0x48]
sbb eax, eax
mov edi, dword [esp + 0x4c]
and eax, 0x64
add eax, 1
mov dword [esp + 0x30], eax
jmp 0x6661fe69
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x58], eax
test word [eax + 8], 0x2400
jne 0x666265ca
mov eax, dword [esp + 0x58]
mov edx, 4
mov word [eax + 8], dx
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
shl eax, 4
add eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
cmp edi, 0xffffffff
mov dword [esp + 0x60], eax
mov eax, dword [eax + 4]
mov ebx, dword [eax]
movzx ecx, byte [ebx + 5]
cmove edi, ecx
cmp byte [ebx + 0x10], 2
mov dword [esp + 0x50], ecx
ja 0x66627466
mov eax, dword [ebx + 0x40]
mov eax, dword [eax]
test eax, eax
je 0x66622c50
xor eax, eax
cmp eax, dword [ebx + 0x48]
sbb eax, dword [ebx + 0x4c]
cmovl edi, ecx
cmp byte [ebx + 0xf], 0
jne 0x6662702a
cmp edi, 5
je 0x66628310
mov eax, dword [esp + 0x50]
cmp edi, eax
je 0x66622c74
cmp eax, 5
je 0x6662746f
mov esi, dword [esp + 0x30]
test esi, esi
cmovne edi, dword [esp + 0x50]
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0x50]
mov eax, ebx
mov ebx, 0xa02
call fcn.665f79c0
mov edi, dword [esp + 0x58]
mov word [edi + 8], bx
cmp eax, 6
je 0x66629119
mov eax, dword [eax*4 + str._a3hf]
mov esi, dword [esp + 0x58]
mov dword [esi + 0x10], eax
test eax, eax
je 0x66629c75
mov dword [esp], eax
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
mov edi, dword [esp + 0x58]
movzx edx, byte [esp + 0x6b]
mov dword [edi + 0xc], eax
mov eax, edi
mov byte [edi + 0xa], 1
cmp dl, 1
je 0x666214a0
call fcn.665a3300
jmp 0x666214a0
lea eax, [esp + 0x120]
mov dword [esp + 0x118], 0
mov dword [esp + 0x120], 0xffffffff
mov dword [esp + 0x11c], 0xffffffff
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov dword [esp + 4], eax
lea eax, [esp + 0x11c]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.666008a0
mov esi, eax
test eax, eax
jne 0x66625d6f
mov eax, dword [esp + 0x118]
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x40]
lea esi, [esp + 0x124]
lea edx, [edx + edx*4]
lea edi, [ebx + edx*8]
lea ebx, [esp + 0x118]
cdq
test word [edi + 8], 0x2400
jne 0x66622d8d
mov ecx, 4
mov dword [edi], eax
mov dword [edi + 4], edx
mov word [edi + 8], cx
add ebx, 4
cmp esi, ebx
je 0x66626d17
mov eax, dword [ebx]
add edi, 0x28
cdq
test word [edi + 8], 0x2400
je 0x66622d66
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.665928a0
jmp 0x66622d74
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x40]
mov ecx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [esp + 0x38]
mov ecx, dword [edx]
mov dword [esp + 0x58], edi
mov edi, dword [edi + 0x30]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x60], ecx
mov ebx, dword [edi]
mov dword [esp + 0x50], eax
mov esi, dword [ebx]
mov dword [esp + 0x30], esi
mov esi, dword [edx + 0x28]
test esi, esi
jle 0x66622dfc
mov ecx, dword [esp + 0x50]
add edx, 0x50
mov eax, ecx
lea ecx, [ecx + esi*4]
lea esi, [esi]
nop
mov dword [eax], edx
add eax, 4
add edx, 0x28
cmp ecx, eax
jne 0x66622df0
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
call dword [eax + 0x20]
mov edx, dword [ebx + 8]
mov esi, eax
test edx, edx
je 0x66622e67
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0x7c]
test ecx, ecx
je 0x66622e49
mov edx, ecx
mov dword [esp + 0x50], eax
call fcn.665926e0
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x50]
call fcn.66591c60
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [ebx + 8], 0
test esi, esi
jne 0x66622780
mov eax, dword [esp + 0x30]
mov dword [esp], edi
call dword [eax + 0x28]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov byte [ebx + 2], 0
test eax, eax
je case.0x6661fd89.86
lea esi, [esi]
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], 0
jmp 0x6661fed3
mov eax, dword [ebp + 8]
xor edx, edx
test eax, eax
je 0x66622eb3
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x38]
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
add eax, 0x7c
call fcn.6664db50
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea esi, [eax + edx*8]
test word [esi + 8], 0x2400
jne 0x66626351
mov eax, 4
mov word [esi + 8], ax
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ebx + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 0xc]
movzx edx, byte [ebx + 9]
test eax, eax
je 0x66626f79
mov ecx, dword [ebx + 4]
cmp dword [ecx + 0x30], eax
cmovae eax, dword [ecx + 0x30]
mov edi, eax
test dl, dl
je 0x66628303
add dword [ebx + 0xc], 1
cmp byte [ebx + 0xa], 0
je 0x66628511
mov eax, dword [ecx]
mov dword [eax + 0x9c], edi
test dl, dl
je 0x66622f5c
sub dword [ebx + 0xc], 1
je 0x666284a8
mov dword [esi], edi
mov dword [esi + 4], 0
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
test eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
jne 0x66626896
mov ecx, dword [eax + 0xbc]
test ecx, ecx
jg 0x6662a3b1
test edi, edi
je 0x66628e11
mov dword [esp], edi
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
mov ebx, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x184]
test edx, edx
je 0x66622fd0
mov ecx, dword [eax + 0x1e4]
xor edx, edx
add ecx, dword [eax + 0x1e8]
call fcn.66593230
mov esi, eax
test eax, eax
jne 0x66622780
lea eax, [ebx + 0x21]
xor edx, edx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x3c]
call fcn.6658bdd0
mov dword [esp + 0x30], 0
mov esi, eax
test eax, eax
je case.0x6661fd89.86
lea eax, [eax + 0x20]
add ebx, 1
mov dword [esi], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x51], 0
je 0x6662820b
mov byte [eax + 0x51], 0
mov byte [eax + 0x59], 1
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
mov eax, dword [ebx + 0x1d8]
mov edx, dword [ebx + 0x1f4]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x1f0]
mov dword [ebx + 0x1d8], esi
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x1f8]
mov dword [esi + 0xc], edx
mov edx, dword [ebx + 0x1fc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea edx, [eax + edx*8]
test word [edx + 8], 0x2400
jne 0x66626335
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x3c]
shl eax, 4
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx + 4], 0
mov dword [edx], eax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov ebx, dword [edx + 4]
mov ecx, dword [edx]
mov esi, ebx
or esi, ecx
je case.0x6661fd89.86
xor esi, esi
mov eax, dword [ebp + 8]
cmp esi, ecx
sbb esi, ebx
jge 0x6661fed3
add ecx, 0xffffffff
adc ebx, 0xffffffff
mov dword [edx], ecx
mov dword [edx + 4], ebx
jmp 0x6661fed3
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
xor ecx, ecx
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, eax
sbb ecx, edx
jge case.0x6661fd89.86
mov ecx, dword [ebp + 0xc]
mov ebx, ecx
sar ebx, 0x1f
sub eax, ecx
sbb edx, ebx
mov dword [esi], eax
mov dword [esi + 4], edx
mov eax, dword [ebp + 8]
jmp 0x6661fed3
mov eax, dword [ebp + 4]
test eax, eax
je 0x66625cd0
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 0x1f4]
or eax, dword [esi + 0x1f0]
jne case.0x6661fd89.86
mov eax, dword [esi + 0x1fc]
or eax, dword [esi + 0x1f8]
jne case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x40]
cmp word [ebp + 2], 0
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
jne 0x6662682d
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0xd0]
cmp eax, dword [ecx + 0x98]
jge 0x6662a5f8
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x50], ecx
test byte [ebx + 8], 0x10
jne 0x66627a98
cmp ecx, 1
mov edx, ecx
adc edx, dword [esi + 8]
lea eax, [edx + edx*4]
mov dword [esp + 0x58], edx
lea edx, [ecx + eax*2 + 0x14]
mov ecx, dword [esi + 4]
lea eax, [ecx + 0xe]
add ecx, 7
cmovns eax, ecx
sar eax, 3
lea eax, [eax + edx*4]
cdq
mov dword [esp + 0x40], eax
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x3c]
call fcn.6658bdd0
mov edi, eax
test eax, eax
je 0x66624490
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0
mov dword [esp], edi
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
test word [ebx + 8], 0x2400
jne 0x6662320e
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x66623215
mov eax, ebx
call fcn.66592910
mov eax, 0x410
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov dword [ebx + 0x10], edi
mov word [ebx + 8], ax
mov eax, dword [esp + 0x40]
mov dword [ebx + 0x24], 0x66582be0
mov dword [ebx + 0xc], eax
mov eax, ebp
sub eax, dword [esp + 0x44]
lea ebp, [edi + 0x50]
sar eax, 2
mov ebx, dword [esi + 0xc]
mov dword [edi + 0x3c], edx
imul eax, eax, 0xcccccccd
mov dword [edi], ecx
mov dword [edi + 0x40], ebx
mov dword [esp + 0x40], ebp
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [edx + edx*4]
lea edx, [edi + eax*8 + 0x50]
mov eax, dword [ecx + 0xd0]
mov ecx, ebp
cmp edx, ebp
je 0x66629cd3
mov ebp, dword [esp + 0x3c]
mov word [ecx + 8], pe_nt_image_headers32
add ecx, 0x28
mov dword [ecx - 8], ebp
cmp edx, ecx
jne 0x666232a0
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0x38]
add eax, 1
mov dword [ebp + 0xd0], eax
mov eax, dword [ebp + 0xc8]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 0x2c]
mov dword [edi + 0x24], edx
mov dword [edi + 0x44], eax
mov eax, dword [ebp]
mov eax, dword [eax + 0x68]
mov dword [edi + 0x48], eax
mov eax, dword [ebp + 0xdc]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x58], eax
mov eax, dword [esp + 0x58]
mov dword [ebp + 0xdc], 0
mov dword [ebp + 0x18], eax
movzx eax, bx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x2c], 0
lea edx, [ecx + eax*4]
mov ecx, dword [esi + 4]
mov dword [ebp + 0xc8], edi
mov dword [edi + 0x18], edx
lea eax, [ecx + 0xe]
add ecx, 7
mov dword [esp], edx
cmovns eax, ecx
mov dword [esp + 4], 0
sar eax, 3
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x6c], eax
lea ebp, [ecx - 0x14]
mov dword [esp + 0x44], ecx
jmp 0x66620fd5
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
test ebx, ebx
je 0x66623381
mov eax, dword [ebp + 8]
cmp dword [ebx + 0x3c], eax
je 0x6662094f
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x98]
mov byte [esp + 0x30], al
and eax, 3
cmp al, 1
je 0x6662a013
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
mov esi, dword [ebp + 8]
mov eax, edx
shl eax, 4
add eax, dword [ecx + 0x10]
movzx ecx, word [ebp + 2]
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
jmp 0x666208d8
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x3c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
shl eax, 4
add eax, dword [esi + 0x10]
mov ebx, eax
mov eax, dword [eax + 4]
call fcn.665df880
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
cmp eax, 1
je 0x666265e6
cmp eax, 2
jne 0x66623400
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp + 0xc]
mov byte [eax + 0x4c], dl
cmp dword [ebp + 4], 1
jne 0x666214a0
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 4]
test edx, edx
je 0x66622026
movzx eax, byte [edx + 0x98]
and eax, 0xfffffffc
or eax, 1
mov byte [edx + 0x98], al
mov edx, dword [edx + 8]
test edx, edx
jne 0x66623419
jmp 0x66622026
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x3c]
lea esi, [esp + 0x118]
mov edx, dword [ebp + 0xc]
mov ecx, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 4]
call fcn.66597040
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x6662661b
mov edx, 4
mov word [eax + 8], dx
mov edx, dword [esp + 0x118]
mov dword [eax], edx
sar edx, 0x1f
mov dword [eax + 4], edx
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
test edi, edi
jne 0x666262a7
mov eax, ebx
call fcn.665b1280
mov esi, eax
cmp eax, 0x10
je 0x66627f98
test eax, eax
jne 0x66622780
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x6c]
mov eax, dword [ebp]
test eax, eax
jne 0x66627f94
mov eax, dword [ebx + 0x74]
cmp byte [eax + 8], 0
movzx edx, word [eax + 0x18]
je 0x66626b69
xor edi, edi
movzx esi, dx
add dword [esp + 0x50], esi
adc dword [esp + 0x54], edi
jmp 0x66623552
movsx ecx, dl
sub edx, 1
and byte [ebx + 1], 0xf9
xor esi, esi
movzx ecx, word [ebx + ecx*2 + 0x46]
mov byte [ebx + 0x44], dl
movsx edx, dl
mov edx, dword [ebx + edx*4 + 0x78]
mov eax, dword [eax + 0x48]
mov word [ebx + 0x32], si
mov word [ebx + 0x46], cx
mov dword [ebx + 0x74], edx
call fcn.6658dc20
mov eax, dword [ebx + 0x74]
movzx ecx, word [ebx + 0x46]
movzx edx, word [eax + 0x18]
cmp cx, dx
jb 0x66627830
movzx edx, byte [ebx + 0x44]
test dl, dl
jne 0x66623510
mov eax, ebx
mov ebp, dword [esp + 0x30]
call fcn.665b1280
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66621a37
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x66627616
mov ebx, 4
mov word [eax + 8], bx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov dword [eax], ecx
mov dword [eax + 4], ebx
jmp 0x66620fd5
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
jne case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
test word [ebx + 8], 0x2400
jne 0x66626601
mov eax, 1
mov word [ebx + 8], ax
test byte [esi + 8], 1
jne case.0x6661fd89.86
mov edi, 4
mov eax, esi
mov word [ebx + 8], di
call fcn.6658cc70
not eax
not edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x6661fd89.86
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov dword [esp + 4], 1
mov dword [esp], 0xffffffff
mov eax, dword [esp + 0x38]
call fcn.665fa3c0
mov esi, eax
test eax, eax
je 0x66624490
mov eax, dword [ebp + 0x10]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x34], eax
cmp byte [ebx + 0x52], 2
mov dword [esp + 0x30], ecx
je 0x6662609c
cmp byte [0x6667ce04], 0
je 0x6662609c
mov ebx, dword [ebx + 0x9c]
lea edx, [ebx + ebx*8]
mov dword [esp + 0x58], ebx
lea ebx, [edx*8 + 0x88]
mov dword [esp + 0x50], ebx
movzx eax, word [eax + 6]
lea eax, [eax*4 + 0x14]
add ebx, eax
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
mov eax, dword [esp + 0x3c]
mov ecx, edx
mov edx, ebx
call fcn.6658bdd0
mov edi, eax
test eax, eax
je 0x66627109
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], edi
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x30], edi
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x50]
add eax, edi
mov dword [edi + 0x1c], eax
mov ecx, eax
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x34]
mov esi, dword [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov esi, ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x30]
mov dword [esi + 0xc], 0
mov eax, esi
test ecx, ecx
je 0x66623728
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x66623728
mov word [eax + 6], cx
cmp byte [ebx + 9], 0
je 0x66627fb5
add dword [ebx + 0xc], 1
cmp byte [ebx + 0xa], 0
jne 0x66627fdf
mov eax, ebx
call fcn.6658e4e0
mov edx, dword [ebx + 4]
movzx eax, byte [ebx + 9]
mov esi, dword [edx + 0x24]
mov dword [edi + 0xc], esi
test al, al
je 0x66623762
sub dword [ebx + 0xc], 1
je 0x66628fec
mov eax, dword [esp + 0x58]
mov ebx, eax
sub eax, 1
lea edx, [ebx + 1]
mov byte [edi + 0x3a], al
mov eax, dword [esp + 0x3c]
cmp dl, 1
mov byte [edi + 0x3b], dl
mov dword [edi + 0x18], eax
seta byte [edi + 0x39]
test dl, dl
je 0x666237a1
movzx edx, dl
lea eax, [edi + 0x48]
lea edx, [edx + edx*8]
lea edx, [eax + edx*8]
lea esi, [esi]
mov dword [eax], edi
add eax, 0x48
cmp edx, eax
jne 0x66623798
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x52], 2
je 0x66627fc3
mov eax, dword [0x6667cecc]
imul eax, esi
mov dword [esp + 0x30], eax
mov dword [edi], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x50]
mov eax, ecx
cdq
test edx, edx
js 0x666283c0
imul esi
mov ecx, eax
mov ebx, edx
mov edx, 0x20000000
mov eax, 0
cmp edx, ecx
sbb eax, ebx
mov eax, edx
mov ebx, dword [esp + 0x30]
cmovge eax, ecx
cmp ebx, eax
cmovg eax, ebx
mov dword [edi + 4], eax
cmp byte [0x6667ce08], 0
je 0x666287c8
mov eax, dword [esp + 0x50]
cmp word [eax + 8], 0xc
jbe 0x666277d8
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov edi, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + edx*4]
mov eax, edi
call fcn.665fa1f0
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + edx*4], 0
jmp case.0x6661fd89.86
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov dword [esp + 4], 3
mov dword [esp], 0xffffffff
mov eax, dword [esp + 0x38]
call fcn.665fa3c0
test eax, eax
je 0x66624490
mov byte [eax + 2], 1
mov edx, dword [ebp + 8]
mov byte [eax + 4], 1
mov dword [eax + 0x28], edx
mov dword [eax + 0x30], 0x666b0048
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x50], eax
add eax, 1
mov dword [esp + 0x54], edx
adc edx, 0
mov ecx, dword [esp + 0x54]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x50]
mov dword [esi + 0x18], eax
mov eax, edx
mov edx, ecx
or edx, eax
jne case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
lea esi, [esp + 0x118]
mov ebx, dword [esp + 0x40]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov edx, esi
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x118], eax
mov eax, dword [ebp + 0xc]
mov byte [esp + 0x122], 0
mov word [esp + 0x120], ax
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0
lea eax, [eax + eax*4]
mov dword [esp], 0
lea eax, [ebx + eax*8]
lea ebx, [esp + 0xd0]
mov dword [esp + 4], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x11c], eax
mov eax, ecx
mov dword [esp + 0x50], ecx
call fcn.665e4f30
mov dword [esp + 0x30], eax
test eax, eax
jne 0x6662a25f
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x50]
test eax, eax
je 0x666266cc
cmp word [ebp + 2], 0
jne 0x6662a55e
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x58], eax
test byte [eax + 9], 0x40
je 0x666239b0
call fcn.665a3120
mov esi, eax
test eax, eax
jne 0x66622780
mov eax, dword [esp + 0x58]
mov edi, dword [ebx + 0x30]
mov edx, dword [eax + 0x10]
movzx eax, byte [edx + 1]
mov dword [esp + 0x118], eax
cmp eax, 0x7f
jg 0x66626563
lea edx, [eax - 1]
cmp edx, 8
ja 0x6662699e
cmp eax, 7
je 0x6662699e
and byte [edi + 0x3c], 1
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0xc]
lea eax, [ecx + 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x70], eax
mov eax, ecx
mov ecx, 1
cdq
shrd eax, edx, 7
shr edx, 7
mov ebx, edx
or ebx, eax
je 0x66623a20
nop
shrd eax, edx, 7
shr edx, 7
add ecx, 1
mov esi, edx
or esi, eax
jne 0x66623a10
mov eax, dword [esp + 0x60]
mov esi, dword [edi + 0x28]
lea ebx, [ecx + eax]
mov eax, dword [edi + 4]
mov dword [esp + 0x50], esi
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66627049
mov eax, dword [edi + 0x2c]
add eax, ebx
mov dword [edi + 0x2c], eax
cmp ebx, dword [edi + 8]
jle 0x66623a4d
mov dword [edi + 8], ebx
mov esi, dword [esp + 0x50]
test esi, esi
je 0x666283a1
mov edx, dword [edi + 0x30]
mov esi, dword [esp + 0x70]
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x24]
add esi, edx
cmp esi, eax
jle 0x66623b78
cdq
mov ebx, ecx
sub ebx, dword [esp + 0x50]
mov dword [esp + 0x70], esi
shld edx, eax, 1
add eax, eax
test ecx, ecx
mov ecx, 0xffffffff
cmovne ecx, ebx
mov ebx, esi
sar ebx, 0x1f
cmp eax, esi
mov dword [esp + 0x74], ebx
mov ebx, edx
sbb ebx, dword [esp + 0x74]
mov dword [esp + 0x80], ecx
jge 0x66623ad2
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x78], esi
lea esi, [esi]
shld edx, eax, 1
add eax, eax
cmp eax, ecx
mov esi, edx
sbb esi, ebx
jl 0x66623ab8
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x78]
mov dword [esp + 0x74], ebx
mov ecx, dword [edi + 4]
mov ebx, ecx
mov dword [esp + 0x78], ecx
sar ebx, 0x1f
mov dword [esp + 0x88], ecx
cmp eax, dword [esp + 0x78]
mov ecx, edx
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x8c]
sbb ecx, ebx
mov ecx, dword [esp + 0x78]
cmovge edx, ebx
cmovl ecx, eax
mov eax, dword [esp + 0x74]
cmp esi, ecx
mov ebx, eax
sbb ebx, edx
cmovge ecx, esi
cmovl eax, edx
mov ebx, ecx
mov ecx, eax
or ecx, ebx
je 0x6662a237
mov edx, 0x7ffffeff
cmp edx, ebx
mov edx, 0
sbb edx, eax
jb 0x66629d64
mov ecx, eax
mov eax, dword [esp + 0x50]
mov edx, ebx
call fcn.6658ba80
mov dword [esp + 0x50], eax
test eax, eax
je 0x66629d64
mov edx, dword [esp + 0x80]
test edx, edx
js 0x666285a4
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x50]
mov dword [edi + 0x24], ecx
mov eax, dword [esp + 0x50]
mov edx, dword [edi + 0x30]
mov dword [edi + 0x34], ebx
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
add eax, 0xf
lea ebx, [esi + edx]
and eax, 0xfffffff8
add eax, edx
mov dword [edi + 0x30], eax
test ecx, ecx
je 0x66623b97
sub ecx, esi
mov dword [ebx + 4], ecx
mov esi, dword [esp + 0x58]
lea eax, [ebx + 8]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x24], ebx
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov edi, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x40]
movzx ecx, word [ebp + 2]
mov eax, dword [edi + 0x60]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
test cl, 1
je 0x66623bf7
add dword [edi + 0x2c], 1
test byte [esi + 9], 0x40
jne 0x6662628b
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x120], eax
sar eax, 0x1f
mov dword [esp + 0x124], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x118], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x12c], eax
mov eax, dword [ebp + 0x10]
mov word [esp + 0x130], ax
test cl, 0x10
je 0x66623c48
mov edx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x30]
mov dword [esp], edx
lea esi, [esp + 0x118]
and ecx, 0x8a
mov edx, esi
call fcn.665e6060
mov dword [ebx + 0x24], 0
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
mov ebx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], esi
lea eax, [eax + eax*4]
lea eax, [esi + eax*8 - 0x28]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x93]
mov byte [esp + 0x94], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x80], eax
test ebx, ebx
jne 0x66625eb8
mov dword [esp + 0x78], 0
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x88], ebp
jmp 0x66623d26
shl eax, 0x11
add dword [esp + 0x58], 1
sar eax, 0x1f
and eax, 0xa
mov dword [ebx + 0x1c], eax
cmp ebx, dword [esp + 0x50]
je 0x666258a3
sub ebx, 0x28
movzx eax, word [ebx + 8]
test al, 1
jne 0x66623d08
test al, 0x24
je 0x666256c8
mov edi, dword [ebx]
mov ebp, dword [ebx + 4]
add dword [esp + 0x58], 1
mov ecx, edi
test ebp, ebp
js 0x66625600
mov esi, 0x7f
mov edx, ebp
cmp esi, edi
mov esi, 0
sbb esi, ebp
jl 0x66625750
mov eax, edi
and eax, 0xfffffffe
or eax, ebp
jne 0x6662561a
cmp byte [esp + 0x94], 3
jbe 0x6662561a
add edi, 8
mov dword [ebx + 0x1c], edi
jmp 0x66623d19
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov eax, dword [ebx + 0x2c]
add dword [esi + 0x6c], eax
mov dword [esi + 0x68], eax
mov dword [ebx + 0x2c], 0
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
movzx eax, word [edi + 0xc]
cmp eax, dword [ebp + 0x10]
jge case.0x6661fd89.86
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x66625f75
mov ecx, dword [edi + 0x34]
mov byte [esp + 0x122], 0
mov word [esp + 0x120], ax
mov dword [esp + 0x118], ecx
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x11c], edx
jmp 0x66620682
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x60], esi
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x58], eax
test byte [esi + 8], 0x10
je 0x66626220
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x58]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x50], eax
test ecx, ecx
jne 0x6662618d
mov eax, dword [esp + 0x50]
mov edx, ebx
mov ecx, edi
call fcn.6658e770
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
movzx ecx, word [edi + 8]
movzx eax, word [esi + 8]
mov word [esp + 0x50], ax
or eax, ecx
mov word [esp + 0x58], cx
test al, 1
jne 0x666264c6
test byte [esp + 0x58], 0x12
je 0x66627e34
test word [esp + 0x58], 0x4000
jne 0x666287b0
test byte [esp + 0x50], 0x12
je 0x66628104
test word [esp + 0x50], 0x4000
jne 0x66628619
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 0xc]
mov dword [esp + 0x60], eax
cmp eax, dword [ecx + 0x70]
jg 0x66620b51
xor ecx, ecx
cmp esi, ebx
lea edx, [eax + 3]
mov eax, ebx
sete cl
call fcn.665a2ef0
test eax, eax
jne 0x66624490
movzx eax, word [ebx + 8]
mov edx, dword [esi + 0xc]
and ax, 0x3e40
or eax, 2
mov word [ebx + 8], ax
mov eax, dword [ebx + 0x10]
cmp esi, ebx
je 0x66623f32
mov ecx, dword [esi + 0x10]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
movzx eax, word [esp + 0x50]
mov edx, dword [esi + 0xc]
mov word [esi + 8], ax
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi + 0xc]
add eax, edx
mov edx, dword [edi + 0x10]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
movzx eax, word [esp + 0x58]
mov word [edi + 8], ax
mov eax, dword [ebx + 0x10]
mov edi, dword [esp + 0x60]
mov byte [eax + edi], 0
mov eax, dword [ebx + 0x10]
mov byte [eax + edi + 1], 0
mov eax, dword [ebx + 0x10]
mov byte [eax + edi + 2], 0
movzx eax, byte [esp + 0x6b]
or word [ebx + 8], 0x200
mov dword [ebx + 0xc], edi
mov byte [ebx + 0xa], al
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
test al, 0x10
je 0x66626085
mov ebx, dword [esi + 0x10]
movzx edx, word [ebx + 0x1a]
mov eax, dword [ebx + 8]
test dl, 2
jne 0x66623fbc
test dl, 1
je 0x6662925a
or edx, 3
mov word [ebx + 0x1a], dx
test eax, eax
je 0x66626081
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov dword [ebx + 8], eax
test eax, eax
je 0x6662940f
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
test word [eax + 8], 0x2400
jne 0x66629997
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ebx
mov ebx, 4
mov dword [eax], ecx
mov word [eax + 8], bx
jmp 0x66620fd5
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + edx*4]
cmp byte [ebx + 2], 0
jne case.0x6661fd89.86
mov eax, dword [ebx + 0x30]
mov edi, dword [eax]
mov esi, dword [edi]
mov dword [esp], eax
mov dword [esp + 0x30], esi
call dword [esi + 0x24]
mov edx, dword [edi + 8]
mov esi, eax
test edx, edx
je 0x66624085
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x66624065
mov edx, eax
mov eax, ecx
mov dword [esp + 0x50], ecx
call fcn.665926e0
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x50]
mov eax, ecx
call fcn.66591c60
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x7c], eax
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [edi + 8], 0
test esi, esi
jne 0x66622780
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call dword [eax + 0x28]
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.11
mov dword [esp + 0x30], 0
jmp 0x66620fd5
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x3c]
shl eax, 4
add eax, dword [ecx + 0x10]
mov edi, dword [eax + 4]
cmp byte [edi + 9], 0
mov ebx, dword [edi + 4]
je 0x666240dd
add dword [edi + 0xc], 1
cmp byte [edi + 0xa], 0
jne 0x666240dd
mov eax, edi
call fcn.6658e4e0
cmp byte [ebx + 0x11], 0
jne 0x66625e33
cmp byte [edi + 9], 0
je 0x66622e90
sub dword [edi + 0xc], 1
jne 0x66622e90
mov eax, edi
call fcn.66582810
jmp 0x66622e90
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
lea esi, [edx - 0x80000000]
or esi, eax
je case.0x6661fd89.86
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [ecx], eax
mov dword [ecx + 4], edx
or edx, eax
je 0x6661fed0
jmp case.0x6661fd89.86
mov edx, dword [esp + 0x90]
test edx, edx
je case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea ebx, [eax + edx*8]
test word [ebx + 8], 0x2400
jne 0x666265ae
mov eax, 4
mov word [ebx + 8], ax
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 0x10]
mov dword [esp + 4], 0
mov eax, ebx
mov dword [esp], 0
call fcn.665a4a40
movzx eax, byte [esp + 0x6b]
mov byte [ebx + 0xa], al
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx eax, word [edx + 8]
and al, 0x40
or eax, 1
mov word [edx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea ecx, [eax + edx*8]
test word [ecx + 8], 0x2400
jne 0x6662651f
mov ebx, 4
mov word [ecx + 8], bx
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ecx + 4], edx
mov dword [ecx], eax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x66626281
mov esi, 4
mov word [eax + 8], si
mov edx, dword [ebp + 4]
mov dword [eax], edx
sar edx, 0x1f
mov dword [eax + 4], edx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
test eax, eax
je case.0x6661fd89.86
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
test word [eax + 8], 0x2400
jne 0x6662910b
mov edi, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], di
jmp case.0x6661fd89.86
mov eax, ebp
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x50], ebp
sar eax, 2
mov ebp, dword [esp + 0x3c]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x30], eax
add eax, 2
or eax, 1
mov dword [ecx + 0x20], eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
xor edi, edi
mov dword [ecx + 0x78], esi
mov ecx, dword [edx + 8]
test ecx, ecx
jle 0x666257f8
mov dword [esp + 0x30], ebx
mov ebx, edi
mov edi, esi
mov esi, dword [esp + 0x50]
jmp 0x666242df
add ebx, 1
add edi, 0x28
cmp dword [esi + 8], ebx
jle 0x666257f4
movzx eax, word [edi + 8]
test ah, 0x10
je 0x666242fb
mov eax, edi
call fcn.665a32a0
test eax, eax
jne 0x66626f2c
movzx eax, word [edi + 8]
and ax, 0x202
cmp ax, 2
jne 0x666242d0
mov eax, edi
call fcn.665a3240
jmp 0x666242d0
mov eax, ebp
sub eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
sar eax, 2
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
xor eax, eax
cmp eax, dword [ecx + 0x40]
sbb eax, dword [ecx + 0x44]
jge 0x66624287
mov dword [ecx + 0x28], 0x313
mov esi, 1
mov byte [ecx + 0x92], 2
mov dword [esp + 4], str.FOREIGN_KEY_constraint_failed
mov dword [esp], ecx
call fcn.665bc5e0
jmp 0x6661fdbc
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8 + 4]
mov eax, dword [edi + eax*8]
test word [ebx + 8], 0x2400
jne 0x6662650f
mov esi, 4
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov word [ebx + 8], si
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
test word [eax + 8], 0x2400
jne 0x66626500
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
test byte [edx + 9], 8
jne case.0x6661fd89.86
movzx edx, word [eax + 8]
and dh, 0xe3
or dh, 0x10
mov word [eax + 8], dx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
mov esi, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
jmp 0x66624466
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
test byte [edi + 9], 8
movzx eax, word [ebx + 8]
jne 0x66624450
and ah, 0xe3
or ah, 0x10
mov word [ebx + 8], ax
test ah, 0x10
jne 0x66624485
test esi, esi
je case.0x6661fd89.86
add ebx, 0x28
add edi, 0x28
sub esi, 1
test word [ebx + 8], 0x2400
je 0x66624420
mov eax, ebx
mov ecx, 0x1000
mov edx, edi
call fcn.665933d0
movzx eax, word [ebx + 8]
test ah, 0x10
je 0x66624455
mov eax, ebx
call fcn.665a32a0
test eax, eax
je 0x66624455
mov dword [esp + 0x50], ebp
mov eax, ebp
mov ebp, dword [esp + 0x3c]
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fff7
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x40]
mov ebx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x666244df
add edi, 0x28
add esi, 0x28
sub ebx, 1
je case.0x6661fd89.86
test word [esi + 8], 0x2400
jne 0x666244ee
mov eax, dword [esi + 0x18]
test eax, eax
je 0x666244f5
mov eax, esi
call fcn.66592910
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [esi + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
mov eax, 1
mov word [edi + 8], ax
mov dword [edi + 0x18], 0
test byte [esi + 9], 0x10
je 0x666244d0
mov eax, esi
call fcn.665a32a0
test eax, eax
je 0x666244d0
jmp 0x66624490
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x64]
lea ebx, [eax + edx*8 - 0x28]
movzx eax, word [ebx + 8]
test al, 0x12
jne 0x666264e0
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
test word [esi + 8], 0x2400
jne 0x666266c0
mov eax, dword [ebx]
mov dword [esi], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 8]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x10], eax
movzx eax, word [esi + 8]
and ah, 0xeb
or ax, 0x840
mov word [esi + 8], ax
jmp case.0x6661fd89.86
mov dword [esp + 0x50], 0
test byte [ebp + 2], 1
jne 0x66625d2d
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ecx
test eax, eax
jle case.0x6661fd89.86
mov dword [esp + 0x80], ebp
xor ebx, ebx
jmp 0x6662460d
add ebx, 1
cmp dword [esp + 0x78], ebx
je 0x666270f6
mov ecx, dword [esp + 0x50]
mov eax, ebx
test ecx, ecx
je 0x6662461a
mov eax, dword [ecx + ebx*4]
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x60]
movzx edx, byte [edx + ebx]
mov byte [esp + 0x70], dl
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x40]
add eax, dword [esp + 0x58]
lea edx, [edx + edx*4]
lea eax, [eax + eax*4]
lea ebp, [ecx + edx*8]
lea edi, [ecx + eax*8]
mov ecx, dword [esi + ebx*4 + 0x14]
mov edx, ebp
mov eax, edi
call fcn.665ac9b0
test eax, eax
je 0x66624600
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x10]
mov edx, ebp
mov ebp, dword [esp + 0x80]
test byte [eax + ebx], 2
je 0x6662467d
test byte [edi + 8], 1
jne 0x66624676
test byte [edx + 8], 1
je 0x6662467d
neg dword [esp + 0x90]
mov esi, dword [esp + 0x90]
mov eax, esi
neg eax
test byte [esp + 0x70], 1
cmove eax, esi
mov dword [esp + 0x90], eax
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov edi, dword [ebp + 8]
mov eax, dword [eax + 0x60]
mov dword [esp + 0x58], edi
mov ebx, dword [eax + edx*4]
cmp byte [ebx + 3], 0
jne 0x66625dbc
mov eax, dword [ebx + 0x30]
cmp byte [eax], 0
jne 0x666290d7
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x20]
cmp dword [ebx + 0x24], edx
je 0x66627327
cmp byte [ebx + 2], 0
je 0x66628028
cmp byte [ebx], 3
jne 0x66628630
mov eax, dword [ebx + 0x28]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x5c], ecx
mov dword [ebx + 0x58], ecx
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x24], edx
movzx edx, byte [eax]
test dl, dl
js 0x66628e5f
mov eax, dword [esp + 0x30]
mov edi, 1
mov dword [eax], edx
mov esi, dword [esp + 0x30]
xor eax, eax
mov dword [ebx + 0x38], edi
mov word [ebx + 0x42], ax
mov eax, dword [esi]
cmp dword [ebx + 0x5c], eax
jae 0x6662944c
mov dword [ebx + 0x5c], 0
mov eax, dword [esi]
mov dword [ebx + 0x54], 0
cmp eax, 0x18003
ja 0x66627948
cmp eax, dword [ebx + 0x58]
ja 0x66627948
cmp eax, edi
ja 0x6662a30f
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0x50]
movzx eax, word [eax + 8]
mov word [esp + 0x30], ax
and ax, 0x2400
cmp byte [ebp + 1], 0xf5
je 0x66629f97
test ax, ax
mov eax, dword [esp + 0x50]
jne 0x66629cc9
mov ecx, 1
mov word [eax + 8], cx
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
movzx eax, word [edx + 8]
test al, 0x24
je case.0x6661fd89.86
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
test al, 8
jne 0x66628fe3
fild qword [esp + 0x50]
and ax, 0x3e40
fstp qword [edx]
or eax, 8
mov word [edx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, ebx
call fcn.6659ac20
mov eax, dword [ebp + 8]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
test byte [ebx + 9], 0x40
je 0x66624849
mov eax, ebx
call fcn.665a3120
mov esi, eax
test eax, eax
jne 0x66622780
movzx ecx, byte [esp + 0x6b]
movzx edx, byte [ebp + 8]
mov eax, ebx
call fcn.665be120
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x40]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
movsx edx, byte [edi]
movzx esi, byte [esp + 0x6b]
mov dword [esp + 0x50], ebx
jmp 0x666248a4
movsx edx, byte [edi + 1]
add edi, 1
test dl, dl
je case.0x6661fd89.86
add dword [esp + 0x50], 0x28
mov eax, dword [esp + 0x50]
mov ecx, esi
call fcn.665be040
cmp byte [edi], 0x45
jne 0x66624890
mov eax, dword [esp + 0x50]
movzx ecx, word [eax + 8]
test cl, 4
je 0x66624890
mov edx, dword [eax + 4]
and ecx, 0xfffffffb
mov eax, dword [eax]
mov word [esp + 0x58], cx
mov ebx, edx
add ebx, 0x8000
cmp ebx, 0xffff
ja 0x66625a0d
movzx ecx, word [esp + 0x58]
mov eax, dword [esp + 0x50]
or ecx, 0x20
mov word [eax + 8], cx
jmp 0x66624890
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x40]
mov edx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
call fcn.6659bba0
mov ecx, dword [ebp + 8]
xor eax, dword [ebp + 0x10]
cdq
lea ecx, [ecx + ecx*4]
lea ebx, [ebx + ecx*8]
test word [ebx + 8], 0x2400
jne 0x66626549
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov word [ebx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea ebx, [eax + edx*8]
test word [ebx + 8], 0x2400
jne 0x666265bc
mov eax, 4
mov word [ebx + 8], ax
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
cmp byte [esi + 2], 0
je 0x66627010
mov eax, 1
mov word [ebx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea ebx, [eax + edx*8]
test word [ebx + 8], 0x2400
jne 0x6662653b
mov eax, 4
mov word [ebx + 8], ax
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov esi, dword [eax + 0x30]
mov eax, esi
call fcn.66587740
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x2c]
cmp dword [eax + 0x70], ecx
jb 0x66620b51
mov eax, dword [esi + 0x74]
mov edi, 0
movzx edx, word [esi + 0x30]
mov eax, dword [eax + 0x3c]
sub eax, dword [esi + 0x28]
cmovs eax, edi
mov edi, dword [esi + 0x28]
cmp edx, eax
mov dword [ebx + 0x10], edi
cmovle eax, edx
cmp ecx, eax
ja 0x6662783c
mov eax, 0x1010
mov dword [ebx + 0xc], ecx
mov word [ebx + 8], ax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], 0
test eax, eax
jne case.0x6661fd89.86
mov eax, ebx
call fcn.665a32a0
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
jmp 0x6662449a
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x40]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x30]
cmp byte [eax + 0x38], 0
jne 0x66625d15
mov esi, dword [eax + 0x24]
mov edi, dword [esi]
add esi, 8
cmp dword [ebx + 0x18], edi
jl 0x66628073
mov edx, dword [ebx + 0x14]
movzx eax, word [ebx + 8]
mov dword [ebx + 0x10], edx
and eax, 0x2d
and ax, 0x3e40
mov dword [ebx + 0xc], edi
or eax, 0x10
mov word [ebx + 8], ax
mov dword [esp], edx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x30], 0
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x24], 0
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [eax + 0x60]
mov dword [esp + 0x30], esi
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
mov esi, dword [edx + 0x20]
test esi, esi
je 0x66626768
cmp byte [edx + 0x38], 0
jne 0x66625dec
mov ecx, dword [edx + 0x24]
mov edx, dword [ecx]
add ecx, 8
mov dword [esp], esi
mov eax, edi
call fcn.665966c0
test ebx, ebx
jle 0x66626ec3
mov eax, dword [esi + 4]
xor edx, edx
add eax, 8
jmp 0x66624b2e
add edx, 1
add eax, 0x28
cmp ebx, edx
je 0x66626ec3
test byte [eax], 1
je 0x66624b20
jmp 0x66622e90
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x24], 0
jne case.0x6661fd89.86
mov ebx, dword [eax + 0x30]
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [ebx + 0x10], 0
mov byte [ebx], 1
jmp case.0x6661fd89.86
mov dword [esp + 0xd0], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x58], eax
test word [eax + 8], 0x2400
jne 0x6662652d
mov eax, dword [esp + 0x58]
mov edx, 4
mov word [eax + 8], dx
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
test byte [edi + 8], 2
je 0x666274c9
mov edx, dword [ebp + 0xc]
lea ebx, [esp + 0xd0]
test edx, edx
je 0x666279b0
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
lea edx, [edx + edx*4]
shl edx, 3
mov eax, dword [eax + 0xc8]
add ebx, edx
mov dword [esp + 0x50], ebx
test eax, eax
jne 0x66625a30
mov ebx, dword [esp + 0x50]
mov eax, ebx
call fcn.6659ac20
mov ecx, dword [ebx]
mov ebx, dword [ebx + 4]
mov eax, ecx
mov edx, ebx
not eax
xor edx, 0x7fffffff
or edx, eax
je 0x6662a61b
test byte [edi + 8], 2
jne 0x6662a61b
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov esi, ebx
cmp ecx, eax
sbb esi, edx
jl 0x66624c5d
mov eax, ecx
mov edx, ebx
add eax, 1
adc edx, 0
mov ebx, dword [esp + 0x50]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebx, dword [esp + 0x58]
mov byte [edi + 3], 0
mov dword [edi + 0x24], 0
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea esi, [eax + edx*8]
test word [esi + 8], 0x2400
jne 0x66626238
mov ecx, 4
mov word [esi + 8], cx
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov ecx, eax
mov ebx, edx
add ecx, 1
adc ebx, 0
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], ebx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
movzx edx, word [eax + 0xc]
cmp edx, ecx
jl 0x66625cfb
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jle case.0x6661fd89.86
mov word [eax + 0xc], cx
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x30]
cmp byte [ebx], 0
jne case.0x6661fd89.86
mov ecx, eax
mov eax, dword [eax + 0x34]
mov esi, dword [ebp + 4]
mov dword [esp + 0x50], ebp
mov edi, dword [esp + 0x40]
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 0x24]
mov byte [esp + 0xda], 0
mov word [esp + 0xd8], ax
mov eax, dword [ebp + 0x20]
mov ebp, ecx
mov dword [esp + 0x30], esi
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
xor edi, edi
mov dword [esp + 0xd4], eax
jmp 0x66624de6
mov dword [esp + 0x124], ecx
mov eax, 0x1010
mov word [esp + 0x120], ax
mov eax, ecx
mov dword [esp], edi
lea ecx, [esp + 0xd0]
call fcn.665b0490
mov ebx, eax
test word [esp + 0x120], 0x2400
jne 0x66624d9f
mov eax, dword [esp + 0x130]
test eax, eax
je 0x66624dab
lea eax, [esp + 0x118]
call fcn.66592910
test ebx, ebx
jg 0x66629fe5
je 0x6662a5bf
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x66629d08
sub eax, 1
mov dword [esp + 4], edi
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x30]
mov dword [esp], eax
call fcn.665e58c0
test eax, eax
jne 0x66629cf1
mov ebx, dword [ebp + 0x30]
mov eax, ebx
mov esi, 0x7ffffffe
call fcn.66587740
mov ecx, dword [ebx + 0x2c]
xor edx, edx
mov eax, ecx
add eax, 0xffffffff
adc edx, 0xffffffff
cmp esi, eax
mov esi, edi
sbb esi, edx
jb 0x66626f35
xor eax, eax
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x130], edi
mov word [esp + 0x120], ax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x138], eax
movzx eax, word [ebx + 0x30]
mov esi, eax
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x128], edx
sub eax, edx
cmovs eax, edi
cmp esi, eax
cmovle eax, esi
cmp ecx, eax
jbe 0x66624d61
lea eax, [esp + 0x118]
xor edx, edx
mov dword [esp], eax
mov eax, ebx
call fcn.665e6d80
test eax, eax
jne 0x66627320
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
jmp 0x66624d77
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + edx*4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x66625a5d
mov dword [esp + 0x30], 0
xor edi, edi
mov esi, dword [edx + 0x30]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0xc4], 0
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x60], eax
mov dword [esp + 0x78], ecx
mov ebx, dword [ecx + 0x54]
call fcn.66587740
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x2c]
cmp ecx, 0x7f
ja 0x6662776a
mov byte [ebx], cl
mov eax, 1
add eax, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x70]
test eax, eax
je 0x666278de
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x28]
movzx ebx, word [ecx + 0x30]
mov dword [esp + 0x94], edx
lea edi, [edx + ebx]
mov edx, dword [ecx + 0x74]
mov dword [esp + 0x30], edi
mov ecx, dword [edx + 0x3c]
mov dword [esp + 0x80], ecx
cmp edi, ecx
ja 0x66628e22
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x70], edi
movzx edx, word [ecx + 0xe]
cmp ebx, edi
je 0x66627894
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x70]
movzx esi, dx
xor edx, edx
mov dword [esp + 0x8c], 0
mov eax, dword [eax + 0x14]
cmp esi, edi
mov dword [esp + 0x88], edi
mov dword [esp + 0xa0], esi
mov eax, dword [eax]
mov dword [esp + 0xc8], 0
mov dword [esp + 0x98], eax
mov eax, edx
sbb eax, 0
jge 0x666271a8
movzx edx, word [ecx + 0x10]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov eax, edx
mov dword [esp + 0x58], edx
xor edx, edx
sub esi, eax
mov eax, dword [ecx + 0x34]
sbb edi, edx
mov eax, dword [eax + 0x28]
mov dword [esp + 0xc], 0
mov dword [esp], esi
sub eax, 4
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call sub.libgcc_s_dw2_1.dll___moddi3
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
add eax, edx
cmp dword [esp + 0xa0], eax
cmovl eax, edx
mov edx, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
sub eax, dword [ecx + 0x54]
mov ecx, dword [esp + 0x70]
add eax, edx
cmp edx, ecx
jae 0x666271bd
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
add eax, 4
mov esi, dword [esp + 0x78]
lea ecx, [edi + edx]
mov dword [esp + 0x88], ecx
mov dword [esi + 0x58], eax
cmp ebx, dword [esp + 0x70]
jae 0x6662719b
mov eax, dword [esp + 0x94]
lea eax, [eax + ebx + 4]
cmp dword [esp + 0x80], eax
jb 0x66629f31
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
bswap eax
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x94], ebp
mov dword [esp + 0x80], 0
mov ebp, dword [esp + 0x98]
jmp 0x66625166
mov eax, dword [esp + 0xc4]
test eax, eax
jne 0x666251c8
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x666251d0
mov dword [esp + 4], 0
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x118]
mov dword [esp], 0
mov dword [esp + 0x118], 0
call fcn.665dfd00
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xd0]
bswap eax
mov dword [ecx], eax
mov eax, dword [esp + 0x78]
cmp byte [eax + 0x11], 0
je 0x66626bd0
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x6662511b
lea eax, [esp + 0xc4]
mov edx, dword [esp + 0xd0]
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, 4
mov dword [esp], eax
mov eax, dword [esp + 0x78]
call fcn.665e05c0
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 0x48]
call fcn.6658dc20
mov eax, dword [esp + 0x118]
mov dword [esp + 0x80], eax
test eax, eax
je 0x6662515b
mov eax, dword [eax + 0x38]
mov dword [eax], 0
mov dword [esp + 0x88], eax
add eax, 4
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x28]
lea esi, [eax - 4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
cmp esi, eax
cmova esi, eax
mov eax, dword [esp + 0xc4]
test eax, eax
jne 0x666251d0
sub dword [esp + 0x70], esi
test ebx, ebx
jne 0x66626a48
test esi, esi
je 0x66625068
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x6662518a
call fcn.6658dc20
lea eax, [esp + 0xc8]
mov dword [esp + 0xc], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc8], 0
mov dword [esp + 4], eax
mov dword [esp], ebp
call dword [ebp + 0xcc]
mov dword [esp + 0xc4], eax
test eax, eax
je 0x66626a80
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x6662515b
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x94]
test eax, eax
je 0x666251ea
mov eax, dword [eax + 0x48]
call fcn.6658dc20
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x666251fa
call fcn.6658dc20
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
mov edi, dword [esp + 0x38]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x50], 0
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x58], 0
mov edx, dword [edi + 0x60]
lea eax, [eax + eax*4]
mov ebx, dword [edx + ecx*4]
mov edx, dword [ebp + 0xc]
lea eax, [esi + eax*8]
lea edx, [edx + edx*4]
mov edi, dword [esi + edx*8 + 4]
mov esi, dword [esi + edx*8]
mov dword [esp + 0x124], edi
mov dword [esp + 0x120], esi
cmp byte [ebp + 1], 0xfa
je 0x66626580
movzx ecx, word [ebp + 2]
test cl, 1
je 0x66625278
mov edx, dword [esp + 0x38]
add dword [edx + 0x2c], 1
test cl, 0x20
je 0x66625287
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x28], esi
mov dword [edx + 0x2c], edi
mov edx, dword [eax + 0x10]
mov dword [esp + 0x128], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x134], edx
xor edx, edx
test cl, 0x10
je 0x666252a5
mov edx, dword [ebx + 0x28]
xor esi, esi
test byte [eax + 9], 0x40
jne 0x66625a75
mov eax, dword [ebx + 0x30]
mov dword [esp], edx
and ecx, 0x8a
mov dword [esp + 0x138], esi
lea esi, [esp + 0x118]
mov dword [esp + 0x118], 0
mov edx, esi
call fcn.665e6060
mov byte [ebx + 3], 0
mov dword [esp + 0x30], eax
mov dword [ebx + 0x24], 0
test eax, eax
jne 0x66621a37
mov eax, dword [esp + 0x50]
test eax, eax
je case.0x6661fd89.86
mov ecx, dword [eax]
movzx eax, word [ebp + 2]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x124]
and eax, 4
mov esi, dword [esp + 0x120]
cmp ax, 1
mov edx, dword [ebx + 0xf4]
mov dword [esp + 0x14], edi
sbb eax, eax
mov edi, dword [esp + 0x58]
mov dword [esp + 0x10], esi
and eax, 0xfffffffb
mov dword [esp + 0xc], ecx
add eax, 0x17
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xf0]
mov dword [esp], eax
call edx
jmp case.0x6661fd89.86
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 4]
xor ebx, ebx
mov dword [esp + 0x50], 0
cmp byte [ebp + 1], 0xfa
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + edx*4]
movzx edx, word [ebp + 2]
mov eax, dword [edi + 0x30]
je 0x66626625
movzx edx, dl
call fcn.665e5ad0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov esi, eax
test eax, eax
jne 0x66622780
and dword [esp + 0x30], 1
je case.0x6661fd89.86
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
add dword [eax + 0x2c], 1
mov eax, dword [ecx + 0xf4]
test eax, eax
je case.0x6661fd89.86
test byte [ebx + 0x24], 0x80
jne case.0x6661fd89.86
mov esi, dword [edi + 0x48]
mov edi, dword [edi + 0x4c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x50]
mov edx, dword [ebx]
mov dword [esp + 4], 9
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov edx, dword [ecx + 0xf0]
mov dword [esp], edx
call eax
jmp case.0x6661fd89.86
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x30]
mov dword [ebx + 0x14], 0
test edi, edi
jne 0x66621a37
movzx eax, word [esi + 8]
test al, 0x12
je case.0x6661fd89.86
test al, 2
je 0x6662545b
movzx edx, byte [esp + 0x6b]
cmp byte [esi + 0xa], dl
je 0x6662545b
mov eax, esi
call fcn.665a3300
movzx eax, word [esi + 8]
test al, 0x12
je case.0x6661fd89.86
mov edx, dword [esi + 0xc]
test ah, 0x40
je 0x66625465
add edx, dword [esi]
mov eax, dword [esi + 0x20]
cmp dword [eax + 0x70], edx
jge case.0x6661fd89.86
jmp 0x66620b51
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x3c]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x666255aa
lea esi, [esp + 0x118]
mov eax, ebx
mov ecx, esi
call fcn.665f7b10
mov dword [esp + 0x30], eax
test eax, eax
jne 0x6662aa8a
mov eax, dword [esp + 0x38]
test byte [eax + 0x98], 0x40
je 0x6662718b
mov eax, dword [ebp + 8]
test eax, eax
je 0x6662718b
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x51], 0
je 0x666254e7
cmp dword [eax + 0xb8], 1
jle 0x6662718b
mov edi, dword [esp + 0x38]
mov esi, dword [edi + 0x30]
test esi, esi
jne 0x66625514
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x1e8]
mov esi, ecx
mov dword [esp + 0x50], ecx
add esi, 1
mov dword [eax + 0x1e8], esi
add esi, dword [eax + 0x1e4]
mov dword [edi + 0x30], esi
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 0x184]
test edi, edi
je 0x6662553b
xor edx, edx
lea ecx, [esi - 1]
call fcn.66593230
test eax, eax
jne 0x6662a03e
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x30]
cmp byte [ebx + 9], 0
mov edi, dword [ebx + 4]
je 0x6662a7f5
add dword [ebx + 0xc], 1
cmp byte [ebx + 0xa], 0
jne 0x6662aa5c
mov eax, ebx
call fcn.6658e4e0
mov eax, dword [edi]
cmp esi, dword [eax + 0x60]
jle 0x6662556e
cmp byte [eax + 6], 0
jne 0x6662a805
cmp byte [ebx + 9], 0
je 0x6662557e
sub dword [ebx + 0xc], 1
je 0x6662aa6c
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov eax, dword [ebx + 0x1f0]
mov edx, dword [ebx + 0x1f4]
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0x1f8]
mov dword [esi + 0x4c], edx
mov edx, dword [ebx + 0x1fc]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edx
cmp word [ebp + 2], 0
je 0x666255dd
mov eax, dword [esp + 0x118]
cmp dword [ebp + 0xc], eax
jne 0x6662a9b6
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ebx + 0x10]
mov ebx, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + 4], ebx
jne 0x6662a9b6
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x66621a37
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov esi, 0x7f
not ecx
mov edx, ebp
cmp esi, ecx
not edx
mov esi, 0
sbb esi, edx
jl 0x66625750
add dword [esp + 0x60], 1
mov dword [ebx + 0x1c], 1
adc dword [esp + 0x64], 0
jmp 0x66623d19
test ebx, ebx
je 0x66626a18
mov esi, dword [ebx + 8]
mov edi, dword [esi]
mov eax, dword [edi + 0x38]
test eax, eax
je 0x66625670
test edx, edx
jle 0x66627985
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x184]
xor eax, eax
jmp 0x6662566b
add eax, 1
cmp edx, eax
je 0x66627985
cmp ebx, dword [ecx + eax*4]
jne 0x66625660
mov edx, dword [esi + 8]
mov dword [esp + 0x30], 0
test edx, edx
je case.0x6661fd89.86
mov edi, dword [esp + 0x38]
mov edx, dword [edi + 0x7c]
mov eax, dword [edi]
test edx, edx
je 0x6662569d
mov dword [esp + 0x50], eax
call fcn.665926e0
mov eax, dword [esp + 0x50]
mov edx, dword [esi + 8]
call fcn.66591c60
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x7c], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [esi + 8], 0
jmp 0x666214a0
test al, 8
je 0x66625780
add dword [esp + 0x58], 1
mov dword [ebx + 0x1c], 7
add dword [esp + 0x60], 8
adc dword [esp + 0x64], 0
jmp 0x66623d19
mov eax, 0x6667f387
mov esi, 7
jmp 0x6661ff30
mov dword [esp + 0x48], esi
add ebp, 0x14
mov dword [esp + 0x4c], edi
jmp 0x6661fd70
mov eax, ebp
sub eax, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
mov esi, 9
sar eax, 2
mov ebp, ebx
mov dword [esp + 0x48], 0xffffffff
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov esi, 0x7fff
cmp esi, ecx
mov esi, 0
sbb esi, edx
jb 0x66625852
add dword [esp + 0x60], 2
mov dword [ebx + 0x1c], 2
adc dword [esp + 0x64], 0
jmp 0x66623d19
mov edx, eax
mov esi, dword [ebx + 0xc]
shr dx, 1
and edx, 1
lea edi, [edx + esi*2 + 0xc]
test ah, 0x40
je 0x666257b2
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov eax, dword [ebx]
or ecx, edx
lea edi, [edi + eax*2]
jne 0x66626f63
cdq
add dword [esp + 0x78], eax
adc dword [esp + 0x7c], edx
xor edx, edx
mov eax, edi
add dword [esp + 0x60], esi
mov ecx, 1
adc dword [esp + 0x64], edx
xor edx, edx
shrd eax, edx, 7
shr edx, 7
mov esi, edx
or esi, eax
je 0x666257e8
lea esi, [esi]
shrd eax, edx, 7
shr edx, 7
add ecx, 1
mov ebp, edx
or ebp, eax
jne 0x666257d8
add dword [esp + 0x58], ecx
mov dword [ebx + 0x1c], edi
jmp 0x66623d19
mov ebx, dword [esp + 0x30]
cmp byte [ebp + 0x53], 0
jne 0x6661fff7
test byte [ebp + 0x5a], 4
je 0x6662582f
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xd4]
mov dword [esp], 4
mov dword [esp + 4], eax
call dword [ebp + 0xd0]
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x30], 0x64
mov esi, dword [esp + 0x48]
add eax, 1
mov dword [edi + 0x24], eax
mov edi, dword [esp + 0x4c]
jmp 0x6661fe69
mov esi, 0x7fffff
cmp esi, ecx
mov esi, 0
sbb esi, edx
jae 0x66625a47
mov esi, 0x7fffffff
cmp esi, ecx
mov ecx, 0
sbb ecx, edx
jb 0x66627963
add dword [esp + 0x60], 4
mov dword [ebx + 0x1c], 4
adc dword [esp + 0x64], 0
jmp 0x66623d19
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [eax + 0x10]
jmp 0x66620ef8
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x88]
cmp eax, 0x7e
jg 0x6662679e
add eax, 1
mov dword [esp + 0x94], eax
mov dword [esp + 0x88], eax
sar eax, 0x1f
mov dword [esp + 0x8c], eax
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x7c]
mov ecx, dword [ebx + 0x18]
add eax, dword [esp + 0x88]
mov edx, dword [esp + 0x64]
adc edx, dword [esp + 0x8c]
mov dword [esp + 0x58], eax
add esi, eax
mov eax, ecx
adc edi, edx
mov dword [esp + 0x5c], edx
sar eax, 0x1f
cmp ecx, esi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
sbb eax, edi
jl 0x666270aa
mov esi, dword [ebx + 0x14]
mov dword [ebx + 0x10], esi
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
mov eax, 0x10
mov dword [edi + 0xc], ebx
mov ebx, dword [esp + 0x7c]
mov word [edi + 8], ax
mov edx, ebx
or edx, ecx
je 0x66625957
mov ebx, 0x4010
mov dword [edi], ecx
mov word [edi + 8], bx
mov eax, dword [esp + 0x94]
lea ebx, [esi + eax]
cmp eax, 0x7f
jle 0x666270ea
mov edx, dword [esp + 0x88]
mov eax, 0x3fff
mov ecx, dword [esp + 0x8c]
cmp eax, edx
mov eax, 0
sbb eax, ecx
jae 0x666292ba
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov eax, esi
call fcn.66581dc0
movzx eax, al
add esi, eax
mov edi, esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x50], ebp
jmp 0x666259ce
cmp ecx, 0xb
ja 0x66626ad0
add esi, 0x28
cmp dword [esp + 0x70], esi
jb 0x66626d24
mov ecx, dword [esi + 0x1c]
cmp ecx, 0x7f
ja 0x66626ab0
lea eax, [ecx - 1]
mov byte [edi], cl
add edi, 1
cmp eax, 6
ja 0x666259b8
movzx ebp, byte [ecx + 0x66690040]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, ebp
lea esi, [esi]
sub ecx, 1
mov byte [ebx + ecx], al
shrd eax, edx, 8
shr edx, 8
test ecx, ecx
jne 0x666259f8
add ebx, ebp
jmp 0x666259c1
mov dword [esp + 0x60], eax
movzx ecx, word [esp + 0x58]
mov dword [esp + 0x64], edx
fild qword [esp + 0x60]
mov eax, dword [esp + 0x50]
or ecx, 8
mov word [eax + 8], cx
fstp qword [eax]
jmp 0x66624890
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x66625a30
mov esi, dword [ecx + 0x10]
add esi, edx
mov dword [esp + 0x50], esi
jmp 0x66624c0f
add dword [esp + 0x60], 3
mov dword [ebx + 0x1c], 3
adc dword [esp + 0x64], 0
jmp 0x66623d19
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
jmp 0x66624ea5
mov esi, dword [eax]
jmp 0x666252b1
test word [ecx + 8], 0x2400
jne 0x666284b4
mov eax, dword [esp + 0x58]
mov esi, 1
mov word [eax + 8], si
jmp case.0x6661fd89.86
mov eax, ecx
and eax, 0x20
mov word [esp + 0x60], ax
test cl, 0x80
je 0x66627d0f
mov eax, edx
movzx edx, word [esp + 0x50]
and eax, edx
test al, 1
je 0x66625ac3
and dh, 1
je 0x666272d4
test byte [esp + 0x70], 1
jne 0x6662013a
mov eax, 1
movzx edx, byte [edi + 0x666886e8]
jmp 0x66620146
movzx eax, word [esi + 8]
mov word [esp + 0x58], ax
and eax, 0x2e
cmp ax, 2
je 0x666290e5
mov eax, esi
mov dword [esp + 0x60], ecx
call fcn.6658cc70
movzx ecx, word [esp + 0x58]
mov dword [esp + 0x50], eax
movzx eax, word [esi + 8]
mov dword [esp + 0x54], edx
test al, 0x24
mov word [esi + 8], cx
mov ecx, dword [esp + 0x60]
jne 0x6662740e
test al, 8
jne 0x666273f3
cmp edi, 0x17
jg 0x6661fed0
test al, 1
jne 0x6661fed0
mov eax, dword [ecx + 0x30]
lea ebx, [esp + 0xd0]
mov edx, ebx
call fcn.665b2fa0
mov esi, eax
test eax, eax
jne 0x66622780
mov ecx, dword [esp + 0xd0]
test ecx, ecx
jne 0x6662720e
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
lea eax, [eax + eax*4]
lea esi, [esp + 0x118]
xor edx, edx
lea ecx, [ecx + eax*8]
xor eax, eax
mov dword [esi + eax], edx
add eax, 4
cmp eax, 0x20
jb 0x66625b82
test word [ecx + 8], 0x2400
jne 0x6662843b
mov eax, 1
mov word [ecx + 8], ax
mov dword [esp + 0x120], edi
mov dword [esp], esi
mov dword [esp + 0x118], ecx
mov dword [esp + 0x11c], ebx
call dword [ebx + 0x18]
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
jmp 0x66620b0a
mov ecx, dword [esi + 0x30]
xor edx, edx
mov edi, dword [ecx]
mov eax, dword [edi]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + eax + 0x11c], edx
add eax, 4
cmp eax, 0x1c
jb 0x66625be9
mov dword [esp + 0x118], ebx
test byte [ebp + 2], 1
jne 0x666284f1
movzx eax, word [ebx + 8]
and ax, 0x3e40
or eax, 1
mov word [ebx + 8], ax
mov eax, dword [ebp + 8]
lea esi, [esp + 0x118]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
call dword [eax + 0x2c]
mov edx, dword [edi + 8]
mov dword [esp + 0x30], eax
test edx, edx
je 0x66625c7c
mov esi, dword [esp + 0x38]
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi]
test ecx, ecx
je 0x66625c5e
mov edx, ecx
mov dword [esp + 0x50], eax
call fcn.665926e0
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x50]
call fcn.66591c60
mov esi, dword [esp + 0x38]
mov dword [esi + 0x7c], eax
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [edi + 8], 0
mov ecx, dword [esp + 0x12c]
test ecx, ecx
jg 0x666280ad
movzx eax, word [ebx + 8]
test al, 2
je 0x66625ca8
movzx edx, byte [esp + 0x6b]
cmp byte [ebx + 0xa], dl
je 0x66625ca8
mov eax, ebx
call fcn.665a3300
movzx eax, word [ebx + 8]
test al, 0x12
je 0x666214a0
mov edx, dword [ebx + 0xc]
test ah, 0x40
je 0x66625cba
add edx, dword [ebx]
mov eax, dword [ebx + 0x20]
cmp dword [eax + 0x70], edx
jge 0x666214a0
jmp 0x66620b51
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x44]
or eax, dword [esi + 0x40]
jne case.0x6661fd89.86
mov edi, dword [esp + 0x3c]
mov eax, dword [edi + 0x1fc]
or eax, dword [edi + 0x1f8]
jne case.0x6661fd89.86
jmp 0x6661fed0
mov word [eax + 0xc], cx
jmp case.0x6661fd89.86
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.0x6661fd89.86
cmp byte [eax + 0x39], 0
je 0x66627c30
mov eax, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x20]
jmp 0x66624a6f
mov eax, dword [ebp - 4]
add eax, 4
mov dword [esp + 0x50], eax
jmp 0x666245cd
mov eax, dword [edi + 0x24]
mov esi, dword [edi + 0x28]
mov edx, eax
mov eax, dword [eax + 4]
mov dword [edi + 0x24], eax
mov ecx, eax
mov dword [edx + 4], 0
test esi, esi
je 0x6662844f
test ecx, ecx
jne 0x6662860d
mov dword [ebx + 0x24], 0
jmp 0x66620c7d
cmp eax, 5
jne 0x66622780
mov dword [esp + 0x118], 1
mov eax, 1
jmp 0x66622d42
mov dword [esp + 0x88], 0
mov ebx, 1
jmp 0x66621bc5
test word [ebx + 8], 0x2400
jne 0x6662842f
mov eax, 1
mov word [ebx + 8], ax
jmp case.0x6661fd89.86
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x666272ff
mov eax, dword [eax + edi*4 + 4]
test eax, eax
je 0x666272ff
cmp byte [ebx + 2], 0
jne 0x666272ff
sub eax, 1
mov ebx, dword [ebx + 0x2c]
mov dword [esp + 0x58], eax
jmp 0x666246c6
cmp byte [edx + 0x39], 0
je 0x66627dcb
mov eax, dword [edx + 0x10]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x20]
jmp 0x66624afe
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
test word [eax + 8], 0x2400
jne 0x666285bc
mov edx, 1
mov dword [esp + 0x30], 0
mov word [eax + 8], dx
jmp case.0x6661fd89.86
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x30]
mov eax, dword [eax + 0x38]
mov edx, esi
mov ecx, dword [eax + 0x24]
mov eax, ebx
bswap ecx
mov dword [esp + 0x30], ecx
call fcn.66595330
mov dword [esp + 0x50], eax
cmp esi, eax
jb 0x66629044
mov ecx, dword [esp + 0x30]
cmp esi, ecx
jbe 0x66629044
test ecx, ecx
je 0x666240e7
mov eax, dword [ebx + 8]
test eax, eax
jne 0x66629848
mov dword [esp], 0
mov edx, dword [esp + 0x50]
mov ecx, esi
mov eax, ebx
call fcn.665e0fc0
mov dword [esp + 0x30], eax
test eax, eax
je 0x66629878
cmp byte [edi + 9], 0
jne 0x6662a84e
cmp dword [esp + 0x30], 0x65
je 0x66622e90
jmp 0x66621a37
movsx edx, byte [ebx]
movzx esi, byte [esp + 0x6b]
mov edi, dword [esp + 0x50]
jmp 0x66625ee2
movsx edx, byte [ebx + 1]
add ebx, 1
add edi, 0x28
test dl, dl
je 0x66623ccc
mov ecx, esi
mov eax, edi
call fcn.665be040
cmp byte [ebx], 0x45
jne 0x66625ed0
movzx eax, word [edi + 8]
test al, 4
je 0x66625ed0
and eax, 0xfffffffb
or eax, 0x20
mov word [edi + 8], ax
jmp 0x66625ed0
mov eax, dword [esp + 0x38]
mov dword [ebx], esi
mov dword [ebx + 0xc], eax
lea eax, [ecx - 1]
test ecx, ecx
je 0x66620a33
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x40]
add edx, eax
lea edx, [edx + edx*4]
lea edx, [edi + edx*8]
lea esi, [esi]
nop
mov dword [ebx + eax*4 + 0x1c], edx
sub eax, 1
sub edx, 0x28
cmp eax, 0xffffffff
jne 0x66625f30
jmp 0x66620a33
mov eax, dword [esp + 0x58]
call fcn.665b3020
mov edi, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov byte [edi + 3], 0
mov dword [edi + 0x24], 0
test eax, eax
jne 0x66621a37
mov eax, dword [esp + 0x60]
mov byte [eax + 2], 0
jmp case.0x6661fd89.86
test byte [edx + 9], 0x40
je 0x66625f92
mov eax, edx
mov dword [esp + 0x30], edx
call fcn.665a3120
mov edx, dword [esp + 0x30]
test eax, eax
jne 0x66624a25
mov eax, dword [edi + 0x34]
mov dword [esp + 0x30], edx
call fcn.66591960
mov edx, dword [esp + 0x30]
test eax, eax
mov esi, eax
je 0x66624a25
mov ecx, dword [edx + 0x10]
mov eax, dword [edi + 0x34]
mov edx, dword [edx + 0xc]
mov dword [esp], esi
call fcn.665966c0
mov byte [esi + 0xa], 0
cmp byte [ebp], 0x1c
je 0x66629fee
lea ebx, [esp + 0xd0]
mov eax, dword [edi + 0x30]
mov edx, esi
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov dword [esp + 4], 0
call fcn.665e4f30
mov dword [esp + 0x50], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
mov edx, esi
call fcn.665926e0
jmp 0x666206c0
mov ecx, dword [ebp + 0x10]
jmp 0x666208f9
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ebp, [ebx + eax*4 - 0x14]
jmp case.0x6661fd89.86
mov eax, dword [ebx]
test eax, eax
je 0x6662605d
movzx edx, word [eax + 8]
mov ecx, edx
and cx, 0x202
cmp cx, 0x202
je 0x66628ded
and edx, 1
jne 0x666290d0
mov edx, 1
call fcn.665ac380
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0x6667eaa2
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x30], eax
jmp 0x66620f09
movzx eax, word [esi + 8]
test ah, 0x24
jne 0x66627a8c
mov edi, 1
mov word [esi + 8], di
jmp case.0x6661fd89.11
mov dword [esp + 0x50], 0x88
mov ebx, 0x88
mov dword [esp + 0x58], 0
jmp 0x66623697
mov eax, edi
call fcn.665a3190
mov ebx, eax
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x60], eax
movzx eax, word [eax + 8]
mov edx, eax
and dx, 0x2c
je 0x66620201
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x40]
and edx, ebx
and edx, 4
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
mov dword [esp + 0x70], esi
movzx esi, word [edi + 8]
je 0x6662acee
mov eax, dword [edi]
mov edx, dword [edi + 4]
movzx ecx, byte [ebp]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
cmp cl, 0x6c
je 0x666291a2
ja 0x66626f9f
cmp cl, 0x6a
je 0x66629003
cmp cl, 0x6b
jne 0x666291e6
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x50]
sbb ebx, dword [esp + 0x54]
jo 0x66620228
mov edi, ecx
mov eax, ebx
mov ecx, dword [esp + 0x70]
mov dword [ecx + 4], eax
movzx eax, word [ecx + 8]
mov dword [ecx], edi
mov word [esp + 0x50], ax
and ax, 0x3e40
or eax, 4
mov word [ecx + 8], ax
jmp case.0x6661fd89.86
call fcn.66592860
mov dword [esp + 0x58], eax
jmp 0x666214e1
mov ecx, dword [esp + 0x58]
cmp ecx, dword [eax + 0x1c]
je 0x666276da
mov esi, dword [eax + 8]
mov dword [esp + 0x78], esi
test esi, esi
je 0x666276cf
test byte [eax + 0x1a], 1
je 0x66629e58
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x6662aecd
mov dword [esp + 0x88], ebx
mov esi, dword [esp + 0x78]
mov dword [esp + 0x80], ebp
mov ebp, eax
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x66627620
mov eax, dword [ebx + 0xc]
lea edx, [esp + 0xd0]
test eax, eax
je 0x6662621c
lea ecx, [esp + 0x118]
call fcn.66590b10
mov eax, dword [esp + 0x118]
mov dword [eax + 8], ebx
mov eax, dword [ebx + 8]
test eax, eax
je 0x66626b40
lea edx, [ebx + 8]
mov ebx, eax
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x666261ef
mov dword [edx], ebx
jmp 0x66626205
mov eax, esi
call fcn.665953e0
test eax, eax
je 0x66623e2a
jmp 0x66624490
mov eax, esi
call fcn.66592860
mov esi, eax
jmp 0x66624ca4
cmp byte [esp + 0x122], 1
mov edx, dword [esp + 0x128]
jne 0x66622381
jmp 0x66622397
lea edx, [ebx + ebx*2 + 0x66688710]
movzx ecx, byte [edx + eax]
jmp 0x6662075b
mov eax, ebx
call fcn.66592860
mov ebx, eax
mov eax, dword [ebp + 8]
jmp 0x666213b0
call fcn.66592860
jmp 0x6662421c
mov eax, esi
call fcn.665a3120
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66621a37
movzx ecx, word [ebp + 2]
jmp 0x66623c01
movzx ecx, byte [ebx]
test cl, cl
jne 0x6662ac77
mov eax, dword [ebx + 0x74]
cmp byte [eax + 8], 0
je 0x6662ac77
movzx eax, word [eax + 0x18]
movsx edi, byte [ebx + 0x44]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], eax
test edi, edi
jle 0x66623571
xor eax, eax
mov dword [esp + 0x58], ebp
mov edx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x50]
lea esi, [esi]
nop
mov esi, dword [ebx + esi*4 + 0x78]
add ecx, 1
movzx ebp, word [esi + 0x18]
mov esi, edx
imul esi, ebp
mul ebp
add edx, esi
movzx esi, cl
cmp edi, esi
jg 0x666262f0
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x54], edx
jmp 0x66623571
add eax, 1
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x38]
add dword [eax + 0xbc], 1
mov eax, dword [ebp + 8]
jmp 0x6661fed3
mov eax, edx
call fcn.66592860
mov edx, eax
jmp 0x6662308b
mov eax, edi
call fcn.66592860
mov edi, eax
jmp 0x66621985
mov eax, esi
call fcn.66592860
mov esi, eax
jmp 0x66622f05
movzx ecx, byte [esp + 0x6b]
mov eax, ebx
mov edx, 0x43
call fcn.665be040
movzx eax, word [ebx + 8]
test al, 4
jne 0x666226d6
mov eax, dword [ebp + 8]
test eax, eax
jne 0x6661fed3
mov eax, ebp
sub eax, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
mov esi, 0x14
sar eax, 2
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov eax, ebx
call fcn.665b3020
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66621a37
movzx ecx, byte [ebx]
test cl, cl
jne case.0x6661fd89.86
mov eax, dword [ebx + 0x74]
cmp byte [eax + 8], 0
je case.0x6661fd89.86
movzx eax, word [eax + 0x18]
xor edi, edi
mov esi, eax
movsx eax, byte [ebx + 0x44]
mov dword [esp + 0x58], eax
test eax, eax
jle 0x66626421
mov dword [esp + 0x60], ebp
xor eax, eax
lea esi, [esi]
mov eax, dword [ebx + eax*4 + 0x78]
mov ebp, edi
add ecx, 1
movzx eax, word [eax + 0x18]
imul ebp, eax
mov dword [esp + 0x50], eax
mul esi
mov edi, edx
mov esi, eax
movzx eax, cl
add edi, ebp
cmp eax, dword [esp + 0x58]
jl 0x666263f8
mov ebp, dword [esp + 0x60]
xor eax, eax
mov edx, 7
cmp edx, esi
mov edx, eax
sbb edx, edi
jl 0x66629743
mov edx, 1
cmp edx, esi
sbb eax, edi
mov eax, 0
jge 0x66626472
mov edx, 0x1e
xor ecx, ecx
shld edi, esi, 1
mov ebx, 7
add esi, esi
mov eax, edx
sub edx, 0xa
cmp ebx, esi
mov ebx, ecx
sbb ebx, edi
jae 0x6662644b
and esi, 7
movzx edx, word [esi + esi + 0x66689498]
lea eax, [eax + edx - 0xa]
cwde
cmp eax, dword [ebp + 0xc]
jge case.0x6661fd89.86
jmp 0x6661fed0
call fcn.66592860
mov edi, dword [esp + 0x38]
mov ebx, dword [ebp + 4]
mov ecx, dword [edi + 0xc8]
mov edx, dword [ecx + 0x30]
mov edi, dword [ecx + 8]
lea edx, [edx + edx*4]
lea edx, [edi + edx*4]
add ebx, dword [edx + 4]
mov edx, dword [ecx + 0x10]
lea ebx, [ebx + ebx*4]
lea edx, [edx + ebx*8]
test word [eax + 8], 0x2400
je 0x66621ad0
mov ecx, 0x1000
call fcn.665933d0
jmp case.0x6661fd89.86
test word [ebx + 8], 0x2400
jne 0x6662922a
mov edx, 1
mov word [ebx + 8], dx
jmp case.0x6661fd89.86
mov edx, dword [ebx + 0xc]
test ah, 0x40
je 0x666264ea
add edx, dword [ebx]
mov eax, dword [ebx + 0x20]
cmp dword [eax + 0x70], edx
jge 0x66624572
jmp 0x66620b51
mov ecx, 0x1000
call fcn.665933d0
jmp case.0x6661fd89.86
mov ecx, edx
mov edx, eax
mov eax, ebx
call fcn.665928a0
jmp case.0x6661fd89.86
mov eax, ecx
call fcn.66592860
mov ecx, eax
jmp 0x666241e5
call fcn.66592860
mov dword [esp + 0x58], eax
jmp 0x66624bc4
mov eax, ebx
call fcn.66592860
mov ebx, eax
jmp 0x666249a4
mov ecx, edx
mov edx, eax
mov eax, ebx
call fcn.665928a0
jmp case.0x6661fd89.86
call fcn.66592860
jmp 0x66621a71
lea esi, [esp + 0x118]
lea eax, [edx + 1]
mov edx, esi
call fcn.66588960
mov eax, dword [esp + 0x118]
jmp 0x666239ce
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0xf4]
test edx, edx
je 0x66625267
movsx edx, byte [ebx + 1]
shl edx, 4
add edx, dword [ecx + 0x10]
mov ecx, dword [edx]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x50], ecx
jmp 0x66625267
mov eax, ebx
call fcn.66592860
mov ebx, eax
jmp 0x66624178
mov eax, ebx
call fcn.66592860
mov ebx, eax
jmp 0x6662495a
call fcn.66592860
mov dword [esp + 0x58], eax
jmp 0x66622c08
mov eax, esi
call fcn.66592860
mov esi, eax
jmp 0x666222f7
movzx ecx, word [ebp + 2]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebx + 0xc]
sub eax, ecx
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
or dword [eax + 0x18], 1
jmp 0x66623400
mov eax, ebx
call fcn.66592820
jmp 0x66623607
mov eax, ebx
call fcn.66592860
mov ebx, eax
jmp 0x6662106a
call fcn.66592860
jmp 0x6662347e
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi + 0xf4]
test ecx, ecx
je 0x66625384
movsx ecx, byte [edi + 1]
shl ecx, 4
add ecx, dword [esi + 0x10]
mov ebx, dword [ecx]
mov dword [esp + 0x50], ebx
mov ebx, dword [ebp + 0x10]
test dl, 2
je 0x66625384
cmp byte [edi + 4], 0
je 0x66625384
mov dword [esp + 0x58], eax
call fcn.66587740
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [edi + 0x4c], edx
movzx edx, word [ebp + 2]
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x30]
jmp 0x66625384
mov eax, dword [esp + 0x3c]
call fcn.66596c40
jmp case.0x6661fd89.86
lea esi, [esp + 0x118]
xor edx, edx
mov eax, ebx
mov dword [esp], esi
call fcn.665e6d80
mov esi, eax
test eax, eax
jne 0x66622780
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
jmp 0x666203a3
mov eax, esi
call fcn.66592820
jmp 0x6662458b
mov edx, 4
mov eax, ecx
call fcn.665e5ad0
mov esi, eax
test eax, eax
je 0x6662396a
jmp 0x66622780
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.66598350
mov edi, dword [esp + 0x3c]
movzx eax, word [ebp + 2]
mov ecx, esi
mov edx, ebx
and dword [edi + 0x18], 0xffffffef
mov dword [esp], eax
mov eax, edi
call fcn.6662c910
or dword [edi + 0x18], 1
mov esi, eax
mov eax, dword [esp + 0x38]
and byte [eax + 0x98], 0xfc
test esi, esi
je 0x6662190b
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov eax, ebp
call fcn.66598530
cmp esi, 7
je 0x66624a2d
jmp 0x66622788
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
sub dword [eax + 0xc4], 1
jmp case.0x6661fd89.86
mov eax, edi
mov dword [esp + 0x50], edx
call fcn.66591960
mov edx, dword [esp + 0x50]
mov esi, eax
mov dword [edx + 0x20], eax
test eax, eax
je 0x66628086
mov word [eax + 8], bx
jmp 0x66624aec
mov eax, dword [edx + 4]
cmp eax, dword [ebp + 4]
jne 0x6662268d
jmp 0x6661fed0
mov eax, dword [esp + 0x58]
mov ecx, 1
cdq
shrd eax, edx, 7
shr edx, 7
mov ebx, edx
or ebx, eax
je 0x666267c8
lea esi, [esi]
shrd eax, edx, 7
shr edx, 7
add ecx, 1
mov esi, edx
or esi, eax
jne 0x666267b8
mov eax, dword [esp + 0x58]
mov ebx, 1
add eax, ecx
cdq
mov dword [esp + 0x94], eax
mov dword [esp + 0x88], eax
shrd eax, edx, 7
mov dword [esp + 0x8c], edx
shr edx, 7
shrd eax, edx, 7
shr edx, 7
add ebx, 1
mov edi, edx
or edi, eax
jne 0x666267f0
cmp ecx, ebx
jge 0x666258d2
add dword [esp + 0x94], 1
mov eax, dword [esp + 0x94]
mov dword [esp + 0x88], eax
sar eax, 0x1f
mov dword [esp + 0x8c], eax
jmp 0x666258d2
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x14]
mov eax, dword [eax + 0xc8]
test eax, eax
jne 0x66626853
jmp 0x6662317b
mov eax, dword [eax + 4]
test eax, eax
je 0x6662317b
cmp dword [eax + 0x1c], edx
jne 0x66626848
jmp case.0x6661fd89.86
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
test edx, edx
je case.0x6661fd89.86
add eax, 1
and eax, 3
mov ecx, eax
lea esi, [esi]
movzx eax, byte [edx + 0x98]
and eax, 0xfffffffc
or eax, ecx
mov byte [edx + 0x98], al
mov edx, dword [edx + 8]
test edx, edx
jne 0x66626878
jmp case.0x6661fd89.86
mov ebx, dword [eax + 0x1d8]
test ebx, ebx
je 0x6662a3ee
xor eax, eax
mov dword [esp + 0x60], ebp
mov ebp, eax
lea esi, [esi]
mov dword [esp + 0x50], ebx
mov ecx, dword [ebx]
mov edx, edi
jmp 0x666268d9
movzx ebx, byte [esi + 0x66690a80]
cmp byte [eax + 0x66690a80], bl
jne 0x66626ae5
add ecx, 1
add edx, 1
movzx eax, byte [ecx]
movzx esi, byte [edx]
cmp eax, esi
jne 0x666268c0
test eax, eax
jne 0x666268d3
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x60]
mov edx, dword [eax + 0xbc]
test edx, edx
jle 0x6662690c
cmp dword [esp + 0x58], 1
je 0x6662af90
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x60], 0
test edi, edi
je 0x66629ac1
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
not edi
add edi, dword [eax + 0x1e4]
cmp dword [esp + 0x58], 2
mov dword [esp + 0x50], edi
mov eax, dword [eax + 0x14]
je 0x66629a5c
mov dword [esp + 0x78], 0
test eax, eax
jle 0x66629ef8
mov esi, ebx
xor edi, edi
mov ebx, dword [esp + 0x3c]
jmp 0x66626967
add edi, 1
cmp dword [ebx + 0x14], edi
jle 0x66629663
mov eax, edi
shl eax, 4
add eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x6662695b
cmp byte [eax + 8], 2
jne 0x6662695b
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
call fcn.665e4550
test eax, eax
je 0x6662695b
mov dword [esp + 0x50], ebp
mov esi, eax
mov ebp, ebx
movzx eax, byte [ebx + 0x53]
jmp 0x6662278c
cmp eax, 0xa
jle 0x666271d4
test al, 1
je 0x666271d4
and byte [edi + 0x3c], 2
jmp 0x666239e7
mov ecx, str.cannot_start_a_transaction_within_a_transaction
test eax, eax
je 0x666269d0
test edx, edx
mov ecx, str.cannot_rollback___no_transaction_is_active
mov eax, str.cannot_commit___no_transaction_is_active
cmove ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov esi, 1
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov eax, edi
call fcn.665e5a80
mov esi, eax
test eax, eax
je 0x66620ca7
jmp 0x66622780
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x118]
mov esi, ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp], eax
call dword [ebx + 0x1c]
mov eax, esi
jmp 0x6662449a
cmp ebx, esi
mov edx, esi
mov eax, dword [esp + 0x50]
mov dword [esp + 4], edi
cmovbe edx, ebx
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0x58], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x58]
add dword [esp + 0x50], edx
sub esi, edx
sub ebx, edx
add edi, edx
jmp 0x66625172
mov eax, dword [esp + 0xc8]
mov edi, dword [eax + 4]
mov eax, dword [edi]
add edi, 4
bswap eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x14]
mov ebx, dword [eax + 0x28]
sub ebx, 4
jmp 0x6662516a
mov eax, ecx
xor edx, edx
cmp ecx, 0x3fff
jbe 0x66626be4
mov ecx, edx
mov edx, eax
mov eax, edi
call fcn.66581dc0
movzx eax, al
add edi, eax
mov eax, dword [esi + 0xc]
lea ebp, [ebx + eax]
test eax, eax
jne 0x66626ea9
mov ebx, ebp
jmp 0x666259c1
mov ebx, dword [esp + 0x50]
add ebp, 1
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x666268b0
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x3c]
mov ecx, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [esp + 4], str.no_such_savepoint:__s
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov esi, 1
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov dword [ebp + 0xc], 0
mov eax, dword [esp + 0xd0]
mov edx, esi
call fcn.66582500
mov esi, eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x66629b4a
mov ebp, eax
jmp 0x666261d6
cmp byte [eax + 2], 0
movzx ecx, word [ebx + 0x46]
jne 0x66626b80
xor edi, edi
movzx esi, dx
add dword [esp + 0x50], esi
adc dword [esp + 0x54], edi
mov esi, dword [eax + 0x38]
cmp dx, cx
je 0x66626e3a
mov edx, dword [eax + 0x40]
movzx ecx, cx
movzx edx, word [edx + ecx*2]
rol dx, 8
and dx, word [eax + 0x1a]
movzx eax, dx
mov edx, dword [esi + eax]
mov eax, ebx
bswap edx
call fcn.665b11e0
test eax, eax
je 0x666234df
mov ebp, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], eax
movzx eax, byte [ebp + 0x53]
jmp 0x6662278c
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x6662510c
jmp 0x6662511b
shrd eax, edx, 7
and ecx, 0x7f
or eax, 0xffffff80
mov byte [edi + 1], cl
mov byte [edi], al
mov eax, 2
jmp 0x66626ace
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x110]
call fcn.6658b360
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov edi, dword [esp + 0xe8]
test edi, edi
jne 0x666275aa
mov ebx, dword [esp + 0xe4]
test ebx, ebx
je 0x6662753f
mov eax, dword [esp + 0x58]
cmp byte [eax + 9], 0
je 0x66626c5b
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x60], eax
sub eax, 1
mov dword [esi + 0xc], eax
je 0x666285ce
mov edx, dword [esp + 0xfc]
test edx, edx
je 0x66626c91
mov eax, dword [esp + 0x108]
mov byte [edx + eax], 0
mov esi, dword [esp + 0x104]
test esi, esi
je 0x66626c8a
test byte [esp + 0x10d], 4
je 0x66629720
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x50]
test word [eax + 8], 0x2400
jne 0x66627750
mov eax, dword [esp + 0x50]
mov ecx, 1
mov word [eax + 8], cx
test ebx, ebx
je 0x66620fd5
test edx, edx
je 0x66624a25
mov eax, dword [esp + 0x70]
lea ecx, [ebx - 1]
mov ebx, ecx
sar ebx, 0x1f
sub dword [eax], ecx
mov ecx, 0xffffffff
sbb dword [eax + 4], ebx
mov eax, dword [esp + 0x50]
mov dword [esp + 4], sym.libsqlite3_0.dll_sqlite3_free
mov dword [esp], 1
call fcn.665a4a40
mov ecx, dword [esp + 0x50]
movzx edx, byte [esp + 0x6b]
test byte [ecx + 8], 2
je 0x66620fd5
movzx eax, byte [ecx + 0xa]
cmp edx, eax
je 0x66620fd5
mov eax, ecx
call fcn.665a3300
jmp 0x66620fd5
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov ebp, dword [esp + 0x50]
jmp case.0x6661fd89.86
mov dword [ebx + 8], esi
lea eax, [ecx - 1]
test ecx, ecx
je 0x66620ed5
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x40]
add edx, eax
lea edx, [edx + edx*4]
lea edx, [edi + edx*8]
lea esi, [esi]
mov dword [ebx + eax*4 + 0x1c], edx
sub eax, 1
sub edx, 0x28
cmp eax, 0xffffffff
jne 0x66626d50
jmp 0x66620ed5
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x1230d
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 dword [esp + 0x30], 0xb
cmp byte [edi + 9], 0
je 0x6662a879
mov eax, dword [edi + 0xc]
lea ebx, [eax - 1]
mov dword [edi + 0xc], ebx
test ebx, ebx
jne 0x6662ac15
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov eax, edi
call fcn.66582810
mov esi, dword [esp + 0x30]
mov dword [esp + 0x30], ebx
jmp 0x6662176e
mov eax, dword [esi + 4]
test eax, eax
js 0x66620ab0
cmp eax, 0x1f
jg 0x66620ac2
mov ecx, dword [esp + 0x70]
bt ecx, eax
jb 0x66620ab0
jmp 0x66620ac2
mov edx, dword [edi + 0x3c]
mov eax, dword [edi + 0x10]
mov dword [edi + 0x18], 0
xor ecx, ecx
mov dword [edi + 0x1c], 0
mov dword [edi + 0x24], 0
call fcn.665e4470
mov esi, eax
test eax, eax
jne 0x66622780
mov byte [edi + 2], 1
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
movzx eax, byte [eax + 9]
mov edx, dword [esi + eax + 8]
mov eax, ebx
bswap edx
call fcn.665b11e0
jmp 0x66626bad
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
jmp case.0x6661fd89.86
cmp byte [ecx + 0x38], 0
jne 0x6662778d
mov edi, dword [ecx + 0x24]
test edi, edi
je 0x666285dc
mov eax, dword [esp + 0x58]
lea edx, [eax + 0x24]
add eax, 0x40
call fcn.665919c0
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66621a37
mov eax, dword [esp + 0x60]
mov byte [eax + 2], 0
jmp case.0x6661fd89.86
call fcn.66592860
jmp 0x66621138
mov edx, dword [esi + 0x10]
mov dword [esp], ebx
mov ebx, ebp
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
jmp 0x666259c1
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
mov ecx, esi
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp], 0
call fcn.665b0490
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66622e90
mov edi, dword [ebp + 0x10]
movzx ecx, word [edi + 8]
jmp 0x666208f9
mov ebx, dword [esp + 0x40]
lea eax, [esi + esi*4]
mov dword [esp + 0x58], edx
lea ebx, [ebx + eax*8]
mov eax, ebx
call fcn.6659ac20
mov esi, dword [ebx]
mov edx, dword [esp + 0x58]
jmp 0x666208e1
mov ebx, dword [esp + 0x30]
jmp 0x6661fff7
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x145b1
mov edi, eax
jmp 0x6662293a
mov eax, str.database_disk_image_is_malformed
mov esi, 0xb
jmp 0x6661ff30
mov eax, ebx
call fcn.665a3120
test eax, eax
jne 0x6662a2a0
add esi, dword [ebx]
jmp 0x666257b2
test dl, dl
je 0x666282f3
add dword [ebx + 0xc], 1
cmp byte [ebx + 0xa], 0
je 0x66628526
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov edi, dword [eax + 0x9c]
jmp 0x66622f52
cmp cl, 0x6d
jne 0x666291e6
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ebx, edx
or ebx, eax
je 0x6662715a
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, eax
lea ebx, [edx - 0x80000000]
or ecx, ebx
jne 0x66626fe3
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x66620228
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.libgcc_s_dw2_1.dll___divdi3
mov edi, eax
mov eax, edx
jmp 0x6662615d
cmp byte [esi + 3], 0
je 0x66627d47
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x6661fd89.86
cmp edi, 5
jne 0x66622c63
mov edi, dword [esp + 0x50]
jmp 0x66622c74
test edx, edx
jne case.0x6661fd89.86
jmp 0x6661fed0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x66628377
mov edx, dword [edi + 0x30]
test edx, edx
je 0x66627ab8
mov eax, dword [esp + 0x70]
add eax, edx
cmp dword [esp + 0x30], eax
jge 0x66627ab8
mov eax, edi
call fcn.6659c0d0
mov dword [edi + 0x30], 0
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x50], eax
mov eax, ebx
jmp 0x66623a42
mov esi, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ebx, dword [esi + 0x68]
mov eax, dword [ebx + eax*4 + 8]
mov dword [esp + 0x44], ebx
sub eax, 1
jmp 0x666211fa
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x70]
mov eax, ebx
mov dword [esp + 0x60], ebx
sar eax, 0x1f
cmp ebx, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
sbb eax, edi
jl 0x66620b51
mov ebx, dword [esp + 0x58]
cmp ecx, ebx
jl 0x666293bf
mov eax, dword [esp + 0x80]
mov esi, dword [eax + 0x14]
mov dword [eax + 0x10], esi
jmp 0x6662592b
mov byte [esi], al
mov eax, 1
jmp 0x666259a4
mov dword [esp + 0x90], eax
mov ebp, dword [esp + 0x80]
jmp case.0x6661fd89.86
mov dword [esi + 0x30], 0
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov esi, 7
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
cmp al, 0x6d
jne 0x66629350
fldz
fxch st(2)
fucomi st(2)
fstp st(2)
jnp 0x66627154
fdivrp st(1)
jmp 0x66620292
jne 0x6662714d
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x70]
test word [eax + 8], 0x2400
jne 0x66628e18
mov eax, dword [esp + 0x70]
mov edx, 1
mov word [eax + 8], dx
jmp case.0x6661fd89.86
sub dword [eax + 0x20], 1
je 0x66621f3a
jmp 0x66621f43
cmp word [ebp + 2], 0
je 0x666255e9
jmp 0x666255b1
mov dword [esp + 0x30], 0
jmp 0x6662503b
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x50]
sub eax, dword [esi + 0x54]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x58], esi
add eax, esi
mov dword [esp + 0x88], 0
mov ecx, dword [esp + 0x78]
mov dword [ecx + 0x58], eax
jmp 0x6662500d
mov byte [edi + 0x3c], 0
jmp 0x666239e7
mov eax, dword [ecx + 0x30]
movzx ecx, byte [eax]
test edx, edx
jg 0x666282b0
cmp edi, 0x16
jne 0x666271f8
test edx, edx
je 0x666282b0
xor eax, eax
test cl, cl
setne al
mov dword [esp + 0xd0], eax
test eax, eax
je 0x6662061b
mov dword [esp + 0x30], 0
jmp 0x6661fed0
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.no_such_module:__s
mov dword [esp], eax
call fcn.665bc610
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x30], 1
mov dword [ebx + 0x7c], eax
movzx eax, word [esp + 0x120]
jmp 0x66622489
test edx, edx
je case.0x6661fd89.86
jmp 0x6661fed0
jne 0x666272a6
movzx eax, word [esp + 0x58]
test al, 2
jne 0x6662726f
test al, 0x2c
jne 0x6662a7b6
movzx eax, word [esp + 0x70]
test al, 2
jne 0x666272a6
test al, 0x2c
je 0x666272a6
movzx edx, byte [esp + 0x6b]
mov ecx, 1
mov eax, ebx
call fcn.665ac210
movzx eax, word [ebx + 8]
movzx edx, word [esp + 0x70]
and ax, 0x3e40
and dx, 0xc1bf
or eax, edx
mov word [esp + 0x50], ax
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, ebx
call fcn.665ac9b0
movzx ecx, word [ebp + 2]
movzx edi, byte [ebp]
mov edx, ecx
and edx, 0x20
mov word [esp + 0x60], dx
test eax, eax
js 0x6662013f
test eax, eax
jne 0x66625ad3
movzx edx, byte [edi + 0x666886f0]
xor eax, eax
jmp 0x66620146
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov edx, ebx
mov eax, ebp
call fcn.665926e0
mov byte [ebp + 0xa9], 0
jmp 0x66626736
mov eax, ebx
call fcn.665e6bc0
mov esi, eax
test esi, esi
je 0x666246c6
jmp 0x66622780
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
jmp 0x66621ef1
mov esi, eax
jmp 0x66622784
movzx eax, word [ebx + 0x42]
cmp eax, dword [esp + 0x58]
jbe 0x666297ee
mov eax, dword [esp + 0x58]
mov eax, dword [ebx + eax*4 + 0x60]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x50]
test word [eax + 8], 0x2400
jne 0x666286ba
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0xd0]
add eax, 1
lea esi, [eax*4]
mov eax, dword [edi + eax*4]
cmp dword [ebx + 0x5c], eax
jb 0x66627e64
mov esi, dword [edi + esi - 4]
add esi, dword [ebx + 0x54]
cmp edx, 0xb
jbe 0x66629733
sub edx, 0xc
mov edi, dword [esp + 0x50]
movzx eax, byte [esp + 0x6b]
mov ebx, edx
shr ebx, 1
mov byte [edi + 0xa], al
mov dword [edi + 0xc], ebx
lea eax, [ebx + 1]
cmp eax, dword [edi + 0x18]
jge 0x66629e68
mov edi, dword [esp + 0x50]
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 0x10]
mov byte [eax + ebx], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ebx + 1], 0
mov eax, dword [esp + 0xd0]
and eax, 1
movzx eax, word [eax + eax + 0x66688700]
mov word [esi + 8], ax
jmp 0x666247b2
fld qword [esi]
fild qword [esp + 0x50]
fcomi st(1)
jbe 0x666293e1
fstp st(0)
fstp st(0)
and ebx, 1
cmp bl, 1
adc edi, 0xffffffff
lea ebx, [esp + 0xd0]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x30], ecx
xor edx, edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 8], 0
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.665e4f30
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x4c], edx
mov dword [ecx + 0x48], eax
test esi, esi
jne 0x66622780
mov edx, dword [esp + 0xd0]
jmp 0x666205f4
mov edi, dword [esp + 0x50]
jmp 0x66622c50
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x51], 0
je 0x6662a525
cmp dword [eax + 0xb8], 1
jg 0x6662a525
cmp dword [esp + 0x50], 5
je 0x666299a9
cmp dword [esp + 0x50], 4
je 0x66629f10
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x66622c83
xor edx, edx
cmp edi, 5
mov eax, dword [esp + 0x60]
sete dl
add edx, 1
call fcn.665f84d0
mov dword [esp + 0x30], eax
jmp 0x66622c74
lea ebx, [esp + 0xd0]
mov eax, dword [edi + 0x30]
mov edx, ebx
call fcn.665b2fa0
test eax, eax
jne 0x6662abd1
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x6662926b
mov dword [esp + 0x118], 1
mov dword [esp + 0x11c], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x666292dd
test byte [edi + 8], 2
jne 0x666279b0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
jmp 0x66624c66
or eax, 1
mov word [edx + 8], ax
jmp case.0x6661fd89.86
movzx eax, byte [esp + 0x10d]
test al, 4
je 0x66627574
mov edx, dword [esp + 0xfc]
test edx, edx
je 0x6662756a
mov eax, dword [esp + 0xf8]
call fcn.665926e0
movzx eax, byte [esp + 0x10d]
and eax, 0xfffffffb
mov byte [esp + 0x10d], al
mov eax, dword [esp + 0x58]
xor edx, edx
mov dword [esp + 0x100], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0xfc], 0
cmp byte [eax + 9], 0
je 0x66626c91
jmp 0x66626c44
movzx eax, byte [esp + 0x10d]
test al, 4
je 0x666275df
mov edx, dword [esp + 0xfc]
test edx, edx
je 0x666275d5
mov eax, dword [esp + 0xf8]
call fcn.665926e0
movzx eax, byte [esp + 0x10d]
and eax, 0xfffffffb
mov byte [esp + 0x10d], al
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x100], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0xfc], 0
lea ebx, [eax + 1]
mov dword [esp + 0xe4], ebx
jmp 0x66626c32
call fcn.66592860
jmp 0x66623596
mov ecx, dword [esi + 8]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x78], esi
mov eax, esi
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x118], ecx
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
test ecx, ecx
je 0x6662ad3c
mov edx, 1
mov dword [esp + 0x78], ebx
mov ebx, eax
lea esi, [esp + 0x118]
mov dword [esp + 0x80], edi
mov edi, edx
jmp 0x6662767a
mov ecx, eax
mov eax, dword [ecx + 8]
mov edx, edi
add edi, 1
mov dword [esp + 0x118], eax
mov eax, esi
mov dword [ecx + 0xc], ebx
mov ebx, ecx
call fcn.665825a0
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x118]
test eax, eax
jne 0x66627678
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x94]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x50]
or word [eax + 0x1a], 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov dword [eax + 0x1c], esi
mov eax, dword [esp + 0x50]
mov esi, dword [eax + 0x14]
test esi, esi
je 0x66627728
mov eax, dword [esi + 0xc]
test eax, eax
je 0x66627721
mov dword [esp + 0x50], esi
jmp 0x666276ff
mov eax, dword [eax + 8]
test eax, eax
je 0x6662771d
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, ebx
mov esi, edx
sbb esi, edi
jl 0x666276f8
cmp ebx, ecx
mov ecx, edi
sbb ecx, edx
jge 0x6661fed0
mov eax, dword [eax + 0xc]
jmp 0x666276fb
mov esi, dword [esp + 0x50]
mov esi, dword [esi + 8]
test esi, esi
jne 0x666276e5
mov eax, dword [esp + 0x58]
test eax, eax
js case.0x6661fd89.86
mov eax, dword [esp + 0x70]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x50], eax
jmp 0x66623e4a
mov dword [esp + 0x58], edx
call fcn.66592820
test ebx, ebx
mov edx, dword [esp + 0x58]
jne 0x66626cb6
jmp 0x66626cec
mov eax, ecx
xor edx, edx
cmp ecx, 0x3fff
jbe 0x66628f90
mov ecx, edx
mov edx, eax
mov eax, ebx
call fcn.66581dc0
movzx eax, al
jmp 0x66624ee0
mov edi, dword [esp + 0x58]
mov eax, edi
call fcn.6659c0d0
mov esi, eax
movzx eax, byte [edi + 0x3b]
lea ebx, [eax - 1]
test eax, eax
je 0x6662a27f
lea eax, [ebx + ebx*8]
lea edi, [edi + eax*8 + 0x40]
jmp 0x666277c0
cmp ebx, 0xffffffff
je 0x666287fa
mov esi, eax
sub edi, 0x48
mov eax, edi
sub ebx, 1
call fcn.6658c910
test esi, esi
je 0x666277b2
cmp ebx, 0xffffffff
jne 0x666277bd
jmp 0x66622780
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x666283d7
mov ebx, dword [esp + 0x3c]
cmp eax, dword [ebx + 8]
je 0x666283d7
mov edi, dword [esp + 0x30]
test edi, edi
je case.0x6661fd89.86
mov eax, ebp
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x50], ebp
sar eax, 2
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
add ecx, 1
mov word [ebx + 0x46], cx
jmp 0x66626b80
mov dword [esp], ebx
mov eax, esi
xor edx, edx
call fcn.665e6d80
mov esi, eax
test eax, eax
jne 0x66622780
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x6662ac08
test byte [ebx + 9], 0x10
je case.0x6661fd89.86
jmp 0x66624a12
mov eax, dword [esp + 0x60]
mov edx, 1
mov dword [eax + 0x24], 0
mov word [eax + 2], dx
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], 0
jmp 0x6661fed3
cmp dx, bx
jbe 0x66624f39
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x94]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt.dll_memcpy
mov esi, dword [esp + 0x78]
mov eax, edi
sub eax, dword [esi + 0x54]
add ebx, eax
mov dword [esi + 0x58], ebx
jmp 0x666251fa
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ebp, [ebx + eax*4 - 0x14]
jmp case.0x6661fd89.86
xor eax, eax
mov edx, 0x7f
mov ebx, dword [esp + 0x30]
mov ecx, edi
cmp edx, edi
mov edx, eax
sbb edx, ebx
jae 0x666290fb
mov edx, 0x3fff
cmp edx, edi
sbb eax, ebx
jae 0x6662978d
mov eax, dword [esp + 0x50]
mov edx, edi
mov ecx, ebx
call fcn.66581dc0
add dword [esp + 0x50], eax
jmp 0x66624ef1
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x66627948
test word [esp + 0x120], 0x2400
jne 0x6662793a
cmp dword [esp + 0x130], 0
je 0x66627948
lea esi, [esp + 0x118]
mov eax, esi
call fcn.66592910
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x6662ada5
lea eax, [eax + eax*4]
lea ebp, [edi + eax*4 - 0x14]
jmp 0x666247b2
cmp edx, 0x7fff
ja 0x66628652
add dword [esp + 0x60], 6
mov dword [ebx + 0x1c], 5
adc dword [esp + 0x64], 0
jmp 0x66623d19
mov esi, dword [esp + 0x3c]
mov eax, esi
call fcn.665990e0
mov dword [esp + 0x30], eax
test eax, eax
je 0x66628700
mov esi, dword [ebx + 8]
cmp dword [esi + 8], 0
jne 0x66625683
jmp 0x66621a37
mov dword [esp + 0x50], edi
mov esi, 0x64
mov dword [esp + 0x60], ebp
jmp 0x66627a4e
call fcn.66587320
test eax, eax
jne 0x666279de
call fcn.665cb300
test eax, eax
je 0x66627a61
mov eax, dword [esp + 0x11c]
mov edi, dword [esp + 0x118]
mov ecx, dword [esp + 0x50]
and eax, 0x3fffffff
mov ebp, eax
mov eax, edi
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0xc], ebx
add eax, 1
mov edx, ebp
mov dword [esp + 8], 0
adc edx, 0
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x118], eax
mov eax, ecx
mov dword [esp + 0x11c], edx
xor edx, edx
call fcn.665e4f30
test eax, eax
jne 0x66628d8f
mov ecx, dword [esp + 0xd0]
test ecx, ecx
jne 0x66628e70
sub esi, 1
je 0x66629f5e
mov edi, dword [0x6667ced0]
test edi, edi
je 0x666279c8
lock or dword [esp], 0
lea edx, [esp + 0x118]
mov eax, 8
call fcn.665d6340
jmp 0x666279de
mov edx, 0x204
mov eax, ebp
call fcn.665e4dd0
mov byte [ebp + 0x51], 1
jmp 0x66622b9d
mov eax, esi
call fcn.66592820
jmp case.0x6661fd89.11
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x3c]
lea edx, [edi + 0x50]
mov ebx, dword [edi + 0x40]
mov dword [esp + 0x40], edx
mov dword [esp + 0x58], ecx
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8 + 0x50]
jmp 0x666232b4
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x30], 0
add eax, ebx
cmp ebx, dword [edi + 8]
mov dword [edi + 0x2c], eax
jg 0x66623a4a
jmp 0x66623a5c
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x94]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x66626c01
mov eax, dword [esp + 0xdc]
mov esi, 1
test eax, eax
je 0x66626c01
mov dword [esp + 0x78], ebp
jmp 0x66627b70
xor ebx, ebx
cmp esi, 1
jbe 0x66627b58
mov edx, 0xcccccccd
mov eax, edx
mul dword [edi + 0x28]
lea eax, [esi - 2]
shr edx, 2
lea ebx, [edx + 1]
xor edx, edx
div ebx
xor edx, edx
imul eax, ebx
lea ebx, [eax + 2]
mov ecx, eax
mov eax, dword [0x6667cdf0]
add ecx, 3
div dword [edi + 0x24]
add eax, 1
cmp ebx, eax
cmove ebx, ecx
cmp ebx, esi
je 0x6662812b
add esi, 1
cmp esi, dword [esp + 0xdc]
ja 0x66626bfd
mov ebp, dword [esp + 0xe0]
test ebp, ebp
je 0x66626bfd
mov ecx, esi
mov eax, 1
mov ebx, esi
and ecx, 7
shr ebx, 3
shl eax, cl
mov dword [esp + 0x60], eax
mov ecx, eax
mov eax, dword [esp + 0xd8]
movzx eax, byte [eax + ebx]
test ecx, eax
jne 0x66627b1d
xor ebp, ebp
cmp esi, 1
jbe 0x66627be4
mov edx, 0xcccccccd
mov eax, edx
mul dword [edi + 0x28]
lea eax, [esi - 2]
shr edx, 2
lea ebp, [edx + 1]
xor edx, edx
div ebp
xor edx, edx
imul eax, ebp
lea ebp, [eax + 2]
mov ecx, eax
mov eax, dword [0x6667cdf0]
add ecx, 3
div dword [edi + 0x24]
add eax, 1
cmp ebp, eax
cmove ebp, ecx
cmp ebp, esi
jne 0x66627bf2
cmp byte [edi + 0x11], 0
jne 0x66627b60
lea eax, [esp + 0xd0]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Page__d_is_never_used
call fcn.665bd2a0
mov eax, dword [esp + 0xd8]
movzx eax, byte [eax + ebx]
test dword [esp + 0x60], eax
je 0x66627b60
jmp 0x66627b1d
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 8]
imul eax, dword [eax + 4], 0x38
add eax, dword [edx + 0xc]
jmp 0x66625d22
lea esi, [esp + 0x118]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x118], 0
mov edx, esi
call fcn.6659cbd0
mov esi, eax
test eax, eax
jne 0x66627ddd
mov edi, dword [esp + 0x118]
mov dword [ebx + 0x24], 0
test edi, edi
jne 0x66620c7d
jmp 0x66620fab
mov eax, dword [ebx + 4]
mov ebp, dword [esp + 0x30]
mov edx, dword [eax]
mov eax, dword [edx + 0x14]
test eax, eax
je 0x6662976f
mov edx, dword [ebx + 8]
add dword [esi + 0x20], 1
mov dword [esp], edx
call eax
mov dword [esp + 0x30], eax
test eax, eax
je 0x6662932d
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 0x200]
test edi, edi
je 0x66629035
mov eax, dword [esp + 0x3c]
mov edx, esi
call fcn.66597f90
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
sub dword [eax + 0xc4], 1
test edx, edx
je case.0x6661fd89.86
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x30]
mov ebp, eax
movzx eax, byte [eax + 0x53]
jmp 0x6662278c
mov ecx, dword [esp + 0x38]
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
jmp case.0x6661fd89.86
cmp word [esp + 0x60], 0
je 0x66628d81
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x90], 1
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
movzx eax, word [edx + 8]
and ax, 0x3e40
or eax, 1
mov word [edx + 8], ax
jmp case.0x6661fd89.86
cmp byte [esi], 2
mov edx, dword [esi + 0x30]
jne 0x66628fa9
mov edi, dword [edx]
lea esi, [esp + 0x118]
mov eax, dword [edi]
mov dword [esp], edx
mov dword [esp + 4], esi
call dword [eax + 0x30]
mov edx, dword [edi + 8]
mov dword [esp + 0x30], eax
test edx, edx
je 0x66627dac
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x66627d8c
mov edx, eax
mov eax, esi
call fcn.665926e0
mov edx, dword [edi + 8]
mov eax, esi
call fcn.66591c60
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x7c], eax
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [edi + 8], 0
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x66621a37
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
jmp 0x66627020
mov edx, dword [edx + 0x14]
mov eax, dword [edx + 8]
imul eax, dword [eax + 4], 0x38
add eax, dword [edx + 0xc]
jmp 0x66625df9
mov dword [ebx + 0x24], 0
jmp 0x66620c74
mov eax, dword [edi + 0x10]
xor ecx, ecx
mov edx, 1
call fcn.665f7b10
mov esi, eax
test eax, eax
je 0x66628ef9
mov eax, ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
cmp word [eax + 2], 8
movzx eax, byte [edi + 8]
setne dl
shl edx, 2
and eax, 0xfffffffb
or eax, edx
mov byte [edi + 8], al
mov eax, dword [edi + 0x10]
call fcn.665fa060
movzx eax, byte [ebp + 0x53]
jmp 0x6662278c
movzx edx, byte [esp + 0x6b]
xor ecx, ecx
mov eax, edi
call fcn.665ac210
test eax, eax
jne 0x66624490
movzx eax, word [edi + 8]
and eax, 0xfffffffd
mov word [esp + 0x58], ax
movzx eax, word [esi + 8]
mov word [esp + 0x50], ax
jmp 0x66623eaf
movzx eax, byte [esp + 0x6b]
mov edi, dword [esp + 0x50]
mov byte [edi + 0xa], al
movzx eax, word [ebp + 2]
test al, 0xc0
je 0x66627e8e
cmp edx, 0xb
jbe 0x66627e86
test dl, 1
je 0x666283ff
test al, 0x80
jne 0x666283ff
cmp edx, 0x7f
jbe 0x666283f0
sub edx, 0xc
mov ecx, edx
shr ecx, 1
mov eax, dword [esp + 0x30]
mov edx, dword [eax + esi - 4]
mov eax, dword [ebx + 0x30]
mov ebx, dword [esp + 0x50]
mov dword [esp], ebx
call fcn.665e6d80
mov esi, eax
test eax, eax
jne 0x66622780
mov eax, dword [ebx + 0x10]
mov edx, dword [esp + 0xd0]
mov ecx, ebx
call fcn.66582c00
and word [ebx + 8], 0xefff
jmp 0x666247b2
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
test word [esp + 0xd8], 0x2400
jne 0x66627efa
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x66627f06
lea eax, [esp + 0xd0]
call fcn.66592910
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x14590
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 + 0x50]
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov esi, 0xb
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
test word [eax + 8], 0x2400
jne 0x66629777
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x30], 0
mov dword [eax], ecx
mov dword [eax + 4], ebx
jmp case.0x6661fd89.86
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
jmp 0x66623571
mov eax, dword [ebx + 4]
mov esi, dword [eax + 0x24]
mov dword [edi + 0xc], esi
jmp 0x66623762
mov eax, dword [esp + 0x50]
cmp word [eax + 8], 0xc
jbe 0x666277d8
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [ebx + 4]
mov esi, dword [eax + 0x24]
mov dword [edi + 0xc], esi
jmp 0x66623758
mov eax, dword [ecx + 0x14]
mov dword [edx + 8], eax
jmp 0x66621ef1
cmp byte [esp + 0x30], 0x13
jne 0x6662800c
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
jne 0x666297b9
mov eax, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
add dword [eax + 0x2c], 1
movzx eax, byte [ebp + 0x53]
jmp 0x66621a43
mov esi, dword [ebx + 0x30]
mov eax, esi
call fcn.66587740
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x28]
movzx edi, word [esi + 0x30]
mov ecx, dword [esi + 0x2c]
mov esi, 0
mov edx, dword [edx + 0x3c]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x58], ecx
sub edx, eax
cmovs edx, esi
cmp edi, edx
cmovle edx, edi
mov edi, dword [esp + 0x3c]
mov dword [ebx + 0x5c], edx
cmp dword [edi + 0x70], ecx
jb 0x66620b51
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x20]
jmp 0x66624719
xor ecx, ecx
mov edx, edi
mov eax, ebx
call fcn.665a2ef0
test eax, eax
je 0x66629c7c
mov dword [esp + 0x50], ebp
mov eax, ebp
mov ebp, dword [esp + 0x3c]
jmp 0x6662711c
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
sub dword [eax + 0xc4], 1
jmp case.0x6661fd89.86
test ebx, ebx
je 0x6662a923
movzx edx, word [ebx + 8]
mov eax, edx
and ax, 0x202
cmp ax, 0x202
je 0x6662982d
xor eax, eax
and edx, 1
jne 0x666280dc
mov edx, 1
mov eax, ebx
call fcn.665ac380
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0x6667eaa2
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x30], eax
jmp 0x66625c8b
movzx edx, byte [esp + 0x6b]
xor ecx, ecx
mov eax, esi
call fcn.665ac210
test eax, eax
jne 0x66624490
movzx eax, word [esi + 8]
and eax, 0xfffffffd
mov word [esp + 0x50], ax
jmp 0x66623ec7
cmp byte [edi + 0x11], 0
je 0x66627b60
lea eax, [esp + 0xd0]
mov dword [esp + 8], esi
mov dword [esp + 4], str.Pointer_map_page__d_is_referenced
mov dword [esp], eax
call fcn.665bd2a0
jmp 0x66627b60
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
mov edx, esi
sar eax, 2
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
imul eax, eax, 0xcccccccd
mov dword [edi + 0x24], eax
mov eax, 1
sub eax, edx
mov byte [ebp + 0x51], al
mov dword [edi + 0x28], 5
mov edi, dword [esp + 0x4c]
jmp 0x6661fe69
mov dword [edi + 0x28], 0x313
mov byte [edi + 0x92], 2
mov dword [esp], edi
mov dword [esp + 4], str.FOREIGN_KEY_constraint_failed
call fcn.665bc5e0
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], 1
jmp 0x6661fe69
movzx edx, word [esi + 8]
mov eax, edx
and ax, 0x202
cmp ax, 0x202
je 0x66629985
xor eax, eax
and edx, 1
jne 0x666281e7
mov edx, 1
mov eax, esi
call fcn.665ac380
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0x6667eaa2
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x30], eax
jmp 0x66620a67
mov eax, dword [esp + 0x3c]
add dword [eax + 0x1e4], 1
jmp 0x66623022
and eax, 0xffff
mov dword [esp + 0x50], eax
je 0x6662ad53
lea eax, [esp + 0x118]
xor esi, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x50]
xor edx, edx
mov eax, dword [eax + 4]
mov dword [esp + 0x58], eax
add eax, 8
jmp 0x6662825e
add edx, 1
add eax, 0x28
cmp edx, ebx
je 0x66629141
test byte [eax], 1
je 0x66628250
mov dword [esp + 0x50], 1
lea ebx, [esp + 0xd0]
mov edx, dword [esp + 0x30]
mov eax, ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov dword [esp + 4], 0
call fcn.665e4f30
mov dword [esp + 0x30], eax
test esi, esi
jne 0x66626003
jmp 0x666206c0
mov dword [esp + 0xd0], 0
xor edx, edx
and byte [eax + 1], 0xf1
mov word [eax + 0x32], dx
test cl, cl
jne 0x66628d68
movzx edx, word [eax + 0x46]
test dx, dx
je 0x66628d68
mov ecx, dword [eax + 0x74]
cmp byte [ecx + 8], 0
je 0x66628d68
sub edx, 1
mov word [eax + 0x46], dx
jmp 0x6662061b
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov edi, dword [eax + 0x9c]
jmp 0x66622f5c
mov eax, dword [ecx]
mov dword [eax + 0x9c], edi
jmp 0x66622f5c
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x66627033
mov dword [esp], eax
call sub.msvcrt.dll_strlen
test eax, 0x3fffffff
je 0x66627033
cmp byte [ebx + 0xd], 0
jne 0x66627033
cmp byte [ebx + 4], 0
jne 0x6662835a
mov eax, dword [ebx + 0x3c]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x66627033
mov eax, dword [eax + 0x34]
test eax, eax
je 0x66627033
cmp dword [esp + 0x50], 5
jne 0x6662746f
mov edi, 5
jmp 0x66622c74
xor eax, eax
jmp 0x66621082
mov eax, dword [edi + 0x2c]
cmp dword [esp + 0x30], eax
jl 0x66627070
cmp eax, dword [edi]
jg 0x6662a5db
add eax, ebx
mov dword [esp + 0x30], 0
mov dword [edi + 0x2c], eax
cmp ebx, dword [edi + 8]
jle 0x666283a1
mov dword [edi + 8], ebx
mov eax, dword [esp + 0x70]
cdq
call fcn.6658bcf0
mov ebx, eax
test eax, eax
je 0x66628086
mov eax, dword [edi + 0x24]
mov dword [ebx + 4], eax
jmp 0x66623b97
neg eax
adc edx, 0
neg edx
shld edx, eax, 0xa
shl eax, 0xa
mov ecx, eax
mov ebx, edx
jmp 0x666237db
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
test byte [eax], 2
jne 0x666277fc
mov byte [edi + 0x3c], 3
jmp 0x666277fc
movzx ecx, byte [edx + 0x66690040]
test ecx, ecx
jne 0x66627e9e
mov ecx, dword [esp + 0x50]
mov eax, 0x66690980
call fcn.66582c00
jmp 0x666247b2
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov edx, esi
mov eax, edi
and edx, ecx
and eax, ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
jmp 0x666204e3
mov eax, ebx
call fcn.66592820
jmp case.0x6661fd89.86
mov eax, ecx
mov dword [esp + 0x30], ecx
call fcn.66592820
mov ecx, dword [esp + 0x30]
jmp 0x66625ba2
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi + 0x200]
test ecx, ecx
jne 0x66628497
mov esi, dword [esp + 0x3c]
cmp dword [esi + 0x154], edx
jbe 0x66628485
cmp dword [esi + 0x14c], edx
jbe 0x66629020
mov esi, dword [esp + 0x3c]
cmp dword [esi + 0x150], edx
jbe 0x66629958
mov dword [esp], edx
call sym.libsqlite3_0.dll_sqlite3_free
mov eax, dword [edi + 0x24]
mov ecx, eax
jmp 0x66625d5b
mov eax, esi
call fcn.66592690
mov eax, dword [edi + 0x24]
mov ecx, eax
jmp 0x66625d5b
mov eax, ebx
call fcn.66582810
jmp 0x66622f5c
mov eax, ecx
call fcn.66592820
jmp case.0x6661fd89.86
mov edi, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
test word [eax + 8], 0x2400
jne 0x66629ce0
mov edi, 4
mov dword [eax], 1
mov dword [eax + 4], 0
mov word [eax + 8], di
jmp 0x66620f1a
test word [ebx + 8], 0x2400
jne 0x66629d91
mov esi, 0x4001
mov dword [ebx], 0
mov word [ebx + 8], si
jmp 0x66625c18
mov eax, ebx
call fcn.6658e4e0
mov eax, dword [ebx + 4]
movzx edx, byte [ebx + 9]
mov eax, dword [eax]
jmp 0x66622f48
mov eax, ebx
call fcn.6658e4e0
mov eax, dword [ebx + 4]
movzx edx, byte [ebx + 9]
mov eax, dword [eax]
mov edi, dword [eax + 0x9c]
jmp 0x66622f4e
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0x110]
mov dword [esp + 0xe8], 1
jmp 0x66626c08
mov eax, ebx
call fcn.66592820
jmp case.0x6661fd89.86
mov eax, ebx
call fcn.66582810
jmp 0x666219e6
lea ebx, [esp + 0xd0]
mov eax, esi
xor edx, edx
mov dword [esp], ebx
call fcn.665e6d80
mov esi, eax
test eax, eax
jne 0x66622780
mov ebx, dword [esp + 0xe0]
jmp 0x66620d25
mov ecx, dword [edi + 0x24]
jmp 0x66623b6b
mov ecx, edx
mov edx, eax
mov eax, ebx
call fcn.665928a0
jmp case.0x6661fd89.86
call fcn.66592820
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x58]
call fcn.66582810
jmp 0x66626c5b
mov eax, dword [esp + 0x60]
mov byte [eax + 2], 1
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], 0
jmp 0x6661fed3
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x666210f2
mov eax, dword [esp + 0x3c]
call fcn.665926e0
jmp 0x666210f2
mov dword [ebx + 0x24], 0
jmp 0x66620fab
mov eax, esi
call fcn.665a3120
test eax, eax
je 0x6662811a
jmp 0x66624490
mov eax, dword [esp + 0x50]
test word [eax + 8], 0x2400
jne 0x66629cc9
mov eax, dword [esp + 0x50]
mov edx, 1
mov word [eax + 8], dx
jmp 0x666247b2
add dword [esp + 0x60], 8
adc dword [esp + 0x64], 0
test al, 0x20
je 0x66629781
mov dword [esp + 0x98], edi
and eax, 0xffffffdf
mov dword [esp + 0x9c], ebp
fild qword [esp + 0x98]
or eax, 8
mov word [ebx + 8], ax
mov dword [ebx + 0x1c], 7
fstp qword [ebx]
jmp 0x66623d19
mov eax, ebp
sub eax, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
mov esi, 9
sar eax, 2
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
call fcn.66592820
jmp 0x66627354
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x60]
and dword [eax + 0x20], 0xffdfffff
test ebx, ebx
jg 0x66621dc0
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
mov eax, dword [esp + 0x110]
jmp 0x66626c08
mov eax, dword [ebx + 8]
mov dword [esp], eax
call dword [edi + 0x38]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x6662799c
mov eax, dword [esi + 0x1e4]
add eax, dword [esi + 0x1e8]
mov ecx, dword [esi + 0x184]
mov edx, eax
mov eax, dword [esi + 0x16c]
mov dword [esp + 0x30], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x16c], ecx
mov ecx, dword [esp + 0x30]
mov esi, dword [ebx + 8]
mov dword [ecx + eax*4], ebx
add dword [ebx + 0xc], 1
test edx, edx
je 0x66625670
mov eax, dword [edi + 0x50]
test eax, eax
je 0x66625670
mov dword [ebx + 0x14], edx
sub edx, 1
mov dword [esp], esi
mov dword [esp + 4], edx
call eax
mov esi, dword [ebx + 8]
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x66625683
jmp 0x666214a0
mov esi, dword [esp + 0x60]
mov eax, esi
call fcn.665a3190
mov edx, eax
movzx eax, word [esi + 8]
jmp 0x666260e0
mov eax, dword [esp + 0x60]
fld qword [eax]
jmp 0x6662026e
fld qword [edi]
jmp 0x6662024c
mov eax, edi
call fcn.665a3120
test eax, eax
je 0x66627e4a
jmp 0x66624490
mov dword [edi + 0x34], esi
mov eax, esi
cdq
call fcn.6658bcf0
test eax, eax
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x50]
je 0x6662a288
cmp word [eax + 8], 0xc
jbe 0x666277d8
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
test esi, esi
jne 0x66622780
mov ebx, dword [esp + 0x58]
mov edx, 0x665b0c50
mov eax, dword [ebx + 0x48]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xa8], eax
movzx eax, byte [ebx + 0x3c]
cmp al, 1
je 0x66628837
cmp al, 2
mov edx, 0x665b0a80
mov eax, 0x665b0e10
cmove edx, eax
mov eax, dword [esp + 0x58]
movzx esi, byte [eax + 0x3b]
mov eax, esi
movzx ecx, al
test ecx, ecx
je 0x6662885e
mov edi, dword [esp + 0x58]
lea ebx, [ecx + ecx*8]
mov eax, edi
lea ebx, [edi + ebx*8]
mov dword [eax + 0x60], edx
add eax, 0x48
cmp ebx, eax
jne 0x66628854
mov eax, esi
cmp al, 1
ja 0x66629d71
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x98], ebp
cmp ecx, dword [esp + 0x78]
jle 0x666288cc
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x58]
lea eax, [eax + eax*8]
lea esi, [edi + eax*8 + 0x40]
mov dword [esp + 0x50], esi
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], eax
add eax, 1
mov dword [esp + 0x78], eax
test edx, edx
jne 0x66628a18
mov eax, dword [esp + 0x58]
add dword [esp + 0x50], 0x48
movzx eax, byte [eax + 0x3b]
cmp dword [esp + 0x78], eax
jl 0x66628898
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x98]
cmp byte [eax + 0x39], 0
je 0x6662a92a
mov edi, dword [esp + 0x58]
movzx esi, byte [edi + 0x3b]
sub esi, 1
lea eax, [esi + esi*8]
lea ebx, [edi + eax*8]
mov ecx, dword [ebx + 0x4c]
test ecx, ecx
je 0x6662aba8
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x6662a9a3
mov edx, 0x38
xor ecx, ecx
call fcn.6658bdd0
mov ebx, eax
test ebx, ebx
je 0x6662a960
lea edi, [ebx + 4]
mov eax, ebx
mov dword [ebx], 0
and edi, 0xfffffffc
mov dword [ebx + 0x34], 0
sub eax, edi
add eax, 0x38
shr eax, 2
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [esi + esi*8]
lea ecx, [ebx + 0x30]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x70]
mov dword [edi + 0x10], ebx
lea eax, [edi + eax*8 + 0x40]
call fcn.66596b60
mov esi, eax
test eax, eax
jne 0x6662a94b
mov eax, dword [ebx + 0x30]
mov dword [eax + 0x18], 1
mov ecx, dword [eax]
mov eax, dword [eax + 0x10]
cdq
sub dword [ecx + 0x40], eax
sbb dword [ecx + 0x44], edx
movzx eax, byte [edi + 0x3b]
cmp al, 1
jbe 0x666289d6
mov edi, dword [esp + 0x70]
imul eax, eax, 0x38
mov edx, dword [edi + 0xc]
lea eax, [edx + eax - 8]
lea edi, [edx + 0x30]
mov dword [esp + 0x50], eax
mov eax, dword [edi]
test eax, eax
je 0x666289b5
mov dword [eax + 0x18], 1
mov ecx, dword [eax]
mov eax, dword [eax + 0x10]
cdq
sub dword [ecx + 0x40], eax
sbb dword [ecx + 0x44], edx
add edi, 0x38
cmp dword [esp + 0x50], edi
jne 0x6662899c
jmp 0x666289d6
mov ecx, eax
mov eax, dword [edi]
mov edx, 0x6659d260
call fcn.6658c4f0
test eax, eax
jne 0x6662aeb6
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0x3b]
cmp edx, esi
jle 0x6662a2ee
mov edi, dword [esp + 0x70]
imul eax, esi, 0x38
add eax, dword [edi + 0xc]
mov edi, dword [eax + 0x30]
add esi, 1
test edi, edi
je 0x6662a2e3
mov edx, dword [edi + 0x18]
test edx, edx
jne 0x666289c0
mov edx, 1
call fcn.6659d100
jmp 0x666289ce
mov eax, 0x10
mov ebx, edx
mov ecx, edx
mov dword [esp + 0xc4], 0
sar ebx, 0x1f
cmp eax, edx
mov eax, 0
sbb eax, ebx
jge 0x66628ca0
xor ebp, ebp
mov eax, 0x10
xor edx, edx
lea esi, [esi]
nop
shld edx, eax, 4
shl eax, 4
mov esi, ebp
add ebp, 1
mov edi, edx
cmp eax, ecx
sbb edi, ebx
jl 0x66628a50
mov eax, 0x10
mov dword [esp + 0xb8], esi
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
call fcn.66594eb0
mov dword [esp + 0xc4], eax
mov ebx, eax
test eax, eax
je 0x6662a2d9
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x1c]
lea eax, [esp + 0x118]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0xa0], eax
test edx, edx
jle 0x66628c69
mov dword [esp + 0xbc], ebp
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc8], 0
shl eax, 4
sub edx, eax
mov dword [esp + 0x94], eax
mov eax, 0x10
cmp edx, 0x10
cmovg edx, eax
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call fcn.6659d290
mov edx, eax
test eax, eax
je 0x66628b70
mov ebx, dword [esp + 0xc4]
test ebx, ebx
je 0x66628b4b
mov esi, dword [ebx]
test esi, esi
jle 0x66628b4b
xor esi, esi
mov edi, edx
imul eax, esi, 0x38
add eax, dword [ebx + 0xc]
add esi, 1
call fcn.66596af0
cmp esi, dword [ebx]
jl 0x66628b37
mov edx, edi
mov dword [esp], ebx
mov dword [esp + 0x50], edx
call sym.libsqlite3_0.dll_sqlite3_free
mov edx, dword [esp + 0x50]
test edx, edx
jne 0x66629def
mov eax, dword [esp + 0x58]
movzx ecx, byte [eax + 0x3b]
jmp 0x6662887f
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0xd0]
mov ebx, dword [esp + 0xc4]
add eax, 1
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x50]
call fcn.66596b60
cmp dword [esp + 0xbc], 1
mov edx, eax
je 0x66628d1a
mov ecx, dword [esp + 0xb8]
mov eax, 1
mov esi, 1
mov edi, eax
shl esi, 4
lea eax, [eax + 1]
cmp edi, ecx
jne 0x66628bc0
test edx, edx
jne 0x66628c30
mov ebp, 1
mov ecx, ebx
jmp 0x66628bec
mov ecx, dword [eax + 4]
sar esi, 4
lea eax, [ebp + 1]
cmp ebp, edi
je 0x6662ad45
mov ebp, eax
mov eax, dword [esp + 0x80]
cdq
idiv esi
and eax, 0xf
imul ebx, eax, 0x38
add ebx, dword [ecx + 0xc]
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x66628bd9
mov eax, 0x10
call fcn.66594eb0
mov edx, eax
test eax, eax
je 0x66628d10
mov eax, dword [esp + 0x50]
lea ecx, [ebx + 0x30]
call fcn.66596b60
mov edx, eax
test eax, eax
je 0x6662a2b4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x80], edx
call fcn.66596a20
mov eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
add eax, 0x10
cmp dword [ebx + 0x1c], eax
jg 0x66628b22
test edx, edx
jne 0x66628b22
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0xc4]
test edi, edi
je 0x6662983f
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x50]
imul ecx, dword [esp + 0x88], 0x38
add ecx, dword [eax + 0xc]
mov eax, esi
add ecx, 0x30
call fcn.66596b60
mov edx, eax
jmp 0x66628b5b
lea eax, [esp + 0x118]
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov ecx, eax
lea eax, [esp + 0xc4]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call fcn.6659d290
mov edx, eax
jmp 0x66628c61
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov dword [esp + 0xd0], 0
mov dword [esp], eax
call fcn.665e58c0
test eax, eax
je 0x66628d75
cmp eax, 0x65
je 0x6662720e
mov dword [esp + 0x50], ebp
mov esi, eax
mov ebp, dword [esp + 0x3c]
jmp 0x66622788
mov edx, 7
jmp 0x66628c30
mov eax, dword [esp + 0xd0]
test edx, edx
jne 0x66628c37
mov edx, dword [esp + 0x80]
and edx, 0xf
imul edx, edx, 0x38
add edx, dword [ebx + 0xc]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x94]
add eax, 0x10
cmp eax, edx
jge 0x66628c69
mov eax, dword [esp + 0xac]
mov dword [esp + 0x80], eax
jmp 0x66628ad9
call fcn.665e5910
test eax, eax
jne 0x66628cf8
mov eax, dword [esp + 0xd0]
jmp 0x66627206
and ecx, 0x10
je case.0x6661fd89.86
jmp 0x6661fed0
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], edi
jmp 0x66621a3f
mov edx, dword [ebx + 4]
add eax, 8
xor ecx, ecx
call fcn.66593b10
mov edx, dword [eax + 8]
test edx, edx
je 0x66621e8c
mov eax, dword [edx + 0x44]
test eax, eax
je 0x66621e8c
cmp ebx, eax
je 0x6662ade2
mov edx, eax
mov eax, dword [eax + 0x20]
test eax, eax
je 0x66621e8c
cmp ebx, eax
jne 0x66628dcf
add edx, 0x20
mov eax, dword [eax + 0x20]
mov dword [edx], eax
jmp 0x66621e8c
cmp byte [eax + 0xa], 1
jne 0x6662604a
mov eax, dword [eax + 0x10]
jmp 0x6662605d
and eax, 0xfffff
or eax, edx
jne 0x6662715a
jmp 0x666202b2
xor ebx, ebx
jmp 0x66622fa5
call fcn.66592820
jmp case.0x6661fd89.86
mov dword [esp + 0x10], 0x6667e21c
mov ebx, ebp
mov dword [esp + 0xc], 0x120dc
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
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, ebx
jmp 0x66627f36
mov edx, dword [esp + 0x30]
call fcn.66588960
movzx edi, al
jmp 0x66624732
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x11c]
mov dword [esp + 0xb0], edi
mov eax, dword [esp + 0x118]
mov dword [esp + 0xb4], ebp
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x60]
jmp 0x66624c66
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x66626d98
mov eax, dword [eax + 0x48]
call fcn.6658dc20
jmp 0x66626d98
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0x34]
call fcn.665e1250
mov dword [esp + 0x50], 0
mov esi, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x54], 0
test eax, eax
je 0x66621764
mov eax, dword [eax + 0x48]
call fcn.6658dc20
jmp 0x66621764
mov eax, dword [ebp + 0x10]
mov ebx, dword [edi + 0x10]
mov dword [esp + 0x30], eax
mov dword [edi + 0x34], eax
test eax, eax
je 0x6662a1b7
movzx ecx, word [ebp + 2]
lea esi, [edi + 0x3c]
or ecx, 2
cmp byte [ebx + 9], 0
movzx ecx, cx
je 0x66628f3a
add dword [ebx + 0xc], 1
cmp byte [ebx + 0xa], 0
jne 0x66628f3a
mov eax, ebx
mov dword [esp + 0x50], ecx
call fcn.6658e4e0
mov ecx, dword [esp + 0x50]
mov edx, esi
mov eax, ebx
call fcn.665e47c0
cmp byte [ebx + 9], 0
mov esi, eax
je 0x66628f55
sub dword [ebx + 0xc], 1
je 0x6662a398
test esi, esi
je 0x6662a098
mov byte [edi + 4], 0
cmp word [ebp + 2], 8
movzx eax, byte [edi + 8]
setne dl
shl edx, 2
and eax, 0xfffffffb
or eax, edx
mov byte [edi + 8], al
test esi, esi
je 0x66626e29
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jmp 0x66627e23
shrd eax, edx, 7
and ecx, 0x7f
or eax, 0xffffff80
mov byte [ebx + 1], cl
mov byte [ebx], al
mov eax, 2
jmp 0x66624ee0
cmp byte [edx], 0
jne 0x6662a6af
mov eax, edx
mov dword [esp + 0x30], edx
call fcn.66587740
mov edx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
jmp 0x66627020
movzx edx, word [esp + 0x50]
movzx eax, word [esp + 0x58]
jmp 0x666200db
fld qword [esp + 0x50]
jmp 0x666247f1
mov eax, ebx
call fcn.66582810
jmp 0x66623762
mov eax, dword [esp + 0x60]
fild qword [eax]
jmp 0x6662026e
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
jno 0x66627007
jmp 0x66620228
mov ecx, dword [esi + 0x148]
mov dword [edx], ecx
mov ecx, eax
mov dword [esi + 0x148], edx
jmp 0x66625d5b
sub dword [esi + 0x20], 1
je 0x66627cc1
jmp 0x66627ccc
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x10d0f
mov dword [esp + 8], str.database_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0xb
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
call sym.libsqlite3_0.dll_sqlite3_log
cmp byte [edi + 9], 0
je 0x6662a51c
sub dword [edi + 0xc], 1
mov dword [esp + 0x30], 0xb
jne 0x66621a3f
mov eax, edi
call fcn.66582810
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
sar eax, 2
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], eax
je 0x6662ad24
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x7c]
jmp 0x6661fdcd
xor eax, eax
jmp 0x6662605d
mov eax, ebx
call fcn.665e5a80
mov esi, eax
jmp 0x66627308
xor edx, edx
mov eax, esi
mov dword [esp + 0x50], ecx
call fcn.665908a0
mov ecx, dword [esp + 0x50]
jmp 0x66625af5
mov ebx, dword [esp + 0x50]
mov eax, 1
mov byte [ebx], cl
jmp 0x66627913
xor edx, edx
xor ecx, ecx
call fcn.665928a0
jmp case.0x6661fd89.86
mov dword [edi + 0x10], 0
xor eax, eax
jmp 0x66622cc7
lea edx, [esp + 0xc4]
mov eax, ebx
call fcn.66588960
mov eax, dword [esp + 0xc4]
jmp 0x66620d38
mov dword [esp + 0x50], 0
jmp 0x6662826b
mov dword [esp + 0x10], 0x6667e21c
mov esi, ebp
mov dword [esp + 0xc], 0x168ae
mov dword [esp + 8], str.database_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0xb
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
call sym.libsqlite3_0.dll_sqlite3_log
mov edx, ebx
mov eax, ebp
call fcn.665926e0
mov byte [ebp + 0xa9], 0
mov eax, ebp
call fcn.66598530
mov eax, esi
jmp 0x66622958
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x78], ecx
mov ebx, eax
mov ecx, dword [esp + 0x50]
sar ebx, 0x1f
mov dword [esp + 0x80], edx
sar ecx, 0x1f
cmp ebx, edx
jne 0x6662a6da
cmp ecx, dword [esp + 0x78]
jne 0x6662a47a
imul dword [esp + 0x50]
mov ebx, eax
mov eax, edx
mov edi, ebx
jmp 0x6662615d
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ebx, edx
or ebx, eax
je 0x6662715a
mov ecx, edx
and ecx, eax
cmp ecx, 0xffffffff
je 0x6662aacd
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.libgcc_s_dw2_1.dll___moddi3
mov edi, eax
mov eax, edx
jmp 0x6662615d
mov eax, ebx
call fcn.66592820
jmp case.0x6661fd89.86
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov edx, esi
mov eax, edi
or edx, ecx
or eax, ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
jmp 0x666204e3
fild qword [edi]
jmp 0x6662024c
call fcn.665864b0
movzx edx, word [ebx + 0x1a]
mov dword [ebx + 8], eax
jmp 0x66623fb5
mov esi, dword [edi + 0x30]
mov eax, esi
call fcn.66587740
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov eax, edx
mov esi, ecx
mov dword [esp + 0x118], edx
not eax
xor esi, 0x7fffffff
mov dword [esp + 0x11c], ecx
or esi, eax
je 0x6662a00a
mov eax, edx
mov edx, ecx
add eax, 1
adc edx, 0
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], edx
jmp 0x66627507
mov eax, edx
shrd eax, ecx, 7
or eax, 0xffffff80
mov byte [esi], al
movzx eax, byte [esp + 0x88]
and eax, 0x7f
mov byte [esi + 1], al
mov eax, 2
jmp 0x666259a4
mov dword [esp + 0x30], 0
mov edx, eax
jmp 0x66624bed
mov eax, dword [edi + 0xc]
lea ebx, [esp + 0xd0]
mov dword [esp + 0xec], str.Main_freelist:
mov edx, dword [eax + 0x38]
mov eax, dword [edx + 0x24]
mov ecx, dword [edx + 0x20]
mov edx, 1
bswap eax
mov dword [esp], eax
mov eax, ebx
bswap ecx
call fcn.665bd4b0
mov dword [esp + 0xec], 0
jmp 0x66621d39
mov dword [ebx + 8], 0
mov eax, ebx
mov dword [esi + 0x40], 0
call fcn.665931c0
jmp 0x66627caf
fstp st(0)
fstp st(0)
jmp 0x66629354
fstp st(0)
fstp st(0)
mov eax, edi
call fcn.6658cc70
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0x60]
mov edi, esi
call fcn.6658cc70
or edi, ebx
je 0x6662715a
mov ecx, esi
and ecx, ebx
cmp ecx, 0xffffffff
je 0x6662a71b
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.libgcc_s_dw2_1.dll___moddi3
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
fild qword [esp + 0x50]
fstp qword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov ecx, eax
and ecx, 0x7ff00000
jmp 0x666202a6
faddp st(1)
jmp 0x66620292
mov edi, dword [esp + 0x80]
xor ecx, ecx
mov edx, ebx
mov eax, edi
call fcn.665a2ef0
test eax, eax
jne 0x66624490
mov esi, dword [edi + 0x10]
jmp 0x6662592b
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x6662740e
and ebx, 1
cmp bl, 1
adc edi, 0
jmp 0x6662740e
test edx, edx
je 0x66620623
jmp 0x6662720e
fmulp st(1)
jmp 0x66620292
mov esi, dword [ebx]
test esi, esi
je 0x66629425
mov edx, esi
mov eax, dword [ebx + 4]
mov esi, dword [esi]
call fcn.665926e0
test esi, esi
jne 0x66629415
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0x10000
jmp 0x66623fdf
mov esi, dword [ebx + 0x54]
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], esi
xor esi, esi
mov ecx, dword [esp + 0x78]
xor edx, edx
mov dword [esp + 0x88], ebp
mov ebp, edx
add edi, ecx
add ecx, dword [esp + 0x80]
mov dword [esp + 0x60], ecx
mov ecx, ebx
mov ebx, edi
mov edi, eax
jmp 0x666294aa
movzx eax, byte [eax + 0x66690040]
xor edx, edx
add ebx, 1
add edi, eax
adc ebp, edx
mov eax, dword [esp + 0x30]
add esi, 1
mov dword [eax + esi*4], edi
cmp dword [esp + 0x58], esi
jb 0x666295b0
cmp ebx, dword [esp + 0x60]
jae 0x666294fe
movzx eax, byte [ebx]
mov dword [esp + 0xd0], eax
mov dword [ecx + esi*4 + 0x60], eax
cmp eax, 0x7f
jbe 0x66629480
mov eax, ebx
lea edx, [esp + 0xd0]
mov dword [esp + 0x70], ecx
call fcn.66588960
mov ecx, dword [esp + 0x70]
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0xd0]
mov dword [ecx + esi*4 + 0x60], eax
cmp eax, 0x7f
jbe 0x666294f5
sub eax, 0xc
shr eax, 1
xor edx, edx
add edi, eax
adc ebp, edx
jmp 0x66629490
movzx eax, byte [eax + 0x66690040]
jmp 0x666294ed
mov dword [esp + 0x70], edi
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x88]
mov eax, dword [ebx + 0x54]
mov dword [esp + 0x60], eax
cmp edi, ecx
ja 0x66629548
mov eax, dword [ebx + 0x58]
xor edx, edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x58]
xor eax, edx
or ecx, eax
je 0x666295e9
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
test esi, esi
jne 0x6662791c
xor eax, eax
mov word [ebx + 0x42], ax
mov eax, dword [esp + 0x80]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x66624781
xor eax, eax
test word [esp + 0x120], 0x2400
jne 0x6662958a
cmp dword [esp + 0x130], 0
je 0x6662959c
lea esi, [esp + 0x118]
mov eax, esi
call fcn.66592910
movzx eax, word [ebx + 0x42]
cmp eax, dword [esp + 0x58]
ja 0x66627344
jmp 0x66624781
mov dword [esp + 0x70], edi
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x88]
cmp edi, ecx
jae 0x66629515
mov eax, dword [ebx + 0x54]
xor edx, edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
cmp edx, eax
mov eax, ecx
sbb eax, dword [esp + 0x74]
jb 0x66629548
mov word [ebx + 0x42], si
movzx eax, si
mov esi, dword [esp + 0x60]
sub edi, dword [esp + 0x78]
mov dword [ebx + 0x38], edi
test esi, esi
jne 0x6662959c
jmp 0x66629574
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, 5
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov ebx, esi
mov esi, dword [esp + 0x78]
test esi, esi
jne 0x66629ebc
mov esi, dword [esp + 0x3c]
mov edx, dword [esi + 0x1d8]
cmp ebx, edx
je 0x666296a0
mov eax, dword [edx + 0x18]
mov dword [esi + 0x1d8], eax
mov eax, esi
call fcn.665926e0
mov edx, dword [esi + 0x1d8]
sub dword [esi + 0x1e4], 1
cmp edx, ebx
jne 0x6662967f
cmp dword [esp + 0x58], 1
je 0x6662a628
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x1f0], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x1f4], edx
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x1f8], eax
mov dword [esi + 0x1fc], edx
test ecx, ecx
je 0x666296ee
cmp dword [esp + 0x58], 2
mov dword [esp + 0x30], 0
jne case.0x6661fd89.86
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x184]
test edx, edx
je 0x6662a3a4
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
call fcn.66593230
mov dword [esp + 0x30], eax
test eax, eax
je case.0x6661fd89.86
jmp 0x66621a37
lea eax, [esp + 0xf8]
call fcn.66599800
mov edx, eax
jmp 0x66626c91
mov ecx, dword [esp + 0x50]
mov eax, esi
call fcn.66582c00
jmp 0x666247b2
test edi, edi
je 0x66629f50
bsr eax, edi
xor eax, 0x1f
mov ecx, 0x3c
sub ecx, eax
shrd esi, edi, cl
lea eax, [ecx + ecx*4]
shr edi, cl
and ecx, 0x20
cmovne esi, edi
lea eax, [eax + eax + 0x28]
jmp 0x66626463
mov eax, dword [edx + 0x10]
jmp 0x66627c97
call fcn.66592860
jmp 0x66627f7a
mov dword [ebx + 0x1c], 6
jmp 0x66623d19
shrd ecx, ebx, 7
mov eax, edi
mov ebx, dword [esp + 0x50]
and eax, 0x7f
or ecx, 0xffffff80
mov byte [ebx + 1], al
mov eax, 2
mov byte [ebx], cl
jmp 0x66627913
call fcn.66592820
mov eax, dword [ebp + 8]
jmp 0x6661fed3
movzx eax, word [ebp + 2]
cmp ax, 4
je 0x6662aa4f
cmp ax, 5
mov edx, 2
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x38]
cmove eax, edx
mov ebp, dword [esp + 0x3c]
mov byte [esi + 0x92], al
movzx eax, byte [ebp + 0x53]
jmp 0x66621a43
mov eax, dword [esp + 0x30]
mov edi, dword [ebx + 0x38]
mov esi, dword [eax]
mov dword [esp + 0x80], esi
cmp edi, esi
jae 0x66624776
mov esi, dword [ebx + 0x54]
mov dword [esp + 0x78], esi
test esi, esi
je 0x6662a30f
movzx esi, word [ebx + 0x42]
mov eax, dword [eax + esi*4]
jmp 0x6662945c
mov eax, edi
call fcn.6658e8a0
jmp 0x6662024c
cmp byte [ebx + 0xa], 1
jne 0x666280c9
mov eax, dword [ebx + 0x10]
jmp 0x666280dc
mov dword [esp + 0x70], edx
jmp 0x666288b9
xor ecx, ecx
xor edx, edx
call fcn.665e43a0
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66625e99
mov eax, dword [ebx + 8]
test eax, eax
je 0x66625e79
and byte [eax + 1], 0xfb
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x66629868
jmp 0x66625e79
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x48]
call fcn.665dd740
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x38]
mov eax, dword [ebx + 0x30]
bswap eax
mov dword [edx + 0x1c], eax
cmp byte [edi + 9], 0
je 0x666298a5
sub dword [edi + 0xc], 1
je 0x6662a858
mov ecx, dword [esp + 0x30]
test ecx, ecx
je case.0x6661fd89.86
jmp 0x66625ea3
mov edx, dword [ecx + 0xc0]
test edx, edx
je 0x66620bf4
jmp 0x66620bb4
sub dword [esi + 0xc], 1
jne 0x6662256e
mov eax, esi
call fcn.66582810
jmp 0x6662256e
mov eax, dword [esi + 4]
mov edx, dword [eax + 0x4c]
mov dword [esp + 0x58], eax
test edx, edx
jne 0x66629913
jmp 0x6662a815
mov edx, dword [edx + 0xc]
test edx, edx
je 0x6662a815
cmp ebx, dword [edx + 4]
jne 0x66629908
cmp esi, dword [edx]
jne 0x66629908
movzx eax, byte [esp + 0x50]
cmp al, byte [edx + 8]
jbe 0x6662a250
mov byte [edx + 8], al
cmp byte [esi + 9], 0
je case.0x6661fd89.86
sub dword [esi + 0xc], 1
jne case.0x6661fd89.86
mov eax, esi
call fcn.66582810
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov ecx, dword [esi + 0x140]
mov dword [edx], ecx
mov ecx, eax
mov dword [esi + 0x140], edx
jmp 0x66625d5b
mov eax, dword [esp + 0x60]
fstp qword [esp + 0x50]
call fcn.6658e8a0
fld qword [esp + 0x50]
fxch st(1)
jmp 0x6662026e
cmp byte [esi + 0xa], 1
jne 0x666281d4
mov eax, dword [esi + 0x10]
jmp 0x666281e7
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
call fcn.665928a0
jmp 0x66620fd5
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x6662a3fd
mov edx, 4
mov eax, ebx
call fcn.66588b00
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66629a29
mov edx, dword [ebx + 0xd0]
movzx ecx, byte [ebx + 0xb]
mov eax, dword [ebx + 0xd8]
mov dword [esp + 4], edx
mov edx, dword [ebx + 0x98]
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
call fcn.665f9d40
mov dword [ebx + 0xd8], 0
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x66629a14
cmp dword [eax], 2
jle 0x66629a14
mov eax, ebx
call fcn.6658e310
cmp dword [esp + 0x30], 0
je 0x6662a46c
cmp byte [ebx + 4], 0
jne 0x66622c83
mov edx, dword [ebx + 0x3c]
mov eax, dword [edx]
test eax, eax
je 0x66629a50
cmp byte [ebx + 0xd], 0
jne 0x66629a46
mov dword [esp + 4], 1
mov dword [esp], edx
call dword [eax + 0x20]
cmp byte [ebx + 0x11], 5
je 0x66629a50
mov byte [ebx + 0x11], 1
movzx eax, byte [ebx + 0xc]
mov byte [ebx + 0x12], al
jmp 0x66622c83
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx + 0x18]
mov edi, esi
and edi, 1
mov dword [esp + 0x70], edi
mov dword [esp + 0x78], edi
test eax, eax
jle 0x6662af80
mov dword [esp + 0x30], ebx
xor edi, 1
xor esi, esi
mov ebx, ecx
jmp 0x66629a93
mov eax, dword [ebx + 0x14]
add esi, 1
cmp eax, esi
jle 0x6662a1e8
mov eax, esi
mov edx, 0x204
mov ecx, edi
shl eax, 4
add eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
call fcn.665e4b50
mov edx, eax
test eax, eax
je 0x66629a85
mov dword [esp + 0x50], ebp
mov esi, eax
mov ebp, ebx
movzx eax, byte [ebx + 0x53]
jmp 0x6662278c
mov edi, dword [esp + 0x3c]
cmp byte [edi + 0x59], 0
je 0x6662691f
cmp dword [esp + 0x58], 1
jne 0x6662adea
mov esi, dword [esp + 0x38]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x1f8]
mov edx, dword [ecx + 0x1fc]
add eax, dword [ecx + 0x1f0]
adc edx, dword [ecx + 0x1f4]
xor ecx, ecx
cmp ecx, eax
sbb ecx, edx
jl 0x6662a763
mov eax, dword [esp + 0x3c]
mov byte [eax + 0x51], 1
mov eax, dword [esp + 0x38]
call fcn.665fa5c0
mov dword [esp + 0x30], eax
cmp eax, 5
je 0x6662ac3d
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x28]
mov dword [esp + 0x30], esi
test esi, esi
je 0x6662a726
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov byte [ebp + 0x51], 0
movzx eax, byte [ebp + 0x53]
jmp 0x6662278c
mov eax, ebp
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x78], esi
add eax, 8
mov esi, eax
mov eax, dword [esp + 0x50]
cmp word [eax + 0x18], 0
je 0x6662ae3f
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0x10]
sub word [edx + 0x18], 1
lea eax, [ecx + 0x10]
mov dword [esp + 0x80], ecx
mov dword [edx + 0x10], eax
mov dword [esi], ecx
test ecx, ecx
je 0x666276b8
mov edx, dword [esp + 0x78]
mov dword [ecx + 8], 0
mov dword [ecx], 0
mov esi, dword [edx + 8]
mov dword [ecx + 4], 0
mov dword [esp + 0x118], esi
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
test esi, esi
je 0x6662ae13
mov dword [esp + 0x78], 1
jmp 0x66629c03
mov eax, dword [ecx + 8]
mov dword [esp + 0x118], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
add dword [esp + 0x78], 1
mov edx, esi
mov dword [esi + 8], ecx
test eax, eax
je 0x6662a70c
mov esi, eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x118], ecx
mov dword [esi + 0xc], edx
test ecx, ecx
je 0x6662a709
mov eax, dword [esp + 0x78]
cmp eax, 1
je 0x66629bd7
lea edx, [eax - 1]
lea eax, [esp + 0x118]
mov dword [esp + 0x88], edx
call fcn.665825a0
mov ecx, dword [esp + 0x118]
test ecx, ecx
je 0x6662a707
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x118], eax
lea eax, [esp + 0x118]
call fcn.665825a0
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x118]
jmp 0x66629bef
xor eax, eax
jmp 0x66622cc7
movzx eax, word [ebx + 8]
mov edx, dword [ebx + 0x10]
jmp 0x66624a85
lea ecx, [esp + 0xc8]
mov edx, ecx
call fcn.66588960
mov edx, dword [esp + 0xc8]
jmp 0x66620d6c
mov eax, dword [esi + 0x40]
test eax, eax
je 0x66621daa
lea ebx, [esp + 0xd0]
mov dword [esp + 4], str.incremental_vacuum_enabled_with_a_max_rootpage_of_zero
mov dword [esp], ebx
call fcn.665bd2a0
jmp 0x66621daa
call fcn.66592820
jmp 0x666247b2
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x40]
jmp 0x666232b4
mov edx, 1
xor ecx, ecx
call fcn.665928a0
jmp 0x66620f1a
mov ebp, dword [esp + 0x50]
mov esi, eax
cmp eax, 0x65
jne 0x66622784
add ebp, 0x14
jmp 0x66622e90
mov dword [esp + 0x30], 0
mov ebp, dword [esp + 0x50]
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x54]
not eax
shr eax, 0x1f
cmp dl, 0x68
sete dl
xor edi, edi
mov esi, edx
or esi, eax
xor esi, 1
mov eax, esi
movzx esi, al
neg esi
adc edi, 0
mov dword [esp + 0x50], esi
neg edi
mov dword [esp + 0x54], edi
jmp 0x666204e3
mov eax, 0xffffffd1
sub eax, edx
cmp ecx, 0xffffffc1
mov edx, eax
mov eax, ebx
sbb eax, 0xffffffff
jl 0x66629d19
neg ecx
jmp 0x66620485
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jmp 0x66627118
mov eax, ecx
call fcn.66594eb0
mov dword [esp + 0x70], eax
test eax, eax
je 0x6662aa78
mov eax, dword [esp + 0x58]
movzx ecx, byte [eax + 0x3b]
jmp 0x66628870
mov eax, ebx
call fcn.66592820
mov ecx, dword [esi + 0x30]
jmp 0x666284fd
mov dword [esp + 8], edx
mov dword [esp + 4], str.____s
mov dword [esp], edi
call fcn.665bc610
mov dword [esp + 0xc], eax
mov ebx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edi + 0xd4]
mov dword [esp], 1
mov dword [esp + 4], eax
call dword [edi + 0xd0]
test ebx, ebx
je 0x66620bf4
mov edx, ebx
mov eax, edi
call fcn.665926e0
jmp 0x66620bf4
mov eax, dword [esp + 0x98]
mov ebp, dword [esp + 0x3c]
mov esi, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x66629e28
mov ebx, dword [eax]
test ebx, ebx
jle 0x66629e28
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x30]
imul eax, ebx, 0x38
add eax, dword [edi + 0xc]
add ebx, 1
call fcn.66596af0
cmp ebx, dword [edi]
jl 0x66629e16
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
movzx eax, byte [ebp + 0x53]
jmp 0x6662278c
mov eax, esi
call fcn.665864b0
mov dword [esp + 0x78], eax
jmp 0x666261b3
mov edx, 1
xor ecx, ecx
mov eax, edi
mov word [edi + 8], dx
lea edx, [ebx + 2]
call fcn.665a2ef0
test eax, eax
jne 0x66624490
mov eax, dword [edi + 0x10]
jmp 0x666273b5
mov eax, dword [esp + 0x38]
call fcn.665abc70
mov edi, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov ebx, eax
mov eax, dword [edi + 0xd4]
mov dword [esp], eax
call dword [edi + 0xd0]
mov dword [esp], ebx
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x66620bf4
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
test eax, eax
je 0x66629ee9
movzx edx, byte [eax + 0x98]
and edx, 0xfffffffc
or edx, 1
mov byte [eax + 0x98], dl
mov eax, dword [eax + 8]
test eax, eax
jne 0x66629ecf
mov esi, dword [esp + 0x3c]
mov eax, esi
call fcn.66598530
or dword [esi + 0x18], 1
mov esi, dword [esp + 0x30]
test esi, esi
je 0x66629671
jmp 0x66621a37
mov edx, 2
mov eax, ebx
call fcn.665f79c0
jmp 0x666274a0
mov dword [esp + 0xe8], 1
jmp 0x66626c08
mov dword [esp + 0x50], ebp
mov ebx, ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x10], 0x6667e21c
mov dword [esp + 0xc], 0x120f3
jmp 0x66628e3c
bsr eax, esi
xor eax, 0x1f
add eax, 0x20
jmp 0x66629751
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
mov esi, 0xd
sar eax, 2
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], eax
je 0x6662297c
jmp 0x666290be
mov edx, dword [ebp + 0x10]
test ax, ax
jne 0x6662a5c8
mov eax, dword [edx]
mov edi, dword [esp + 0x50]
mov dword [edi], eax
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [edi + 0x10], eax
test byte [edx + 9], 8
jne 0x666247b2
movzx eax, word [edi + 8]
mov word [esp + 0x30], ax
and ah, 0xe3
or ah, 8
mov word [edi + 8], ax
jmp 0x666247b2
mov ebp, dword [esp + 0x50]
jmp 0x66629d00
movzx eax, word [esi + 8]
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x50], eax
test eax, eax
je 0x6662aad6
mov dword [esp + 0x30], esi
jmp 0x66628237
or byte [edi + 8], 2
jmp 0x66627507
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x50]
mov esi, 0x204
sub eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
sar eax, 2
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov dword [esp + 0x30], eax
jmp 0x6662557e
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0x34]
call fcn.665e1250
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x6662a070
mov eax, dword [eax + 0x48]
call fcn.6658dc20
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x66626d98
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x54], 0
jmp 0x666216cd
mov ecx, dword [edi + 0x30]
mov ebx, dword [esp + 0x30]
mov edx, dword [edi + 0x3c]
mov eax, dword [edi + 0x10]
mov dword [esp + 4], ecx
mov ecx, 4
mov dword [esp], ebx
call fcn.665b1570
mov esi, eax
jmp 0x66628f5d
mov eax, ebp
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
mov eax, dword [eax + 8]
mov ebp, dword [esp + 0x3c]
mov dword [ecx + 0x28], 0
mov byte [ecx + 0x92], al
mov dword [ecx + 0x24], ebx
mov eax, dword [esp + 0x38]
call fcn.665fa5c0
mov ebx, dword [esp + 0x28]
cmp eax, 5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
jne 0x66622bbe
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [eax + 0x28], 5
jmp 0x6661fe69
mov esi, dword [esp + 0x38]
mov ecx, ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x24], ebx
mov byte [esi + 0x92], al
movzx eax, word [ecx + 2]
test ax, ax
je 0x6662a656
mov eax, dword [eax*4 + 0x6668874c]
mov esi, dword [esp + 0x38]
mov dword [esp + 4], str._s_constraint_failed
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.665bc5e0
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x6662a182
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 4], str._z:__s
mov dword [esp + 8], eax
mov dword [esp], ebp
call fcn.665bc610
mov dword [esi + 0x7c], eax
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], str.abort_at__d_in___s_:__s
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_log
jmp 0x6662a0de
mov eax, dword [edi + 0x30]
mov ecx, 4
mov edx, 1
mov dword [edi + 0x3c], 1
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, ebx
call fcn.665b1570
mov byte [edi + 4], 1
mov esi, eax
jmp 0x66628f61
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x30], edx
test eax, eax
jg 0x66626951
cmp dword [esp + 0x70], 0
je 0x66629671
jmp 0x66629ec4
mov dword [esp + 0x50], ebp
mov esi, 6
mov ebp, dword [esp + 0x3c]
jmp 0x66622788
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], 6
jmp 0x66621a43
mov edi, dword [esp + 0x50]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp], edi
call sym.libsqlite3_0.dll_sqlite3_free
jmp 0x66627118
cmp byte [esi + 9], 0
jne 0x66629937
jmp case.0x6661fd89.86
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x3c]
jmp 0x66622788
mov eax, dword [edi + 4]
and dword [eax + 0x20], 0xffdfffff
jmp 0x66621dc0
mov dword [esp + 0x30], esi
jmp 0x666287fe
cmp word [eax + 8], 0xc
ja 0x66628086
mov dword [esp + 0x30], 7
jmp 0x666277e0
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
jmp 0x6662449a
mov eax, dword [ebx + 0x30]
jmp 0x66628bd9
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov esi, 6
mov ebx, dword [esp + 0x28]
sub dword [ebp + 0xc4], 1
jmp 0x66620035
mov edx, 7
jmp 0x66628b4b
add eax, 0x38
cmp esi, edx
jne 0x666289f0
mov edx, 2
mov eax, ebx
call fcn.6659d100
test eax, eax
jne 0x6662aeb6
mov eax, dword [esp + 0x60]
mov byte [eax + 2], 0
jmp case.0x6661fd89.86
lea esi, [esp + 0x118]
xor eax, eax
mov ecx, 0xa
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x30]
mov edi, dword [ecx]
mov ecx, dword [ebx + 0x30]
movzx edx, word [ecx + 0x30]
mov eax, ecx
mov ecx, dword [ecx + 0x74]
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + 0x3c]
sub ecx, dword [eax + 0x28]
mov eax, 0
cmovs ecx, eax
mov eax, dword [esp + 0x60]
cmp edx, ecx
mov eax, dword [eax + 0x28]
cmovle ecx, edx
mov dword [esp + 0x128], eax
cmp edi, ecx
ja 0x6662aeec
mov word [esp + 0x120], 0x1010
mov dword [esp + 0x124], edi
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x30]
movzx esi, word [ebx + 0x42]
mov edi, dword [ebx + 0x38]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + esi*4]
mov ecx, dword [ecx]
mov dword [esp + 0x80], ecx
jmp 0x6662945c
mov eax, ebx
call fcn.66582810
jmp 0x66628f55
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov dword [esp + 0x50], ebp
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.cannot_open_savepoint___SQL_statements_in_progress
mov dword [esp], eax
call fcn.665bc5e0
mov eax, ebx
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov esi, 5
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov dword [esp + 0x50], ebp
mov ecx, edi
mov ebp, dword [esp + 0x3c]
jmp 0x66626b05
mov edx, 1
mov eax, ebx
mov dword [esp + 0x118], 0
call fcn.66588b00
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66622c83
lea esi, [esp + 0x118]
mov eax, dword [ebx]
mov dword [esp + 8], 0
mov dword [esp + 0xc], esi
mov edx, dword [ebx + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [eax + 0x20]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66622c83
cmp dword [esp + 0x118], 0
jne 0x6662ad0c
cmp dword [ebx + 0xd8], 0
jne 0x666299b7
mov edx, edi
mov eax, ebx
call fcn.665f79c0
jmp 0x666274ac
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x50]
mul dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], edx
mul dword [esp + 0x80]
mov ecx, eax
mov eax, dword [esp + 0x80]
mov ebx, edx
test eax, eax
jns 0x6662a4dc
mov eax, dword [esp + 0x78]
mov edx, eax
mov eax, 0
sub ecx, eax
sbb ebx, edx
mov eax, dword [esp + 0x78]
test eax, eax
jns 0x6662a4f2
sub ecx, dword [esp + 0x88]
sbb ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x54]
mov eax, edx
xor edx, edx
add ecx, eax
adc ebx, edx
mov edx, ecx
mov ecx, ebx
mov ebx, edx
sar ebx, 0x1f
cmp ebx, ecx
jne 0x66620228
mov ebx, dword [esp + 0x50]
mov eax, edx
mov edi, ebx
jmp 0x6662615d
mov eax, dword [esp + 0x50]
jmp 0x66622958
cmp edi, 5
mov edx, str.out_of
mov eax, str.into
mov ebx, ebp
cmovne eax, edx
mov dword [esp + 4], str.cannot_change__s_wal_mode_from_within_a_transaction
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.665bc5e0
mov eax, ebx
jmp 0x66626b21
mov dword [esp + 0x10], 0x6667e21c
mov esi, ebp
mov dword [esp + 0xc], 0x166e5
mov dword [esp + 8], str.index_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0x30b
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, esi
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
sar eax, 2
mov esi, 0x30b
imul eax, eax, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], eax
je 0x6662297c
jmp 0x666290be
mov ebp, dword [esp + 0x50]
jmp 0x66622e90
mov eax, dword [esp + 0x50]
mov ecx, 0x800
call fcn.665933d0
jmp 0x666247b2
mov edx, dword [0x666b0398]
test edx, edx
jne 0x66627070
mov dword [esp + 0x30], 0
add eax, ebx
jmp 0x66623a42
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.too_many_levels_of_trigger_recursion
mov ebx, ebp
mov dword [esp + 0x50], ebp
mov ebp, ecx
mov dword [esp], eax
call fcn.665bc5e0
mov eax, ebx
jmp 0x66626b21
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jmp 0x66629f6a
mov eax, dword [ebx + 0x18]
mov edi, dword [esp + 0x3c]
mov edx, ebx
mov dword [edi + 0x1d8], eax
mov eax, edi
call fcn.665926e0
mov ebx, dword [esp + 0x60]
test ebx, ebx
jne 0x6662ab5b
sub dword [edi + 0x1e4], 1
jmp 0x666296ee
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], 0x6667eaa2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.665bc5e0
jmp 0x6662a182
shld edi, esi, cl
xor ebx, ebx
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, ebx
mov ebx, esi
mov esi, edi
jmp 0x666204db
mov eax, esi
xor edx, edx
call fcn.665908a0
movzx eax, word [ebx + 8]
mov word [esp + 0x70], ax
mov word [esp + 0x50], ax
jmp 0x666200c3
mov eax, esi
call fcn.665e5a80
mov dword [esp + 0x30], eax
test eax, eax
jne 0x66621a37
cmp byte [esi + 2], 0
je 0x6662acf5
mov esi, 1
mov word [ebx + 8], si
jmp case.0x6661fd89.86
cmp ecx, dword [esp + 0x78]
jne 0x6662ac8c
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x78], eax
jmp 0x6662a4a3
mov ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esp + 0x80]
mov dword [eax + 0xc], esi
jmp 0x666276b8
fldz
fstp qword [esp + 0x50]
jmp 0x666202b2
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x60], 1
mov edx, dword [eax + 0x1d8]
mov byte [eax + 0x59], 0
cmp ebx, edx
jne 0x6662967f
mov eax, dword [ebx + 0x18]
mov edi, dword [esp + 0x3c]
mov edx, ebx
mov dword [edi + 0x1d8], eax
mov eax, edi
call fcn.665926e0
jmp case.0x6661fd89.86
mov dword [esi + 0x28], 0x313
mov byte [esi + 0x92], 2
mov dword [esp], esi
mov dword [esp + 4], str.FOREIGN_KEY_constraint_failed
mov dword [esp + 0x50], ebp
mov ebp, edi
call fcn.665bc5e0
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x30], 1
mov edi, dword [esp + 0x4c]
jmp 0x6661fe69
xor edx, edx
mov eax, ebx
call fcn.665908a0
movzx eax, word [esi + 8]
movzx edx, word [ebx + 8]
jmp 0x666200db
movzx edx, byte [esp + 0x6b]
mov ecx, 1
mov eax, esi
call fcn.665ac210
movzx edx, word [esp + 0x58]
movzx eax, word [esi + 8]
and dx, 0xc1bf
and ax, 0x3e40
or eax, edx
mov word [esp + 0x58], ax
cmp esi, ebx
jne 0x6662726f
or eax, 2
mov word [esp + 0x50], ax
jmp 0x666272a6
mov eax, dword [edi]
cmp esi, dword [eax + 0x60]
jg 0x66625564
jmp 0x6662557e
mov edx, esi
call fcn.66598780
mov dword [esp + 0x30], eax
jmp 0x6662556e
xor edx, edx
mov eax, 0x10
call fcn.6658bcf0
mov edx, eax
test eax, eax
je 0x6662adf7
xor eax, eax
lea edi, [edx + 8]
mov ecx, 2
rep stosd dword es:[edi], eax
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x58]
mov dword [edx], esi
mov eax, dword [ebx + 0x4c]
mov dword [edx + 0xc], eax
mov dword [ebx + 0x4c], edx
jmp 0x6662991c
sub dword [edi + 0xc], 1
jne 0x66625ea3
mov eax, edi
call fcn.66582810
jmp 0x666298a5
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ebp, dword [esp + 0x3c]
jmp 0x6661fff7
mov eax, dword [esp + 0x58]
mov dword [esp + 0x50], ebp
mov edx, 4
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov word [eax + 8], dx
mov dword [eax], 0
mov dword [eax + 4], 0
movzx eax, byte [ebp + 0x53]
jmp 0x6662278c
mov eax, ebp
sub eax, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
mov ebp, ebx
sar eax, 2
mov ebx, dword [esp + 0x38]
mov esi, 6
imul eax, eax, 0xcccccccd
mov byte [ebx + 0x92], 2
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x58], eax
jmp 0x6661fdbc
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
test edi, edi
je 0x6662a912
movzx eax, word [edi + 8]
mov edx, eax
and dx, 0x202
cmp dx, 0x202
je 0x6662abf6
test al, 1
jne 0x6662abef
mov eax, edi
mov edx, 1
call fcn.665ac380
mov edi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0x6667eaa2
jmp 0x6662258f
xor eax, eax
jmp 0x666280dc
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x70]
xor ecx, ecx
lea eax, [ebx + 0x40]
mov edx, edi
call fcn.6659cfa0
mov dword [ebx + 0x14], edi
mov esi, eax
test eax, eax
je 0x6662a302
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x70], 0
jmp 0x66629e3c
mov eax, dword [esp + 0x58]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x6662a999
mov ecx, dword [eax]
test ecx, ecx
jle 0x6662a999
mov ebx, dword [esp + 0x30]
mov esi, eax
imul eax, ebx, 0x38
add eax, dword [esi + 0xc]
add ebx, 1
call fcn.66596af0
cmp ebx, dword [esi]
jl 0x6662a987
mov esi, 7
jmp 0x66629e3c
mov eax, 0x38
xor edx, edx
call fcn.6658bcf0
mov ebx, eax
jmp 0x6662891a
mov eax, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov edx, dword [eax + 0x7c]
test edx, edx
je 0x6662a9d0
mov eax, ebp
call fcn.665926e0
mov edx, str.database_schema_has_changed
mov eax, ebp
call fcn.66591c60
mov ebx, dword [esp + 0x38]
mov dword [ebx + 0x7c], eax
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x118]
mov edx, dword [eax + 4]
mov eax, edx
shl eax, 4
add eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax], ebx
je 0x6662aa07
mov eax, ebp
call fcn.66598620
mov ebx, dword [esp + 0x38]
mov esi, 0x11
movzx eax, byte [ebx + 0x98]
mov byte [esp + 0x30], al
and eax, 0xfffffffc
or eax, 1
mov byte [ebx + 0x98], al
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
sar eax, 2
imul eax, eax, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], eax
je 0x6662297c
jmp 0x666290be
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [edi]
cmp dword [eax + 0x60], esi
jl 0x66625564
jmp 0x66625574
mov eax, ebx
call fcn.66582810
jmp 0x6662557e
mov dword [esp + 0x50], ebp
mov esi, 7
mov ebp, dword [esp + 0x3c]
jmp 0x66629e28
cmp byte [esp + 0x30], 5
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jne 0x66621a3f
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
sar eax, 2
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
mov edi, dword [esp + 0x4c]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x28], eax
mov esi, dword [esp + 0x48]
jmp 0x6661fe69
xor edi, edi
xor eax, eax
jmp 0x6662615d
lea ebx, [esp + 0xd0]
mov edx, esi
mov eax, ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp], 0
mov dword [esp + 4], 0
call fcn.665e4f30
mov dword [esp + 0x30], eax
jmp 0x66626003
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov eax, ebp
call fcn.66598530
jmp 0x66624a2d
mov dword [esp + 0x10], 0x6667e21c
mov esi, ebp
mov dword [esp + 0xc], 0x167b1
mov dword [esp + 8], str.database_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0xb
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, esi
jmp 0x66622958
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [esi + 0x34]
bswap eax
test eax, eax
je 0x6662ab85
xor edx, edx
jmp 0x66621d8b
mov dword [esp + 0x30], 6
jmp 0x6662799c
mov eax, dword [edi + 4]
and dword [eax + 0x20], 0xffdfffff
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
jmp 0x66627b03
mov eax, dword [ebx + 0x48]
mov eax, dword [eax + 0x1c]
call fcn.66591960
mov dword [ebx + 0x4c], eax
test eax, eax
je 0x6662abe2
mov edx, dword [ebx + 0x48]
mov edx, dword [edx + 0x1c]
movzx edx, word [edx + 6]
mov byte [eax + 0xb], 0
mov word [eax + 8], dx
jmp 0x666288fd
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
jmp 0x66621a3f
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jmp 0x6662a973
xor edi, edi
jmp 0x6662a912
cmp byte [edi + 0xa], 1
jne 0x6662a8fc
mov edi, dword [edi + 0x10]
jmp 0x6662a912
mov dword [esp + 0x30], 0
jmp case.0x6661fd89.86
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
mov word [eax + 8], 4
mov dword [eax], 0
mov dword [eax + 4], 0
jmp 0x66622788
mov eax, ebp
sub eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
sar eax, 2
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
imul eax, eax, 0xcccccccd
mov edi, dword [esp + 0x4c]
mov dword [ebx + 0x24], eax
mov byte [ebp + 0x51], 0
mov dword [ebx + 0x28], 5
mov ebx, dword [esp + 0x28]
jmp 0x6661fe69
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
jmp 0x66623571
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
imul ebx, dword [esp + 0x58]
imul ecx, edx
mov eax, dword [esp + 0x50]
mul dword [esp + 0x58]
add ecx, ebx
add ecx, edx
mov ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x80]
lea edx, [ecx + 1]
cmp edx, 1
ja 0x66620228
mov edx, dword [esp + 0x78]
add edx, 1
cmp edx, 1
ja 0x66620228
mov edx, dword [esp + 0x78]
cmp ecx, edx
jne 0x6662acfd
xor ecx, ecx
cmp ecx, ebx
sbb ecx, eax
jge 0x66620228
mov edi, ebx
jmp 0x6662615d
or eax, esi
jmp 0x66620220
mov edx, dword [esi + 0x30]
jmp 0x66628fb2
test eax, eax
jns 0x66620228
mov edi, ebx
jmp 0x6662615d
mov eax, ebx
call fcn.66598910
mov dword [esp + 0x30], eax
test eax, eax
je 0x6662a45f
jmp 0x66622c83
mov eax, dword [esp + 0x38]
mov esi, 0xb
cmp dword [eax + 0x7c], 0
jne 0x6661ff48
jmp 0x6661fef8
mov ecx, dword [esp + 0x78]
jmp 0x666276ae
mov eax, dword [esp + 0xd0]
mov ebx, ecx
jmp 0x66628d29
lea ebx, [esp + 0xd0]
mov dword [esp + 8], 0
lea esi, [esp + 0x118]
mov eax, ecx
mov dword [esp + 0xc], ebx
mov edx, esi
mov dword [esp], 0
mov dword [esp + 4], 0
call fcn.665e4f30
mov dword [esp + 0x30], eax
jmp 0x666206c0
sub dword [edi + 0xc], 1
jne 0x6662176e
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x30], esi
jmp 0x66626dc3
mov dword [esp + 0x10], 0x6667e21c
mov ebx, ebp
mov dword [esp + 0xc], 0x15aee
mov dword [esp + 8], str.database_corruption
mov dword [esp + 4], str._s_at_line__d_of___.10s_
mov dword [esp], 0xb
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, ebx
jmp 0x66622958
add edx, 0x44
jmp 0x66628de3
mov dword [esp + 0x60], 1
jmp 0x6662691f
cmp byte [esi + 9], 0
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
jne 0x6662ae71
mov ebx, dword [esp + 0x28]
mov esi, 7
jmp 0x66620035
mov esi, dword [esp + 0x78]
jmp 0x6662a70c
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0x34]
call fcn.665e1250
mov edx, dword [esp + 0x118]
mov dword [esp + 0x30], eax
test edx, edx
jne 0x666216a2
jmp 0x666216aa
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov edx, 0x3f8
mov eax, dword [eax + 4]
call fcn.6658bdd0
test eax, eax
je 0x6662aeab
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov dword [eax], edx
mov dword [ecx], eax
add eax, 8
mov dword [ecx + 0x10], eax
mov word [ecx + 0x18], 0x3f
jmp 0x66629b72
sub dword [esi + 0xc], 1
jne 0x6662ae7e
mov eax, esi
call fcn.66582810
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x44]
mov esi, 7
sar eax, 2
mov ebx, dword [esp + 0x28]
imul eax, eax, 0xcccccccd
cmp byte [ebp + 0x53], 0
mov dword [esp + 0x58], eax
je 0x6662297c
jmp 0x666290be
mov dword [esi], 0
jmp 0x666276b8
mov dword [esp + 0x50], ebp
mov esi, eax
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x70], 0
jmp 0x66629e3c
mov eax, dword [esp + 0x50]
lea esi, [eax + 0x14]
jmp 0x66629b63
imul edx, dword [ebp + 0xc], 0x28
add edx, dword [esp + 0x40]
or eax, esi
mov dword [esp + 0x70], edx
jmp 0x66620220
mov dword [esp], esi
mov eax, dword [esp + 0x60]
mov ecx, edi
xor edx, edx
call fcn.665e6d80
mov esi, eax
test eax, eax
je 0x6662a371
jmp 0x66622780
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x7c], 0
jne 0x6661ff48
cmp esi, 0xc0a
jne 0x6662af6d
mov esi, dword [esp + 0x38]
mov edx, 0xc0a
mov eax, ebp
mov dword [esi + 0x28], 0xc0a
call fcn.66588250
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc0]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.statement_aborts_at__d:___s___s
mov dword [esp], 0xc0a
call sym.libsqlite3_0.dll_sqlite3_log
mov eax, esi
call fcn.665fa5c0
jmp 0x6661ff94
cmp esi, 0x65
jne 0x6661fef8
mov eax, str.no_more_rows_available
jmp 0x6661ff30
cmp dword [esp + 0x70], 0
je 0x66629ef8
jmp 0x66629ec4
mov dword [esp + 0x50], ebp
mov ebp, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.cannot_release_savepoint___SQL_statements_in_progress
mov dword [esp], eax
call fcn.665bc5e0
mov eax, dword [esp + 0x50]
jmp 0x6662a3cf
mov ebp, dword [esp + 0x3c]
jmp 0x66679f84
mov ebp, dword [esp + 0x3c]
jmp 0x66679f84
mov eax, dword [ebp + 0x16c]
mov edx, dword [ebp + 0x184]
lea ecx, [eax + 1]
mov dword [ebp + 0x16c], ecx
mov dword [edx + eax*4], 0
mov eax, dword [0xc]
ud2