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

Disassembly:
sub esp, 0xa8
mov eax, dword [0x100ca170]
xor eax, esp
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb0]
push ebx
push ebp
mov ebp, dword [esp + 0xb4]
push esi
mov esi, dword [ebp]
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], esi
test edi, edi
jne 0x10081315
mov ebx, ebp
call fcn.1002c190
mov edi, eax
mov dword [ebp + 8], eax
test edi, edi
je 0x100812f7
push 0x99
mov esi, edi
call fcn.1003a230
mov esi, dword [esp + 0x18]
add esp, 4
cmp dword [ebp + 0x198], 0
jne 0x1008130d
mov eax, dword [ebp]
test byte [eax + 0x3c], 8
jne 0x1008130d
mov byte [ebp + 0x17], 1
test edi, edi
je 0x10083b48
or dword [edi + 0x58], 0x40
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
push ebp
lea ecx, [esp + 0x28]
mov dword [ebp + 0x48], 2
call fcn.100357a0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jl 0x10083b48
mov edx, dword [esi + 0x10]
mov ecx, eax
shl ecx, 4
add edx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c], edx
cmp eax, 1
jne 0x10081367
mov eax, ebp
call fcn.10070a70
test eax, eax
jne 0x10083b48
mov ecx, dword [esp + 0x24]
push esi
call fcn.1002e310
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x10083b48
cmp dword [esp + 0xc4], 0
mov ecx, dword [esp + 0x2c]
je 0x100813a8
mov esi, dword [esp + 0x14]
push ecx
push 0x100b759c
call fcn.10032280
mov ebx, eax
add esp, 8
mov dword [esp + 0x40], ebx
jmp 0x100813b7
push esi
call fcn.1002e310
add esp, 4
mov dword [esp + 0x40], eax
mov ebx, eax
mov edx, dword [esp + 0x20]
cmp dword [edx + 4], 0
jbe 0x100813cd
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov dword [esp + 0x34], esi
jmp 0x100813d9
mov dword [esp + 0x34], 0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
push esi
push ebx
push ecx
push 0x13
mov eax, ebp
call fcn.100396f0
add esp, 0x10
test eax, eax
jne case.0x10081568.36
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
mov dword [eax + 0x1c4], ecx
lea ecx, [esp + 0x6c]
push ecx
push 0xe
push esi
push eax
call sym.SQLite.Interop.dll_sqlite3_file_control
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1008148b
mov eax, dword [esp + 0x6c]
test eax, eax
je case.0x10081568.36
inc dword [ebp + 0x48]
mov ebp, dword [ebp + 0x48]
push esi
push eax
push esi
push ebp
push esi
push 0x61
mov esi, edi
call fcn.1003f5a0
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 0x1c
push 0
push 0
push 0
mov ebx, str.result
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 1
push ebp
push 0x23
call fcn.1003a180
mov edx, dword [esp + 0x78]
add esp, 0xc
push edx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
jmp case.0x10081568.36
cmp esi, 0xc
je 0x100814bd
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100814b2
push eax
push 0x100b5014
mov edi, ebp
call fcn.100320c0
mov eax, dword [esp + 0x74]
push eax
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 0xc
inc dword [ebp + 0x40]
mov dword [ebp + 0xc], esi
jmp case.0x10081568.36
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0x3d
lea ecx, [ecx]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
lea eax, [ecx + edx]
cdq
sub eax, edx
mov edx, dword [esp + 0x60]
mov esi, eax
sar esi, 1
lea eax, [esi + esi*2]
mov ecx, dword [eax*4 + 0x100b1168]
push ecx
push edx
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
je 0x1008151b
jge 0x10081507
dec esi
mov dword [esp + 0x18], esi
jmp 0x1008150c
inc esi
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x38], eax
jle 0x100814d0
jmp case.0x10081568.36
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x38], ecx
jg case.0x10081568.36
lea eax, [esi + esi*2]
add eax, eax
add eax, eax
test byte [eax + 0x100b116d], 1
mov dword [esp + 0x2c], eax
je 0x10081550
mov esi, ebp
call fcn.10012bf0
test eax, eax
jne case.0x10081568.36
mov eax, dword [esp + 0x2c]
movzx ecx, byte [eax + 0x100b116c]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp ecx, 0x27
ja case.0x10081568.3
jmp dword [ecx*4 + 0x10083b64]
mov ecx, dword [esp + 0x28]
mov edx, 1
shl edx, cl
or dword [edi + 0x60], edx
cmp ecx, 1
je 0x10081589
mov eax, edi
call fcn.1001c150
test ebx, ebx
jne 0x1008160a
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.cache_size
mov ecx, edi
call fcn.10044630
add dword [ebp + 0x48], 2
add esp, 0xc
push 0x100b1498
push 9
push edi
call fcn.10036fc0
add esp, 0xc
cmp dword [edi + 0x20], eax
jbe 0x100815d5
mov edx, dword [edi + 4]
mov esi, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*4 + 4], esi
lea ecx, [eax + 1]
cmp dword [edi + 0x20], ecx
jbe 0x100815eb
mov edx, dword [edi + 4]
mov esi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 4], esi
add eax, 6
cmp dword [edi + 0x20], eax
jbe case.0x10081568.36
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4 + 4], 0x7d0
jmp case.0x10081568.36
mov ecx, ebx
call fcn.1001def0
call fcn.100162d0
mov ecx, dword [esp + 0x28]
push 0
mov edx, ebp
mov ebx, eax
call fcn.10077fb0
add esp, 4
push 1
push ebx
push 0x19
mov esi, edi
call fcn.1003a180
mov edx, dword [esp + 0x34]
add esp, 0xc
push 1
push 3
push edx
push 0x34
call fcn.100370c0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov dword [ecx + 0x50], ebx
mov edx, dword [eax + 0xc]
mov ecx, dword [edx + 0x50]
mov eax, dword [eax + 4]
push ecx
call fcn.100255c0
add esp, 0x14
jmp case.0x10081568.36
mov esi, dword [esi + 4]
test ebx, ebx
jne 0x10081695
test esi, esi
je 0x10081686
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
cdq
push edx
push eax
push str.page_size
jmp 0x10083b24
xor eax, eax
cdq
push edx
push eax
push str.page_size
jmp 0x10083b24
mov ecx, dword [esp + 0x40]
call fcn.1001def0
mov edi, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
mov ebx, esi
mov dword [edi + 0x48], eax
call fcn.10031b40
add esp, 8
cmp eax, 7
jne case.0x10081568.36
mov byte [edi + 0x41], 1
jmp case.0x10081568.36
mov eax, dword [esi + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], 0xffffffff
test ebx, ebx
je 0x100816ee
mov ebx, dword [esp + 0x40]
xor al, al
call fcn.100249b0
mov edx, dword [esp + 0x14]
movzx ecx, al
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jne 0x10081731
cmp dword [esp + 0x18], 0
jl 0x10081731
xor edi, edi
cmp dword [edx + 0x14], edi
jle 0x10081731
xor esi, esi
jmp 0x10081710
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, dword [edx + esi + 4]
call fcn.100253f0
mov eax, dword [esp + 0x14]
inc edi
add esi, 0x10
cmp edi, dword [eax + 0x14]
jl 0x10081710
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
call fcn.100253f0
cdq
push edx
push eax
push str.secure_delete
jmp 0x10083b24
mov esi, dword [esp + 0x28]
mov ecx, esi
mov edx, ebp
call fcn.100720c0
inc dword [ebp + 0x48]
mov ecx, dword [esp + 0x60]
movzx edx, byte [ecx]
cmp byte [edx + 0x100b0400], 0x70
mov ebp, dword [ebp + 0x48]
jne 0x10081781
push ebp
push esi
push 0x97
mov esi, edi
call fcn.1003a180
add esp, 0xc
jmp 0x1008179f
mov ecx, ebx
call fcn.1001def0
call fcn.100162d0
push eax
push ebp
push esi
push 0x98
mov esi, edi
call fcn.100370c0
add esp, 0x10
push 1
push ebp
push 0x23
mov esi, edi
call fcn.1003a180
add esp, 0xc
push 1
mov ebx, edi
call fcn.10039fd0
mov ebx, dword [esp + 0x64]
add esp, 4
push 0xffffffffffffffff
push 0
push 0
mov ecx, edi
call fcn.10044630
jmp 0x10083b2b
mov esi, ebx
mov dword [esp + 0x2c], str.normal
call fcn.1001ae60
mov edx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
test eax, eax
jne 0x1008182f
cmp edx, 0xffffffff
jne 0x100817fb
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 0x42]
jmp 0x10081840
test eax, eax
jne 0x1008182f
mov ebp, dword [esp + 0x14]
mov esi, 2
cmp dword [ebp + 0x14], esi
jle 0x1008182c
mov ebx, 0x20
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + ebx + 4]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
call fcn.10014f10
inc esi
add ebx, 0x10
cmp esi, dword [ebp + 0x14]
jl 0x10081812
mov byte [ebp + 0x42], dl
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call fcn.10014f10
cmp eax, 1
jne 0x1008184d
mov dword [esp + 0x2c], str.exclusive
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.locking_mode
mov ecx, edi
call fcn.10044630
mov edx, dword [esp + 0x38]
add esp, 0xc
push 0
push edx
push 0
push 1
push 0
push 0x61
mov esi, edi
call fcn.1003f5a0
push 1
push 1
push 0x23
call fcn.1003a180
add esp, 0x24
jmp case.0x10081568.36
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.journal_mode
mov ecx, edi
call fcn.10044630
mov esi, dword [esp + 0x4c]
add esp, 0xc
test esi, esi
jne 0x100818ca
mov dword [esp + 0x1c], 0xffffffff
jmp 0x10081900
mov ecx, esi
call fcn.10016f30
mov ebp, eax
xor ebx, ebx
cmp ebx, 6
je 0x100818c0
mov eax, dword [ebx*4 + 0x100b1480]
test eax, eax
je 0x100818c0
push ebp
push eax
push esi
call sym.SQLite.Interop.dll_sqlite3_strnicmp
add esp, 0xc
test eax, eax
je 0x100818f7
inc ebx
jmp 0x100818d5
mov dword [esp + 0x1c], ebx
cmp ebx, 0xffffffff
jne 0x10081919
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jne 0x10081919
mov dword [esp + 0x28], 0
mov dword [eax + 4], 1
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x14]
sub ebx, 1
js 0x10081982
mov ebp, ebx
shl ebp, 4
lea ebx, [ebx]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
cmp dword [edx + ebp + 4], 0
je 0x1008197a
cmp ebx, dword [esp + 0x28]
je 0x1008194e
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jne 0x1008197a
mov edx, 1
mov ecx, ebx
shl edx, cl
or dword [edi + 0x60], edx
cmp ebx, 1
je 0x10081966
mov eax, edi
call fcn.1001c150
mov eax, dword [esp + 0x1c]
push eax
push 1
push ebx
push 0xc
mov esi, edi
call fcn.100370c0
add esp, 0x10
dec ebx
sub ebp, 0x10
test ebx, ebx
jge 0x10081930
push 1
push 1
push 0x23
mov esi, edi
call fcn.1003a180
jmp 0x10083b2b
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 4]
mov esi, dword [edx]
or ecx, 0xffffffff
mov eax, 0xfffffffe
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
test ebx, ebx
je 0x100819de
lea eax, [esp + 0x48]
push eax
mov edi, ebx
call fcn.10022b10
mov ecx, dword [esp + 0x50]
add esp, 4
cmp ecx, 0xffffffff
jg 0x100819da
jl 0x100819d3
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
jae 0x100819de
or eax, 0xffffffff
or ecx, eax
jmp 0x100819de
mov eax, dword [esp + 0x48]
push ecx
push eax
mov ecx, esi
call fcn.10014e80
push edx
push eax
push str.journal_size_limit
mov eax, ebp
call fcn.10047970
add esp, 0x14
jmp case.0x10081568.36
mov esi, dword [esi + 4]
mov dword [esp + 0x24], esi
test ebx, ebx
jne 0x10081a1c
mov eax, esi
call fcn.10025320
cdq
push edx
push eax
push str.auto_vacuum
jmp 0x10083b24
mov esi, ebx
call fcn.10020710
mov ecx, dword [esp + 0x14]
mov ebx, eax
mov eax, dword [esp + 0x24]
push ebx
mov byte [ecx + 0x43], bl
call fcn.10025370
add esp, 4
test eax, eax
jne case.0x10081568.36
cmp ebx, 1
je 0x10081a4f
cmp ebx, 2
jne case.0x10081568.36
push 0x100b14c0
push 6
push edi
call fcn.10036fc0
mov ecx, dword [esp + 0x34]
add esp, 0xc
cmp dword [edi + 0x20], eax
jbe 0x10081a72
mov esi, dword [edi + 4]
lea edx, [eax + eax*4]
mov dword [esi + edx*4 + 4], ecx
lea edx, [eax + 1]
cmp dword [edi + 0x20], edx
jbe 0x10081a84
mov esi, dword [edi + 4]
lea edx, [edx + edx*4]
mov dword [esi + edx*4 + 4], ecx
lea edx, [eax + 2]
cmp dword [edi + 0x20], edx
jbe 0x10081a99
mov ebp, dword [edi + 4]
lea esi, [eax + 4]
lea edx, [edx + edx*4]
mov dword [ebp + edx*4 + 8], esi
lea edx, [eax + 4]
cmp dword [edi + 0x20], edx
jbe 0x10081aac
mov esi, dword [edi + 4]
dec ebx
lea edx, [edx + edx*4]
mov dword [esi + edx*4 + 4], ebx
add eax, 5
cmp dword [edi + 0x20], eax
jbe 0x10081abe
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov dword [edx + eax*4 + 4], ecx
mov eax, 1
shl eax, cl
or dword [edi + 0x60], eax
cmp ecx, 1
je case.0x10081568.36
mov eax, edi
call fcn.1001c150
jmp case.0x10081568.36
test ebx, ebx
je 0x10081afb
lea ecx, [esp + 0x24]
push ecx
push ebx
call fcn.100166b0
add esp, 8
test eax, eax
je 0x10081afb
mov esi, dword [esp + 0x24]
test esi, esi
jg 0x10081b00
mov esi, 0x7fffffff
mov ebx, dword [esp + 0x28]
push 0
mov ecx, ebx
mov edx, ebp
call fcn.10077fb0
add esp, 4
push 1
push esi
push 0x19
mov esi, edi
call fcn.1003a180
add esp, 0xc
push ebx
push 0x8d
call fcn.1003a1e0
push 1
push 0x23
mov ebx, eax
call fcn.1003a1e0
push 0xffffffffffffffff
push 1
push 0x25
call fcn.1003a180
add esp, 0x1c
push ebx
push 1
push 0x89
call fcn.1003a180
add esp, 0xc
mov eax, ebx
mov edx, edi
call fcn.1001c180
jmp case.0x10081568.36
test ebx, ebx
jne 0x10081b7a
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x50]
cdq
push edx
push eax
push str.cache_size
jmp 0x10083b24
mov ecx, ebx
call fcn.1001def0
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x50]
push eax
mov eax, dword [esi + 4]
call fcn.100255c0
add esp, 4
jmp case.0x10081568.36
test ebx, ebx
je 0x10081c37
lea ecx, [esp + 0x48]
push ecx
mov edi, ebx
call fcn.10022b10
mov ecx, dword [esp + 0x50]
add esp, 4
test ecx, ecx
jg 0x10081bda
jl 0x10081bc6
cmp dword [esp + 0x48], 0
jae 0x10081bda
mov edx, dword [0x100cb470]
mov ecx, dword [0x100cb474]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
mov ebx, dword [esp + 0x14]
jne 0x10081bf2
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], ecx
mov esi, dword [ebx + 0x14]
sub esi, 1
js 0x10081c3b
mov edi, esi
shl edi, 4
nop
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edi + 4]
test eax, eax
je 0x10081c2d
cmp esi, dword [esp + 0x28]
je 0x10081c1b
mov edx, dword [esp + 0x20]
cmp dword [edx + 4], 0
jne 0x10081c2d
push ecx
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.10025570
mov ecx, dword [esp + 0x54]
add esp, 8
dec esi
sub edi, 0x10
test esi, esi
jge 0x10081c00
jmp 0x10081c3b
mov ebx, dword [esp + 0x14]
or eax, 0xffffffff
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x38]
push 0x12
push eax
push ebx
call sym.SQLite.Interop.dll_sqlite3_file_control
add esp, 0x10
test eax, eax
jne 0x10081c73
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
push edx
push str.mmap_size
jmp 0x10083b24
cmp eax, 0xc
je case.0x10081568.36
inc dword [ebp + 0x40]
mov dword [ebp + 0xc], eax
jmp case.0x10081568.36
test ebx, ebx
jne 0x10081ca0
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x40]
cdq
push edx
push eax
push str.temp_store
jmp 0x10083b24
mov eax, ebx
mov edi, ebp
call fcn.1007ed50
jmp case.0x10081568.36
test ebx, ebx
jne 0x10081ced
cmp dword [sym.SQLite.Interop.dll_sqlite3_temp_directory], ebx
je case.0x10081568.36
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.temp_store_directory
mov ecx, edi
call fcn.10044630
mov ecx, dword [sym.SQLite.Interop.dll_sqlite3_temp_directory]
add esp, 0xc
push 0
push ecx
jmp 0x10081875
cmp byte [ebx], 0
je 0x10081d27
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x24]
push ecx
push 1
push ebx
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x10081d13
cmp dword [esp + 0x24], eax
jne 0x10081d27
push str.not_a_writable_directory
mov edi, ebp
call fcn.100320c0
add esp, 4
jmp case.0x10081568.36
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x40], 1
ja 0x10081d38
mov eax, ebp
call fcn.1007c4c0
mov ecx, dword [sym.SQLite.Interop.dll_sqlite3_temp_directory]
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
cmp byte [ebx], 0
je 0x10081d64
push ebx
push 0x100b5014
call sym.SQLite.Interop.dll_sqlite3_mprintf
add esp, 8
mov dword [sym.SQLite.Interop.dll_sqlite3_temp_directory], eax
jmp case.0x10081568.36
mov dword [sym.SQLite.Interop.dll_sqlite3_temp_directory], 0
jmp case.0x10081568.36
test ebx, ebx
jne 0x10081dac
cmp dword [sym.SQLite.Interop.dll_sqlite3_data_directory], ebx
je case.0x10081568.36
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.data_store_directory
mov ecx, edi
call fcn.10044630
mov edx, dword [sym.SQLite.Interop.dll_sqlite3_data_directory]
jmp 0x1008186f
cmp byte [ebx], 0
je 0x10081dda
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x24]
push ecx
push 1
push ebx
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x10081d13
cmp dword [esp + 0x24], eax
je 0x10081d13
mov eax, dword [sym.SQLite.Interop.dll_sqlite3_data_directory]
push eax
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
cmp byte [ebx], 0
je 0x10081e05
push ebx
push 0x100b5014
call sym.SQLite.Interop.dll_sqlite3_mprintf
add esp, 8
mov dword [sym.SQLite.Interop.dll_sqlite3_data_directory], eax
jmp case.0x10081568.36
mov dword [sym.SQLite.Interop.dll_sqlite3_data_directory], 0
jmp case.0x10081568.36
test ebx, ebx
jne 0x10081e2a
movzx eax, byte [esi + 8]
dec eax
cdq
push edx
push eax
push str.synchronous
jmp 0x10083b24
cmp byte [edx + 0x3f], 0
jne 0x10081e44
push str.Safety_level_may_not_be_changed_inside_a_transaction
mov edi, ebp
call fcn.100320c0
add esp, 4
jmp case.0x10081568.36
mov ebx, dword [esp + 0x40]
push 1
push 0
call fcn.10020790
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
inc al
push edx
mov byte [ecx + 8], al
call fcn.10026da0
jmp 0x10083b2b
test ebx, ebx
jne 0x10081e93
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 0x100b1170]
and eax, dword [edx + 0x18]
neg eax
sbb eax, eax
neg eax
cdq
push edx
push eax
mov eax, dword [ecx + 0x100b1168]
push eax
jmp 0x10083b24
cmp byte [edx + 0x3f], 0
mov esi, dword [eax + 0x100b1170]
jne 0x10081ea5
and esi, 0xfff7ffff
mov ebx, dword [esp + 0x40]
xor al, al
call fcn.100249b0
mov ebx, dword [esp + 0x14]
test al, al
je 0x10081ebd
or dword [ebx + 0x18], esi
jmp 0x10081eda
mov ecx, esi
not ecx
and dword [ebx + 0x18], ecx
cmp esi, 0x1000000
jne 0x10081eda
xor eax, eax
mov dword [ebx + 0x200], eax
mov dword [ebx + 0x204], eax
push 0
push 0
push 0x8e
mov esi, edi
call fcn.1003a180
add esp, 0xc
push ebx
call fcn.10026da0
add esp, 4
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
push edx
push eax
call fcn.10024af0
mov esi, eax
add esp, 8
mov dword [esp + 0x2c], esi
test esi, esi
je case.0x10081568.36
mov dword [esp + 0x30], 0
call fcn.10013030
push 6
mov ebx, edi
mov dword [esp + 0x28], eax
call fcn.10039fd0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov edx, ebp
mov dword [ebp + 0x48], 6
call fcn.100720c0
push 0
push 0
push 0
mov ebx, 0x100b75fc
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, str.name
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.type
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 3
mov ebx, str.notnull
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 4
mov ebx, str.dflt_value
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 5
mov ebx, 0x100b7624
mov ecx, edi
call fcn.10044630
add esp, 0xc
push esi
mov eax, ebp
call fcn.10056c00
mov ebx, dword [esi + 4]
xor ecx, ecx
add esp, 4
xor ebp, ebp
cmp cx, word [esi + 0x26]
jge case.0x10081568.36
test byte [ebx + 0x17], 2
je 0x10081fff
inc dword [esp + 0x30]
jmp 0x100820e0
mov edx, ebp
sub edx, dword [esp + 0x30]
push 1
push edx
push 0x19
mov esi, edi
call fcn.1003a180
mov eax, dword [ebx]
add esp, 0xc
push 0
push eax
push 0
push 2
push 0
push 0x61
call fcn.1003f5a0
mov eax, dword [ebx + 0xc]
add esp, 0x18
test eax, eax
jne 0x10082035
mov eax, 0x100b4e24
push 0
push eax
push 0
push 3
push 0
push 0x61
mov esi, edi
call fcn.1003f5a0
xor ecx, ecx
cmp byte [ebx + 0x14], cl
push 4
setne cl
push ecx
push 0x19
call fcn.1003a180
mov eax, dword [ebx + 8]
add esp, 0x24
test eax, eax
je 0x10082078
push 0
push eax
push 0
push 5
push 0
push 0x61
call fcn.1003f5a0
add esp, 0x18
jmp 0x10082086
push 5
push 0
push 0x1c
call fcn.1003a180
add esp, 0xc
test byte [ebx + 0x17], 1
jne 0x10082090
xor eax, eax
jmp 0x100820bf
mov ecx, dword [esp + 0x24]
mov eax, 1
test ecx, ecx
je 0x100820bf
mov edx, dword [esp + 0x2c]
movsx edx, word [edx + 0x26]
cmp edx, eax
jl 0x100820bf
mov ecx, dword [ecx + 4]
lea esp, [esp]
movsx esi, word [ecx]
cmp esi, ebp
je 0x100820bf
inc eax
add ecx, 2
cmp eax, edx
jle 0x100820b0
push 6
push eax
push 0x19
mov esi, edi
call fcn.1003a180
add esp, 0xc
push 6
push 1
push 0x23
call fcn.1003a180
mov esi, dword [esp + 0x38]
add esp, 0xc
movsx eax, word [esi + 0x26]
inc ebp
add ebx, 0x18
cmp ebp, eax
jl 0x10081ff0
jmp case.0x10081568.36
mov eax, ebp
call fcn.1003c530
mov esi, eax
push 4
mov ebx, esi
call fcn.10039fd0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov edx, ebp
mov dword [ebp + 0x48], 4
call fcn.100720c0
push 0
push 0
push 0
mov ebx, str.table
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, str.index
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.width
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 3
mov ebx, str.height
mov ecx, esi
call fcn.10044630
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xc]
mov ebx, dword [edx + 0x10]
add esp, 0xc
test ebx, ebx
je case.0x10081568.36
mov edi, dword [ebx + 8]
mov eax, dword [edi]
push 0
push eax
push 0
push 1
push 0
push 0x61
call fcn.1003f5a0
push 2
push 0
push 0x1c
call fcn.1003a180
mov ax, word [edi + 0x2a]
add esp, 0x24
push 3
push ecx
call fcn.10016160
add esp, 4
push eax
push 0x19
call fcn.1003a180
mov ax, word [edi + 0x1c]
add esp, 0xc
push 4
push ecx
call fcn.10016160
add esp, 4
push eax
push 0x19
call fcn.1003a180
add esp, 0xc
push 4
push 1
push 0x23
call fcn.1003a180
mov edi, dword [edi + 8]
add esp, 0xc
test edi, edi
je 0x10082250
mov edi, edi
mov ecx, dword [edi]
push 0
push ecx
push 0
push 2
push 0
push 0x61
call fcn.1003f5a0
mov ax, word [edi + 0x2c]
add esp, 0x18
push 3
push ecx
call fcn.10016160
add esp, 4
push eax
push 0x19
call fcn.1003a180
mov edx, dword [edi + 8]
mov ax, word [edx]
add esp, 0xc
push 4
push ecx
call fcn.10016160
add esp, 4
push eax
push 0x19
call fcn.1003a180
add esp, 0xc
push 4
push 1
push 0x23
call fcn.1003a180
mov edi, dword [edi + 0x14]
add esp, 0xc
test edi, edi
jne 0x100821f0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x10082182
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x18]
call fcn.10024a00
mov esi, eax
add esp, 4
mov dword [esp + 0x2c], esi
test esi, esi
je case.0x10081568.36
mov ecx, dword [esi + 0xc]
push 3
mov ebx, edi
mov dword [esp + 0x28], ecx
call fcn.10039fd0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov edx, ebp
mov dword [ebp + 0x48], 3
call fcn.100720c0
push 0
push 0
push 0
mov ebx, str.seqno
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, 0x100b75fc
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.name
mov ecx, edi
call fcn.10044630
xor edx, edx
add esp, 0xc
xor ebx, ebx
cmp dx, word [esi + 0x2e]
jae case.0x10081568.36
lea esp, [esp]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
movzx ebp, word [ecx + ebx*2]
push 1
push ebx
push 0x19
mov esi, edi
call fcn.1003a180
add esp, 0xc
movsx ebp, bp
push 2
push ebp
push 0x19
call fcn.1003a180
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 4]
add esp, 0xc
push 0
lea edx, [ebp + ebp*2]
mov edx, dword [ecx + edx*8]
push edx
push 0
push 3
push 0
push 0x61
call fcn.1003f5a0
push 3
push 1
push 0x23
call fcn.1003a180
mov eax, dword [esp + 0x50]
movzx ecx, word [eax + 0x2e]
inc ebx
add esp, 0x24
cmp ebx, ecx
jl 0x10082300
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
push edx
push eax
call fcn.10024af0
mov edi, eax
add esp, 8
test edi, edi
je case.0x10081568.36
mov eax, ebp
call fcn.1003c530
mov esi, eax
push 3
mov ebx, esi
call fcn.10039fd0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov edx, ebp
mov dword [ebp + 0x48], 3
call fcn.100720c0
push 0
push 0
push 0
mov ebx, 0x100b7640
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, str.name
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.unique
mov ecx, esi
call fcn.10044630
mov edi, dword [edi + 8]
add esp, 0xc
xor ebx, ebx
test edi, edi
je case.0x10081568.36
push 1
push ebx
push 0x19
call fcn.1003a180
mov ecx, dword [edi]
add esp, 0xc
push 0
push ecx
push 0
push 2
push 0
push 0x61
call fcn.1003f5a0
xor edx, edx
cmp byte [edi + 0x32], dl
push 3
setne dl
push edx
push 0x19
call fcn.1003a180
add esp, 0x24
push 3
push 1
push 0x23
call fcn.1003a180
mov edi, dword [edi + 0x14]
add esp, 0xc
inc ebx
test edi, edi
jne 0x10082403
jmp case.0x10081568.36
push 3
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, 0x100b7640
mov ecx, edi
mov dword [ebp + 0x48], 3
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, str.name
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.file
mov ecx, edi
call fcn.10044630
mov eax, dword [esp + 0x20]
xor ebp, ebp
add esp, 0xc
cmp dword [eax + 0x14], ebp
jle case.0x10081568.36
xor ebx, ebx
mov ecx, dword [eax + 0x10]
cmp dword [ecx + ebx + 4], 0
je 0x1008251d
push 1
push ebp
push 0x19
mov esi, edi
call fcn.1003a180
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ebx]
add esp, 0xc
push 0
push ecx
push 0
push 2
push 0
push 0x61
call fcn.1003f5a0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ebx + 4]
add esp, 0x18
push 0
call fcn.1001c2e0
push eax
push 0
push 3
push 0
push 0x61
call fcn.1003f5a0
push 3
push 1
push 0x23
call fcn.1003a180
mov eax, dword [esp + 0x38]
add esp, 0x24
inc ebp
add ebx, 0x10
cmp ebp, dword [eax + 0x14]
jl 0x100824b5
jmp case.0x10081568.36
push 2
mov ebx, edi
mov dword [esp + 0x34], 0
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, 0x100b7640
mov ecx, edi
mov dword [ebp + 0x48], 2
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, str.name
mov ecx, edi
call fcn.10044630
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x1b4]
add esp, 0xc
test ebx, ebx
je case.0x10081568.36
mov edx, dword [esp + 0x30]
mov ebp, dword [ebx + 8]
push 1
push edx
push 0x19
mov esi, edi
call fcn.1003a180
mov eax, dword [ebp]
inc dword [esp + 0x3c]
add esp, 0xc
push 0
push eax
push 0
push 2
push 0
push 0x61
call fcn.1003f5a0
push 2
push 1
push 0x23
call fcn.1003a180
mov ebx, dword [ebx]
add esp, 0x24
test ebx, ebx
jne 0x10082582
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
push ecx
push edx
call fcn.10024af0
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je case.0x10081568.36
mov eax, ebp
call fcn.1003c530
mov esi, eax
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 0x10]
test ebp, ebp
je case.0x10081568.36
push 8
mov ebx, esi
mov dword [esp + 0x34], 0
call fcn.10039fd0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
add esp, 4
mov dword [edx + 0x48], 8
call fcn.100720c0
push 0
push 0
push 0
mov ebx, 0x100b764c
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, 0x100b7640
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.table
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 3
mov ebx, str.from
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 4
mov ebx, 0x100b7658
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 5
mov ebx, str.on_update
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 6
mov ebx, str.on_delete
mov ecx, esi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 7
mov ebx, str.match
mov ecx, esi
call fcn.10044630
add esp, 0xc
lea ebx, [ebx]
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
jle 0x100827dd
lea ecx, [ebp + 0x24]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov al, byte [ebp + 0x19]
mov edi, dword [edx + 4]
call fcn.10012c30
mov dword [esp + 0x5c], eax
mov al, byte [ebp + 0x1a]
call fcn.10012c30
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
push 1
push eax
push 0x19
call fcn.1003a180
add esp, 0xc
push 2
push ebx
push 0x19
call fcn.1003a180
mov ecx, dword [ebp + 8]
add esp, 0xc
push 0
push ecx
push 0
push 3
push 0
push 0x61
call fcn.1003f5a0
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + 4]
push 0
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8]
push eax
push 0
push 4
push 0
push 0x61
call fcn.1003f5a0
push 0
push edi
neg edi
push 0
sbb edi, edi
push 5
and edi, 0x45
push 0
add edi, 0x1c
push edi
call fcn.1003f5a0
mov ecx, dword [esp + 0x6c]
add esp, 0x48
push 0
push ecx
push 0
push 6
push 0
push 0x61
call fcn.1003f5a0
mov edx, dword [esp + 0x74]
push 0
push edx
push 0
push 7
push 0
push 0x61
call fcn.1003f5a0
push 0
push str.NONE
push 0
push 8
push 0
push 0x61
call fcn.1003f5a0
add esp, 0x48
push 8
push 1
push 0x23
call fcn.1003a180
add esp, 0xc
add dword [esp + 0x18], 8
inc ebx
cmp ebx, dword [ebp + 0x14]
jl 0x100826f2
mov ebp, dword [ebp + 4]
inc dword [esp + 0x30]
test ebp, ebp
jne 0x100826e0
jmp case.0x10081568.36
mov eax, dword [ebp + 0x48]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x38], eax
inc eax
mov dword [ebp + 0x48], eax
mov eax, ebp
mov dword [esp + 0x50], ecx
call fcn.1003c530
mov edi, eax
push 4
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.table
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, str.rowid
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.parent
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 3
mov ebx, str.fkid
mov ecx, edi
call fcn.10044630
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, ebp
call fcn.100720c0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
mov eax, dword [edx + 0x10]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx + 0x10]
test ecx, ecx
je case.0x10081568.36
cmp dword [esp + 0x40], 0
je 0x100828b7
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
push 0
mov ecx, ebp
call fcn.10035ae0
add esp, 4
mov dword [esp + 0x1c], eax
xor ecx, ecx
jmp 0x100828c0
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x68], ecx
test eax, eax
je 0x10082c93
cmp dword [eax + 0x10], 0
je 0x10082c93
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi]
mov edx, dword [esi + 0x20]
mov ebx, dword [esp + 0x28]
push ecx
push 0
push edx
mov eax, ebp
call fcn.10035b70
movsx ecx, word [esi + 0x26]
mov eax, dword [esp + 0x44]
inc eax
add eax, ecx
add esp, 0xc
cmp eax, dword [ebp + 0x48]
jle 0x10082904
mov dword [ebp + 0x48], eax
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
push 0x36
push edx
push 0
push ebp
mov eax, ebx
call fcn.10053900
mov eax, dword [ebx]
mov ecx, dword [esp + 0x60]
push 0
push eax
push 0
push ecx
push 0
push 0x61
mov esi, edi
call fcn.1003f5a0
mov ebx, dword [ebx + 0x10]
add esp, 0x28
mov dword [esp + 0x20], 1
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x10082a03
lea ebx, [ebx]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 8]
push edx
push eax
call fcn.10024af0
mov esi, eax
add esp, 8
test esi, esi
je 0x100829ec
mov edx, dword [esi]
mov eax, dword [esi + 0x20]
mov ebx, dword [esp + 0x28]
push edx
push 0
push eax
mov eax, ebp
mov dword [esp + 0x48], 0
call fcn.10035b70
mov edx, dword [esp + 0x24]
add esp, 0xc
lea ecx, [esp + 0x3c]
push ecx
push edx
push esi
push ebp
xor eax, eax
call fcn.10034f30
add esp, 0x10
test eax, eax
jne case.0x10081568.36
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
test ebx, ebx
jne 0x100829cd
mov eax, dword [esp + 0x28]
push 0x36
push eax
push ecx
push ebp
mov eax, esi
call fcn.10053900
add esp, 0x10
jmp 0x100829ec
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 0x28]
push edx
push eax
push ecx
push 0x36
mov esi, edi
call fcn.100370c0
add esp, 0x10
mov ecx, ebx
mov eax, ebp
call fcn.100527a0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
inc dword [esp + 0x20]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10082950
mov eax, dword [esp + 0x20]
cmp dword [ebp + 0x44], eax
jge 0x10082a0f
mov dword [ebp + 0x44], eax
push 0
push 0x6c
mov esi, edi
call fcn.1003a1e0
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x24]
mov ebp, dword [eax + 0x10]
add esp, 8
mov dword [esp + 0x20], 1
test ebp, ebp
je 0x10082c6c
jmp 0x10082a40
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
push ecx
push edx
call fcn.10024af0
xor ebx, ebx
mov esi, eax
add esp, 8
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x2c], ebx
cmp esi, ebx
je 0x10082a81
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x3c]
push eax
push ebp
push esi
push ecx
lea eax, [esp + 0x3c]
call fcn.10034f30
add esp, 0x10
mov eax, edi
call fcn.10037070
mov dword [esp + 0x18], eax
cmp esi, ebx
je 0x10082b3d
cmp dword [esp + 0x3c], ebx
jne 0x10082b3d
mov edx, dword [esp + 0x1c]
movsx ecx, word [edx + 0x24]
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x58], eax
mov esi, edi
cmp eax, ecx
je 0x10082af2
mov ebx, dword [esp + 0x38]
inc ebx
push ebx
mov edx, eax
push edx
push 0
push 0x2f
call fcn.100370c0
mov eax, dword [esp + 0x2c]
push ebx
push eax
mov eax, dword [esp + 0x70]
mov ecx, edi
call fcn.10057320
mov ecx, dword [esp + 0x30]
push ecx
push ebx
push 0x4c
call fcn.1003a180
mov edx, dword [edi + 0x20]
add esp, 0x24
add edx, 3
push edx
push ebx
push 0x26
jmp 0x10082afc
mov eax, dword [esp + 0x38]
inc eax
push eax
push 0
push 0x67
call fcn.1003a180
mov eax, dword [esp + 0x44]
add esp, 0xc
inc eax
push eax
mov eax, dword [esp + 0x24]
push 0
push eax
push 0x46
mov esi, edi
call fcn.100370c0
mov ecx, dword [esp + 0x28]
push ecx
push 0
push 0x10
call fcn.1003a180
mov eax, dword [edi + 0x20]
add esp, 0x1c
sub eax, 2
mov edx, edi
call fcn.1001c180
jmp 0x10082bf5
cmp dword [ebp + 0x14], ebx
mov dword [esp + 0x30], ebx
jle 0x10082bab
mov eax, dword [esp + 0x38]
inc eax
lea edx, [ebp + 0x24]
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x10082b67
mov ecx, dword [esp + 0x30]
mov ebx, dword [eax + ecx*4]
jmp 0x10082b6d
mov edx, dword [esp + 0x64]
mov ebx, dword [edx]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
push esi
push 0
push eax
push edi
call fcn.10059890
mov ecx, dword [esp + 0x28]
push ecx
push esi
push 0x4c
mov esi, edi
call fcn.1003a180
mov eax, dword [esp + 0x4c]
add dword [esp + 0x80], 8
inc dword [esp + 0x74]
inc eax
add esp, 0x1c
cmp eax, dword [ebp + 0x14]
mov dword [esp + 0x30], eax
jl 0x10082b56
cmp dword [esp + 0x24], 0
je 0x10082bf5
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x3c]
push edx
push ecx
mov eax, edi
call fcn.1002adb0
mov ebx, dword [esp + 0x40]
add esp, 4
push eax
mov eax, dword [ebp + 0x14]
push ebx
push eax
lea eax, [ebx + 1]
push eax
push 0x31
mov esi, edi
call fcn.1003f5a0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
push 0
push ebx
push ecx
push edx
push 0x45
mov eax, edi
call fcn.1003f420
add esp, 0x2c
mov ebx, dword [esp + 0x50]
lea eax, [ebx + 1]
push eax
push 0
push 0x67
mov esi, edi
call fcn.1003a180
mov eax, dword [ebp + 8]
add esp, 0xc
push 0
push eax
push 0
lea eax, [ebx + 2]
push eax
push 0
push 0x61
call fcn.1003f5a0
mov ecx, dword [esp + 0x38]
lea eax, [ebx + 3]
push eax
dec ecx
push ecx
push 0x19
call fcn.1003a180
add esp, 0x24
push 4
push ebx
push 0x23
call fcn.1003a180
mov edx, dword [esp + 0x24]
add esp, 0xc
push edx
mov ecx, edi
call fcn.10014570
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
add esp, 4
call fcn.10025ff0
mov ebp, dword [ebp + 4]
inc dword [esp + 0x20]
test ebp, ebp
jne 0x10082a40
mov ebx, dword [esp + 0x5c]
lea eax, [ebx + 1]
push eax
push 0
push 9
mov esi, edi
call fcn.1003a180
add esp, 0xc
mov eax, ebx
mov edx, edi
call fcn.1001c180
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x54]
test ecx, ecx
jne 0x10082894
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
mov ebx, dword [esp + 0x40]
xor al, al
call fcn.100249b0
mov esi, dword [esp + 0x14]
movzx ebx, al
call fcn.100541a0
jmp case.0x10081568.36
mov ecx, dword [esp + 0x60]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x20]
xor eax, eax
cmp byte [edx + 0x100b0400], 0x71
sete al
cmp dword [ecx], 0
mov dword [esp + 0x80], eax
jne 0x10082cef
mov dword [esp + 0x28], 0xffffffff
push 1
mov ebx, edi
mov dword [ebp + 0x48], 6
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, 0x100af2a0
mov ecx, edi
call fcn.10044630
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov esi, 0x64
mov dword [esp + 0x38], esi
test eax, eax
je 0x10082d41
lea edx, [esp + 0x38]
push edx
push eax
call fcn.100166b0
add esp, 8
cmp dword [esp + 0x38], 0
jg 0x10082d41
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x38]
push 1
push eax
push 0x19
mov esi, edi
call fcn.1003a180
mov edx, dword [esp + 0x20]
xor ecx, ecx
add esp, 0xc
cmp dword [edx + 0x14], ecx
mov dword [esp + 0x64], ecx
jle 0x100834ea
mov dword [esp + 0x30], ecx
jmp 0x10082d70
mov eax, dword [esp + 0x28]
xor ebp, ebp
test eax, eax
jl 0x10082d82
cmp ecx, eax
jne 0x100834d3
mov edx, dword [esp + 0x54]
call fcn.100720c0
push 1
push 0x89
mov esi, edi
call fcn.1003a1e0
push 0
push 0
push 0x18
mov ebx, eax
call fcn.1003a180
add esp, 0x14
mov eax, ebx
mov edx, edi
call fcn.1001c180
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x30]
mov ebx, dword [ecx + edx + 0xc]
mov eax, dword [ebx + 0x10]
add ebx, 8
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x20], eax
test eax, eax
je 0x10082e2e
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 8]
test byte [ebx + 0x2c], 0x20
jne 0x10082df5
mov edx, dword [ebx + 0x20]
lea ecx, [ebp + 2]
push ecx
push edx
push 0x19
mov esi, edi
call fcn.1003a180
add esp, 0xc
inc ebp
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10082e1c
lea esp, [esp]
mov ecx, dword [ebx + 0x28]
lea eax, [ebp + 2]
push eax
push ecx
push 0x19
mov esi, edi
call fcn.1003a180
mov ebx, dword [ebx + 0x14]
add esp, 0xc
inc ebp
test ebx, ebx
jne 0x10082e00
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10082dd3
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + 0x48]
lea eax, [ebp + 8]
cmp ecx, eax
jle 0x10082e3e
mov eax, ecx
mov edx, dword [esp + 0x54]
push 1
push ebp
push 2
push 0x7f
mov esi, edi
mov dword [edx + 0x48], eax
call fcn.100370c0
mov eax, dword [edi + 4]
add esp, 0x10
test eax, eax
je 0x10082e6b
mov ecx, dword [edi + 0x20]
mov dl, byte [esp + 0x64]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], dl
push 2
push 0x4c
mov esi, edi
call fcn.1003a1e0
mov esi, dword [esp + 0x1c]
add esp, 8
push 0xffffffffffffffff
push ecx
mov ecx, dword [esp + 0x38]
mov ebp, eax
mov eax, dword [esi + 0x10]
mov edx, dword [eax + ecx]
push edx
push str._in_database__s__n
call fcn.10032280
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x61
mov esi, edi
call fcn.1003f5a0
push 1
push 4
push 2
push 0x20
call fcn.100370c0
push 2
push 3
push 4
push 0x5e
call fcn.100370c0
push 1
push 2
push 0x23
call fcn.1003a180
add esp, 0x44
mov eax, ebp
mov edx, edi
call fcn.1001c180
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x100834cf
cmp dword [esp + 0x80], 0
jne 0x100834cf
mov eax, dword [esp + 0x20]
mov ebp, dword [eax + 8]
cmp dword [ebp + 8], 0
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x68], 0
mov dword [esp + 0x18], 0xffffffff
je 0x100834bd
test byte [ebp + 0x2c], 0x20
jne 0x10082f2d
mov dword [esp + 0x58], 0
jmp 0x10082f38
mov eax, ebp
call fcn.10013030
mov dword [esp + 0x58], eax
push 1
push 0x89
mov esi, edi
call fcn.1003a1e0
push 0
push 0
push 0x18
mov ebx, eax
call fcn.1003a180
add esp, 0x14
mov eax, ebx
mov edx, edi
call fcn.1001c180
mov edx, dword [esp + 0x54]
call fcn.1001b8b0
lea ecx, [esp + 0x24]
push ecx
lea eax, [esp + 0x38]
push eax
push 0
push 1
push 0x36
push ebp
push edx
call fcn.10056380
add esp, 0x1c
push 7
push 0
push 0x19
call fcn.1003a180
mov ebx, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x1c], 0
test ebx, ebx
je 0x10082fc1
nop
mov ecx, dword [esp + 0x1c]
add ecx, 8
push ecx
push 0
push 0x19
mov esi, edi
call fcn.1003a180
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x28]
add esp, 0xc
test ebx, ebx
jne 0x10082fa0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov ecx, dword [edx + 0x48]
add eax, 8
cmp ecx, eax
jle 0x10082fd5
mov eax, ecx
mov dword [edx + 0x48], eax
mov edx, dword [esp + 0x34]
push 0
push edx
push 0x6c
mov esi, edi
call fcn.1003a180
add esp, 0xc
push 1
push 7
push 0x25
call fcn.1003a180
mov dword [esp + 0x54], eax
xor eax, eax
xor ecx, ecx
add esp, 0xc
cmp cx, word [ebp + 0x26]
mov dword [esp + 0x1c], eax
jge 0x100830fb
mov dword [esp + 0x3c], ecx
movsx edx, word [ebp + 0x24]
cmp eax, edx
je 0x100830e5
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x3c]
cmp byte [ecx + edx + 0x14], 0
je 0x100830e5
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x1c]
push 3
push eax
push ebp
push edi
call fcn.10059890
mov eax, dword [edi + 4]
add esp, 0x10
test eax, eax
je 0x10083058
mov ecx, dword [edi + 0x20]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 0x80
push 3
push 0x4d
mov esi, edi
call fcn.1003a1e0
push 0xffffffffffffffff
push 1
push 0x25
mov ebx, eax
call fcn.1003a180
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x50]
mov ecx, dword [edx + eax]
mov edx, dword [ebp]
mov esi, dword [esp + 0x28]
add esp, 0x14
push ecx
push edx
push str.NULL_value_in__s._s
call fcn.10032280
add esp, 0xc
push 0xffffffffffffffff
push eax
push 0
push 3
push 0
push 0x61
mov esi, edi
call fcn.1003f5a0
push 1
push 3
push 0x23
call fcn.1003a180
add esp, 0x24
push 1
push 0x89
call fcn.1003a1e0
push 0x18
mov dword [esp + 0x5c], eax
call fcn.1003a230
add esp, 0xc
mov eax, ebx
mov edx, edi
call fcn.1001c180
mov eax, dword [esp + 0x50]
mov edx, edi
call fcn.1001c180
mov eax, dword [esp + 0x1c]
movsx ecx, word [ebp + 0x26]
add dword [esp + 0x3c], 0x18
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x10083013
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x10083399
mov ebp, dword [esp + 0x24]
mov eax, 8
sub eax, ebp
mov dword [esp + 0x1c], eax
mov eax, edi
call fcn.10037070
mov dword [esp + 0x50], eax
cmp dword [esp + 0x58], ebx
je 0x10083389
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x58]
push eax
push 0
push 0
push ecx
push ebx
push edx
lea eax, [esp + 0x98]
call fcn.1005be30
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
add esp, 0x1c
push 1
add eax, ebp
push eax
push 0x25
mov esi, edi
mov dword [esp + 0x74], ebx
call fcn.1003a180
movzx ecx, word [ebx + 0x30]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
add esp, 0xc
push ecx
push edx
push eax
push ebp
push 0x45
mov eax, edi
call fcn.1003f420
add esp, 0x14
push 0xffffffffffffffff
push 1
push 0x25
mov dword [esp + 0x5c], eax
call fcn.1003a180
add esp, 0xc
push 0xfffffffffffffffe
push str.row
push 0
push 3
push 0
push 0x61
call fcn.1003f5a0
push 3
push 3
push 7
push 0x5e
call fcn.100370c0
push 0xfffffffffffffffe
push str._missing_from_index
push 0
push 4
push 0
push 0x61
call fcn.1003f5a0
add esp, 0x40
push 3
push 3
push 4
push 0x5e
call fcn.100370c0
mov ecx, dword [ebx]
push 0
push ecx
push 0
push 4
push 0
push 0x61
call fcn.1003f5a0
push 3
push 3
push 4
push 0x5e
mov dword [esp + 0xc0], eax
call fcn.100370c0
push 1
push 3
push 0x23
call fcn.1003a180
add esp, 0x44
push 1
push 0x89
call fcn.1003a1e0
push 0x18
mov dword [esp + 0x90], eax
call fcn.1003a230
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov edx, edi
call fcn.1001c180
cmp byte [ebx + 0x32], 0
je 0x1008335a
mov eax, edi
call fcn.10037070
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ecx
cmp dx, word [ebx + 0x2e]
jae 0x100832a6
mov eax, dword [ebx + 4]
movsx eax, word [eax + ecx*2]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 4]
cmp byte [eax + edx*8 + 0x14], 0
jne 0x10083299
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
push ecx
add edx, eax
push edx
push 0x4c
mov esi, edi
call fcn.1003a180
mov ecx, dword [esp + 0x38]
add esp, 0xc
movzx edx, word [ebx + 0x2e]
inc ecx
cmp ecx, edx
mov dword [esp + 0x2c], ecx
jl 0x10083261
push ebp
push 9
mov esi, edi
call fcn.1003a1e0
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x44]
push eax
push 0
push 0x10
call fcn.1003a180
mov eax, dword [edi + 0x20]
add esp, 0x14
cmp eax, dword [esp + 0x50]
jbe 0x100832dc
mov ecx, dword [esp + 0x50]
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
movzx edx, word [ebx + 0x2e]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
push edx
push eax
push ecx
push ebp
push 0x72
mov eax, edi
call fcn.1003f420
add esp, 0x14
push 0xffffffffffffffff
push 1
push 0x25
mov esi, edi
call fcn.1003a180
add esp, 0xc
push 0xfffffffffffffffe
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x61
call fcn.1003f5a0
mov edx, dword [esp + 0xa0]
push edx
push 0
push 0x10
call fcn.1003a180
mov ecx, dword [edi + 0x18]
or eax, 0xffffffff
add esp, 0x24
sub eax, dword [esp + 0x3c]
js 0x10083353
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x10083353
mov esi, dword [edi + 0x20]
mov dword [edx + eax*4], esi
mov eax, dword [edi + 0x20]
dec eax
mov dword [ecx + 0x58], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x84]
cmp eax, ecx
jbe 0x10083372
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x54]
call fcn.10020920
mov ebx, dword [ebx + 0x14]
inc ebp
test ebx, ebx
jne 0x10083115
mov ebp, dword [esp + 0x5c]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
push ebx
push edx
push 9
mov esi, edi
call fcn.1003a180
mov ecx, dword [edi + 0x20]
lea eax, [ebx - 1]
add esp, 0xc
cmp ecx, eax
jbe 0x100833c3
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov dword [edx + eax*4 + 8], ecx
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x18]
push 0xfffffffffffffffe
push str.wrong__of_entries_in_index
push 0
push 2
dec eax
push 0
push 0x61
mov esi, edi
mov dword [ecx + 0x58], eax
call fcn.1003f5a0
mov ebp, dword [ebp + 8]
add esp, 0x18
test ebp, ebp
je 0x100834bd
mov dword [esp + 0x18], 8
lea esp, [esp]
cmp dword [esp + 0x58], ebp
je 0x100834ae
mov ebx, dword [edi + 0x20]
lea edx, [ebx + 2]
push edx
push 1
push 0x89
mov esi, edi
call fcn.1003a180
add esp, 0xc
push 0
push 0
push 0x18
call fcn.1003a180
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
add esp, 0xc
push 3
lea edx, [eax + ecx - 8]
push edx
push 0x32
call fcn.1003a180
mov eax, dword [esp + 0x24]
add esp, 0xc
push 3
add ebx, 8
push ebx
push eax
push 0x4f
call fcn.100370c0
mov eax, dword [edi + 4]
add esp, 0x10
test eax, eax
je 0x10083470
mov ecx, dword [edi + 0x20]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 0x90
push 0xffffffffffffffff
push 1
push 0x25
mov esi, edi
call fcn.1003a180
mov edx, dword [ebp]
add esp, 0xc
push 0
push edx
push 0
push 3
push 0
push 0x61
call fcn.1003f5a0
push 7
push 2
push 3
push 0x5e
call fcn.100370c0
push 1
push 7
push 0x23
call fcn.1003a180
add esp, 0x34
mov ebp, dword [ebp + 0x14]
inc dword [esp + 0x18]
test ebp, ebp
jne 0x10083400
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10082eea
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
add dword [esp + 0x30], 0x10
inc ecx
cmp ecx, dword [edx + 0x14]
mov dword [esp + 0x64], ecx
jl 0x10082d70
push 0x100b14dc
push 3
push edi
call fcn.10036fc0
mov esi, eax
add esp, 0xc
cmp dword [edi + 0x20], esi
jbe 0x10083511
mov eax, dword [esp + 0x38]
mov edx, dword [edi + 4]
neg eax
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 0xc], eax
mov eax, esi
mov edx, edi
call fcn.1001c180
mov ecx, dword [edi + 4]
mov edx, dword [edi]
lea eax, [esi + 1]
test ecx, ecx
je 0x10083556
cmp byte [edx + 0x41], 0
jne 0x10083556
test eax, eax
jge 0x10083534
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.1003a090
mov dword [esi + 0x10], 0x100b7724
mov byte [esi + 1], 0xfe
jmp case.0x10081568.36
mov ecx, 0x100b7724
mov eax, 0xfffffffe
call fcn.1003a090
jmp case.0x10081568.36
test ebx, ebx
jne 0x1008363b
mov esi, ebp
call fcn.10012bf0
test eax, eax
jne case.0x10081568.36
push 1
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.encoding
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 1
xor ebx, ebx
push ebx
push 0x61
mov esi, edi
call fcn.1003a180
mov ecx, dword [ebp]
movzx edx, byte [ecx + 0x3e]
mov ecx, dword [edi + 4]
mov ebp, dword [edx*8 + 0x100b14e8]
mov edx, dword [edi]
add esp, 0xc
cmp ecx, ebx
je 0x1008361d
cmp byte [edx + 0x41], bl
jne 0x1008361d
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.1003a090
mov dword [esi + 0x10], ebx
cmp ebp, ebx
jne 0x10083604
push 1
mov dword [esi + 0x10], ebx
mov byte [esi + 1], bl
push 1
push 0x23
mov esi, edi
call fcn.1003a180
jmp 0x10083b2b
push 1
mov dword [esi + 0x10], ebp
mov byte [esi + 1], 0xfe
push 1
push 0x23
mov esi, edi
call fcn.1003a180
jmp 0x10083b2b
mov ecx, ebp
mov eax, 0xfffffffe
call fcn.1003a090
push 1
push 1
push 0x23
mov esi, edi
call fcn.1003a180
jmp 0x10083b2b
mov edi, dword [edx + 0x10]
mov ecx, dword [edi + 0xc]
movzx eax, word [ecx + 0x4e]
test al, 1
je 0x10083651
test al, 4
je case.0x10081568.36
mov eax, dword [str.UTF8]
mov esi, 0x100b14e8
test eax, eax
je 0x1008369f
nop
push eax
push ebx
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
je 0x1008367a
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
jne 0x10083660
jmp 0x1008369f
mov al, byte [esi + 4]
test al, al
movzx eax, al
jne 0x10083689
mov eax, 2
mov edx, dword [esp + 0x14]
mov byte [edx + 0x3e], al
mov ecx, dword [edi + 0xc]
mov byte [ecx + 0x4d], al
cmp dword [esi], 0
jne case.0x10081568.36
push ebx
push str.unsupported_encoding:__s
mov edi, ebp
call fcn.100320c0
add esp, 8
jmp case.0x10081568.36
mov ebp, dword [esp + 0x28]
mov esi, dword [eax + 0x100b1170]
mov edx, 1
mov ecx, ebp
shl edx, cl
mov dword [esp + 0x48], esi
or dword [edi + 0x60], edx
cmp ebp, 1
je 0x100836de
mov eax, edi
call fcn.1001c150
mov eax, dword [esp + 0x2c]
test ebx, ebx
je 0x10083757
test byte [eax + 0x100b116d], 2
jne 0x10083757
push 0x100b1530
push 3
push edi
call fcn.10036fc0
mov esi, eax
add esp, 0xc
cmp dword [edi + 0x20], esi
jbe 0x1008370c
mov ecx, dword [edi + 4]
lea eax, [esi + esi*4]
mov dword [ecx + eax*4 + 4], ebp
mov ecx, ebx
call fcn.1001def0
lea ecx, [esi + 1]
cmp dword [edi + 0x20], ecx
jbe 0x10083725
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 4]
mov dword [ecx + edx*4 + 4], eax
lea eax, [esi + 2]
cmp dword [edi + 0x20], eax
jbe case.0x10081568.36
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebp
cmp dword [edi + 0x20], eax
jbe case.0x10081568.36
mov ecx, dword [esp + 0x48]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + edx*4 + 8], ecx
jmp case.0x10081568.36
push 0x100b153c
push 3
push edi
call fcn.10036fc0
add esp, 0xc
cmp dword [edi + 0x20], eax
jbe 0x10083776
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebp
inc eax
cmp dword [edi + 0x20], eax
jbe 0x100817ae
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], ebp
cmp dword [edi + 0x20], eax
jbe 0x100817ae
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + edx*4 + 0xc], esi
jmp 0x100817ae
push 1
mov ebx, edi
mov dword [esp + 0x4c], 0
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.compile_option
mov ecx, edi
mov dword [ebp + 0x48], 1
call fcn.10044630
add esp, 0xc
push 0
call sym.SQLite.Interop.dll_sqlite3_compileoption_get
add esp, 4
test eax, eax
je case.0x10081568.36
mov ebx, dword [esp + 0x48]
push 0
push eax
push 0
push 1
push 0
push 0x61
mov esi, edi
inc ebx
call fcn.1003f5a0
push 1
push 1
push 0x23
call fcn.1003a180
add esp, 0x24
push ebx
call sym.SQLite.Interop.dll_sqlite3_compileoption_get
add esp, 4
test eax, eax
jne 0x100837e8
jmp case.0x10081568.36
mov ecx, dword [esp + 0x20]
cmp dword [ecx], 0
je 0x1008382e
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], edx
jmp 0x10083836
mov dword [esp + 0x24], 0xa
xor esi, esi
test ebx, ebx
je 0x1008387f
push str.full
push ebx
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
jne 0x10083853
lea esi, [eax + 1]
jmp 0x1008387f
push str.restart
push ebx
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
jne 0x1008386a
lea esi, [eax + 2]
jmp 0x1008387f
push str.truncate
push ebx
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
jne 0x1008387f
lea esi, [eax + 3]
push 3
mov ebx, edi
call fcn.10039fd0
add esp, 4
push 0
push 0
push 0
mov ebx, str.busy
mov ecx, edi
mov dword [ebp + 0x48], 3
call fcn.10044630
add esp, 0xc
push 0
push 0
push 1
mov ebx, 0x100b7764
mov ecx, edi
call fcn.10044630
add esp, 0xc
push 0
push 0
push 2
mov ebx, str.checkpointed
mov ecx, edi
call fcn.10044630
mov eax, dword [esp + 0x30]
add esp, 0xc
push 1
push esi
push eax
push 0xb
mov esi, edi
call fcn.100370c0
push 3
push 1
push 0x23
call fcn.1003a180
add esp, 0x1c
jmp case.0x10081568.36
test ebx, ebx
je 0x10083912
mov ecx, ebx
call fcn.1001def0
mov ecx, dword [esp + 0x14]
push eax
push ecx
call sym.SQLite.Interop.dll_sqlite3_wal_autocheckpoint
mov edx, dword [esp + 0x1c]
add esp, 8
cmp dword [edx + 0xd4], 0x1006bf90
jne 0x10083931
mov eax, dword [edx + 0xd8]
cdq
push edx
push eax
push str.wal_autocheckpoint
jmp 0x10083b24
xor eax, eax
cdq
push edx
push eax
push str.wal_autocheckpoint
jmp 0x10083b24
mov edx, dword [esp + 0x14]
push edx
call sym.SQLite.Interop.dll_sqlite3_db_release_memory
add esp, 4
jmp case.0x10081568.36
test ebx, ebx
je 0x1008397b
lea eax, [esp + 0x48]
push eax
mov edi, ebx
call fcn.10022b10
add esp, 4
test eax, eax
jne 0x1008397b
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
push edx
call sym.SQLite.Interop.dll_sqlite3_soft_heap_limit64
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call sym.SQLite.Interop.dll_sqlite3_soft_heap_limit64
push edx
push eax
push str.soft_heap_limit
mov eax, ebp
call fcn.10047970
add esp, 0x14
jmp case.0x10081568.36
test ebx, ebx
je 0x100839dc
lea eax, [esp + 0x48]
push eax
mov edi, ebx
call fcn.10022b10
add esp, 4
test eax, eax
jne 0x100839dc
cmp dword [esp + 0x4c], eax
jl 0x100839dc
mov eax, dword [esp + 0x48]
jg 0x100839c1
test eax, eax
jb 0x100839dc
and eax, 0x7fffffff
jl 0x100839dc
cmp eax, 8
jle 0x100839d2
mov eax, 8
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x84], eax
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x84]
cdq
push edx
push eax
push str.threads
jmp 0x10083b24
test ebx, ebx
je case.0x10081568.36
mov ecx, ebx
call fcn.10016f30
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x38]
push ebx
push eax
push ecx
call sym.SQLite.Interop.dll_sqlite3_key_v2
add esp, 0x10
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
mov ecx, ebx
call fcn.10016f30
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x18]
push ebx
push edx
push eax
call sym.SQLite.Interop.dll_sqlite3_rekey_v2
add esp, 0x10
jmp case.0x10081568.36
test ebx, ebx
je case.0x10081568.36
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov byte [esp + 0x47], cl
mov al, byte [ecx + ebx]
movzx edx, al
test byte [edx + 0x100b0500], 8
je 0x10083aa9
movsx edx, al
mov eax, edx
sar eax, 6
and al, 1
mov cl, 7
imul cl
mov ecx, dword [esp + 0x24]
sub dl, al
mov al, byte [esp + 0x47]
and dl, 0xf
shl al, 4
add dl, al
mov byte [esp + 0x47], dl
test cl, 1
je 0x10083a9f
mov eax, ecx
cdq
sub eax, edx
mov dl, byte [esp + 0x47]
sar eax, 1
mov byte [esp + eax + 0x8c], dl
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, 0x50
jb 0x10083a55
mov eax, dword [esp + 0x60]
mov dl, byte [eax + 3]
and dl, 0xf
mov eax, ecx
mov ecx, dword [esp + 0x34]
cmp dl, 0xb
cdq
jne 0x10083adc
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
push eax
lea eax, [esp + 0x90]
push eax
push ecx
push edx
call sym.SQLite.Interop.dll_sqlite3_key_v2
add esp, 0x10
jmp case.0x10081568.36
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
push eax
lea eax, [esp + 0x90]
push eax
push ecx
push edx
call sym.SQLite.Interop.dll_sqlite3_rekey_v2
add esp, 0x10
jmp case.0x10081568.36
test ebx, ebx
je 0x10083b12
mov ecx, ebx
call fcn.1001def0
push eax
mov eax, dword [esp + 0x18]
push eax
call sym.SQLite.Interop.dll_sqlite3_busy_timeout
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x1ec]
cdq
push edx
push eax
push str.timeout
mov eax, ebp
call fcn.10047970
add esp, 0xc
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
mov ecx, esi
call fcn.10025ff0
mov eax, dword [esp + 0x40]
mov ecx, esi
call fcn.10025ff0
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10001180
add esp, 0xa8
ret