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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
mov eax, dword [0x10291210]
xor eax, esp
mov dword [esp + 0xb0], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, edx
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 8]
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx]
push edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x101f5346
cmp dword [ebx + 0x74], eax
jne 0x101f533d
test byte [ecx + 0x4c], 8
jne 0x101f533d
mov byte [ebx + 0x17], 1
push ebx
call fcn.10166f40
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x101f8432
or dword [eax + 0x98], 0x40
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x44]
mov edi, ebx
mov dword [ebx + 0x2c], 2
call fcn.101662f0
mov dword [esp + 0x48], eax
test eax, eax
js 0x101f8432
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 0x10]
mov ecx, eax
shl ecx, 4
add edi, ecx
mov dword [esp + 0x24], ecx
cmp eax, 1
jne 0x101f53a5
call fcn.10196110
test eax, eax
jne 0x101f8432
mov esi, dword [esp + 0x14]
jmp 0x101f53a7
mov esi, edx
mov ecx, dword [esp + 0x44]
push esi
call fcn.10157f40
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
je 0x101f8432
cmp dword [ebp + 0x10], 0
je 0x101f53db
mov eax, dword [esp + 0x34]
push eax
push 0x10278d68
push esi
call fcn.1015fca0
add esp, 0xc
jmp 0x101f53e8
mov ecx, dword [esp + 0x34]
push esi
call fcn.10157f40
add esp, 4
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], 0
mov dword [esp + 0x10], eax
jbe 0x101f53fe
mov edx, dword [edi]
mov dword [esp + 0x30], edx
jmp 0x101f5406
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x6c]
push eax
push ecx
push edx
push 0x13
mov eax, ebx
call fcn.1016c300
add esp, 0x10
test eax, eax
jne case.0x101f558c.41
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], edx
mov dword [esi + 0x1bc], eax
lea eax, [esp + 0x84]
push eax
push 0xe
push ecx
push esi
call sym.SQLite.Interop.dll_sqlite3_file_control
add esp, 0x10
mov dword [esp + 0x44], eax
test eax, eax
jne 0x101f54bf
mov esi, dword [esp + 0x2c]
push 1
mov eax, esi
call fcn.10154fb0
mov edx, dword [esp + 0x88]
add esp, 4
push 0xffffffffffffffff
push edx
push 0
push 0
mov ecx, esi
call fcn.10173450
mov eax, dword [esp + 0x94]
mov ecx, esi
call fcn.1016b620
mov eax, dword [esp + 0x94]
push eax
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 0x14
jmp case.0x101f558c.41
cmp eax, 0xc
je 0x101f54fd
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x101f54f2
push ecx
push 0x102759c0
push ebx
call fcn.1015fc10
mov ecx, dword [esp + 0x90]
add esp, 0xc
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
mov eax, dword [esp + 0x48]
add esp, 4
inc dword [ebx + 0x24]
mov dword [ebx + 0xc], eax
jmp case.0x101f558c.41
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
push edx
push ebx
push esi
mov esi, dword [esp + 0x54]
mov eax, esi
call fcn.101f3790
add esp, 0xc
test eax, eax
jne case.0x101f558c.41
mov ebx, dword [esp + 0x6c]
call fcn.10127ef0
mov dword [esp + 0x28], eax
test eax, eax
je case.0x101f558c.41
test byte [eax + 5], 1
je 0x101f554e
mov ecx, dword [esp + 0x18]
push ecx
call fcn.101fef40
add esp, 4
test eax, eax
jne case.0x101f558c.41
mov edx, dword [esp + 0x28]
mov al, byte [edx + 5]
test al, 2
jne 0x101f5577
test al, 4
je 0x101f5564
cmp dword [esp + 0x10], 0
jne 0x101f5577
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ebx
call fcn.10178980
add esp, 4
jmp 0x101f557b
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
movzx eax, byte [ecx + 4]
cmp eax, 0x2a
ja case.0x101f558c.3
jmp dword [eax*4 + 0x101f8448]
mov ecx, esi
mov eax, ebx
call fcn.10129dc0
cmp dword [esp + 0x10], 0
jne 0x101f55ce
mov eax, dword [esp + 0x18]
add dword [eax + 0x2c], 2
push 0x1026eb00
push 9
mov edi, ebx
call fcn.1015b7c0
mov dword [eax + 4], esi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x94], 0xfffff830
jmp 0x101f8411
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
call fcn.1011fd80
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
push 0
mov ecx, esi
call fcn.1019b3f0
mov eax, dword [esp + 0x38]
add esp, 4
push eax
push 3
push esi
push 0x5e
push ebx
call fcn.1015e0f0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x48]
mov dword [ecx + 0x50], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x50]
mov eax, dword [edi + 4]
add esp, 0x14
push ecx
call fcn.1013bfe0
add esp, 4
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
mov edi, dword [edi + 4]
jne 0x101f5641
test edi, edi
je 0x101f5c5b
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x24]
jmp 0x101f8407
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
mov ecx, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
push edi
mov dword [ecx + 0x5c], eax
call fcn.1017a590
add esp, 0xc
cmp eax, 7
jne case.0x101f558c.41
mov eax, dword [esp + 0x14]
call fcn.10120900
jmp case.0x101f558c.41
mov edx, dword [edi + 4]
or ebx, 0xffffffff
cmp dword [esp + 0x10], 0
mov dword [esp + 0x24], edx
je 0x101f56b4
mov ebx, dword [esp + 0x10]
push str.fast
push ebx
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
jne 0x101f56a1
lea ebx, [eax + 2]
jmp 0x101f56b4
push 0
push 1
call fcn.10133860
xor ebx, ebx
add esp, 8
test al, al
setne bl
mov eax, dword [esp + 0x38]
cmp dword [eax + 4], 0
jne 0x101f56ec
test ebx, ebx
js 0x101f56ec
mov ecx, dword [esp + 0x14]
xor esi, esi
cmp dword [ecx + 0x14], esi
jle 0x101f56ec
xor edi, edi
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
mov eax, dword [edi + eax + 4]
call fcn.1013be40
mov ecx, dword [esp + 0x14]
inc esi
add edi, 0x10
cmp esi, dword [ecx + 0x14]
jl 0x101f56cf
mov eax, dword [esp + 0x24]
call fcn.1013be40
mov esi, dword [esp + 0x2c]
jmp 0x101f8409
mov edi, dword [esp + 0x18]
mov ecx, esi
mov eax, edi
call fcn.10198b90
inc dword [edi + 0x2c]
mov edx, dword [esp + 0x6c]
movzx eax, byte [edx]
cmp byte [eax + 0x1026d428], 0x70
mov edi, dword [edi + 0x2c]
jne 0x101f572c
push 0
push edi
push esi
push 0xa8
jmp 0x101f5742
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
call fcn.1011fd80
push eax
push edi
push esi
push 0xa9
push ebx
call fcn.1015e0f0
mov eax, dword [ebx + 0x6c]
add esp, 0x14
cmp dword [ebx + 0x70], eax
jg 0x101f5769
push 0
push 1
push edi
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp case.0x101f558c.41
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [ebx + 0x6c], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], 1
xor ecx, ecx
mov word [eax + 2], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x50
mov dword [eax + 0x14], ecx
jmp case.0x101f558c.41
mov edx, dword [esp + 0x10]
mov esi, str.normal
mov dword [esp + 0x24], esi
call fcn.10128040
mov edx, eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
test eax, eax
jne 0x101f5816
cmp edx, 0xffffffff
jne 0x101f57c9
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 0x53]
jmp 0x101f5823
test eax, eax
jne 0x101f5816
mov eax, dword [esp + 0x14]
mov esi, 2
cmp dword [eax + 0x14], esi
jle 0x101f580b
mov dword [esp + 0x1c], 0x20
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call fcn.1011e9f0
mov eax, dword [esp + 0x14]
add dword [esp + 0x1c], 0x10
inc esi
cmp esi, dword [eax + 0x14]
jl 0x101f57e3
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov byte [ecx + 0x53], dl
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call fcn.1011e9f0
cmp eax, 1
jne 0x101f582d
mov esi, str.exclusive
mov eax, esi
mov ecx, ebx
call fcn.1016b620
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f584c
mov dword [esp + 0x28], 0xffffffff
jmp 0x101f58b4
mov eax, dword [esp + 0x10]
call fcn.101205f0
mov dword [esp + 0x24], eax
xor edi, edi
jmp 0x101f5860
cmp edi, 6
je 0x101f5842
mov eax, dword [edi*4 + 0x1026eae8]
test eax, eax
je 0x101f5842
mov edx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x18]
push eax
call sym.SQLite.Interop.dll_sqlite3_strnicmp
add esp, 0xc
test eax, eax
je 0x101f588a
inc edi
jmp 0x101f5860
mov dword [esp + 0x28], edi
cmp edi, 2
jne 0x101f58af
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x20]
and eax, 0x10000000
xor ecx, ecx
or eax, ecx
je 0x101f58d1
mov dword [esp + 0x28], 0xffffffff
jmp 0x101f58b4
cmp edi, 0xffffffff
jne 0x101f58d1
mov eax, dword [esp + 0x38]
cmp dword [eax + 4], 0
jne 0x101f58d1
mov dword [esp + 0x48], 0
mov esi, dword [esp + 0x48]
mov dword [eax + 4], 1
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 0x14]
dec edi
js 0x101f592a
mov eax, edi
shl eax, 4
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
cmp dword [eax + edx + 4], 0
je 0x101f5920
cmp edi, esi
je 0x101f5900
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 4], 0
jne 0x101f5920
mov ecx, edi
mov eax, ebx
call fcn.10129dc0
mov edx, dword [esp + 0x28]
push edx
push 1
push edi
push 7
push ebx
call fcn.1015e0f0
mov eax, dword [esp + 0x48]
add esp, 0x14
sub eax, 0x10
dec edi
mov dword [esp + 0x34], eax
jns 0x101f58e4
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f5949
push 0
push 1
push 1
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp case.0x101f558c.41
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [ebx + 0x6c], ecx
mov dword [eax + 4], 1
jmp 0x101f577b
mov edx, dword [edi + 4]
mov eax, dword [edx + 4]
mov esi, dword [eax]
or ecx, 0xffffffff
cmp dword [esp + 0x10], 0
mov eax, 0xfffffffe
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
je 0x101f59b3
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x50]
push ecx
call fcn.101363a0
mov ecx, dword [esp + 0x58]
add esp, 4
cmp ecx, 0xffffffff
jg 0x101f59af
jl 0x101f59a8
mov eax, dword [esp + 0x50]
cmp eax, 0xffffffff
jae 0x101f59b3
or eax, 0xffffffff
or ecx, eax
jmp 0x101f59b3
mov eax, dword [esp + 0x50]
push ecx
push eax
mov ecx, esi
call fcn.1011e960
push edx
push eax
mov esi, ebx
call fcn.10171920
add esp, 0x10
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x24], eax
jne 0x101f59e5
call fcn.1013bd70
jmp 0x101f8407
mov edi, dword [esp + 0x10]
call fcn.10133780
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], eax
mov byte [edx + 0x54], al
push eax
mov eax, dword [esp + 0x28]
call fcn.1013bdc0
add esp, 4
test eax, eax
jne case.0x101f558c.41
mov eax, dword [esp + 0x34]
cmp eax, 1
je 0x101f5a20
cmp eax, 2
jne case.0x101f558c.41
mov eax, dword [ebx + 0x6c]
push 0x1026eb28
push 5
mov edi, ebx
mov dword [esp + 0x2c], eax
call fcn.1015b7c0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
add ecx, 4
dec edx
mov dword [eax + 0x38], ecx
mov dword [eax + 4], esi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x64], esi
mov dword [eax + 0x6c], edx
add esp, 8
mov ecx, esi
mov eax, ebx
call fcn.10129dc0
jmp case.0x101f558c.41
xor edi, edi
cmp dword [esp + 0x10], edi
je 0x101f5a85
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.10120280
add esp, 8
test eax, eax
je 0x101f5a85
cmp dword [esp + 0x3c], edi
jg 0x101f5a8d
mov dword [esp + 0x3c], closesocket
mov eax, dword [esp + 0x18]
push edi
mov ecx, esi
call fcn.1019b3f0
mov eax, dword [ebx + 0x6c]
add esp, 4
cmp dword [ebx + 0x70], eax
jg 0x101f5aba
mov edx, dword [esp + 0x3c]
push edi
push 1
push edx
push 0x45
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f5ae6
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x6c], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], 1
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x45
mov dword [eax + 0x14], edi
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x101f5b01
push edi
push edi
push esi
push 0x3c
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov esi, eax
jmp 0x101f5b27
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea edx, [ecx + ecx*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x3c
mov dword [eax + 0x14], edi
mov esi, ecx
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f5b41
push edi
push edi
push 1
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f5b69
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [eax + 4], 1
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x50
mov dword [eax + 0x14], edi
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f5b84
push edi
push 0xffffffffffffffff
push 1
push 0x52
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f5bb0
mov ecx, dword [ebx + 0x68]
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [eax + 4], 1
mov dword [eax + 8], 0xffffffff
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x52
mov dword [eax + 0x14], edi
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f5bd6
push edi
push esi
push 1
push 0x30
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov eax, esi
mov edx, ebx
call fcn.10129df0
jmp case.0x101f558c.41
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [ebx + 0x6c], ecx
mov dword [eax + 4], 1
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x30
mov dword [eax + 0x14], edi
mov eax, esi
mov edx, ebx
call fcn.10129df0
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f5c1e
mov edx, dword [edi + 0xc]
mov eax, dword [edx + 0x50]
jmp 0x101f8407
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [edi + 0xc]
mov eax, dword [edx + 0x50]
push eax
mov eax, dword [edi + 4]
call fcn.1013bfe0
add esp, 4
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f5c74
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x20]
and eax, 0x20
xor ecx, ecx
or eax, ecx
jne 0x101f5c62
xor eax, eax
jmp 0x101f8407
mov eax, dword [edi + 4]
push 0
call fcn.1013bf90
add esp, 4
jmp 0x101f8407
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x34]
push edx
push ebx
mov dword [esp + 0x3c], 1
call fcn.10120280
mov esi, dword [esp + 0x3c]
add esp, 8
test eax, eax
je 0x101f5ca2
mov eax, dword [edi + 4]
push esi
call fcn.1013bf90
add esp, 4
test esi, esi
setne al
movzx ecx, al
push ecx
push 1
call fcn.10133860
add esp, 8
test al, al
mov eax, dword [esp + 0x14]
je 0x101f5cd5
mov edx, dword [eax + 0x24]
or dword [eax + 0x20], 0x20
push eax
mov dword [eax + 0x24], edx
call fcn.1013e980
add esp, 4
jmp case.0x101f558c.41
mov ecx, dword [eax + 0x24]
and dword [eax + 0x20], 0xffffffdf
push eax
mov dword [eax + 0x24], ecx
call fcn.1013e980
add esp, 4
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je 0x101f5d95
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x50]
push edx
call fcn.101363a0
mov ecx, dword [esp + 0x58]
add esp, 4
test ecx, ecx
jg 0x101f5d2d
jl 0x101f5d1a
cmp dword [esp + 0x50], 0
jae 0x101f5d2d
mov eax, dword [0x102924d0]
mov ecx, dword [0x102924d4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x38]
cmp dword [edx + 4], 0
jne 0x101f5d45
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], ecx
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x14]
dec edi
js 0x101f5d95
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
mov eax, dword [ecx + eax + 4]
test eax, eax
je 0x101f5d8b
cmp edi, esi
je 0x101f5d75
mov edx, dword [esp + 0x38]
cmp dword [edx + 4], 0
jne 0x101f5d8b
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
push ecx
push edx
call fcn.1017a670
mov ecx, dword [esp + 0x3c]
add esp, 8
sub ecx, 0x10
dec edi
mov dword [esp + 0x34], ecx
jns 0x101f5d58
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
push eax
push 0x12
push ecx
push edx
call sym.SQLite.Interop.dll_sqlite3_file_control
add esp, 0x10
test eax, eax
jne 0x101f5dce
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push eax
push ecx
mov esi, ebx
jmp 0x101f840c
cmp eax, 0xc
je case.0x101f558c.41
mov ecx, dword [esp + 0x18]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f5dfa
mov edx, dword [esp + 0x14]
movzx eax, byte [edx + 0x50]
jmp 0x101f8407
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
call fcn.10198b20
jmp case.0x101f558c.41
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x101f5e25
mov eax, dword [sym.SQLite.Interop.dll_sqlite3_temp_directory]
mov ecx, ebx
call fcn.1016b620
jmp case.0x101f558c.41
cmp byte [eax], 0
mov esi, dword [esp + 0x10]
je 0x101f5e63
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x24]
push ecx
push 1
push esi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x101f5e4f
cmp dword [esp + 0x24], eax
jne 0x101f5e63
mov eax, dword [esp + 0x18]
push str.not_a_writable_directory
push eax
call fcn.1015fc10
jmp 0x101f8411
mov ecx, dword [sym.SQLite.Interop.dll_sqlite3_temp_directory]
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
cmp byte [esi], 0
je 0x101f5e8c
push esi
push 0x102759c0
call sym.SQLite.Interop.dll_sqlite3_mprintf
mov dword [sym.SQLite.Interop.dll_sqlite3_temp_directory], eax
jmp 0x101f8411
mov dword [sym.SQLite.Interop.dll_sqlite3_temp_directory], 0
jmp case.0x101f558c.41
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x101f5eb4
mov eax, dword [sym.SQLite.Interop.dll_sqlite3_data_directory]
mov ecx, ebx
call fcn.1016b620
jmp case.0x101f558c.41
cmp byte [eax], 0
mov esi, dword [esp + 0x10]
je 0x101f5ef2
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x24]
push ecx
push 1
push esi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x101f5ede
cmp dword [esp + 0x24], eax
jne 0x101f5ef2
mov eax, dword [esp + 0x18]
push str.not_a_writable_directory
push eax
call fcn.1015fc10
jmp 0x101f8411
mov ecx, dword [sym.SQLite.Interop.dll_sqlite3_data_directory]
push ecx
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
cmp byte [esi], 0
je 0x101f5f1b
push esi
push 0x102759c0
call sym.SQLite.Interop.dll_sqlite3_mprintf
mov dword [sym.SQLite.Interop.dll_sqlite3_data_directory], eax
jmp 0x101f8411
mov dword [sym.SQLite.Interop.dll_sqlite3_data_directory], 0
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f5f3b
movzx eax, byte [edi + 8]
dec eax
jmp 0x101f8407
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x4f], 0
jne 0x101f5f59
mov eax, dword [esp + 0x18]
push str.Safety_level_may_not_be_changed_inside_a_transaction
push eax
call fcn.1015fc10
jmp 0x101f8411
cmp esi, 1
je case.0x101f558c.41
mov ebx, dword [esp + 0x10]
push 1
push 0
call fcn.10133860
add esp, 8
inc eax
and eax, 7
jne 0x101f5f7d
mov eax, 1
mov ecx, dword [esp + 0x14]
push ecx
mov byte [edi + 8], al
mov byte [edi + 9], 1
call fcn.1013e980
add esp, 4
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f5fce
mov esi, dword [esp + 0x28]
push ebx
mov eax, esi
call fcn.10178980
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
and eax, dword [edx + 0x20]
and ecx, dword [edx + 0x24]
add esp, 4
or eax, ecx
je 0x101f5c5b
mov eax, 1
jmp 0x101f8407
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x4f], 0
mov edx, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x50], edx
jne 0x101f5fea
and dword [esp + 0x50], 0xffffbfff
mov ebx, dword [esp + 0x10]
push 0
push 1
call fcn.10133860
add esp, 8
test al, al
mov eax, dword [esp + 0x50]
je 0x101f600a
or dword [esi + 0x20], eax
or dword [esi + 0x24], edi
jmp 0x101f6031
mov ecx, eax
mov edx, edi
not ecx
and dword [esi + 0x20], ecx
not edx
and dword [esi + 0x24], edx
cmp eax, 0x80000
jne 0x101f6031
xor eax, eax
cmp edi, eax
jne 0x101f6031
mov dword [esi + 0x200], eax
mov dword [esi + 0x204], eax
mov ecx, dword [esp + 0x2c]
mov ebx, 0x9e
call fcn.10166ef0
push esi
call fcn.1013e980
add esp, 4
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je case.0x101f558c.41
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push eax
push ecx
push 2
push edx
call fcn.101fef90
mov edi, eax
add esp, 0x10
mov dword [esp + 0x44], edi
test edi, edi
je case.0x101f558c.41
mov edx, dword [edi + 0x48]
mov ecx, dword [esp + 0x14]
call fcn.1011b660
mov edx, eax
mov eax, edi
mov dword [esp + 0x1c], 0
call fcn.1011bda0
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov ecx, edx
mov eax, esi
mov dword [esi + 0x2c], 7
call fcn.10198b90
mov ebx, edi
mov eax, esi
call fcn.101a30f0
movsx ecx, word [edi + 0x2a]
mov esi, dword [edi + 4]
mov dword [esp + 0x3c], 0
test ecx, ecx
jle case.0x101f558c.41
mov ebx, dword [esp + 0x28]
movzx eax, word [esi + 0x10]
xor edx, edx
test al, 0x62
je 0x101f610a
mov edx, dword [ebx + 8]
or edx, dword [ebx + 0xc]
jne 0x101f60f3
inc dword [esp + 0x1c]
jmp 0x101f619c
test al, 0x20
je 0x101f60fe
mov edx, 2
jmp 0x101f610a
movzx edx, al
and edx, 0x40
or edx, 0x20
shr edx, 5
test al, 1
jne 0x101f6112
xor eax, eax
jmp 0x101f613b
mov edi, dword [esp + 0x24]
mov eax, 1
test edi, edi
je 0x101f613b
cmp ecx, eax
jl 0x101f613b
mov ebx, dword [edi + 4]
movsx edi, word [ebx]
cmp edi, dword [esp + 0x3c]
je 0x101f6137
inc eax
add ebx, 2
cmp eax, ecx
jle 0x101f6126
mov ebx, dword [esp + 0x28]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x101f614c
cmp edx, 2
jge 0x101f614c
mov ecx, dword [ecx + 8]
jmp 0x101f614e
xor ecx, ecx
mov edi, dword [ebx + 8]
or edi, dword [ebx + 0xc]
mov edi, str.issisii
jne 0x101f6160
mov edi, str.issisi
push edx
push eax
xor eax, eax
cmp byte [esi + 0xc], al
push ecx
setne al
push eax
push 0x10275ad6
mov eax, esi
call fcn.101205c0
mov ecx, dword [esi]
mov edx, dword [esp + 0x50]
sub edx, dword [esp + 0x30]
add esp, 4
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push edi
push 1
push eax
call fcn.1016d2a0
mov edi, dword [esp + 0x6c]
add esp, 0x28
mov eax, dword [esp + 0x3c]
movsx ecx, word [edi + 0x2a]
inc eax
add esi, 0x14
mov dword [esp + 0x3c], eax
cmp eax, ecx
jl 0x101f60d8
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je case.0x101f558c.41
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push esi
push ecx
push edx
call fcn.1013adf0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x101f6217
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push esi
push eax
push 2
push ecx
call fcn.101fef90
add esp, 0x10
test eax, eax
je case.0x101f558c.41
test byte [eax + 0x24], 0x80
je case.0x101f558c.41
call fcn.1011bda0
mov edi, eax
test edi, edi
je case.0x101f558c.41
mov edx, dword [edi + 0x18]
mov ecx, dword [esp + 0x14]
call fcn.1011b660
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 8]
or edx, dword [ecx + 0xc]
mov edx, dword [esp + 0x18]
je 0x101f6240
movzx ecx, word [edi + 0x34]
mov dword [edx + 0x2c], 6
jmp 0x101f624b
movzx ecx, word [edi + 0x32]
mov dword [edx + 0x2c], 3
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, eax
mov eax, dword [esp + 0x18]
call fcn.10198b90
xor esi, esi
cmp dword [esp + 0x1c], esi
jle case.0x101f558c.41
lea ecx, [ecx]
mov edx, dword [edi + 4]
movzx eax, word [edx + esi*2]
test ax, ax
jns 0x101f6280
xor ecx, ecx
jmp 0x101f6290
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 4]
movsx ecx, ax
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4]
push ecx
cwde
push eax
push esi
push str.iisX
push 1
push ebx
call fcn.1016d2a0
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 8]
add esp, 0x18
or ecx, dword [eax + 0xc]
je 0x101f62db
movzx edx, word [edi + 0x32]
mov ecx, dword [edi + 0x20]
xor eax, eax
cmp esi, edx
mov edx, dword [ecx + esi*4]
setl al
push eax
mov eax, dword [edi + 0x1c]
movzx ecx, byte [eax + esi]
push edx
push ecx
push str.isiX
push 4
push ebx
call fcn.1016d2a0
add esp, 0x18
mov eax, dword [ebx + 0x6c]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x2c]
cmp dword [ebx + 0x70], eax
jg 0x101f62fd
push 0
push ecx
push 1
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6327
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 4], 1
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax], 0x50
mov dword [eax + 0x14], ecx
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x101f6270
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je case.0x101f558c.41
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.1013ae80
mov esi, eax
add esp, 0xc
test esi, esi
je case.0x101f558c.41
mov edx, dword [esi + 0x48]
mov ecx, dword [esp + 0x14]
call fcn.1011b660
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, edx
mov dword [edx + 0x2c], 5
call fcn.10198b90
mov edi, dword [esi + 8]
xor esi, esi
test edi, edi
je case.0x101f558c.41
mov dword [esp + 0x50], 0x10278de8
mov dword [esp + 0x54], 0x10278dec
mov dword [esp + 0x58], 0x1026b740
mov ecx, dword [edi + 0x38]
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
and ecx, 3
mov edx, dword [esp + ecx*4 + 0x50]
mov ecx, dword [edi]
push eax
xor eax, eax
cmp byte [edi + 0x36], al
push edx
setne al
push eax
push ecx
push esi
push str.isisi
push 1
push ebx
call fcn.1016d2a0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc esi
test edi, edi
jne 0x101f63a8
jmp case.0x101f558c.41
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
xor esi, esi
mov dword [edx + 0x2c], 3
cmp dword [eax + 0x14], esi
jle case.0x101f558c.41
xor edi, edi
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + edi + 4]
test eax, eax
je 0x101f642c
call fcn.1012a040
push eax
mov eax, dword [edx + edi]
push eax
push esi
push 0x10278df8
push 1
push ebx
call fcn.1016d2a0
add esp, 0x18
mov ecx, dword [esp + 0x14]
inc esi
add edi, 0x10
cmp esi, dword [ecx + 0x14]
jl 0x101f6402
jmp case.0x101f558c.41
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [edx + 0x2c], 2
mov edi, dword [eax + 0x1ac]
xor esi, esi
test edi, edi
je case.0x101f558c.41
lea ecx, [ecx]
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
push edx
push esi
push 0x10278dfc
push 1
push ebx
call fcn.1016d2a0
mov edi, dword [edi]
add esp, 0x14
inc esi
test edi, edi
jne 0x101f6460
jmp case.0x101f558c.41
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x18]
shr eax, 5
and eax, 1
mov dword [esp + 0x34], eax
mov dword [ecx + 0x2c], 6
mov dword [esp + 0x1c], 0x10299448
mov edx, dword [esp + 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x101f64d0
mov eax, dword [esp + 0x34]
push eax
mov edi, 1
mov eax, esi
call fcn.10171890
mov esi, dword [esi + 0x24]
mov ebx, dword [esp + 0x30]
add esp, 4
test esi, esi
jne 0x101f64b1
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
cmp eax, 0x102994a4
jl 0x101f64a7
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x19c]
test esi, esi
je case.0x101f558c.41
jmp 0x101f6504
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov eax, dword [esi + 8]
push edx
xor edi, edi
call fcn.10171890
mov esi, dword [esi]
add esp, 4
test esi, esi
jne 0x101f6500
jmp case.0x101f558c.41
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x2c], 1
mov esi, dword [ecx + 0x180]
test esi, esi
je case.0x101f558c.41
mov edi, edi
mov edx, dword [esi + 8]
mov eax, dword [edx + 4]
push eax
push 0x10278d5c
push 1
push ebx
call fcn.1016d2a0
mov esi, dword [esi]
add esp, 0x10
test esi, esi
jne 0x101f6540
jmp case.0x101f558c.41
mov esi, 0x1026e650
mov ecx, dword [esi]
push ecx
push 0x10278d5c
push 1
push ebx
call fcn.1016d2a0
add esi, 0x10
add esp, 0x10
cmp esi, 0x1026ead0
jl 0x101f6567
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je case.0x101f558c.41
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.1013ae80
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
je case.0x101f558c.41
mov edi, dword [eax + 0x10]
test edi, edi
je case.0x101f558c.41
mov edx, dword [eax + 0x48]
mov ecx, dword [esp + 0x14]
call fcn.1011b660
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, edx
mov dword [esp + 0x3c], 0
mov dword [edx + 0x2c], 8
call fcn.10198b90
jmp 0x101f65f0
xor esi, esi
cmp dword [edi + 0x14], esi
jle 0x101f6654
lea edx, [edi + 0x24]
mov dword [esp + 0x1c], edx
mov edi, edi
mov al, byte [edi + 0x19]
push str.NONE
call fcn.1011b7c0
push eax
mov al, byte [edi + 0x1a]
call fcn.1011b7c0
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x4c]
push edx
push eax
push esi
push ecx
push str.iissssss
push 1
push ebx
call fcn.1016d2a0
add dword [esp + 0x48], 8
inc esi
add esp, 0x2c
cmp esi, dword [edi + 0x14]
jl 0x101f6600
mov edi, dword [edi + 4]
inc dword [esp + 0x3c]
test edi, edi
jne 0x101f65f0
jmp case.0x101f558c.41
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
add eax, 5
mov dword [esp + 0x48], eax
inc eax
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edx + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je case.0x101f558c.41
jmp 0x101f66a0
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x18]
je 0x101f66c6
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
push ecx
push edx
push 0
push esi
call fcn.101fef90
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x101f66cb
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], edi
test edi, edi
je 0x101f6b37
cmp dword [edi + 0x10], 0
je 0x101f6b37
mov edx, dword [edi + 0x48]
mov ecx, dword [esp + 0x14]
call fcn.1011b660
mov dword [esp + 0x40], eax
mov ecx, eax
mov eax, esi
call fcn.10198b90
mov eax, dword [edi]
mov ecx, dword [edi + 0x1c]
mov edx, dword [esp + 0x40]
push eax
push 0
push ecx
push edx
mov eax, esi
call fcn.1015ae10
movsx ecx, word [edi + 0x2a]
mov eax, dword [esp + 0x58]
inc eax
add eax, ecx
add esp, 0x10
cmp eax, dword [esi + 0x2c]
jle 0x101f6729
mov dword [esi + 0x2c], eax
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
push 0x60
push edi
push edx
push 0
call fcn.10191180
mov eax, dword [edi]
mov edx, dword [esp + 0x4c]
push eax
mov esi, ebx
call fcn.10166dd0
mov edi, dword [edi + 0x10]
add esp, 0x14
mov dword [esp + 0x2c], 1
test edi, edi
je 0x101f6815
mov ecx, dword [esp + 0x30]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.1013ae80
mov esi, eax
add esp, 0xc
test esi, esi
je 0x101f6806
mov ecx, dword [esi]
mov edx, dword [esi + 0x1c]
mov eax, dword [esp + 0x40]
push ecx
push 0
push edx
push eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], 0
call fcn.1015ae10
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x5c]
push ecx
push edi
push esi
push edx
xor eax, eax
call fcn.10164fa0
add esp, 0x20
test eax, eax
jne case.0x101f558c.41
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x4c], eax
jne 0x101f67e2
mov eax, dword [esp + 0x40]
push 0x60
push esi
push eax
mov eax, dword [esp + 0x24]
push ecx
call fcn.10191180
add esp, 0x10
jmp 0x101f6806
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
mov eax, dword [esi + 0x2c]
push edx
push eax
push ecx
push 0x60
push ebx
call fcn.1015e0f0
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov ecx, esi
call fcn.1018c710
mov edi, dword [edi + 4]
inc dword [esp + 0x2c]
test edi, edi
jne 0x101f6764
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp dword [ecx + 0x28], eax
jge 0x101f6825
mov dword [ecx + 0x28], eax
mov ecx, dword [ebx + 0x6c]
xor esi, esi
cmp dword [ebx + 0x70], ecx
jg 0x101f6844
push esi
push esi
push esi
push 0x25
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov dword [esp + 0x34], eax
jmp 0x101f686c
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax], 0x25
mov dword [eax + 0x14], esi
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], eax
cmp eax, esi
je 0x101f6adf
jmp 0x101f6890
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.1013ae80
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], ecx
cmp eax, ecx
je 0x101f68d4
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x4c]
push ecx
push esi
push eax
push edx
lea eax, [esp + 0x50]
call fcn.10164fa0
add esp, 0x10
mov eax, dword [esp + 0x18]
dec dword [eax + 0x38]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x38]
xor edi, edi
mov dword [esp + 0x38], eax
cmp dword [ecx + 0x14], edi
jle 0x101f6941
mov esi, dword [esp + 0x48]
mov edx, ecx
inc esi
add edx, 0x24
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x101f6908
mov eax, dword [eax + edi*4]
jmp 0x101f690e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x64]
push esi
push 0
push ebx
call fcn.1019c450
mov ecx, dword [esp + 0x44]
add esp, 0xc
push 0
push ecx
push esi
push 0x32
push ebx
call fcn.1015e0f0
mov edx, dword [esp + 0x3c]
add dword [esp + 0x30], 8
inc edi
add esp, 0x14
inc esi
cmp edi, dword [edx + 0x14]
jl 0x101f68fb
mov esi, dword [esp + 0x4c]
xor edi, edi
cmp esi, edi
je 0x101f6996
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.10153b40
mov ecx, dword [edi + 0x14]
add esp, 8
push eax
mov eax, dword [esp + 0x50]
push 0x5b
lea edx, [eax + 1]
mov edi, ebx
call fcn.10166da0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
add esp, 0xc
push 0
push 0x1e
mov esi, ebx
call fcn.10166d70
add esp, 8
xor edi, edi
jmp 0x101f69c4
cmp dword [esp + 0x24], edi
je 0x101f69c4
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 0x6c]
inc eax
push eax
mov eax, dword [esp + 0x30]
add edx, 2
push edx
push eax
push 0x1f
push ebx
call fcn.1015e0f0
mov esi, dword [esp + 0x4c]
add esp, 0x14
mov ecx, ebx
call fcn.10166e60
mov ecx, dword [esp + 0x64]
test byte [ecx + 0x24], 0x80
mov eax, dword [ebx + 0x6c]
mov esi, dword [esp + 0x3c]
jne 0x101f6a05
cmp dword [ebx + 0x70], eax
jg 0x101f69ee
push edi
lea eax, [esi + 1]
push eax
push edi
push 0x7f
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6a4a
mov ecx, dword [ebx + 0x68]
lea edx, [eax + 1]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [ebx + 0x6c], edx
mov dword [eax], 0x7f
jmp 0x101f6a38
cmp dword [ebx + 0x70], eax
jg 0x101f6a1e
push edi
lea eax, [esi + 1]
push eax
push edi
push 0x48
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6a4a
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
mov dword [ebx + 0x6c], ecx
lea eax, [eax + edx*8]
xor ecx, ecx
mov word [eax + 2], cx
mov word [eax], 0x48
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], edi
lea ecx, [esi + 1]
mov dword [eax + 0xc], edi
mov dword [eax + 8], ecx
mov dword [eax + 4], edi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 8]
dec edx
push edx
push ecx
push 0x10278e14
lea eax, [esi + 2]
push eax
push ebx
call fcn.1016d2a0
mov eax, dword [ebx + 0x6c]
add esp, 0x14
cmp dword [ebx + 0x70], eax
jg 0x101f6a84
push edi
push 4
push esi
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6aac
mov ecx, dword [ebx + 0x68]
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [eax + 4], esi
mov dword [eax + 8], 4
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x50
mov dword [eax + 0x14], edi
mov eax, dword [esp + 0x38]
mov ecx, ebx
call fcn.1015e0c0
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x101f6ac8
mov ecx, dword [esp + 0x14]
call fcn.101364b0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
inc dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmp eax, edi
jne 0x101f6890
mov eax, dword [ebx + 0x6c]
mov esi, dword [esp + 0x34]
lea ecx, [esi + 1]
cmp dword [ebx + 0x70], eax
jg 0x101f6b01
push 0
push ecx
push 0
push 5
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6b2a
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
xor edx, edx
mov word [eax + 2], dx
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 5
mov dword [eax + 0x14], edx
mov eax, esi
mov edx, ebx
call fcn.10129df0
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x101f66a0
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je case.0x101f558c.41
mov ebx, dword [esp + 0x10]
push 0
push 1
call fcn.10133860
mov esi, dword [esp + 0x1c]
xor ecx, ecx
test al, al
setne cl
push ecx
call fcn.10191dd0
add esp, 0xc
jmp case.0x101f558c.41
mov edx, dword [esp + 0x6c]
movzx eax, byte [edx]
mov edx, dword [esp + 0x38]
xor ecx, ecx
cmp byte [eax + 0x1026d428], 0x71
sete cl
xor esi, esi
mov dword [esp + 0x7c], ecx
cmp dword [edx], esi
jne 0x101f6b9e
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x18]
mov edi, 0x64
mov dword [eax + 0x2c], 6
mov dword [esp + 0x64], edi
cmp dword [esp + 0x10], esi
je 0x101f6bd4
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x64]
push ecx
push edx
call fcn.10120280
add esp, 8
cmp dword [esp + 0x64], esi
jg 0x101f6bd4
mov dword [esp + 0x64], edi
mov ecx, dword [esp + 0x64]
mov eax, dword [ebx + 0x6c]
dec ecx
cmp dword [ebx + 0x70], eax
jg 0x101f6bf3
push esi
push 1
push ecx
push 0x45
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6c1b
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], ecx
mov dword [eax + 8], 1
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax], 0x45
mov dword [eax + 0x14], esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], esi
cmp dword [eax + 0x14], esi
jle 0x101f7906
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], 0
test eax, eax
js 0x101f6c46
cmp dword [esp + 0x40], eax
jne 0x101f78f0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
call fcn.10198b90
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
shl eax, 4
mov edi, dword [edx + eax + 0xc]
mov esi, dword [edi + 0x10]
add edi, 8
xor edx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], edi
test esi, esi
je 0x101f6cac
lea esp, [esp]
mov eax, dword [esi + 8]
test byte [eax + 0x24], 0x80
jne 0x101f6c8a
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x101f6c9c
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x101f6c93
cmp ecx, dword [esp + 0x1c]
jle 0x101f6ca6
mov dword [esp + 0x1c], ecx
mov esi, dword [esi]
test esi, esi
jne 0x101f6c80
mov ecx, dword [esp + 0x14]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.1014f870
mov esi, eax
add esp, 8
test esi, esi
je 0x101f7906
mov edx, dword [edi + 8]
xor ecx, ecx
test edx, edx
je 0x101f6d00
mov eax, dword [edx + 8]
test byte [eax + 0x24], 0x80
jne 0x101f6ce5
mov edi, dword [eax + 0x1c]
inc ecx
mov dword [esi + ecx*4], edi
mov eax, dword [eax + 8]
test eax, eax
je 0x101f6cfa
mov edi, dword [eax + 0x2c]
inc ecx
mov dword [esi + ecx*4], edi
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x101f6cec
mov edx, dword [edx]
test edx, edx
jne 0x101f6cd5
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esi], ecx
mov eax, dword [edi + 0x2c]
add edx, 8
cmp eax, edx
jg 0x101f6d16
mov eax, edx
mov dword [edi + 0x2c], eax
mov byte [edi + 0x13], 0
mov dword [edi + 0x1c], 0
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x101f6d42
push 1
push ecx
push 2
push 0x92
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6d72
mov edi, dword [ebx + 0x68]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
lea eax, [edx + edx*2]
lea eax, [edi + eax*8]
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 4], 2
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], ecx
mov dword [eax], 0x92
mov dword [eax + 0x14], ecx
mov eax, edx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x101f6d88
mov eax, esi
mov edx, 0xfffffff1
call fcn.10145340
jmp 0x101f6db8
test eax, eax
jns 0x101f6d90
mov eax, dword [ebx + 0x6c]
dec eax
mov edx, dword [ebx + 0x68]
lea ecx, [eax + eax*2]
cmp byte [edx + ecx*8 + 1], 0
lea ecx, [edx + ecx*8]
je 0x101f6db1
push esi
push ebx
mov eax, 0xfffffff1
call fcn.10158e30
add esp, 8
jmp 0x101f6db8
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf1
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x101f6dcf
movzx ecx, byte [esp + 0x40]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
mov word [eax + edx*8 - 0x16], cx
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x101f6ded
push 0
push 0
push 2
push 0x32
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov edi, eax
jmp 0x101f6e1c
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
xor edx, edx
mov word [eax + 2], dx
mov dword [eax + 4], 2
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x32
mov dword [eax + 0x14], edx
mov edi, ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x44]
mov ecx, dword [ecx + edx]
push ecx
push str._in_database__s__n
push eax
call fcn.1015fca0
mov ecx, dword [ebx + 0x6c]
add esp, 0xc
mov esi, eax
cmp dword [ebx + 0x70], ecx
jg 0x101f6e59
push 0
push 3
push 0
push 0x73
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
xor edx, edx
jmp 0x101f6e88
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
xor edx, edx
mov word [eax + 2], dx
mov dword [eax + 4], edx
mov dword [eax + 8], 3
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x73
mov dword [eax + 0x14], edx
mov eax, ecx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x101f6e9e
mov eax, esi
mov edx, 0xfffffff9
call fcn.10145340
jmp 0x101f6ed2
cmp eax, edx
jge 0x101f6ea6
mov eax, dword [ebx + 0x6c]
dec eax
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
cmp byte [ecx + eax*8 + 1], 0
lea ecx, [ecx + eax*8]
je 0x101f6ec7
push esi
push ebx
mov eax, 0xfffffff9
call fcn.10158e30
add esp, 8
jmp 0x101f6ed2
cmp esi, edx
je 0x101f6ed2
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf9
push 3
push 3
push 2
push 0x6e
push ebx
call fcn.1015e0f0
add esp, 0x14
mov esi, ebx
call fcn.1016b530
mov eax, edi
mov edx, ebx
call fcn.10129df0
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 8]
mov dword [esp + 0x34], eax
test eax, eax
je 0x101f78f0
jmp 0x101f6f14
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 8]
cmp dword [eax + 0x1c], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x3c], 0xffffffff
jl 0x101f78de
mov esi, eax
test byte [esi + 0x24], 0x80
jne 0x101f6f45
xor edi, edi
mov dword [esp + 0x70], edi
jmp 0x101f6f52
mov eax, esi
call fcn.1011bda0
mov dword [esp + 0x70], eax
xor edi, edi
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x50]
push ecx
push edi
push 1
push edi
push 0x60
push esi
push edx
call fcn.10195cd0
mov eax, dword [ebx + 0x6c]
add esp, 0x20
cmp dword [ebx + 0x70], eax
jg 0x101f6f8a
push edi
push 7
push edi
push 0x45
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f6fb2
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [eax + 4], edi
mov dword [eax + 8], 7
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x45
mov dword [eax + 0x14], edi
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
cmp eax, edi
je 0x101f7011
mov esi, 8
mov ecx, eax
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f6fe1
push edi
push esi
push edi
push 0x45
mov eax, ebx
call fcn.1015b8e0
mov ecx, dword [esp + 0x40]
add esp, 0x10
jmp 0x101f7005
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], edi
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x45
mov dword [eax + 0x14], edi
mov ecx, dword [ecx + 0x14]
inc esi
mov dword [esp + 0x30], ecx
cmp ecx, edi
jne 0x101f6fc4
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f702e
mov eax, dword [esp + 0x4c]
push edi
push edi
push eax
push 0x25
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f7056
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x4c]
mov dword [ebx + 0x6c], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x25
mov dword [eax + 0x14], edi
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x101f7075
push edi
push 1
push 7
push 0x52
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov dword [esp + 0x44], eax
jmp 0x101f70a5
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea edx, [ecx + ecx*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], 7
mov dword [eax + 8], 1
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x52
mov dword [eax + 0x14], edi
mov dword [esp + 0x44], ecx
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x7c], edi
jne 0x101f70de
movsx eax, word [esi + 0x2c]
mov ecx, dword [esp + 0x4c]
push 3
dec eax
push eax
push ecx
push 0x59
push ebx
call fcn.1015e0f0
mov eax, dword [ebx + 0x6c]
add esp, 0x14
cmp eax, edi
jle 0x101f70de
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
mov ecx, 0x80
mov word [eax + edx*8 - 0x16], cx
xor eax, eax
xor edx, edx
mov dword [esp + 0x30], eax
cmp dx, word [esi + 0x2a]
jge 0x101f7274
mov dword [esp + 0x38], edi
movsx ecx, word [esi + 0x28]
cmp eax, ecx
je 0x101f725e
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x38]
cmp byte [edx + ecx + 0xc], 0
je 0x101f725e
mov edx, dword [esp + 0x4c]
push 3
push edx
push ebx
mov ecx, esi
call fcn.1019c450
add esp, 0xc
or eax, 0xffffffff
mov ecx, ebx
call fcn.1011d530
cmp byte [eax], 0x59
jne 0x101f714a
mov eax, dword [ebx + 0x6c]
cmp eax, edi
jle 0x101f714a
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
mov edx, 0x80
mov word [ecx + eax*8 - 0x16], dx
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x101f7168
push edi
push edi
push 3
push 0x33
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov dword [esp + 0x1c], eax
jmp 0x101f7194
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
lea edx, [ecx + ecx*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], 3
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x33
mov dword [eax + 0x14], edi
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + ecx]
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
push edx
push eax
push str.NULL_value_in__s._s
push ecx
call fcn.1015fca0
mov ecx, dword [ebx + 0x6c]
add esp, 0x10
mov esi, eax
cmp dword [ebx + 0x70], ecx
jg 0x101f71d0
push edi
push 3
push edi
push 0x73
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f71fa
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], edi
mov dword [eax + 8], 3
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x73
mov dword [eax + 0x14], edi
mov eax, ecx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x101f7210
mov eax, esi
mov edx, 0xfffffff9
call fcn.10145340
jmp 0x101f7244
cmp eax, edi
jge 0x101f7218
mov eax, dword [ebx + 0x6c]
dec eax
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
cmp byte [ecx + eax*8 + 1], 0
lea ecx, [ecx + eax*8]
je 0x101f7239
push esi
push ebx
mov eax, 0xfffffff9
call fcn.10158e30
add esp, 8
jmp 0x101f7244
cmp esi, edi
je 0x101f7244
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf9
mov esi, ebx
call fcn.1016b530
mov eax, dword [esp + 0x1c]
mov edx, ebx
call fcn.10129df0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
movsx edx, word [esi + 0x2a]
add dword [esp + 0x38], 0x14
inc eax
mov dword [esp + 0x30], eax
cmp eax, edx
jl 0x101f70f4
mov esi, dword [esi + 0x18]
cmp esi, edi
je 0x101f7400
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x200
or eax, edi
jne 0x101f7400
push edi
push esi
mov esi, dword [esp + 0x1c]
push esi
call fcn.101a7d60
add esp, 0xc
cmp byte [esi + 0x51], 0
mov dword [esp + 0x30], eax
jne 0x101f73f2
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov edx, dword [esp + 0x4c]
dec eax
mov dword [esp + 0x38], eax
dec eax
mov dword [ecx + 0x38], eax
inc edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x34], edx
mov esi, dword [eax]
dec esi
cmp esi, edi
jle 0x101f7308
lea ecx, [esi + esi*4]
mov edx, eax
lea eax, [edx + ecx*4 + 4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
push edi
push ecx
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.101e0a00
sub dword [esp + 0x2c], 0x14
dec esi
add esp, 0x10
cmp esi, edi
jg 0x101f72e4
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 4]
mov esi, dword [esp + 0x18]
push 0x10
push edx
push ecx
push esi
call fcn.101dfaa0
mov eax, dword [esp + 0x48]
mov ecx, ebx
call fcn.1015e0c0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x34], edi
mov eax, dword [edx]
push eax
push str.CHECK_constraint_failed_in__s
push ecx
call fcn.1015fca0
mov ecx, dword [ebx + 0x6c]
add esp, 0x1c
mov esi, eax
cmp dword [ebx + 0x70], ecx
jg 0x101f7364
push edi
push 3
push edi
push 0x73
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f738e
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], edi
mov dword [eax + 8], 3
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax], 0x73
mov dword [eax + 0x14], edi
mov eax, ecx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x101f73a4
mov eax, esi
mov edx, 0xfffffff9
call fcn.10145340
jmp 0x101f73d8
cmp eax, edi
jge 0x101f73ac
mov eax, dword [ebx + 0x6c]
dec eax
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
cmp byte [ecx + eax*8 + 1], 0
lea ecx, [ecx + eax*8]
je 0x101f73cd
push esi
push ebx
mov eax, 0xfffffff9
call fcn.10158e30
add esp, 8
jmp 0x101f73d8
cmp esi, edi
je 0x101f73d8
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf9
mov esi, ebx
call fcn.1016b530
mov eax, dword [esp + 0x2c]
mov ecx, ebx
call fcn.1015e0c0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
cmp eax, edi
je 0x101f7400
push eax
push esi
call fcn.10146ba0
add esp, 8
cmp dword [esp + 0x7c], edi
jne 0x101f7762
mov edx, dword [esp + 0x28]
mov edi, dword [edx + 8]
mov dword [esp + 0x30], edi
test edi, edi
je 0x101f7762
mov eax, dword [esp + 0x24]
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
mov esi, eax
mov ecx, dword [esp + 0x18]
dec dword [ecx + 0x38]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x70], edi
je 0x101f7746
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x50]
push eax
push 0
push 0
push edx
push edi
lea eax, [esp + 0x68]
call fcn.101acfb0
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x6c]
add esp, 0x18
mov dword [esp + 0x68], edi
cmp dword [ebx + 0x70], eax
jg 0x101f7493
mov eax, dword [esp + 0x1c]
push 0
add eax, esi
push 1
push eax
push 0x52
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f74c6
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
add edx, esi
mov word [eax + 2], cx
mov dword [eax + 4], edx
mov dword [eax + 8], 1
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x52
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
movzx esi, word [edi + 0x34]
push eax
push ecx
push edx
push 0x1e
push ebx
call fcn.1015e0f0
mov ecx, dword [ebx]
add esp, 0x14
cmp byte [ecx + 0x51], 0
mov dword [esp + 0x38], eax
jne 0x101f7500
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], esi
push str.row
mov edx, 3
mov esi, ebx
call fcn.10166dd0
add esp, 4
push 3
push 3
push 7
push 0x6e
push ebx
call fcn.1015e0f0
add esp, 0x14
push str._missing_from_index
mov edx, 4
call fcn.10166dd0
add esp, 4
push 3
push 3
push 4
push 0x6e
push ebx
call fcn.1015e0f0
mov ecx, dword [edi]
add esp, 0x14
push ecx
mov edx, 4
call fcn.10166dd0
add esp, 4
push 3
push 3
push 4
push 0x6e
push ebx
mov dword [esp + 0x8c], eax
call fcn.1015e0f0
add esp, 0x14
call fcn.1016b530
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x38]
mov edx, ebx
call fcn.10129df0
cmp byte [edi + 0x36], 0
je 0x101f76e9
mov eax, dword [esp + 0x18]
dec dword [eax + 0x38]
mov ecx, dword [esp + 0x30]
mov edi, dword [eax + 0x38]
xor edx, edx
xor esi, esi
cmp dx, word [ecx + 0x32]
jae 0x101f75e8
mov eax, dword [ecx + 4]
movsx eax, word [eax + esi*2]
test eax, eax
js 0x101f75c5
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
cmp byte [eax + edx*4 + 0xc], 0
jne 0x101f75df
mov ecx, dword [esp + 0x3c]
push 0
push edi
lea edx, [esi + ecx]
push edx
push 0x32
push ebx
call fcn.1015e0f0
mov ecx, dword [esp + 0x44]
add esp, 0x14
movzx eax, word [ecx + 0x32]
inc esi
cmp esi, eax
jl 0x101f75a9
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x101f760b
mov ecx, dword [esp + 0x2c]
push 0
push 0
push ecx
push 5
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
mov dword [esp + 0x38], eax
jmp 0x101f763e
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
xor edx, edx
mov word [eax + 2], dx
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], edx
xor edx, edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 5
mov dword [eax + 0x14], edx
mov dword [esp + 0x38], ecx
mov esi, edi
mov ecx, ebx
call fcn.10166e60
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x6c]
test eax, eax
jns 0x101f7655
lea eax, [ecx - 1]
mov edx, dword [ebx]
cmp byte [edx + 0x51], 0
je 0x101f7664
mov eax, 0x10299328
jmp 0x101f766d
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
movzx esi, word [eax + 0x32]
push ecx
push edi
push edx
push 0x27
push ebx
call fcn.1015e0f0
mov ecx, dword [ebx]
add esp, 0x14
cmp byte [ecx + 0x51], 0
jne 0x101f76a6
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], esi
push str.non_unique_entry_in_index
mov edx, 3
mov esi, ebx
call fcn.10166dd0
mov esi, dword [esp + 0x7c]
add esp, 4
mov ecx, ebx
call fcn.10166e60
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x3c]
add ecx, dword [eax + 0x38]
not edi
jns 0x101f76e0
push edi
push ebx
mov edi, eax
call fcn.1015b870
add esp, 8
jmp 0x101f76e9
mov edx, dword [eax + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [ebx + 0x6c]
test eax, eax
jns 0x101f76fa
lea eax, [ecx - 1]
mov edx, dword [ebx]
cmp byte [edx + 0x51], 0
je 0x101f7709
mov eax, 0x10299328
jmp 0x101f7712
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x101f7746
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov edx, dword [edi + 0x3c]
add edx, dword [edi + 0x38]
not eax
jns 0x101f773d
push eax
push ecx
call fcn.1015b870
add esp, 8
jmp 0x101f7746
mov edx, dword [edi + 0x40]
mov ecx, dword [ecx + 0x6c]
mov dword [edx + eax*4], ecx
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov edi, dword [edx + 0x14]
inc esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
test edi, edi
jne 0x101f7432
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
push 0
push esi
push eax
push 5
push ebx
call fcn.1015e0f0
mov ecx, dword [ebx + 0x6c]
lea eax, [esi - 1]
add esp, 0x14
test eax, eax
jns 0x101f7786
lea eax, [ecx - 1]
mov edx, dword [ebx]
cmp byte [edx + 0x51], 0
je 0x101f7795
mov eax, 0x10299328
jmp 0x101f779e
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
cmp dword [esp + 0x7c], 0
mov dword [eax + 8], ecx
jne 0x101f78de
push str.wrong__of_entries_in_index
mov edx, 2
mov esi, ebx
call fcn.10166dd0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
xor edx, edx
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, edx
je 0x101f78de
mov ecx, dword [esp + 0x24]
mov esi, 8
sub esi, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], esi
jmp 0x101f77f0
cmp dword [esp + 0x70], eax
je 0x101f78ca
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f7814
push edx
push 3
push ecx
push 0x5c
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f783c
lea esi, [eax + 1]
mov dword [ebx + 0x6c], esi
mov esi, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
mov dword [eax + 4], ecx
mov dword [eax + 8], 3
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov dword [eax], 0x5c
mov dword [eax + 0x14], edx
mov ecx, dword [esp + 0x3c]
add ecx, dword [esp + 0x1c]
push 3
push 0
push ecx
push 0x35
push ebx
call fcn.1015e0f0
mov edi, eax
mov eax, dword [ebx + 0x6c]
add esp, 0x14
test eax, eax
jle 0x101f786d
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
mov edx, 0x90
mov word [ecx + eax*8 - 0x16], dx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
mov edx, 4
mov esi, ebx
call fcn.10166dd0
add esp, 4
push 3
push 2
push 4
push 0x6e
push ebx
call fcn.1015e0f0
add esp, 0x14
call fcn.1016b530
mov ecx, dword [ebx + 0x6c]
mov eax, edi
test edi, edi
jns 0x101f78a5
lea eax, [ecx - 1]
mov edx, dword [ebx]
cmp byte [edx + 0x51], 0
je 0x101f78b4
mov eax, 0x10299328
jmp 0x101f78bd
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
xor edx, edx
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
cmp eax, edx
jne 0x101f77f0
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x101f6f10
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [ecx + 0x14]
jl 0x101f6c2c
push 0x1026eb40
push 7
mov edi, ebx
call fcn.1015b7c0
add esp, 8
test eax, eax
je 0x101f794d
mov edx, 1
sub edx, dword [esp + 0x64]
mov byte [eax + 0x31], 0xff
mov dword [eax + 8], edx
mov dword [eax + 0x40], 0x10278ec0
mov byte [eax + 0x79], 0xff
mov edx, dword [str.database_disk_image_is_malformed]
mov ecx, str.unknown_error
test edx, edx
je 0x101f7947
mov ecx, edx
mov dword [eax + 0x88], ecx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
mov eax, dword [ebx + 0x6c]
je 0x101f7968
mov ebx, 0x10299328
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
jmp case.0x101f558c.41
mov ebx, dword [ebx + 0x68]
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
jne 0x101f79af
mov edx, dword [esp + 0x18]
push edx
call fcn.101fef40
add esp, 4
test eax, eax
jne case.0x101f558c.41
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
movzx edx, byte [ecx + 0x4e]
mov eax, dword [edx*8 + 0x1026eb68]
mov ecx, ebx
call fcn.1016b620
jmp case.0x101f558c.41
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x14], 0
mov edx, 1
jle 0x101f79f1
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
add eax, 0xc
cmp dword [eax - 8], 0
je 0x101f79df
mov ecx, dword [eax]
movzx ecx, word [ecx + 0x4e]
test cl, 1
je 0x101f79df
test cl, 4
jne 0x101f79df
xor edx, edx
add eax, 0x10
dec edi
jne 0x101f79c7
test edx, edx
je case.0x101f558c.41
mov edi, dword [esp + 0x14]
mov eax, dword [str.UTF8]
mov esi, 0x1026eb68
test eax, eax
je 0x101f7a3e
mov ebx, dword [esp + 0x10]
mov edx, ebx
call fcn.101204d0
test eax, eax
je 0x101f7a1a
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
jne 0x101f7a03
jmp 0x101f7a3e
mov al, byte [esi + 4]
test al, al
movzx eax, al
jne 0x101f7a29
mov eax, 2
mov edx, dword [edi + 0x10]
mov byte [edi + 0x4e], al
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x4d], al
cmp dword [esi], 0
jne case.0x101f558c.41
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
push edx
push str.unsupported_encoding:__s
push eax
call fcn.1015fc10
add esp, 0xc
jmp case.0x101f558c.41
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], ecx
mov ecx, esi
mov eax, ebx
call fcn.10129dc0
cmp dword [esp + 0x10], 0
je 0x101f7aac
test byte [edi + 5], 8
jne 0x101f7aac
push 0x1026ebb0
push 2
mov edi, ebx
call fcn.1015b7c0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edi, eax
add esp, 8
mov dword [edi + 4], esi
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], edx
call fcn.1012d1a0
mov dword [edi + 0x24], eax
jmp case.0x101f558c.41
push 0x1026eb5c
push 3
mov edi, ebx
call fcn.1015b7c0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov dword [eax + 4], esi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x24], ecx
and dword [ebx + 0x98], 0xffffffbf
jmp case.0x101f558c.41
mov edx, dword [esp + 0x18]
xor edi, edi
push edi
mov dword [edx + 0x2c], 1
call sym.SQLite.Interop.dll_sqlite3_compileoption_get
add esp, 4
test eax, eax
je 0x101f7b5a
push eax
mov edx, 1
mov esi, ebx
inc edi
call fcn.10166dd0
mov eax, dword [ebx + 0x6c]
add esp, 4
cmp dword [ebx + 0x70], eax
jg 0x101f7b1d
push 0
push 1
push 1
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f7b4d
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, 1
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x50
mov dword [eax + 0x14], ecx
push edi
call sym.SQLite.Interop.dll_sqlite3_compileoption_get
add esp, 4
test eax, eax
jne 0x101f7af0
and dword [ebx + 0x98], 0xffffffbf
jmp case.0x101f558c.41
mov edx, dword [esp + 0x38]
cmp dword [edx], 0
mov dword [esp + 0x24], esi
jne 0x101f7b7b
mov dword [esp + 0x24], 0xa
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
test edi, edi
je 0x101f7c27
mov esi, str.full
mov edx, edi
sub esi, edi
jmp 0x101f7ba0
movzx eax, byte [edx]
movzx ecx, byte [edx + esi]
cmp eax, ecx
jne 0x101f7bb9
test eax, eax
jne 0x101f7bcb
mov dword [esp + 0x1c], 1
jmp 0x101f7c27
movzx ecx, byte [ecx + 0x1026d428]
movzx eax, byte [eax + 0x1026d428]
sub eax, ecx
jne 0x101f7bce
inc edx
jmp 0x101f7ba0
mov ecx, str.restart
mov esi, edi
sub esi, ecx
movzx eax, byte [ecx + esi]
movzx edx, byte [ecx]
cmp eax, edx
jne 0x101f7bf0
test eax, eax
jne 0x101f7c02
mov dword [esp + 0x1c], 2
jmp 0x101f7c27
movzx edx, byte [edx + 0x1026d428]
movzx eax, byte [eax + 0x1026d428]
sub eax, edx
jne 0x101f7c05
inc ecx
jmp 0x101f7bd7
mov esi, str.truncate
mov edx, edi
sub esi, edi
mov edi, edi
movzx eax, byte [edx]
movzx ecx, byte [edx + esi]
cmp eax, ecx
jne 0x101f7c68
test eax, eax
jne 0x101f7c7a
mov dword [esp + 0x1c], 3
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
push 1
push edx
push eax
push 6
mov esi, 3
push ebx
mov dword [ecx + 0x2c], esi
call fcn.1015e0f0
mov eax, dword [ebx + 0x6c]
add esp, 0x14
cmp dword [ebx + 0x70], eax
jg 0x101f7c7d
push 0
push esi
push 1
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp case.0x101f558c.41
movzx ecx, byte [ecx + 0x1026d428]
movzx eax, byte [eax + 0x1026d428]
sub eax, ecx
jne 0x101f7c27
inc edx
jmp 0x101f7c10
lea ecx, [eax + 1]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [ebx + 0x6c], ecx
mov dword [eax + 4], 1
mov dword [eax + 8], esi
jmp 0x101f5782
cmp dword [esp + 0x10], 0
je 0x101f7cbb
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
mov esi, dword [esp + 0x14]
push eax
push esi
call sym.SQLite.Interop.dll_sqlite3_wal_autocheckpoint
add esp, 8
jmp 0x101f7cbf
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x104], 0x101802c0
jne 0x101f5c5b
mov eax, dword [esi + 0x108]
jmp 0x101f8407
mov edx, dword [esp + 0x14]
push edx
call sym.SQLite.Interop.dll_sqlite3_db_release_memory
add esp, 4
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je 0x101f7d0a
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
mov dword [esp + 0x34], eax
test al, 2
je case.0x101f558c.41
jmp 0x101f7d12
mov dword [esp + 0x34], 0xfffe
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x44], eax
inc eax
cmp dword [esp + 0x30], 0
mov dword [ecx + 0x28], eax
je 0x101f7d30
mov edi, esi
mov dword [esp + 0x68], edi
jmp 0x101f7d44
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x14]
dec edi
mov dword [esp + 0x68], edi
cmp esi, edi
jg 0x101f7fc4
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
lea esp, [esp]
cmp esi, 1
je 0x101f7fb2
mov eax, dword [esp + 0x18]
mov ecx, esi
call fcn.10198b90
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + eax + 0xc]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x24], eax
test eax, eax
je 0x101f7fb2
mov edi, dword [eax + 8]
test dword [edi + 0x24], 0x100
je 0x101f7f98
mov ax, word [edi + 0x2e]
add ax, 0x2e
movzx esi, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x101f7db1
test byte [eax + 0x38], 0x80
je 0x101f7def
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x101f7da4
test si, si
je 0x101f7def
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
push 0x60
push edi
push ecx
push edx
call fcn.10191180
mov ecx, dword [esp + 0x44]
mov edx, dword [ebx + 0x6c]
movsx eax, si
push eax
and ecx, 1
lea eax, [ecx + edx + 2]
mov ecx, dword [esp + 0x58]
push eax
push ecx
push 0x22
push ebx
call fcn.1015e0f0
add esp, 0x24
mov edx, dword [edi]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + ecx]
push ecx
push str.ANALYZE___w_.__w_
push eax
call fcn.1015fca0
add esp, 0x10
test byte [esp + 0x34], 1
mov edi, eax
mov dword [esp + 0x70], edi
je 0x101f7f0a
mov ecx, dword [esp + 0x18]
call fcn.1011c1d0
mov ecx, dword [ebx + 0x6c]
xor esi, esi
mov edi, eax
cmp dword [ebx + 0x70], ecx
jg 0x101f7e46
push esi
push edi
push esi
push 0x73
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f7e6c
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax], 0x73
mov dword [eax + 0x14], esi
mov eax, ecx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x101f7e84
mov eax, dword [esp + 0x70]
mov edx, 0xfffffff9
call fcn.10145340
jmp 0x101f7ec0
cmp eax, esi
jge 0x101f7e8c
mov eax, dword [ebx + 0x6c]
dec eax
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
cmp byte [ecx + eax*8 + 1], 0
lea ecx, [ecx + eax*8]
je 0x101f7eb1
mov edx, dword [esp + 0x70]
push edx
push ebx
mov eax, 0xfffffff9
call fcn.10158e30
add esp, 8
jmp 0x101f7ec0
mov eax, dword [esp + 0x70]
cmp eax, esi
je 0x101f7ec0
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xf9
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jg 0x101f7edd
push esi
push 1
push edi
push 0x50
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f7f98
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*8]
mov dword [eax + 4], edi
mov dword [eax + 8], 1
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax], 0x50
mov dword [eax + 0x14], esi
jmp 0x101f7f98
mov ecx, dword [ebx + 0x6c]
xor esi, esi
cmp dword [ebx + 0x70], ecx
jg 0x101f7f28
push esi
push esi
push esi
push 0x8c
mov eax, ebx
call fcn.1015b8e0
add esp, 0x10
jmp 0x101f7f4e
lea edx, [ecx + 1]
mov dword [ebx + 0x6c], edx
mov edx, dword [ebx + 0x68]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax], 0x8c
mov dword [eax + 0x14], esi
mov eax, ecx
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x101f7f64
mov eax, edi
mov edx, 0xfffffff9
call fcn.10145340
jmp 0x101f7f98
cmp eax, esi
jge 0x101f7f6c
mov eax, dword [ebx + 0x6c]
dec eax
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*2]
cmp byte [ecx + eax*8 + 1], 0
lea ecx, [ecx + eax*8]
je 0x101f7f8d
push edi
push ebx
mov eax, 0xfffffff9
call fcn.10158e30
add esp, 8
jmp 0x101f7f98
cmp edi, esi
je 0x101f7f98
mov dword [ecx + 0x10], edi
mov byte [ecx + 1], 0xf9
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x101f7d82
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x68]
add dword [esp + 0x1c], 0x10
inc esi
mov dword [esp + 0x48], esi
cmp esi, edi
jle 0x101f7d50
mov ecx, dword [esp + 0x2c]
mov ebx, 0x9e
call fcn.10166ef0
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je 0x101f8005
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x50]
push eax
call fcn.101363a0
add esp, 4
test eax, eax
jne 0x101f8005
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
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
mov esi, ebx
call fcn.10171920
add esp, 0x10
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je 0x101f8073
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x50]
push eax
call fcn.101363a0
add esp, 4
test eax, eax
jne 0x101f8073
push 0xffffffffffffffff
push 0xffffffffffffffff
call sym.SQLite.Interop.dll_sqlite3_hard_heap_limit64
mov ecx, dword [esp + 0x5c]
add esp, 8
test ecx, ecx
jl 0x101f8073
mov esi, dword [esp + 0x50]
jg 0x101f8059
test esi, esi
je 0x101f8073
mov edi, eax
or edi, edx
je 0x101f8069
cmp edx, ecx
jl 0x101f8073
jg 0x101f8069
cmp eax, esi
jbe 0x101f8073
push ecx
push esi
call sym.SQLite.Interop.dll_sqlite3_hard_heap_limit64
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call sym.SQLite.Interop.dll_sqlite3_hard_heap_limit64
push edx
push eax
mov esi, ebx
call fcn.10171920
add esp, 0x10
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je 0x101f80ce
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x50]
push ecx
call fcn.101363a0
add esp, 4
test eax, eax
jne 0x101f80ce
cmp dword [esp + 0x54], eax
jl 0x101f80ce
mov eax, dword [esp + 0x50]
jg 0x101f80b9
test eax, eax
jb 0x101f80ce
mov edx, dword [esp + 0x14]
and eax, 0x7fffffff
push eax
push 0xb
push edx
call sym.SQLite.Interop.dll_sqlite3_limit
add esp, 0xc
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.1012d060
test eax, eax
jne 0x101f8103
push 0x1027dfdc
push 0x292f7
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call sym.SQLite.Interop.dll_sqlite3_log
add esp, 0x14
or eax, 0xffffffff
jmp 0x101f8407
mov eax, dword [esi + 0x98]
jmp 0x101f8407
mov eax, dword [esp + 0x10]
test eax, eax
je case.0x101f558c.41
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], esi
cmp esi, 2
jne 0x101f8131
test ecx, ecx
je 0x101f815d
cmp esi, 3
jne 0x101f813a
test ecx, ecx
je 0x101f815d
test ecx, ecx
ja 0x101f8155
jb 0x101f8145
cmp esi, 4
jae 0x101f8155
mov eax, dword [esp + 0x10]
call fcn.101205f0
mov edi, eax
jmp 0x101f8380
or edi, 0xffffffff
jmp 0x101f8380
mov ecx, 1
sub ecx, eax
mov dword [esp + 0x80], ecx
mov ecx, 2
sub ecx, eax
mov dword [esp + 0x78], ecx
or ecx, 0xffffffff
sub ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, 3
sub ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, 4
xor esi, esi
sub ecx, eax
mov byte [esp + 0x23], 0
mov dword [esp + 0x68], ecx
lea esp, [esp]
mov edi, dword [esp + 0x10]
mov al, byte [esi + edi]
movzx ecx, al
test byte [ecx + 0x1026d528], 8
je 0x101f8368
movsx ecx, al
mov eax, ecx
sar eax, 6
and al, 1
mov dl, al
add dl, dl
add dl, dl
add dl, dl
sub dl, al
mov al, byte [esp + 0x23]
sub cl, dl
shl al, 4
and cl, 0xf
add cl, al
mov eax, esi
and eax, 1
mov byte [esp + 0x23], cl
mov dword [esp + 0x24], eax
je 0x101f81f3
mov eax, esi
shr eax, 1
mov byte [esp + eax + 0x94], cl
mov al, byte [esi + edi + 1]
movzx ecx, al
test byte [ecx + 0x1026d528], 8
je 0x101f8358
movsx eax, al
mov ecx, eax
sar ecx, 6
and cl, 1
mov dl, cl
add dl, dl
add dl, dl
add dl, dl
sub dl, cl
mov cl, byte [esp + 0x23]
sub al, dl
shl cl, 4
and al, 0xf
add al, cl
mov ecx, dword [esp + 0x10]
lea edi, [esi + ecx]
add edi, dword [esp + 0x50]
mov byte [esp + 0x23], al
and edi, 1
je 0x101f824f
add ecx, esi
add ecx, dword [esp + 0x80]
shr ecx, 1
mov byte [esp + ecx + 0x94], al
mov eax, dword [esp + 0x10]
mov al, byte [esi + eax + 2]
movzx ecx, al
test byte [ecx + 0x1026d528], 8
je 0x101f835b
movsx ecx, al
mov eax, ecx
sar eax, 6
and al, 1
mov dl, al
add dl, dl
add dl, dl
add dl, dl
sub dl, al
mov al, byte [esp + 0x23]
sub cl, dl
and cl, 0xf
shl al, 4
add cl, al
cmp dword [esp + 0x24], 0
mov byte [esp + 0x23], cl
je 0x101f82a7
mov eax, dword [esp + 0x10]
add eax, esi
add eax, dword [esp + 0x78]
shr eax, 1
mov byte [esp + eax + 0x94], cl
mov eax, dword [esp + 0x10]
mov al, byte [esi + eax + 3]
movzx ecx, al
test byte [ecx + 0x1026d528], 8
je 0x101f8360
movsx eax, al
mov ecx, eax
sar ecx, 6
and cl, 1
mov dl, cl
add dl, dl
add dl, dl
add dl, dl
sub dl, cl
mov cl, byte [esp + 0x23]
sub al, dl
and al, 0xf
shl cl, 4
add al, cl
test edi, edi
mov edi, dword [esp + 0x10]
mov byte [esp + 0x23], al
je 0x101f82fd
lea ecx, [esi + edi]
add ecx, dword [esp + 0x44]
shr ecx, 1
mov byte [esp + ecx + 0x94], al
mov al, byte [esi + edi + 4]
movzx ecx, al
test byte [ecx + 0x1026d528], 8
je 0x101f8365
movsx eax, al
mov ecx, eax
sar ecx, 6
and cl, 1
mov dl, cl
add dl, dl
add dl, dl
add dl, dl
sub dl, cl
mov cl, byte [esp + 0x23]
sub al, dl
and al, 0xf
shl cl, 4
add al, cl
cmp dword [esp + 0x24], 0
mov byte [esp + 0x23], al
je 0x101f834a
lea ecx, [esi + edi]
add ecx, dword [esp + 0x68]
shr ecx, 1
mov byte [esp + ecx + 0x94], al
add esi, 5
cmp esi, 0x50
jb 0x101f81a0
jmp 0x101f8368
inc esi
jmp 0x101f8368
add esi, 2
jmp 0x101f8368
add esi, 3
jmp 0x101f8368
add esi, 4
lea eax, [esp + 0x94]
mov dword [esp + 0x34], eax
mov eax, esi
mov esi, dword [esp + 0x70]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push edi
xor eax, eax
and esi, 1
push ecx
or esi, eax
mov eax, dword [esp + 0x1c]
push edx
push eax
jne 0x101f83a0
call sym.SQLite.Interop.dll_sqlite3_key_v2
jmp 0x101f83a5
call sym.SQLite.Interop.dll_sqlite3_rekey_v2
add esp, 0x10
test eax, eax
jne case.0x101f558c.41
test edi, edi
je case.0x101f558c.41
push 1
mov eax, ebx
call fcn.10154fb0
add esp, 4
push 0
push 0x10278ec0
push 0
push 0
mov ecx, ebx
call fcn.10173450
add esp, 0x10
mov eax, 0x10278ec0
mov ecx, ebx
call fcn.1016b620
jmp case.0x101f558c.41
cmp dword [esp + 0x10], 0
je 0x101f83fd
mov ecx, dword [esp + 0x10]
call fcn.1012d1a0
mov ecx, dword [esp + 0x14]
push eax
push ecx
call sym.SQLite.Interop.dll_sqlite3_busy_timeout
add esp, 8
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x1e8]
mov esi, ebx
cdq
push edx
push eax
call fcn.10171920
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
mov ecx, esi
call fcn.101364b0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x101f8432
mov ecx, esi
call fcn.101364b0
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100fd740
mov esp, ebp
pop ebp
ret