Function at 0x10093040
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x314
mov eax, dword [0x100ca170]
xor eax, esp
mov dword [esp + 0x30c], eax
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebp, dword [edi]
mov eax, dword [edi + 4]
mov cl, byte [ebp + 0x3e]
mov ebx, dword [edi + 8]
mov edx, dword [ebp + 0x20]
xor esi, esi
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x24]
push edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
mov byte [esp + 0x63], 0
mov byte [esp + 0x50], cl
mov dword [esp + 0xb0], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
call fcn.10025190
add esp, 4
cmp dword [edi + 0x50], 7
je 0x100963de
xor ecx, ecx
mov dword [edi + 0x50], ecx
mov dword [edi + 0x88], ecx
mov dword [edi + 0x8c], ecx
mov dword [edi + 0x14], ecx
mov edx, dword [ebp + 0xf0]
mov dword [ebp + 0x1c4], ecx
test edx, edx
jne 0x1009765a
cmp dword [ebp + 0x124], ecx
je 0x10093121
mov eax, dword [edi + 0x7c]
cmp eax, ecx
jne 0x10093112
mov eax, dword [ebp + 0x12c]
mov dword [esp + 0x90], eax
jmp 0x10093121
xor edx, edx
div dword [ebp + 0x12c]
mov dword [esp + 0x90], edx
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x18], ecx
jmp 0x10093130
cmp byte [ebp + 0x41], 0
jne 0x100963de
mov eax, dword [esp + 0x18]
inc dword [esp + 0x94]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xa0]
test byte [eax + edx*4 + 2], 2
lea ebp, [eax + edx*4]
je 0x1009317f
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [ebx + ecx*8]
mov edx, 0x2460
mov dword [esp + 0x1c], esi
test word [esi + 8], dx
je 0x10093176
call fcn.1002c240
mov eax, 4
mov word [esi + 8], ax
mov cl, byte [ebp]
movzx eax, cl
dec eax
cmp eax, 0x98
ja case.default.0x10093191
jmp dword [eax*4 + 0x10097698]
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ebx, [ebx + ecx*8]
mov edx, 4
mov word [ebx + 8], dx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [ebp + 8]
dec eax
mov dword [esp + 0x18], eax
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov edx, dword [ebx + ecx*8]
lea eax, [ebx + ecx*8]
mov ecx, 0x80
mov dword [esp + 0x18], edx
mov word [eax + 8], cx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea ebx, [ebx + edx*8]
dec eax
cdq
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov word [ebx + 8], ax
mov ebp, dword [ebp + 8]
mov dword [esp + 0x1c], ebx
test ebp, ebp
je case.default.0x10093191
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov eax, dword [ebx + ecx*8]
lea ebx, [ebx + ecx*8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + edx*4 + 8]
dec eax
mov ecx, 0x80
mov dword [esp + 0x18], eax
mov word [ebx + 8], cx
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
mov ecx, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
mov eax, 4
mov word [ebx + 8], ax
mov eax, dword [esp + 0x18]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [esp + 0x18], ecx
jmp case.default.0x10093191
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
test byte [ebx + ecx*8 + 8], 1
je case.default.0x10093191
cmp dword [ebp + 4], 0
jne 0x1009747b
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x1009747b
mov edx, dword [eax + 4]
mov ecx, dword [edi + 0x5c]
dec dword [edi + 0xb8]
mov esi, dword [esp + 0x14]
mov dword [edi + 0xb0], edx
add dword [esi + 0x54], ecx
mov dword [esi + 0x50], ecx
call fcn.10014410
cmp dword [ebp + 8], 4
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
jne 0x100932dd
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 + 8]
dec edx
mov dword [esp + 0x18], edx
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x54], ecx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x10093191
mov ebp, dword [ebp + 0x10]
mov edx, dword [ebp]
mov dword [esi], edx
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
jmp case.default.0x10093191
mov ecx, 8
mov word [esi + 8], cx
mov edx, dword [ebp + 0x10]
fld qword [edx]
fstp qword [esi]
jmp case.default.0x10093191
mov ecx, dword [ebp + 0x10]
mov byte [ebp], 0x1b
call fcn.10016f30
cmp byte [esp + 0x4c], 1
mov dword [ebp + 4], eax
je 0x100933a5
mov esi, dword [esp + 0x1c]
push 1
mov ebx, ecx
push 0xffffffffffffffff
xor eax, eax
mov ecx, esi
call fcn.1003f610
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, 0x12
je 0x10093bb1
movzx ecx, byte [esp + 0x4c]
mov eax, esi
call fcn.1003f8f0
test eax, eax
jne 0x100963de
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
or bl, 0xff
cmp byte [ebp + 1], bl
jne 0x10093396
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10025ff0
mov byte [ebp + 1], bl
mov ecx, dword [esi + 0x10]
mov dword [ebp + 0x10], ecx
mov edx, dword [esi + 0xc]
mov dword [ebp + 4], edx
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
jg 0x10093bb1
mov esi, dword [esp + 0x1c]
mov edx, 0xa02
mov word [esi + 8], dx
mov eax, dword [ebp + 0x10]
mov dl, byte [esp + 0x4c]
mov dword [esi + 0x10], eax
mov ecx, dword [ebp + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], dl
jmp case.default.0x10093191
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
mov eax, dword [ebp + 4]
neg eax
sbb eax, eax
and eax, 0x100
inc eax
movzx ebx, ax
mov word [esi + 8], bx
test edi, edi
jle case.default.0x10093191
lea esp, [esp]
add esi, 0x28
mov eax, esi
call fcn.1002f280
dec edi
mov word [esi + 8], bx
test edi, edi
jg 0x10093400
mov dword [esp + 0x1c], esi
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov dx, word [ebx + ecx*8 + 8]
lea ebx, [ebx + ecx*8]
mov eax, 0xff7f
and dx, ax
or dx, 1
mov dword [esp + 0x1c], ebx
mov word [ebx + 8], dx
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x10]
push 0
push ecx
xor eax, eax
mov ecx, esi
call fcn.1003f610
mov dl, byte [esp + 0x54]
add esp, 8
mov byte [esi + 0xa], dl
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
mov ecx, dword [edi + 0x3c]
lea eax, [ebp + ebp*4]
lea edi, [ecx + eax*8 - 0x28]
mov ecx, edi
call fcn.10014640
test eax, eax
jne 0x10093bb1
mov eax, dword [esp + 0x1c]
push 0x800
call fcn.1002f220
add esp, 4
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebp + ebp*4]
lea esi, [ebx + edx*8]
lea ebp, [ebx + eax*8]
mov ebx, esi
mov eax, ebp
call fcn.10037190
add esi, 0x28
add ebp, 0x28
sub edi, 1
jne 0x100934b2
mov dword [esp + 0x1c], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edx, [ebp + ebp*4]
lea eax, [ebx + edx*8]
lea edi, [ebx + ecx*8]
mov dword [esp + 0x1c], eax
mov ebx, eax
jmp 0x100934f0
push 0x1000
mov eax, ebx
call fcn.1002f220
mov ecx, 0x1000
add esp, 4
test word [ebx + 8], cx
je 0x10093519
mov eax, ebx
call fcn.1003a320
test eax, eax
jne 0x100963de
mov edx, esi
dec esi
test edx, edx
je case.default.0x10093191
mov ebx, dword [esp + 0x1c]
add ebx, 0x28
mov dword [esp + 0x1c], ebx
add edi, 0x28
jmp 0x100934f0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x54]
mov ebp, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edx, [ebp + ebp*4]
lea eax, [ecx + eax*8]
push 0x1000
lea edi, [ecx + edx*8]
mov dword [esp + 0x20], eax
call fcn.1002f220
add esp, 4
jmp case.default.0x10093191
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x124]
test eax, eax
je 0x10093597
mov ecx, dword [esp + 0x90]
cmp dword [esp + 0x94], ecx
jb 0x10093597
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x128]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x10097194
push 0
mov esi, edi
call fcn.10031870
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x10093191
push 1
push edi
call fcn.1006b350
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x10093191
mov edx, dword [edi + 0x48]
add edx, 2
or edx, 1
mov dword [edi + 0x48], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [edi + 0x14], ebx
xor edi, edi
cmp dword [ebp + 8], edi
jle 0x1009361a
mov esi, ebx
jmp 0x100935f0
mov ecx, 0x1000
test word [esi + 8], cx
je 0x1009360a
mov eax, esi
call fcn.1003a320
test eax, eax
jne 0x100963de
mov eax, esi
call fcn.1003f8d0
inc edi
add esi, 0x28
cmp edi, dword [ebp + 8]
jl 0x100935f0
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x41], 0
jne 0x100963de
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
inc eax
mov dword [ecx + 0x4c], eax
mov esi, 0x64
jmp 0x1009721f
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
lea edi, [ebx + edx*8]
lea eax, [eax + eax*4]
mov dl, byte [ebx + eax*8 + 8]
lea ecx, [ebp + ebp*4]
lea esi, [ebx + eax*8]
lea ebx, [ebx + ecx*8]
movzx ecx, word [edi + 8]
or dl, cl
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], ebx
test dl, 1
je 0x1009367d
mov eax, ebx
call fcn.1002f280
jmp case.default.0x10093191
test ecx, 0x4000
je 0x10093694
mov eax, edi
call fcn.1003a2c0
test eax, eax
jne 0x100963de
mov eax, 0x4000
test word [esi + 8], ax
je 0x100936ae
mov eax, esi
call fcn.1003a2c0
test eax, eax
jne 0x100963de
mov bl, 0x12
test byte [edi + 8], bl
jne 0x100936ce
mov ecx, dword [esp + 0x4c]
push 0
push ecx
mov eax, edi
call fcn.10044a80
add esp, 8
test eax, eax
jne 0x100963de
test byte [esi + 8], bl
jne 0x100936ec
mov edx, dword [esp + 0x4c]
push 0
push edx
mov eax, esi
call fcn.10044a80
add esp, 8
test eax, eax
jne 0x100963de
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0xc]
cdq
mov ebx, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x10093bb1
jl 0x10093711
cmp ebx, eax
ja 0x10093bb1
mov edi, dword [esp + 0x1c]
xor eax, eax
cmp edi, esi
sete al
lea ecx, [ebx + 2]
call fcn.10037300
test eax, eax
jne 0x100963de
mov cx, word [edi + 8]
mov edx, 0xbe02
and cx, dx
or cx, 2
mov word [edi + 8], cx
cmp edi, esi
je 0x10093758
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [edi + 0x10]
push eax
push ecx
push edx
call fcn.100091c0
add esp, 0xc
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 0x10]
push ecx
push edx
push eax
call fcn.100091c0
mov ecx, dword [edi + 0x10]
mov byte [ebx + ecx], 0
mov edx, dword [edi + 0x10]
mov cl, byte [esp + 0x58]
mov byte [edx + ebx + 1], 0
mov eax, 0x200
add esp, 0xc
or word [edi + 8], ax
mov dword [edi + 0xc], ebx
mov byte [edi + 0xa], cl
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea edi, [ebx + edx*8]
mov eax, edi
call fcn.10024e90
movzx eax, ax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [ebx + ecx*8]
mov eax, esi
call fcn.10024e90
movzx edx, ax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], edx
mov dl, byte [esi + 8]
or dl, byte [edi + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [esp + 0x1c], ecx
test dl, 1
jne 0x10093a1f
mov al, byte [esp + 0x24]
and al, byte [esp + 0x2c]
test al, 4
je 0x10093923
mov edx, dword [esi + 4]
mov ebx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x84], edx
movzx edx, byte [ebp]
add edx, 0xffffffa7
mov dword [esp + 0x80], ebx
mov byte [esp + 0x33], 1
cmp edx, 3
ja case.default.0x10093821
jmp dword [edx*4 + 0x100978fc]
push ecx
push eax
lea eax, [esp + 0x88]
push eax
call fcn.100162f0
add esp, 0xc
test eax, eax
jne 0x10093928
jmp 0x100938f3
push ecx
push eax
lea edx, [esp + 0x88]
call fcn.1001ddd0
add esp, 8
test eax, eax
jne 0x10093928
jmp 0x100938f3
push ecx
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.1001dcc0
add esp, 0xc
test eax, eax
jne 0x10093928
jmp 0x100938f3
mov edx, eax
or edx, ecx
je 0x10093a1f
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x100938a9
test ebx, ebx
jne 0x100938a9
cmp dword [esp + 0x84], 0x80000000
je 0x10093928
push ecx
push eax
mov eax, dword [esp + 0x8c]
push eax
push ebx
call fcn.10004b80
jmp 0x100938e5
mov edx, eax
or edx, ecx
je 0x10093a1f
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x100938d5
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x8c]
push eax
push ebx
call fcn.10004c30
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov word [eax + 8], cx
jmp case.default.0x10093191
mov byte [esp + 0x33], 0
mov eax, edi
call fcn.1001c210
fstp qword [esp + 0x38]
mov eax, esi
call fcn.1001c210
movzx eax, byte [ebp]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x10093946
jmp dword [eax*4 + 0x1009790c]
fadd qword [esp + 0x38]
jmp 0x100939c2
fsub qword [esp + 0x38]
jmp 0x100939c2
fmul qword [esp + 0x38]
jmp 0x100939c2
fldz
fld qword [esp + 0x38]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x10093a1b
fdivp st(1)
jmp 0x100939c2
fld qword [esp + 0x38]
call fcn.100a77d6
mov esi, eax
mov edi, edx
call fcn.100a77d6
mov ecx, esi
or ecx, edi
je 0x10093a1f
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x100939a4
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.10004c30
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
fild qword [esp + 0x170]
sub esp, 8
fst qword [esp + 0x40]
fstp qword [esp]
call fcn.10016f50
add esp, 8
test eax, eax
jne 0x10093a1f
mov esi, dword [esp + 0x1c]
fld qword [esp + 0x38]
mov dx, word [esi + 8]
fstp qword [esi]
mov eax, 0xbe08
and dx, ax
mov al, byte [esp + 0x24]
or al, byte [esp + 0x2c]
or dx, 8
mov word [esi + 8], dx
test al, 8
jne case.default.0x10093191
cmp byte [esp + 0x33], 0
jne case.default.0x10093191
call fcn.1001c1a0
jmp case.default.0x10093191
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x1c]
call fcn.1002f280
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
test ebp, ebp
je case.default.0x10093191
lea ecx, [ebp + ebp*4]
push 0
push 0
lea eax, [ebx + ecx*8]
call fcn.10037280
add esp, 8
jmp case.default.0x10093191
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
movzx esi, byte [ebp + 3]
mov edx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [ebx + eax*8]
lea ebx, [ebx + ecx*8]
xor ecx, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x118], eax
mov dword [esp + 0x24], ecx
test esi, esi
jle 0x10093aba
mov edx, dword [esp + 0x2c]
mov eax, 0x1000
mov dword [edx + ecx*4], ebx
test word [ebx + 8], ax
je 0x10093aa7
mov eax, ebx
call fcn.1003a320
test eax, eax
jne 0x100963de
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
inc ecx
add ebx, 0x28
cmp ecx, esi
mov dword [esp + 0x24], ecx
jl 0x10093a7e
mov eax, dword [esp + 0x118]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x128], edx
mov dword [esp + 0x124], edi
mov cx, word [eax + 8]
mov edx, 0xbe01
and cx, dx
mov edx, dword [esp + 0x2c]
or cx, 1
mov word [eax + 8], cx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
push edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
mov ecx, dword [esp + 0x120]
lea eax, [esp + 0x11c]
mov byte [esp + 0x135], 0
mov edx, dword [ecx + 0xc]
push esi
push eax
call edx
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
add esp, 0xc
cmp byte [esp + 0x131], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
je 0x10093b8c
cmp dword [esp + 0x12c], 0
je 0x10093b79
mov edx, dword [esp + 0x118]
push edx
call sym.SQLite.Interop.dll_sqlite3_value_text
mov edi, dword [esp + 0x24]
add esp, 4
push eax
push 0x100b5014
add edi, 0x2c
mov eax, ebx
call fcn.100302e0
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
push ecx
push edx
mov ebx, edi
call fcn.10027a80
add esp, 8
movzx ecx, byte [esp + 0x4c]
mov eax, dword [esp + 0x118]
call fcn.1003f8f0
mov ecx, dword [esp + 0x118]
call fcn.10014640
test eax, eax
je case.default.0x10093191
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push str.string_or_blob_too_big
add edi, 0x2c
call fcn.100302e0
add esp, 4
mov dword [esp + 0x10], 0x12
jmp 0x1009719c
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov dl, byte [ebx + ecx*8 + 8]
or dl, byte [esi + 8]
lea ecx, [ebx + ecx*8]
mov dword [esp + 0x1c], eax
test dl, 1
je 0x10093c0b
call fcn.1002f280
jmp case.default.0x10093191
call fcn.100213e0
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.100213e0
mov esi, eax
mov al, byte [ebp]
cmp al, 0x55
jne 0x10093c2d
and ebx, esi
and edi, edx
jmp 0x10093ce9
cmp al, 0x56
jne 0x10093c3a
or ebx, esi
or edi, edx
jmp 0x10093ce9
mov ecx, esi
or ecx, edx
je 0x10093ce9
test edx, edx
jg 0x10093c72
jl 0x10093c4e
test esi, esi
jae 0x10093c67
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x10093c72
jg 0x10093c60
cmp esi, 0xffffffc0
jbe 0x10093c72
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x10093c93
jg 0x10093c72
cmp esi, 0x40
jb 0x10093c93
test edi, edi
jg 0x10093c8a
jl 0x10093c7c
test ebx, ebx
jae 0x10093c8a
cmp al, 0x57
je 0x10093c8a
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x10093ce9
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x10093ce9
cmp al, 0x57
mov edx, edi
mov ecx, esi
mov eax, ebx
jne 0x10093cad
call fcn.100a7780
mov ebp, eax
mov dword [esp + 0xcc], edx
jmp 0x10093ce0
call fcn.1000bf90
mov ebp, eax
mov dword [esp + 0xcc], edx
test edi, edi
jg 0x10093ce0
jl 0x10093cc5
test ebx, ebx
jae 0x10093ce0
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.100a7780
or ebp, eax
or dword [esp + 0xcc], edx
mov edi, dword [esp + 0xcc]
mov ebx, ebp
mov eax, dword [esp + 0x1c]
mov dx, word [eax + 8]
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov dword [eax], ebx
mov dword [eax + 4], edi
mov word [eax + 8], dx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea esi, [ebx + edx*8]
call fcn.10025200
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x10093d70
test al, 8
jne 0x10093d4e
test al, 2
je 0x10093d53
push 1
mov eax, esi
call fcn.100210b0
add esp, 4
jmp 0x10093d53
call fcn.1001c1a0
movzx eax, word [esi + 8]
test al, 4
jne 0x10093d70
mov ebp, dword [ebp + 8]
test ebp, ebp
je 0x1009753a
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
test byte [ebx + ecx*8 + 8], 4
lea esi, [ebx + ecx*8]
je case.default.0x10093191
call fcn.10021380
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea ebx, [ebx + edx*8]
mov eax, 0x4000
test word [ebx + 8], ax
je 0x10093dd2
mov eax, ebx
call fcn.1003a2c0
mov dl, byte [esp + 0x4c]
mov cl, byte [ebp + 8]
mov dword [esp + 0x10], eax
mov eax, ebx
call fcn.1004ba40
jmp case.default.0x10093191
mov dl, byte [esp + 0x4c]
mov cl, byte [ebp + 8]
mov eax, ebx
mov dword [esp + 0x10], 0
call fcn.1004ba40
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea edi, [ebx + ecx*8]
lea edx, [eax + eax*4]
movzx eax, word [edi + 8]
lea esi, [ebx + edx*8]
movzx edx, word [esi + 8]
movzx ecx, ax
mov dword [esp + 0x48], edx
or dl, cl
mov dword [esp + 0x44], ecx
test dl, 1
je 0x10093e86
mov al, byte [ebp + 3]
test al, al
jns 0x10093e45
test cl, 1
je 0x10093e3b
mov eax, dword [esp + 0x48]
test al, 1
je 0x10093e3b
test eax, 0x100
jne 0x10093e3b
xor eax, eax
jmp 0x10093f4d
mov eax, 1
jmp 0x10093f4d
test al, 0x20
je 0x10093e71
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
mov ax, word [ebx + edx*8 + 8]
lea ebx, [ebx + edx*8]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov dword [esp + 0x1c], ebx
mov word [ebx + 8], ax
jmp case.default.0x10093191
test al, 0x10
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov cl, byte [ebp + 3]
and cl, 0x47
cmp cl, 0x43
jl 0x10093ebc
and al, 0xe
cmp al, 2
jne 0x10093ea3
push 0
mov eax, edi
call fcn.100210b0
add esp, 4
mov dl, byte [esi + 8]
and dl, 0xe
cmp dl, 2
jne 0x10093ef7
push 0
mov eax, esi
call fcn.100210b0
add esp, 4
jmp 0x10093ef7
cmp cl, 0x42
jne 0x10093ef7
test al, 2
jne 0x10093eda
test al, 0xc
je 0x10093eda
mov eax, dword [esp + 0x4c]
push 1
push eax
mov eax, edi
call fcn.10044a80
add esp, 8
movzx eax, word [esi + 8]
test al, 2
jne 0x10093ef7
test al, 0xc
je 0x10093ef7
mov ecx, dword [esp + 0x4c]
push 1
push ecx
mov eax, esi
call fcn.10044a80
add esp, 8
mov edx, 0x4000
test word [edi + 8], dx
je 0x10093f11
mov eax, edi
call fcn.1003a2c0
and dword [esp + 0x44], 0xbfff
mov eax, 0x4000
test word [esi + 8], ax
je 0x10093f2b
mov eax, esi
call fcn.1003a2c0
and dword [esp + 0x48], 0xbfff
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x41], 0
jne 0x100963de
mov edx, dword [ebp + 0x10]
mov eax, edi
mov ecx, esi
call fcn.1004f1d0
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
movzx edx, byte [ebp]
add edx, 0xffffffb2
cmp edx, 4
ja case.default.0x10093f59
jmp dword [edx*4 + 0x1009791c]
xor edx, edx
test eax, eax
sete dl
jmp 0x10093f94
xor edx, edx
test eax, eax
setne dl
jmp 0x10093f94
xor edx, edx
test eax, eax
setl dl
jmp 0x10093f94
xor edx, edx
test eax, eax
setle dl
jmp 0x10093f94
xor edx, edx
test eax, eax
setg dl
jmp 0x10093f94
xor edx, edx
test eax, eax
setge dl
test byte [ebp + 3], 0x20
mov eax, edx
je 0x10093fd6
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea ebx, [ebx + edx*8]
mov dx, word [ebx + 8]
mov ebp, 0xbe04
and dx, bp
or dx, 4
mov word [ebx + 8], dx
cdq
mov dword [ebx], eax
mov ax, word [esp + 0x48]
mov dword [ebx + 4], edx
mov word [edi + 8], cx
mov dword [esp + 0x1c], ebx
mov word [esi + 8], ax
jmp case.default.0x10093191
test eax, eax
je 0x10093fe2
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov ax, word [esp + 0x48]
mov word [edi + 8], cx
mov word [esi + 8], ax
jmp case.default.0x10093191
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x98], ecx
jmp case.default.0x10093191
test byte [ebp + 3], 1
jne 0x10094014
mov dword [esp + 0x98], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 4]
xor esi, esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], edx
test ecx, ecx
jle 0x100940ae
lea ebp, [eax + 0x14]
jmp 0x10094044
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x10094054
mov ecx, dword [ecx + esi*4]
jmp 0x10094056
mov ecx, esi
mov eax, dword [eax + 0x10]
movzx eax, byte [esi + eax]
mov edx, dword [ebp]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
add eax, ecx
add ecx, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [ebx + eax*8]
lea ecx, [ebx + ecx*8]
call fcn.1004f1d0
mov dword [esp + 0xac], eax
test eax, eax
jne 0x1009409e
inc esi
add ebp, 4
cmp esi, dword [esp + 0x7c]
jl 0x10094040
mov dword [esp + 0x98], eax
jmp case.default.0x10093191
cmp dword [esp + 0x24], 0
je 0x100940ae
neg eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x98], 0
jmp case.default.0x10093191
mov eax, dword [esp + 0xac]
test eax, eax
jge 0x100940d6
mov ebp, dword [ebp + 4]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
jne 0x100940e5
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov ebp, dword [ebp + 0xc]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 1
lea ecx, [ebx + edx*8]
je 0x10094109
mov esi, 2
jmp 0x1009411b
call fcn.100213e0
or eax, edx
je 0x10094119
mov esi, 1
jmp 0x1009411b
xor esi, esi
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea ecx, [ebx + eax*8]
je 0x10094132
mov eax, 2
jmp 0x10094144
call fcn.100213e0
or eax, edx
je 0x10094142
mov eax, 1
jmp 0x10094144
xor eax, eax
cmp byte [ebp], 0x48
jne 0x10094157
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x100b0bd4]
jmp 0x10094162
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x100b0c18]
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
lea ebx, [ebx + ecx*8]
mov dword [esp + 0x1c], ebx
cmp eax, 2
jne 0x1009418e
mov dx, word [ebx + 8]
mov eax, 0xbe01
and dx, ax
or dx, 1
mov word [ebx + 8], dx
jmp case.default.0x10093191
mov cx, word [ebx + 8]
cdq
mov dword [ebx + 4], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov dword [ebx], eax
mov word [ebx + 8], cx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea ecx, [ebp + ebp*4]
lea ebx, [ebx + ecx*8]
mov eax, ebx
mov dword [esp + 0x1c], ebx
call fcn.1002f280
test byte [esi + 8], 1
jne case.default.0x10093191
mov edx, 4
mov ecx, esi
mov word [ebx + 8], dx
call fcn.100213e0
or eax, edx
jne 0x100941f9
mov eax, 1
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.default.0x10093191
xor eax, eax
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea ecx, [ebp + ebp*4]
lea ebx, [ebx + ecx*8]
mov eax, ebx
mov dword [esp + 0x1c], ebx
call fcn.1002f280
test byte [esi + 8], 1
jne case.default.0x10093191
mov edx, 4
mov ecx, esi
mov word [ebx + 8], dx
call fcn.100213e0
not eax
not edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.default.0x10093191
mov eax, dword [edi + 0xc8]
mov ecx, dword [ebp + 4]
add eax, ecx
cmp byte [eax], 0
je 0x10094269
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov byte [eax], 1
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 1
lea eax, [ebx + edx*8]
je 0x10094286
mov eax, dword [ebp + 0xc]
jmp 0x100942b0
call fcn.1001c210
fcomp qword [0x100ba5c0]
fnstsw ax
test ah, 0x44
jnp 0x1009429f
mov eax, 1
jmp 0x100942a1
xor eax, eax
cmp byte [ebp], 0x2e
jne 0x100942b0
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 1
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov edx, dword [edi + 0x38]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 4]
mov dword [esp + 0x34], eax
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax]
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], edx
call fcn.100852b0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
mov edi, dword [esp + 0x50]
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 0x48]
je 0x1009448b
cmp byte [edi + 0x19], 0
je 0x10094398
cmp dword [esp + 0x44], 0
jne 0x10094388
mov eax, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x54]
lea eax, [eax + edx*8]
mov edx, dword [eax + 0xc]
lea ebx, [edi + 0x40]
mov dword [edi + 0x44], edx
mov dword [ebx], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x48], edx
mov dword [edi + 0x4c], ecx
jmp 0x1009440f
mov esi, dword [esp + 0x34]
mov eax, esi
call fcn.1002f280
jmp 0x1009473e
test byte [edi + 0x1c], 4
mov esi, dword [esp + 0x44]
jne 0x100943ce
lea edi, [esp + 0x160]
call fcn.1002c370
mov ecx, dword [esi + 0x20]
movzx edx, word [esi + 0x28]
mov eax, dword [esp + 0x50]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x160]
lea ebx, [eax + 0x40]
mov dword [esp + 0x48], edx
mov dword [ebx], ecx
jmp 0x100943ec
lea ebx, [edi + 0x40]
push ebx
call fcn.1002c320
movzx edx, word [esi + 0x28]
mov eax, dword [esi + 0x20]
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x48], edx
mov ecx, dword [ebx]
cmp ecx, edx
ja 0x100943f7
mov dword [eax + 0x44], ecx
jmp 0x100943fa
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0x58]
ja 0x10093bb1
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x48]
mov dword [edi + 0x3c], ecx
mov ecx, dword [edi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x10094433
movzx eax, al
mov dword [esp + 0x8c], eax
mov ecx, 1
jmp 0x1009444d
lea esi, [esp + 0x8c]
call fcn.1001de20
mov edx, dword [esp + 0x48]
movzx ecx, al
mov eax, dword [esp + 0x8c]
movzx ecx, cl
mov dword [edi + 0x48], ecx
xor ecx, ecx
mov word [edi + 0x16], cx
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
cmp eax, 0x18003
ja 0x10094478
cmp eax, dword [ebx]
ja 0x10094478
cmp edx, eax
jae 0x1009449b
xor eax, eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x44], eax
jmp 0x1009449b
mov eax, 0x11b3f
call fcn.10063100
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
movzx edx, word [edi + 0x16]
mov ebx, dword [esp + 0x40]
cmp edx, ebx
jg 0x1009466e
mov eax, dword [edi + 0x48]
mov ecx, dword [esp + 0x28]
cmp eax, dword [ecx]
jae 0x10094639
mov eax, dword [edi + 0x4c]
test eax, eax
jne 0x10094536
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov edx, dword [edi + 0x1c]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x44]
shr edx, 2
not edx
and edx, 1
push edx
push eax
lea eax, [esp + 0x1b0]
call fcn.100800b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x10093191
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x2c], edx
jmp 0x1009453c
mov dword [esp + 0x2c], eax
mov edx, eax
movzx ebx, word [edi + 0x16]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + ebx*4]
mov esi, dword [edi + 0x48]
mov eax, dword [eax]
add esi, edx
add eax, edx
lea edx, [edi + ebx*4 + 0x54]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], edx
mov al, byte [esi]
cmp al, 0x80
jae 0x1009457e
movzx eax, al
inc esi
mov dword [esp + 0x9c], eax
mov dword [esp + 0x48], esi
jmp 0x100945a7
mov ecx, dword [esp + 0x48]
lea esi, [esp + 0x9c]
call fcn.1001de20
mov ecx, dword [esp + 0x8c]
movzx eax, al
add dword [esp + 0x48], eax
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov dword [edx], eax
call fcn.100142f0
add ecx, eax
mov dword [esp + 0x8c], ecx
cmp ecx, eax
jb 0x100945da
add dword [esp + 0x50], 4
mov eax, dword [esp + 0x28]
inc ebx
cmp ebx, dword [esp + 0x40]
mov dword [eax + ebx*4], ecx
jg 0x100945df
cmp esi, dword [esp + 0x24]
jb 0x10094567
jmp 0x100945df
mov esi, dword [esp + 0x24]
inc esi
mov edx, esi
sub edx, dword [esp + 0x2c]
cmp dword [edi + 0x4c], 0
mov word [edi + 0x16], bx
mov dword [edi + 0x48], edx
jne 0x10094612
lea eax, [esp + 0x1a8]
call fcn.10031a30
mov ecx, dword [esp + 0x8c]
mov eax, 1
mov word [esp + 0x1b0], ax
mov eax, dword [esp + 0x24]
cmp esi, eax
jb 0x10094621
ja 0x10094626
cmp ecx, dword [edi + 0x40]
jne 0x10094626
cmp ecx, dword [edi + 0x40]
jbe 0x10094639
mov eax, 0x11b93
call fcn.10063100
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
movzx ecx, word [edi + 0x16]
cmp ecx, dword [esp + 0x40]
jg 0x1009466a
cmp byte [ebp + 1], 0xf8
jne 0x10094388
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x34]
push 0x800
call fcn.1002f220
mov esi, dword [esp + 0x38]
add esp, 4
jmp 0x1009473e
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
mov edx, 0x2460
test word [esi + 8], dx
je 0x10094684
mov eax, esi
call fcn.1002f280
mov ecx, dword [edi + 0x44]
mov eax, dword [esp + 0x28]
mov edx, dword [edi + ebx*4 + 0x54]
mov dword [esp + 0x9c], edx
cmp ecx, dword [eax + ebx*4 + 4]
jb 0x100946ae
mov ecx, dword [edi + 0x4c]
add ecx, dword [eax + ebx*4]
mov eax, esi
call fcn.10021180
jmp 0x10094737
mov al, byte [ebp + 3]
test al, 0xc0
je 0x100946c3
cmp edx, 0xc
jb 0x100946bf
test dl, 1
je 0x100946d0
test al, al
js 0x100946d0
mov eax, edx
call fcn.100142f0
mov ecx, eax
test ecx, ecx
jne 0x100946ed
mov eax, 0xd
cmp eax, edx
sbb ecx, ecx
not ecx
lea eax, [esp + 0x160]
and ecx, eax
mov eax, esi
call fcn.10021180
jmp 0x10094737
mov edx, dword [edi + 0x1c]
mov eax, dword [esp + 0x28]
shr edx, 2
not edx
and edx, 1
push edx
mov edx, dword [eax + ebx*4]
mov ebx, ecx
mov ecx, dword [esp + 0x48]
push edx
mov eax, esi
call fcn.100800b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x10093191
mov edx, dword [esp + 0x9c]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.10021180
mov eax, 0xefff
and word [esi + 8], ax
mov cl, byte [esp + 0x4c]
mov byte [esi + 0xa], cl
movzx eax, word [esi + 8]
test eax, 0x1000
je case.default.0x10093191
mov edx, dword [esi + 0x10]
mov dword [esp + 0x38], edx
test edx, edx
je case.default.0x10093191
mov ebp, dword [esi + 0xc]
mov ebx, eax
lea ecx, [ebp + 2]
and ebx, 0x12
cmp dword [esi + 0x18], ecx
jge 0x100947b1
mov edi, dword [esp + 0x34]
xor eax, eax
call fcn.10037300
test eax, eax
jne 0x100963de
mov edx, dword [esp + 0x38]
mov esi, edi
push ebp
push edx
mov edx, dword [esi + 0x10]
push edx
call fcn.100091c0
mov eax, dword [esi + 0x10]
mov byte [eax + ebp], 0
mov ecx, dword [esi + 0x10]
add esp, 0xc
or ebx, 0x200
mov byte [ecx + ebp + 1], 0
mov word [esi + 8], bx
jmp case.default.0x10093191
mov ecx, dword [esi + 0x14]
and eax, 0xd
mov dword [esi + 0x10], ecx
mov word [esi + 8], ax
jmp 0x10094785
mov esi, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
mov cl, byte [esi]
lea edx, [ebp + ebp*4]
lea ebx, [ebx + edx*8]
test cl, cl
je case.default.0x10093191
mov edi, dword [esp + 0x4c]
jmp 0x100947e0
push edi
mov eax, ebx
inc esi
call fcn.10048970
mov cl, byte [esi]
add esp, 4
add ebx, 0x28
test cl, cl
jne 0x100947e0
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x24], ecx
lea ecx, [ecx + eax*8 - 0x28]
movzx eax, byte [edi + 0x57]
xor edx, edx
mov dword [esp + 0x48], ecx
lea ecx, [ebp + ebp*4]
mov dword [esp + 0x38], eax
lea eax, [ebx + ecx*8]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], eax
cmp esi, edx
je 0x1009486a
mov ebx, dword [esp + 0x24]
mov cl, byte [esi]
mov edi, dword [esp + 0x4c]
push edi
mov eax, ebx
call fcn.10048970
mov cl, byte [esi + 1]
inc esi
add esp, 4
add ebx, 0x28
test cl, cl
jne 0x10094854
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x38]
push ecx
mov edx, esi
call fcn.10014310
mov ebx, eax
add esp, 4
mov dword [esi + 0x1c], ebx
call fcn.100142f0
mov edx, 0x4000
mov ebp, eax
test word [esi + 8], dx
je 0x100948b7
mov eax, edi
or eax, dword [esp + 0xb4]
je 0x100948af
mov eax, esi
call fcn.1003a2c0
jmp 0x100948b7
mov eax, dword [esi]
add dword [esp + 0x50], eax
sub ebp, eax
mov eax, ebp
cdq
add edi, eax
adc dword [esp + 0xb4], edx
cmp ebx, 0x7f
ja 0x100948cf
mov eax, 1
jmp 0x100948da
push 0
push ebx
call fcn.100163f0
add esp, 8
add dword [esp + 0x28], eax
sub esi, 0x28
cmp esi, dword [esp + 0x24]
jae 0x10094875
cmp dword [esp + 0x28], 0x7e
jg 0x100948f8
inc dword [esp + 0x28]
mov esi, dword [esp + 0x28]
jmp 0x10094924
mov esi, dword [esp + 0x28]
mov eax, esi
cdq
push edx
push eax
call fcn.100163f0
mov ebx, eax
add esi, ebx
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x38], esi
call fcn.100163f0
add esp, 0x10
cmp ebx, eax
jge 0x10094924
inc esi
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x14]
mov eax, esi
mov esi, dword [esp + 0xb4]
cdq
mov ebp, eax
mov eax, dword [ecx + 0x58]
add edi, ebp
mov ebx, edx
cdq
adc esi, ebx
cmp esi, edx
mov dword [esp + 0x210], edi
jg 0x10093bb1
jl 0x10094957
cmp edi, eax
ja 0x10093bb1
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x18], edi
jge 0x10094993
mov ecx, edi
mov edi, dword [esp + 0x1c]
xor eax, eax
call fcn.10037300
test eax, eax
jne 0x100963de
mov eax, edi
mov ecx, dword [esp + 0x28]
mov esi, dword [eax + 0x10]
mov dword [esp + 0x2c], esi
cmp ecx, 0x80
jae 0x100949a0
mov byte [esi], cl
mov eax, 1
jmp 0x100949ae
mov edx, dword [eax + 0x14]
and word [eax + 8], 0xd
mov dword [eax + 0x10], edx
jmp 0x10094977
push ebx
push ebp
call fcn.1001dea0
mov ecx, dword [esp + 0x30]
add esp, 8
mov ebp, dword [esp + 0x24]
movzx eax, al
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov ebx, dword [ebp + 0x1c]
cmp ebx, 0x80
jae 0x100949da
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov byte [ecx + edx], bl
mov eax, 1
jmp 0x100949f0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
push 0
push ebx
lea esi, [eax + ecx]
call fcn.1001dea0
add esp, 8
mov esi, dword [esp + 0x44]
movzx edx, al
mov eax, dword [esp + 0x2c]
add dword [esp + 0x40], edx
lea edi, [esi + eax]
mov ecx, ebx
mov eax, ebp
call fcn.1001c0f0
add esi, eax
add ebp, 0x28
mov dword [esp + 0x44], esi
cmp ebp, dword [esp + 0x48]
jbe 0x100949bd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x210]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x50]
mov edx, 0x10
mov word [eax + 8], dx
test ecx, ecx
je 0x10094a44
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov byte [eax + 0xa], 1
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
xor ecx, ecx
lea edx, [esp + 0xd0]
push edx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], ecx
call fcn.10072a60
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd4]
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x10094b7e
cmp dword [edx + 0x9c], eax
jle 0x10094ad5
mov edi, dword [esp + 0x20]
push str.cannot_open_savepoint___SQL_statements_in_progress
add edi, 0x2c
mov eax, edx
call fcn.100302e0
add esp, 4
mov dword [esp + 0x10], 5
jmp case.default.0x10093191
mov ecx, ebp
call fcn.10016f30
mov ebx, eax
mov eax, edx
mov ecx, dword [eax + 0x1f4]
add ecx, dword [eax + 0x1f0]
push ecx
push 0
push eax
call fcn.10012780
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
mov esi, dword [esp + 0x14]
lea edx, [ebx + 0x21]
push eax
push edx
call fcn.10028800
mov edi, eax
add esp, 8
test edi, edi
je case.default.0x10093191
inc ebx
push ebx
lea eax, [edi + 0x20]
push ebp
push eax
mov dword [edi], eax
call fcn.100091c0
add esp, 0xc
cmp byte [esi + 0x3f], 0
je 0x10094b40
mov byte [esi + 0x3f], 0
mov byte [esi + 0x46], 1
jmp 0x10094b46
inc dword [esi + 0x1f0]
mov eax, dword [esi + 0x1e8]
mov dword [edi + 0x18], eax
mov ecx, dword [esi + 0x1f8]
mov dword [esi + 0x1e8], edi
mov dword [edi + 8], ecx
mov edx, dword [esi + 0x1fc]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x200]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x204]
mov dword [edi + 0x14], ecx
jmp case.default.0x10093191
mov ebx, dword [edx + 0x1e8]
xor esi, esi
test ebx, ebx
je 0x10094ba8
lea ebx, [ebx]
mov eax, dword [ebx]
push ebp
push eax
call sym.SQLite.Interop.dll_sqlite3_stricmp
add esp, 8
test eax, eax
je 0x10094bce
mov ebx, dword [ebx + 0x18]
inc esi
test ebx, ebx
jne 0x10094b90
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push ebp
push str.no_such_savepoint:__s
add edi, 0x2c
call fcn.100302e0
add esp, 8
mov dword [esp + 0x10], 1
jmp case.default.0x10093191
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
xor edx, edx
cmp dword [eax + 0x9c], edx
mov dword [esp + 0x44], esi
jle 0x10094c0a
cmp ecx, 1
jne 0x10094c0a
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edi, dword [esp + 0x24]
add edi, 0x2c
call fcn.100302e0
add esp, 4
mov dword [esp + 0x10], 5
jmp case.default.0x10093191
cmp dword [ebx + 0x18], edx
jne 0x10094c60
cmp byte [eax + 0x46], dl
je 0x10094c60
mov dword [esp + 0x2c], 1
cmp ecx, 1
jne 0x10094c64
push ecx
mov esi, edi
call fcn.10031870
mov esi, eax
add esp, 4
test esi, esi
jne 0x1009721f
mov esi, dword [esp + 0x14]
push edi
mov byte [esi + 0x3f], 1
call fcn.10085310
add esp, 4
cmp eax, 5
je 0x10097547
mov byte [esi + 0x46], 0
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x10], ecx
jmp 0x10094d21
mov dword [esp + 0x2c], edx
mov edi, dword [eax + 0x1f0]
sub edi, esi
dec edi
mov dword [esp + 0x44], edi
cmp ecx, 2
jne 0x10094cc5
mov ecx, dword [eax + 0x18]
shr ecx, 1
and ecx, 1
xor edi, edi
cmp dword [eax + 0x14], edx
mov dword [esp + 0x24], ecx
jle 0x10094cc9
xor edx, edx
test ecx, ecx
sete dl
xor esi, esi
mov ebp, edx
mov eax, dword [eax + 0x10]
mov ecx, dword [esi + eax + 4]
push ebp
push 0x204
push ecx
call fcn.10074430
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
mov eax, dword [esp + 0x14]
inc edi
add esi, 0x10
cmp edi, dword [eax + 0x14]
jl 0x10094c94
jmp 0x10094cc9
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x14]
xor ebp, ebp
cmp dword [esi + 0x14], ebp
jle 0x10094d08
xor edi, edi
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x10]
push edx
push eax
mov eax, dword [edi + ecx + 4]
call fcn.1006a480
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
mov esi, dword [esp + 0x14]
inc ebp
add edi, 0x10
cmp ebp, dword [esi + 0x14]
jl 0x10094cd6
cmp dword [esp + 0x24], 0
je 0x10094d21
mov eax, esi
call fcn.10014100
mov eax, esi
call fcn.10043520
or dword [esi + 0x18], 2
cmp dword [esi + 0x1e8], ebx
je 0x10094d8e
lea esp, [esp]
cmp dword [esi + 0x208], 0
mov eax, dword [esi + 0x1e8]
mov edx, dword [eax + 0x18]
mov dword [esi + 0x1e8], edx
je 0x10094d51
mov ecx, esi
call fcn.10022ca0
jmp 0x10094d80
cmp eax, dword [esi + 0x114]
jb 0x10094d77
cmp eax, dword [esi + 0x118]
jae 0x10094d77
mov ecx, dword [esi + 0x110]
mov dword [eax], ecx
dec dword [esi + 0xfc]
mov dword [esi + 0x110], eax
jmp 0x10094d80
push eax
call sym.SQLite.Interop.dll_sqlite3_free
add esp, 4
dec dword [esi + 0x1f0]
cmp dword [esi + 0x1e8], ebx
jne 0x10094d30
mov edi, dword [esp + 0x40]
cmp edi, 1
jne 0x10094dbc
mov edx, dword [ebx + 0x18]
mov eax, ebx
mov ecx, esi
mov dword [esi + 0x1e8], edx
call fcn.10025ff0
cmp dword [esp + 0x2c], 0
jne case.default.0x10093191
dec dword [esi + 0x1f0]
jmp 0x10094deb
cmp dword [esp + 0x2c], 0
mov eax, dword [ebx + 8]
mov dword [esi + 0x1f8], eax
mov ecx, dword [ebx + 0xc]
mov dword [esi + 0x1fc], ecx
mov edx, dword [ebx + 0x10]
mov dword [esi + 0x200], edx
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x204], eax
jne case.default.0x10093191
mov ecx, dword [esp + 0x44]
push ecx
push edi
push esi
call fcn.10012780
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
jmp case.default.0x10093191
mov ebx, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x14]
test ebx, ebx
je 0x10094e35
cmp byte [eax + 0x3f], 0
jne 0x10094e35
test ebp, ebp
jne 0x10094e35
cmp dword [eax + 0x9c], ebp
jle 0x10094e35
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x10094bee
movzx edx, byte [eax + 0x3f]
cmp ebx, edx
jne 0x1009755f
test ebx, ebx
jne 0x10094e4c
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x10094e5a
mov eax, str.cannot_rollback___no_transaction_is_active
test ebp, ebp
jne 0x10094e5a
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
add edi, 0x2c
call fcn.100302e0
add esp, 4
mov dword [esp + 0x10], 1
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
test eax, eax
je 0x10094e93
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x18], 0x2000000
jne 0x100975dd
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
shl edx, 4
mov ebx, dword [edx + ecx + 4]
test ebx, ebx
je 0x10094f95
push eax
push ebx
call fcn.100700b0
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, 5
je 0x100975ea
test eax, eax
jne 0x1009595c
mov edi, dword [esp + 0x20]
cmp dword [ebp + 8], eax
je 0x10094f6b
test byte [edi + 0x58], 0x80
je 0x10094f6b
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x3f], al
je 0x10094ef4
cmp dword [esi + 0x98], 1
jle 0x10094f6b
cmp dword [edi + 0x68], 0
jne 0x10094f11
inc dword [esi + 0x1f4]
mov eax, dword [esi + 0x1f4]
mov edx, dword [esi + 0x1f0]
add edx, eax
mov dword [edi + 0x68], edx
mov eax, dword [edi + 0x68]
dec eax
push eax
push 0
push esi
call fcn.10012780
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10094f3b
mov ecx, dword [edi + 0x68]
push ecx
mov eax, ebx
call fcn.10031af0
add esp, 4
mov dword [esp + 0x10], eax
mov edx, dword [esi + 0x1f8]
mov dword [edi + 0x98], edx
mov eax, dword [esi + 0x1fc]
mov dword [edi + 0x9c], eax
mov ecx, dword [esi + 0x200]
mov dword [edi + 0xa0], ecx
mov edx, dword [esi + 0x204]
mov dword [edi + 0xa4], edx
lea eax, [esp + 0xa8]
push eax
push 1
mov eax, ebx
call fcn.100252a0
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x10]
add esp, 8
shl ecx, 4
mov eax, dword [ecx + edx + 0xc]
mov eax, dword [eax + 4]
jmp 0x10094fa6
mov esi, dword [esp + 0x14]
mov dword [esp + 0xa8], 0
xor eax, eax
cmp byte [ebp + 3], 0
je case.default.0x10093191
mov ecx, dword [esp + 0xa8]
cmp ecx, dword [ebp + 0xc]
jne 0x10094fc5
cmp eax, dword [ebp + 0x10]
je case.default.0x10093191
mov eax, dword [edi + 0x2c]
mov ecx, esi
call fcn.10025ff0
push esi
mov ebx, str.database_schema_has_changed
call fcn.1002d580
mov dword [edi + 0x2c], eax
mov ebp, dword [ebp + 4]
mov eax, dword [esi + 0x10]
mov edx, ebp
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0xac]
add esp, 4
cmp dword [ecx], edx
je 0x10095009
mov edi, dword [esp + 0x14]
mov esi, ebp
call fcn.100435b0
mov edi, dword [esp + 0x20]
or dword [edi + 0x58], 0x20
mov dword [esp + 0x10], 0x11
jmp case.default.0x10093191
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
lea eax, [esp + 0xec]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
call fcn.100252a0
mov eax, dword [esp + 0xf4]
cdq
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x14]
shl eax, 4
add eax, dword [edx + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
call fcn.10025200
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x24]
mov ebx, dword [esi]
mov eax, dword [edx + 4]
push ecx
call fcn.10049300
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
add esp, 4
cmp eax, 1
jne 0x100950a6
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [esi]
mov eax, dword [esp + 0x14]
mov dword [ecx], edx
or dword [eax + 0x18], 2
jmp 0x100950b7
cmp eax, 2
jne 0x100950b7
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov dl, byte [esi]
mov byte [ecx + 0x4c], dl
cmp dword [ebp + 4], 1
jne case.default.0x10093191
mov eax, dword [esp + 0x14]
call fcn.10014100
and dword [edi + 0x58], 0xffffffdf
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + eax*4]
test eax, eax
je case.0x10093191.54
mov eax, dword [eax + 0x20]
cmp eax, dword [ebp + 8]
je case.default.0x10093191
test byte [edi + 0x58], 0x20
je 0x100950ff
mov dword [esp + 0x10], 0x204
jmp case.default.0x10093191
mov edx, dword [esp + 0x14]
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
shl eax, 4
add eax, dword [edx + 0x10]
mov edx, dword [eax + 4]
mov dword [esp + 0x58], edx
cmp cl, 0x37
jne 0x10095141
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
mov dword [esp + 0x40], 1
cmp al, byte [edi + 0x57]
jae 0x10095149
mov byte [edi + 0x57], al
jmp 0x10095149
mov dword [esp + 0x40], 0
test byte [ebp + 3], 2
je 0x10095165
lea ecx, [esi + esi*4]
lea esi, [ebx + ecx*8]
call fcn.10025200
mov esi, dword [esi]
cmp esi, 2
jl 0x100975fe
mov cl, byte [ebp + 1]
mov eax, dword [esp + 0x24]
cmp cl, 0xfa
jne 0x10095184
mov ecx, dword [ebp + 0x10]
movzx eax, word [ecx + 8]
movzx edx, word [ecx + 6]
mov dword [esp + 0x2c], ecx
add eax, edx
jmp 0x1009518c
cmp cl, 0xf2
jne 0x1009518c
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x38]
mov edx, dword [ebp + 4]
push 1
push ecx
push eax
push edx
mov ebx, edi
call fcn.1007f5e0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x100963de
mov eax, dword [edi]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
or dword [edi + 0x1c], 8
push eax
mov eax, dword [esp + 0x5c]
push ebx
push ecx
push esi
mov byte [edi + 0x19], 1
mov dword [edi + 0x20], esi
call fcn.10037450
mov dword [edi + 8], ebx
mov dl, byte [ebp + 3]
xor ecx, ecx
and dl, 1
mov dword [esp + 0x20], eax
mov eax, dword [edi]
mov byte [eax + 0x4a], dl
add esp, 0x10
cmp byte [ebp + 1], 0xfa
setne cl
add ecx, ecx
add ecx, ecx
xor ecx, dword [edi + 0x1c]
and ecx, 4
xor dword [edi + 0x1c], ecx
jmp case.default.0x10093191
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
mov ebx, edi
call fcn.1007f5e0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x100963de
or dword [esi + 0x1c], 1
mov edx, dword [esp + 0x14]
mov byte [esi + 0x19], 1
movzx ecx, byte [ebp + 3]
mov eax, dword [edx]
push 0x41e
or ecx, 5
push ecx
lea edi, [esi + 4]
push 0
push eax
mov ecx, edi
call fcn.10070360
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100952d3
mov ecx, dword [edi]
push 1
push ecx
call fcn.100700b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100952d3
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x100952b8
movzx edx, byte [ebp + 3]
or edx, 2
push edx
lea eax, [esp + 0xf4]
push eax
mov eax, dword [edi]
call fcn.1007e6c0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100952b2
mov ecx, dword [esi]
mov edx, dword [esp + 0xf0]
mov eax, dword [edi]
push ecx
push ebx
push 1
push edx
mov dword [esi + 8], ebx
call fcn.10037450
add esp, 0x10
mov dword [esp + 0x10], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x100952d3
mov eax, dword [esi]
push eax
mov eax, dword [edi]
push 0
push 1
push 1
call fcn.10037450
add esp, 0x10
or dword [esi + 0x1c], 4
mov dword [esp + 0x10], eax
xor ecx, ecx
cmp byte [ebp + 3], 8
setne cl
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 0x1c]
and ecx, 8
xor dword [esi + 0x1c], ecx
jmp case.default.0x10093191
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
mov ebx, edi
call fcn.1007f5e0
add esp, 0x10
test eax, eax
je 0x100963de
mov ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [esp + 0x18]
push edx
call fcn.1002bd60
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
mov ecx, dword [edi + 0x38]
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edi
mov eax, ecx
or eax, edx
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
mov ebx, edi
call fcn.1007f5e0
add esp, 0x10
test eax, eax
je 0x100963de
mov byte [eax + 0x19], 1
mov ecx, dword [ebp + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
jmp case.default.0x10093191
mov edi, dword [esp + 0x20]
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
call fcn.1007e1b0
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov dword [edx + ecx*4], 0
jmp case.default.0x10093191
mov ecx, dword [edi + 0x38]
mov eax, dword [ebp + 4]
mov esi, dword [ecx + eax*4]
test byte [esi + 0x1c], 4
movzx ecx, byte [ebp]
mov dword [esp + 0x34], ecx
mov byte [esi + 0x19], 0
je 0x1009547b
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov al, byte [ebx + edx*8 + 8]
lea ebx, [ebx + edx*8]
and al, 0xe
cmp al, 2
jne 0x100953f7
push 0
mov eax, ebx
call fcn.100210b0
add esp, 4
mov ecx, ebx
call fcn.100213e0
mov edi, eax
movzx eax, word [ebx + 8]
mov dword [esp + 0x108], edi
mov dword [esp + 0x10c], edx
test al, 4
jne 0x1009545a
test al, 8
jne 0x10095427
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
fild qword [esp + 0x108]
fcom qword [ebx]
fnstsw ax
test ah, 0x41
jne 0x10095446
test byte [esp + 0x34], 1
fstp st(0)
je 0x1009545a
dec dword [esp + 0x34]
jmp 0x1009545a
fcomp qword [ebx]
fnstsw ax
test ah, 5
jp 0x1009545a
test byte [esp + 0x34], 1
jne 0x1009545a
inc dword [esp + 0x34]
mov eax, dword [esi]
lea ecx, [esp + 0x6c]
push ecx
push 0
push edx
push edi
push 0
call fcn.10073f90
mov edx, dword [esp + 0x120]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edx
jmp 0x100954db
mov eax, dword [ebp + 0x10]
mov edx, dword [esi + 8]
mov word [esp + 0x200], ax
test cl, 1
sete al
mov dword [esp + 0x1fc], edx
mov edx, 0x4000
lea eax, [eax + eax - 1]
mov byte [esp + 0x202], al
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea eax, [ebx + ecx*8]
mov dword [esp + 0x204], eax
test word [eax + 8], dx
je 0x100954c1
call fcn.1003a2c0
lea eax, [esp + 0x6c]
push eax
mov eax, dword [esi]
push 0
push 0
lea ecx, [esp + 0x208]
push 0
push ecx
call fcn.10073f90
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
mov ecx, dword [esp + 0x34]
xor edi, edi
cmp ecx, 0x40
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], edi
mov eax, dword [esp + 0x6c]
jl 0x10095527
cmp eax, edi
jl 0x10095514
jne 0x1009550b
cmp ecx, 0x41
je 0x10095514
mov dword [esp + 0x6c], edi
jmp case.default.0x10093191
lea edx, [esp + 0x6c]
mov dword [esp + 0x6c], edi
mov eax, dword [esi]
push edx
push eax
call fcn.10080c70
jmp 0x10095554
cmp eax, edi
jg 0x10095543
jne 0x10095532
cmp ecx, 0x3e
je 0x10095543
mov ecx, dword [esi]
xor edx, edx
cmp byte [ecx + 0x49], 1
setne dl
mov dword [esp + 0x6c], edx
jmp 0x10095565
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], edi
mov ecx, dword [esi]
push eax
push ecx
call fcn.10080c10
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, edi
jne 0x1009595c
xor edi, edi
cmp dword [esp + 0x6c], edi
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov byte [esi + 0x19], 0
mov ebp, dword [ebp + 8]
lea ecx, [ebp + ebp*4]
lea ecx, [ebx + ecx*8]
call fcn.100213e0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp case.default.0x10093191
mov eax, dword [edi + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
xor edi, edi
cmp dword [ebp + 0x10], edi
lea ebx, [ebx + ecx*8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], edi
jle 0x10095624
mov edx, dword [esi + 8]
mov dword [esp + 0x1d4], edx
mov cx, word [ebp + 0x10]
xor eax, eax
mov word [esp + 0x1d8], cx
mov dword [esp + 0x1dc], ebx
cmp ax, cx
jae 0x1009561b
xor ebx, ebx
mov edx, dword [esp + 0x1dc]
lea eax, [ebx + edx]
mov edx, 0x4000
test word [eax + 8], dx
je 0x10095610
call fcn.1003a2c0
mov cx, word [esp + 0x1d8]
movzx eax, cx
inc edi
add ebx, 0x28
cmp edi, eax
jl 0x100955ee
lea edi, [esp + 0x1d4]
jmp 0x10095674
mov edi, dword [esi + 8]
push 0xbf
lea ebx, [esp + 0x48]
lea edx, [esp + 0x25c]
call fcn.1002c130
mov edi, eax
add esp, 4
test edi, edi
je 0x100963de
mov ebx, dword [esp + 0x38]
mov ecx, 0x4000
test word [ebx + 8], cx
je 0x1009565f
mov eax, ebx
call fcn.1003a2c0
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esi + 8]
push edi
push edx
push eax
push ecx
call fcn.10024fd0
add esp, 0x10
mov byte [edi + 6], 0
cmp byte [ebp], 0x43
jne 0x100956ab
xor edx, edx
xor ecx, ecx
cmp dx, word [edi + 4]
jae 0x100956ab
mov eax, dword [edi + 8]
add eax, 8
mov edi, edi
test byte [eax], 1
jne 0x100956a3
movzx edx, word [edi + 4]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10095690
jmp 0x100956ab
mov eax, dword [ebp + 8]
dec eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0xf4]
push eax
mov eax, dword [esi]
push 0
push 0
push 0
push edi
call fcn.10073f90
add esp, 0x14
cmp dword [ebp + 0x10], 0
mov edi, eax
mov dword [esp + 0x10], edi
jne 0x100956dd
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
call fcn.10025ff0
test edi, edi
jne case.default.0x10093191
mov ecx, dword [esp + 0xf4]
xor eax, eax
test ecx, ecx
mov dword [esi + 0xc], ecx
sete al
mov cl, 1
sub cl, al
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], edi
cmp byte [ebp], 0x45
jne 0x1009571f
test eax, eax
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
test eax, eax
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
lea ecx, [ecx + ecx*4]
mov edi, dword [ebx + ecx*8]
mov ebx, dword [ebx + ecx*8 + 4]
lea ecx, [esp + 0x48]
push ecx
push 0
push ebx
push edi
push 0
mov dword [esp + 0x5c], 0
call fcn.10073f90
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
add esp, 0x14
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], ebx
mov byte [esi + 0x19], 0
mov dword [esi + 0x3c], 0
mov byte [esi + 0x1a], 0
test eax, eax
je 0x10095790
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov dword [esi + 0xc], eax
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
mov dword [esi], ecx
mov edx, dword [eax + 0x2c]
mov dword [esi + 4], edx
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
xor edx, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], ecx
cmp eax, edx
je 0x10095994
test byte [ecx + 0x1c], 2
jne 0x1009585e
lea edi, [esp + 0x40]
mov esi, eax
call fcn.100743b0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
cmp dword [esp + 0x40], eax
je 0x10095818
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], eax
jmp 0x10095852
mov edx, dword [esp + 0x34]
mov esi, dword [edx]
lea edi, [esp + 0x60]
call fcn.1002c370
cmp dword [esp + 0x64], 0x7fffffff
mov dword [esp + 0x10], eax
jl 0x10095848
jg 0x1009583e
cmp dword [esp + 0x60], 0xffffffff
jb 0x10095848
mov eax, dword [esp + 0x34]
or dword [eax + 0x1c], 2
jmp 0x10095852
add dword [esp + 0x60], 1
adc dword [esp + 0x64], 0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
mov ebp, dword [ebp + 0xc]
test ebp, ebp
je 0x100958f2
mov edi, dword [edi + 0xb0]
test edi, edi
je 0x10095895
mov ecx, edi
mov eax, dword [ecx + 4]
test eax, eax
je 0x10095889
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x10095880
mov ecx, dword [ecx + 0x10]
lea eax, [ebp + ebp*4]
lea esi, [ecx + eax*8]
jmp 0x1009589c
lea edx, [ebp + ebp*4]
lea esi, [ebx + edx*8]
call fcn.10025200
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x100958b7
cmp ecx, 0x7fffffff
je 0x10095954
mov edx, dword [esp + 0x34]
test byte [edx + 0x1c], 2
jne 0x10095954
mov edx, dword [esp + 0x64]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x100958e5
jl 0x100958db
cmp dword [esp + 0x60], eax
jae 0x100958e5
mov edx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
test byte [ecx + 0x1c], 2
je 0x10095985
xor ebx, ebx
mov edi, ecx
lea edx, [esp + 0x60]
push edx
push 8
call sym.SQLite.Interop.dll_sqlite3_randomness
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
and eax, 0x3fffffff
add ecx, 1
lea edx, [esp + 0x48]
push edx
adc eax, 0
push 0
push eax
push ecx
mov dword [esp + 0x7c], eax
mov eax, dword [edi]
push 0
mov dword [esp + 0x7c], ecx
call fcn.10073f90
add esp, 0x1c
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10095985
cmp dword [esp + 0x40], eax
jne 0x10095985
inc ebx
cmp ebx, 0x64
jl 0x10095904
mov dword [esp + 0x10], 0xd
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x41], 0
je 0x10097611
mov dword [esp + 0x10], 7
mov ecx, dword [esp + 0x10]
mov eax, str.unknown_error
call fcn.10011ef0
jmp 0x1009763e
mov eax, dword [esp + 0x34]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
mov esi, dword [edi + 0x38]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov edx, dword [ebp + 4]
mov esi, dword [esi + edx*4]
mov dword [esp + 0x38], eax
cmp cl, 0x4b
jne 0x100959d7
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [ebx + ecx*8]
mov ebx, dword [ebx + ecx*8 + 4]
mov dword [esp + 0xf8], edx
jmp 0x100959ef
mov eax, dword [ebp + 0xc]
cdq
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x38]
mov ebx, edx
mov edx, dword [esp + 0xf8]
test byte [ebp + 3], 1
je 0x100959f8
inc dword [edi + 0x5c]
test byte [ebp + 3], 2
je 0x10095a10
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], ebx
movzx ecx, word [eax + 8]
xor edi, edi
mov dword [esp + 0x38], ecx
test cl, 1
je 0x10095a25
mov dword [eax + 0x10], edi
mov dword [eax + 0xc], edi
mov cl, byte [ebp + 3]
mov byte [esp + 0x33], cl
test cl, 0x10
je 0x10095a3a
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x24], ecx
jmp 0x10095a3e
mov dword [esp + 0x24], edi
test dword [esp + 0x38], 0x4000
je 0x10095a4a
mov edi, dword [eax]
mov ecx, dword [esp + 0x24]
push ecx
movzx ecx, byte [esp + 0x37]
shr ecx, 3
and ecx, 1
push ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push edi
push ecx
push eax
mov eax, dword [esi]
push ebx
push edx
push 0
call fcn.1007e710
add esp, 0x20
mov dword [esp + 0x10], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
test eax, eax
jne case.default.0x10093191
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xd0]
test edx, edx
je case.default.0x10093191
mov eax, dword [ebp + 0x10]
test eax, eax
je case.default.0x10093191
mov edi, dword [esp + 0xf8]
push ebx
push edi
push eax
movsx eax, byte [esi + 0x18]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xcc]
shl eax, 4
mov eax, dword [eax + esi]
push eax
mov al, byte [ebp + 3]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push ecx
call edx
add esp, 0x18
jmp case.default.0x10093191
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x38]
mov esi, dword [ecx + edx*4]
mov edi, dword [esi]
call fcn.100858d0
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x10095b45
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xd0]
test ecx, ecx
je 0x10095b45
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10095b45
test byte [esi + 0x1c], 4
je 0x10095b45
mov edi, dword [esi + 0x34]
push edi
mov edi, dword [esi + 0x30]
push edi
push eax
movsx eax, byte [esi + 0x18]
mov esi, dword [edx + 0x10]
mov edx, dword [edx + 0xcc]
shl eax, 4
mov eax, dword [eax + esi]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [ebp + 8], 1
je case.default.0x10093191
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
jmp case.default.0x10093191
mov eax, dword [edi + 0x5c]
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [edi + 0x5c], 0
jmp case.default.0x10093191
mov ecx, dword [edi + 0x38]
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 0x10]
lea ebx, [ebx + edx*8]
lea edx, [esp + 0x34]
push edx
push ecx
push ebx
mov dword [esp + 0x40], 0
call fcn.10067ca0
add esp, 0xc
cmp dword [esp + 0x34], 0
mov dword [esp + 0x10], eax
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x1c], ecx
call fcn.1003ee80
mov ecx, dword [ebp + 0xc]
mov edx, dword [edi + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x3c], 0
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea edx, [ebx + ecx*8]
mov ecx, dword [edi + 0x38]
mov ebp, dword [ecx + eax*4]
test byte [ebp + 0x1c], 4
mov esi, dword [ebp]
mov dword [esp + 0x1c], edx
jne 0x10095c4c
lea edi, [esp + 0x178]
call fcn.1002c370
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x58]
mov ecx, dword [esp + 0x17c]
cdq
cmp ecx, edx
jg 0x10093bb1
mov ebx, dword [esp + 0x178]
jl 0x10095c43
cmp ebx, eax
ja 0x10093bb1
mov dword [esp + 0xc4], ebx
jmp 0x10095c70
lea edx, [esp + 0xc4]
push edx
call fcn.1002c320
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x18]
add esp, 4
cmp ebx, dword [eax + 0x58]
ja 0x10093bb1
mov ecx, ebx
cmp ebx, 0x20
ja 0x10095c7c
mov ecx, 0x20
mov edi, dword [esp + 0x1c]
cmp dword [edi + 0x18], ecx
jge 0x10095ccf
xor eax, eax
call fcn.10037300
test eax, eax
jne 0x100963de
mov dx, word [edi + 8]
mov eax, 0xbe10
and dx, ax
or dx, 0x10
mov dword [edi + 0xc], ebx
mov word [edi + 8], dx
test byte [ebp + 0x1c], 4
jne 0x10095cdc
mov eax, dword [edi + 0x10]
push 0
push eax
push ebx
push 0
call fcn.1006fba0
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [edi + 0xa], 1
jmp case.default.0x10093191
mov ecx, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], ecx
jmp 0x10095c94
mov ecx, dword [edi + 0x10]
push ecx
push ebx
push 0
push esi
call fcn.1007ec20
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [edi + 0xa], 1
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + edx*4]
cmp byte [ebx + 0x19], 0
je 0x10095d16
mov ecx, 1
mov word [esi + 8], cx
jmp case.default.0x10093191
cmp byte [ebx + 0x1a], 0
je 0x10095d3a
mov edx, dword [ebx + 0x30]
mov dword [esp + 0xb8], edx
mov eax, dword [ebx + 0x34]
mov dword [esp + 0xbc], eax
mov dword [esi], edx
mov dword [esi + 4], eax
jmp case.default.0x10093191
cmp dword [ebx + 0x24], 0
je 0x10095d7c
mov ebx, dword [ebx + 0x24]
mov ebp, dword [ebx]
mov eax, dword [ebp]
mov edx, dword [eax + 0x30]
lea ecx, [esp + 0xb8]
push ecx
push ebx
call edx
push ebp
push edi
mov dword [esp + 0x20], eax
call fcn.1002f100
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
add esp, 0x10
mov dword [esi], edx
mov dword [esi + 4], eax
jmp case.default.0x10093191
mov eax, ebx
call fcn.100852f0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
cmp byte [ebx + 0x19], al
je 0x10095da6
mov ecx, dword [esp + 0x1c]
mov eax, 1
mov word [ecx + 8], ax
jmp case.default.0x10093191
mov esi, dword [ebx]
lea edi, [esp + 0xb8]
call fcn.1002c370
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xbc]
mov dword [esi], edx
mov dword [esi + 4], eax
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + ecx*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je case.default.0x10093191
mov esi, eax
call fcn.10021590
jmp case.default.0x10093191
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov ebx, dword [edx + eax*4]
mov esi, dword [ebx]
lea edi, [esp + 0x28]
mov dword [esp + 0x28], 0
call fcn.100743b0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov byte [ebx + 0x19], al
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov ebp, dword [ebp + 8]
test ebp, ebp
jle case.default.0x10093191
test eax, eax
je case.default.0x10093191
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
inc dword [edi + 0x74]
mov ecx, dword [edi + 0x38]
mov eax, dword [ebp + 4]
mov ebx, dword [ecx + eax*4]
cmp dword [ebx + 0x38], 0
mov dword [esp + 0x24], 1
lea edi, [esp + 0x24]
je 0x10095e78
mov eax, ebx
call fcn.1007f590
jmp 0x10095e8a
mov esi, dword [ebx]
call fcn.10074400
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov byte [ebx + 0x19], al
test eax, eax
je case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov ecx, dword [esp + 0x14]
push ecx
lea ebx, [esp + 0xa8]
mov eax, esi
mov dword [esp + 0xa8], 0
call fcn.1006ee70
add esp, 4
jmp 0x10095f0c
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + edx*4], 0
je case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xa4], eax
mov edx, dword [esi]
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0xa4]
push ecx
push edx
call eax
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [esp + 0xa4], 0
mov dword [esp + 0x10], eax
jne 0x10095f3e
mov byte [esi + 0x19], 0
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 3]
dec eax
inc dword [edi + ecx*4 + 0x6c]
mov dword [esp + 0x18], eax
lea eax, [edi + ecx*4 + 0x6c]
jmp 0x10097135
mov byte [esi + 0x19], 1
jmp 0x10097135
test byte [ebp + 3], 1
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp + 8]
mov edx, dword [esi]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
mov dword [esp + 0x38], edx
je 0x10095f68
inc dword [edi + 0x5c]
mov eax, 0x4000
test word [ebx + 8], ax
je 0x10095f86
mov eax, ebx
call fcn.1003a2c0
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x10093191
cmp dword [esi + 0x38], 0
je 0x10095fa0
push ebx
mov eax, esi
call fcn.1006ef70
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
test byte [ebp + 3], 0x10
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x10]
je 0x10095fb1
mov ecx, dword [esi + 0xc]
jmp 0x10095fb3
xor ecx, ecx
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
push 0
push 0
cdq
push 0x100b4e24
push edx
push eax
mov eax, dword [esp + 0x54]
push ebx
call fcn.1007e710
add esp, 0x20
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov edi, dword [esi]
mov ecx, dword [esi + 8]
mov dx, word [ebp + 0xc]
mov ebp, dword [ebp + 8]
mov word [esp + 0x1ec], dx
lea edx, [esp + 0x104]
push edx
push 0
lea eax, [ebp + ebp*4]
mov dword [esp + 0x1f0], ecx
lea ecx, [ebx + eax*8]
push 0
lea eax, [esp + 0x1f4]
push 0
push eax
mov eax, edi
mov byte [esp + 0x202], 0
mov dword [esp + 0x204], ecx
call fcn.10073f90
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10096055
cmp dword [esp + 0x104], eax
jne 0x10096055
call fcn.100858d0
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov edi, dword [edx + ecx*4]
mov ebx, dword [edi]
mov eax, 1
mov word [esi + 8], ax
mov eax, edi
call fcn.100852f0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1009595c
cmp byte [edi + 0x19], al
jne case.default.0x10093191
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xd8]
push ecx
xor esi, esi
push edx
mov eax, ebx
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], esi
call fcn.10085150
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x1009595c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov dword [eax], ecx
mov ecx, 4
mov dword [eax + 4], edx
mov word [eax + 8], cx
jmp case.default.0x10093191
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + edx*4]
mov ax, word [ebp + 0x10]
mov edx, dword [edi + 8]
mov word [esp + 0x220], ax
mov eax, dword [ebp + 0xc]
cmp cl, 0x73
mov dword [esp + 0x21c], edx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x54]
sbb cl, cl
mov byte [esp + 0x222], cl
lea ecx, [eax + edx*8]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x220]
mov dword [esp + 0x228], ecx
mov ecx, dword [esp + 0x18]
push eax
push ecx
mov dword [esp + 0x38], 0
call fcn.10085050
add esp, 0xc
test byte [ebp], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
je 0x10096160
neg eax
jmp 0x10096161
inc eax
test eax, eax
jle case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
xor edx, edx
test eax, eax
je 0x100961ad
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x100961a6
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x100961a6
and cl, 0xc
cmp cl, 8
jae 0x100961a6
cmp dword [eax + 0x4c], 0
jl 0x100961a6
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x10096183
mov ecx, 1
cmp edx, ecx
mov word [esi + 8], cx
jle 0x100961cb
mov dword [esp + 0x10], 6
mov byte [edi + 0x56], 2
jmp case.default.0x10093191
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [edx + 0x10]
mov ecx, ebx
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x84], 0
call fcn.10080bc0
mov ecx, 4
mov edi, eax
mov word [esi + 8], cx
mov ecx, dword [esp + 0x84]
mov eax, ecx
cdq
add esp, 8
mov dword [esp + 0x10], edi
mov dword [esi], eax
mov dword [esi + 4], edx
test edi, edi
jne case.default.0x10093191
test ecx, ecx
je case.default.0x10093191
mov edi, dword [ebp + 4]
mov esi, ecx
mov ecx, dword [esp + 0x14]
mov eax, ebx
call fcn.10012f40
inc bl
mov byte [esp + 0x5f], bl
jmp case.default.0x10093191
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
neg edx
sbb edx, edx
lea eax, [esp + 0x58]
and edx, eax
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [eax + 0x10]
shl edx, 4
mov dword [esp + 0x60], 0
mov eax, dword [edx + ecx + 4]
call fcn.1007a6d0
add esp, 8
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x10], eax
je case.default.0x10093191
mov eax, dword [esp + 0x58]
add dword [edi + 0x5c], eax
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jle case.default.0x10093191
lea edx, [ebp + ebp*4]
lea ecx, [ebx + edx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.default.0x10093191
mov ecx, dword [edi + 0x38]
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov edi, dword [eax + 0x38]
test edi, edi
je 0x100962ca
mov edx, dword [esp + 0x14]
push edx
call fcn.1002ee70
add esp, 4
jmp case.default.0x10093191
mov eax, dword [eax]
call fcn.1007e6a0
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
mov ebp, dword [ebp + 4]
mov eax, dword [esp + 0x14]
shl ebp, 4
add ebp, dword [eax + 0x10]
xor eax, eax
cmp cl, 0x79
setne al
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], 0
inc eax
push eax
mov eax, dword [ebp + 4]
push ecx
call fcn.1007e6c0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
cdq
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x1009632e
mov ecx, str.sqlite_master
mov edx, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x160], eax
add edi, 0x2c
shl eax, 4
mov dword [esp + 0x158], esi
mov dword [esp + 0x15c], edi
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.10032280
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x10096376
mov dword [esp + 0x10], 7
jmp 0x100963cc
push 0
lea eax, [esp + 0x154]
push eax
push fcn.10091ac0
push edi
push esi
mov byte [esi + 0x91], 1
mov dword [esp + 0x170], 0
call sym.SQLite.Interop.dll_sqlite3_exec
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x100963b8
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x10], ecx
mov ebx, ecx
mov eax, edi
mov ecx, esi
call fcn.10025ff0
mov byte [esi + 0x91], 0
test ebx, ebx
je 0x100963d3
mov eax, esi
call fcn.10043520
cmp dword [esp + 0x10], 7
jne case.default.0x10093191
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
push str.out_of_memory
add edi, 0x2c
mov byte [eax + 0x41], 1
call fcn.100302e0
add esp, 4
mov dword [esp + 0x10], 7
jmp 0x1009719c
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
push edx
call fcn.10092b40
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
push eax
mov eax, dword [ebp + 4]
call fcn.100434b0
add esp, 4
jmp case.default.0x10093191
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push ecx
call fcn.100395f0
add esp, 4
jmp case.default.0x10093191
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push edx
call fcn.100415e0
add esp, 4
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
lea eax, [eax*4 + 4]
push 0
push eax
call fcn.10028800
mov edi, eax
add esp, 8
test edi, edi
je 0x100963de
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x54]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
xor esi, esi
cmp dword [esp + 0x2c], esi
lea eax, [ecx + eax*8]
lea ebx, [ecx + edx*8]
mov dword [esp + 0x28], eax
jle 0x100964cd
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
call fcn.100213e0
add dword [esp + 0x24], 0x28
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [esp + 0x2c]
jl 0x100964b5
mov edx, dword [esp + 0x2c]
mov dword [edi + esi*4], 0
mov ecx, dword [ebx]
movzx eax, byte [ebp + 3]
mov esi, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
shl eax, 4
mov ecx, dword [eax + ecx + 4]
push edi
lea edx, [esp + 0x120]
call fcn.100725d0
mov ebp, eax
add esp, 0xc
mov eax, edi
mov ecx, esi
call fcn.10025ff0
mov esi, dword [esp + 0x114]
mov eax, esi
cdq
sub dword [ebx], eax
mov eax, dword [esp + 0x28]
sbb dword [ebx + 4], edx
call fcn.1002f280
test esi, esi
je 0x10096544
test ebp, ebp
je 0x100963de
mov ecx, dword [esp + 0x28]
push 1
push 0xffffffffffffffff
mov eax, sym.SQLite.Interop.dll_sqlite3_free
mov ebx, ebp
call fcn.1003f610
add esp, 8
movzx ecx, byte [esp + 0x4c]
mov eax, dword [esp + 0x28]
call fcn.1003f8f0
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebp + ebp*4]
lea edi, [ebx + edx*8]
lea esi, [ebx + eax*8]
mov bl, 0x20
test byte [edi + 8], bl
jne 0x1009657f
call fcn.100371d0
test byte [edi + 8], bl
je 0x100963de
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov edi, dword [edi]
push ecx
push edx
call fcn.1002fc80
add esp, 8
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea eax, [ebx + eax*8]
mov dword [esp + 0x28], eax
je 0x100965e8
mov ecx, eax
mov eax, dword [ecx]
lea esi, [esp + 0x168]
call fcn.1002ccd0
test eax, eax
je 0x100965e4
mov edx, dword [esp + 0x16c]
mov ebp, dword [ebp + 0xc]
mov eax, dword [esp + 0x168]
push edx
lea ecx, [ebp + ebp*4]
push eax
lea eax, [ebx + ecx*8]
call fcn.10037280
add esp, 8
jmp 0x10097135
mov eax, dword [esp + 0x28]
call fcn.1002f280
jmp case.0x10093191.16
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 0x20
mov eax, dword [ebp + 0xc]
lea edi, [ebx + edx*8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ebx, dword [ebp + 0x10]
jne 0x1009661d
call fcn.100371d0
test byte [edi + 8], 0x20
je 0x100963de
test ebx, ebx
je 0x1009664c
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [edi]
push ecx
push edx
push ebx
call fcn.1002fb30
add esp, 0xc
test eax, eax
je 0x10096644
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
test ebx, ebx
jl case.default.0x10093191
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [edi]
push eax
push ecx
call fcn.1002fc80
add esp, 8
jmp case.default.0x10093191
cmp byte [ebp + 3], 0
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
lea ebx, [ebx + edx*8]
mov dword [esp + 0x38], ebx
je 0x10096695
mov eax, dword [edi + 0xb0]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x10096695
cmp dword [eax + 0x1c], ecx
je case.default.0x10093191
mov eax, dword [eax + 4]
test eax, eax
jne 0x10096685
mov eax, dword [edi + 0xb8]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x80]
jl 0x100966ca
mov edi, dword [esp + 0x20]
push str.too_many_levels_of_trigger_recursion
add edi, 0x2c
mov eax, ecx
mov dword [esp + 0x14], 1
call fcn.100302e0
add esp, 4
jmp case.default.0x10093191
test byte [ebx + 8], 0x40
jne 0x10096795
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x10]
add ebx, eax
lea edx, [ebx + ebx*4 + 0xa]
lea eax, [eax + edx*2]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
cdq
push edx
push eax
call fcn.100288a0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x100963de
mov edi, dword [esp + 0x38]
mov eax, edi
call fcn.10031a30
mov ecx, dword [esp + 0x18]
mov dword [edi], ebp
mov edx, 0x40
mov word [edi + 8], dx
mov edi, dword [esp + 0x20]
mov dword [ebp], edi
mov dword [ebp + 0x3c], ebx
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x2c], ecx
mov edx, dword [edi + 8]
mov dword [ebp + 0x10], edx
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x34], eax
mov ecx, dword [edi + 0x38]
mov dword [ebp + 0x18], ecx
mov edx, dword [edi + 0x24]
mov dword [ebp + 0x28], edx
mov eax, dword [edi + 4]
mov dword [ebp + 8], eax
mov ecx, dword [edi + 0x20]
mov dword [ebp + 0x30], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp + 0x1c], edx
mov eax, dword [edi + 0xc8]
mov dword [ebp + 0x14], eax
mov ecx, dword [edi + 0xc4]
lea edx, [ebx + ebx*4 + 0xa]
mov dword [ebp + 0x38], ecx
lea ecx, [ebp + edx*8]
lea eax, [ebp + 0x50]
cmp eax, ecx
je 0x10096797
mov edx, dword [esp + 0x14]
mov edi, edi
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x10096780
jmp 0x10096797
mov ebp, dword [ebx]
inc dword [edi + 0xb8]
mov eax, dword [edi + 0xb0]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [ebp + 4], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], edx
mov eax, dword [edi + 0x5c]
mov dword [ebp + 0x44], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 0x50]
mov dword [ebp + 0x48], edx
mov dword [edi + 0x5c], 0
mov dword [edi + 0xb0], ebp
lea ecx, [ebp + 0x28]
mov dword [edi + 8], ecx
mov eax, dword [ebp + 0x3c]
mov dword [edi + 0x1c], eax
movzx edx, word [ebp + 0x40]
inc eax
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [edi + 0x38], eax
mov dword [edi + 0x24], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esi]
mov dword [edi + 4], ecx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esi + 4]
lea eax, [eax + edx*4]
mov dword [edi + 0x20], ecx
mov dword [edi + 0xc8], eax
mov esi, dword [esi + 0x10]
push esi
push 0
push eax
mov dword [edi + 0xc4], esi
mov dword [esp + 0x24], 0xffffffff
call fcn.10004b00
add esp, 0xc
jmp case.default.0x10093191
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xb0]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
mov eax, dword [eax + edx*4 + 4]
add eax, dword [ebp + 4]
push 0x1000
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea edi, [eax + edx*8]
mov eax, dword [esp + 0x20]
call fcn.1002f220
add esp, 4
jmp case.default.0x10093191
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebp + 8]
cdq
je 0x10096888
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.default.0x10093191
cmp dword [ebp + 4], 0
je 0x1009689f
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x10093191
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x10093191
cmp dword [ebp + 4], 0
je 0x100968eb
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1f8]
or ecx, dword [eax + 0x1fc]
jne case.default.0x10093191
mov edx, dword [eax + 0x200]
or edx, dword [eax + 0x204]
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jne case.default.0x10093191
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x200]
or ecx, dword [eax + 0x204]
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov edi, dword [edi + 0xb0]
test edi, edi
je 0x1009694a
mov ecx, edi
mov eax, dword [ecx + 4]
test eax, eax
je 0x1009693c
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x10096933
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea edi, [eax + edx*8]
jmp 0x10096953
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea edi, [ebx + ecx*8]
mov esi, edi
call fcn.10025200
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea esi, [ebx + edx*8]
call fcn.10025200
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.default.0x10093191
jl 0x10096985
mov edx, dword [edi]
cmp edx, eax
jae case.default.0x10093191
mov dword [edi], eax
mov dword [edi + 4], esi
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 4], 0
jl case.default.0x10093191
jg 0x100969ac
cmp dword [ebx + eax*8], 0
jbe case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebp + 0xc]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
cmp dword [ebx + 4], 0
jg case.default.0x10093191
jl 0x100969e0
cmp dword [ebx], 0
jae case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea ebx, [ebx + ecx*8]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
mov edx, dword [ebx]
or edx, dword [ebx + 4]
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 3]
mov esi, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
xor eax, eax
test ecx, ecx
jle 0x10096a3b
lea ecx, [ecx]
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x10096a30
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x138], edx
mov dword [esp + 0x13c], eax
inc dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x250], eax
xor eax, eax
mov edx, 1
mov word [esp + 0x238], dx
mov dword [esp + 0x248], eax
lea edx, [esp + 0x230]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x18]
push esi
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x13c]
push ecx
lea ecx, [esp + 0x13c]
mov dword [esp + 0x148], edi
mov dword [esp + 0x14c], eax
mov byte [esp + 0x154], 0
mov eax, dword [edx + 0x10]
push ecx
call eax
add esp, 0xc
cmp dword [esp + 0x148], 0
je 0x10096b03
lea ecx, [esp + 0x230]
push ecx
call sym.SQLite.Interop.dll_sqlite3_value_text
mov edi, dword [esp + 0x24]
add esp, 4
push eax
mov eax, dword [esp + 0x18]
push 0x100b5014
add edi, 0x2c
call fcn.100302e0
mov edx, dword [esp + 0x150]
mov ebx, dword [esp + 0x5c]
add esp, 8
mov dword [esp + 0x10], edx
cmp byte [esp + 0x14c], 0
je 0x10096b27
mov ebp, dword [ebp - 0x10]
test ebp, ebp
je 0x10096b27
push 0
lea eax, [ebp + ebp*4]
push 1
lea eax, [ebx + eax*8]
call fcn.10037280
add esp, 8
lea eax, [esp + 0x230]
call fcn.10031a30
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
mov ecx, dword [ebp + 0x10]
mov eax, ebx
call fcn.10027c90
mov dword [esp + 0x10], eax
test eax, eax
je 0x10096b75
push ebx
call sym.SQLite.Interop.dll_sqlite3_value_text
mov edi, dword [esp + 0x24]
add esp, 4
push eax
mov eax, dword [esp + 0x18]
push 0x100b5014
add edi, 0x2c
call fcn.100302e0
add esp, 8
movzx ecx, byte [esp + 0x4c]
mov eax, ebx
call fcn.1003f8f0
mov ecx, ebx
call fcn.10014640
test eax, eax
jne 0x10093bb1
jmp case.default.0x10093191
mov ecx, dword [ebp + 8]
or eax, 0xffffffff
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], eax
lea edx, [esp + 0xe8]
push edx
mov edx, dword [ebp + 4]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
xor esi, esi
push eax
mov dword [esp + 0xf4], esi
call fcn.1006a850
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, 5
jne 0x10096bec
mov dword [esp + 0x10], esi
mov dword [esp + 0xe0], 1
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
lea ebx, [ebx + ecx*8]
mov eax, dword [esp + esi*4 + 0xe0]
cdq
push edx
push eax
mov eax, ebx
call fcn.10037280
inc esi
add esp, 8
add ebx, 0x28
cmp esi, 3
jl 0x10096bf6
jmp case.default.0x10093191
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x10]
mov esi, dword [ebp + 0xc]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov edx, dword [eax + 4]
mov edi, dword [edx]
movzx edx, byte [edi + 5]
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], edx
cmp esi, 0xffffffff
jne 0x10096c44
mov esi, edx
mov eax, edi
call fcn.10014ed0
test eax, eax
jne 0x10096c51
mov esi, edx
cmp byte [edi + 0xf], 0
mov ecx, 0x100b4e24
jne 0x10096c62
mov ecx, dword [edi + 0xa8]
cmp esi, 5
jne 0x10096cb8
call fcn.10016f30
test eax, eax
je 0x10096c7b
mov eax, edi
call fcn.10014e30
test eax, eax
jne 0x10096cb8
mov esi, edx
cmp dword [esp + 0x10], 0
je 0x10096c88
mov esi, dword [esp + 0x58]
mov ecx, esi
mov eax, edi
call fcn.1006c7b0
mov ebp, dword [ebp + 8]
lea ecx, [ebp + ebp*4]
lea ebx, [ebx + ecx*8]
mov edx, 0xa02
mov dword [esp + 0x1c], ebx
mov word [ebx + 8], dx
cmp eax, 6
jne 0x10096d5f
xor eax, eax
jmp 0x10096d66
cmp esi, edx
je 0x10096c7d
cmp edx, 5
je 0x10096cc6
cmp esi, 5
jne 0x10096c7d
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3f], 0
je 0x10096d2a
cmp dword [eax + 0x98], 1
jg 0x10096d2a
cmp edx, 5
jne 0x10096cf1
mov eax, edi
call fcn.10069bf0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10096c84
mov ecx, esi
jmp 0x10096cf9
cmp edx, 4
jne 0x10096d00
lea ecx, [edx - 2]
mov eax, edi
call fcn.1006c7b0
cmp dword [esp + 0x10], 0
jne 0x10096c84
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
mov eax, dword [esp + 0x3c]
call fcn.10070e50
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x10096c7d
mov dword [esp + 0x10], 1
mov eax, str.into
cmp esi, 5
je 0x10096d41
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add edi, 0x2c
call fcn.100302e0
add esp, 8
jmp case.default.0x10093191
mov eax, dword [eax*4 + 0x100b1480]
mov ecx, eax
mov dword [ebx + 0x10], eax
call fcn.10016f30
movzx ecx, byte [esp + 0x4c]
mov dword [ebx + 0xc], eax
mov eax, ebx
mov byte [ebx + 0xa], 1
call fcn.1003f8f0
jmp case.default.0x10093191
mov esi, dword [esp + 0x14]
lea eax, [edi + 0x2c]
call fcn.10092cb0
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
push eax
call fcn.1007af60
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, 0x65
jne case.default.0x10093191
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], 0
jmp case.default.0x10093191
cmp dword [ebp + 4], 0
jne 0x10096ded
mov eax, dword [esp + 0x14]
call fcn.10014100
jmp case.default.0x10093191
or dword [edi + 0x58], 0x20
jmp case.default.0x10093191
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x10096e0e
mov eax, dword [esp + 0x14]
test dword [eax + 0x18], 0x4000
jne case.default.0x10093191
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.1002f340
add esp, 4
mov dword [esp + 0x10], eax
cmp al, 6
jne case.default.0x10093191
mov eax, dword [ebp + 0x10]
push eax
push str.database_table_is_locked:__s
jmp 0x10096d47
mov ebp, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
mov edi, ebp
call fcn.10033e60
mov dword [esp + 0x10], eax
test ebp, ebp
je case.default.0x10093191
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x20]
push ecx
push edx
call fcn.1002f100
add esp, 8
jmp case.default.0x10093191
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
add edi, 0x2c
push edi
push eax
mov eax, dword [ebp + 4]
call fcn.10037fd0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
mov ecx, dword [edi + 0x58]
and ecx, 0xfffffffb
or ecx, 8
mov dword [edi + 0x58], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
push edx
call fcn.1002aad0
add esp, 4
and dword [edi + 0x58], 0xfffffff3
mov dword [esp + 0x10], eax
jmp case.default.0x10093191
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x50], 0
mov ebx, dword [eax + 8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x50]
push ecx
push ebx
mov dword [esp + 0x40], eax
call edx
mov esi, eax
push ebx
push edi
mov dword [esp + 0x20], esi
call fcn.1002f100
add esp, 0x10
test esi, esi
jne case.default.0x10093191
mov eax, dword [esp + 0x50]
push esi
mov dword [eax], ebx
mov ecx, dword [ebp + 4]
push 0xffffffffffffffff
push esi
push ecx
mov ebx, edi
call fcn.1007f5e0
add esp, 0x10
test eax, eax
je 0x10096f20
mov edx, dword [esp + 0x50]
mov dword [eax + 0x24], edx
jmp case.default.0x10093191
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov byte [eax + 0x41], 1
mov eax, dword [edx + 0x1c]
push ecx
call eax
add esp, 4
jmp case.default.0x10093191
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov esi, dword [eax + 0x24]
mov edx, dword [ebx + ecx*8]
lea ebx, [ebx + ecx*8]
mov dword [esp + 0x24], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov dword [esp + 0x58], edx
mov edx, dword [edi + 0xc]
test eax, eax
jle 0x10096f8b
add ebx, 0x50
lea esp, [esp]
mov dword [edx + ecx*4], ebx
inc ecx
add ebx, 0x28
cmp ecx, eax
jl 0x10096f80
mov ecx, dword [edi + 0x58]
push edx
and ecx, 0xfffffff7
or ecx, 4
mov dword [edi + 0x58], ecx
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [ecx + 0x20]
push eax
push esi
call edx
and dword [edi + 0x58], 0xfffffff3
mov ebx, eax
mov eax, dword [esp + 0x90]
add esp, 0x14
push eax
push edi
mov dword [esp + 0x18], ebx
call fcn.1002f100
add esp, 8
test ebx, ebx
jne 0x10096fe7
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x28]
push esi
call edx
add esp, 4
test eax, eax
je 0x10096fe7
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x24]
mov byte [eax + 0x19], 0
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx + ecx*4]
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
je 0x10097018
mov eax, ebx
call fcn.1002f280
jmp case.default.0x10093191
mov edx, dword [ecx + 0x24]
mov esi, dword [edx]
mov eax, dword [esi]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x18c], ebx
mov dx, word [ebx + 8]
mov eax, 0xbe01
and dx, ax
or dx, 1
mov word [ebx + 8], dx
mov edx, dword [ebp + 8]
mov ecx, dword [ecx + 0x24]
push edx
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x190]
push eax
mov eax, dword [edx + 0x2c]
push ecx
call eax
add esp, 0xc
push esi
push edi
mov dword [esp + 0x18], eax
call fcn.1002f100
mov eax, dword [esp + 0x1a8]
add esp, 8
test eax, eax
je 0x100970aa
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x4c]
mov eax, ebx
call fcn.1003f8f0
mov ecx, ebx
call fcn.10014640
test eax, eax
jne 0x10093bb1
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 0x19], 0
jne case.default.0x10093191
mov eax, dword [esi + 0x24]
mov ecx, dword [edi + 0x58]
mov ebx, dword [eax]
mov eax, dword [ebx]
and ecx, 0xfffffff7
or ecx, 4
mov dword [edi + 0x58], ecx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x24]
push edx
call eax
and dword [edi + 0x58], 0xfffffff3
add esp, 4
push ebx
push edi
mov dword [esp + 0x18], eax
call fcn.1002f100
add esp, 8
cmp dword [esp + 0x10], 0
jne case.0x10093191.16
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x10097135
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xf0]
test edx, edx
jne 0x1009765a
mov edi, ecx
mov esi, dword [edi + 0x124]
test esi, esi
je case.default.0x10093191
mov ebx, dword [esp + 0x94]
cmp ebx, dword [esp + 0x90]
jb case.default.0x10093191
mov ecx, dword [edi + 0x12c]
mov eax, ebx
div ecx
mov eax, dword [edi + 0x128]
push eax
sub ecx, edx
add ecx, ebx
mov dword [esp + 0x94], ecx
call esi
add esp, 4
test eax, eax
je case.default.0x10093191
mov dword [esp + 0x10], 9
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xa8]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
push eax
push ecx
push edx
push str.statement_aborts_at__d:___s___s
push edi
mov dword [esi + 0x50], edi
call sym.SQLite.Interop.dll_sqlite3_log
add esp, 0x14
push esi
call fcn.10085310
add esp, 4
cmp edi, 0xc0a
jne 0x100971de
mov eax, dword [esp + 0x14]
mov byte [eax + 0x41], 1
mov al, byte [esp + 0x5f]
mov esi, 1
test al, al
jbe 0x1009721f
mov edx, dword [esp + 0x14]
movzx edi, al
mov eax, dword [edx + 0x10]
dec edi
mov ecx, edi
shl ecx, 4
mov ecx, dword [ecx + eax + 0xc]
push ecx
call fcn.10042ff0
add esp, 4
cmp edi, esi
je 0x1009721f
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.10042ff0
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x94]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x20]
add dword [eax + 0x7c], edx
push eax
call fcn.10025120
mov ecx, dword [esp + 0x320]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10001180
add esp, 0x314
ret
mov ecx, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
mov esi, dword [ecx + 8]
lea edx, [ebp + ebp*4]
lea ebx, [ebx + edx*8]
mov ecx, 1
mov eax, ebx
call fcn.1003f8f0
mov dword [esp + 0x10], eax
test eax, eax
jne case.default.0x10093191
mov ecx, dword [ebx + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
push ecx
push esi
call edx
push esi
push edi
mov dword [esp + 0x20], eax
call fcn.1002f100
add esp, 0x10
and dword [edi + 0x58], 0xffffffdf
jmp case.default.0x10093191
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
cmp dword [eax + 0x34], 0
mov dword [esp + 0x58], eax
je case.default.0x10093191
mov edx, dword [esp + 0x14]
mov al, byte [edx + 0x45]
mov edx, dword [edi + 0xc]
mov byte [esp + 0x33], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
xor eax, eax
test ecx, ecx
jle 0x100972f3
mov dword [edx + eax*4], ebx
inc eax
add ebx, 0x28
cmp eax, ecx
jl 0x100972e8
mov al, byte [ebp + 3]
mov esi, dword [esp + 0x14]
mov byte [esi + 0x45], al
lea eax, [esp + 0x180]
push eax
push edx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, dword [esp + 0x44]
push ecx
call eax
mov edx, dword [esp + 0x48]
mov cl, byte [esp + 0x43]
push edx
mov ebx, eax
push edi
mov dword [esp + 0x28], ebx
mov byte [esi + 0x45], cl
call fcn.1002f100
add esp, 0x18
test ebx, ebx
jne 0x10097355
cmp dword [ebp + 4], ebx
je 0x10097355
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
cmp bl, 0x13
jne 0x10097393
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x10097393
mov al, byte [ebp + 3]
cmp al, 4
jne 0x10097377
mov dword [esp + 0x10], 0
jmp case.default.0x10093191
cmp al, 5
jne 0x10097388
mov eax, 2
mov byte [edi + 0x56], al
jmp case.default.0x10093191
movzx eax, al
mov byte [edi + 0x56], al
jmp case.default.0x10093191
inc dword [edi + 0x5c]
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + eax + 4]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x2c]
mov dword [esi], eax
mov dword [esi + 4], 0
jmp case.default.0x10093191
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov ebp, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
xor ebx, ebx
test ebp, ebp
je 0x100973e6
mov ecx, dword [eax + 4]
mov ebx, dword [ecx + 0x2c]
cmp ebx, ebp
jae 0x100973e6
mov ebx, ebp
call fcn.10025450
mov ecx, dword [esp + 0x1c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.default.0x10093191
mov eax, dword [ebp + 8]
test eax, eax
je 0x10097403
dec eax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x14]
cmp dword [edx + 0xac], 0
je case.default.0x10093191
test dword [edi + 0x58], 0x800
jne case.default.0x10093191
mov ebp, dword [ebp + 0x10]
mov ecx, ebp
test ebp, ebp
jne 0x10097428
mov ecx, dword [edi + 0xa8]
test ecx, ecx
je case.default.0x10093191
push edi
call fcn.10060730
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0xac]
mov esi, eax
mov eax, dword [edi + 0xb0]
add esp, 4
push esi
push eax
call ecx
add esp, 8
mov eax, esi
mov ecx, edi
call fcn.10025ff0
inc dword [esp + 0x18]
cmp dword [esp + 0x10], 0
jne 0x1009719c
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
jmp 0x10093130
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x50], edx
mov al, byte [ebp + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], ecx
test edx, edx
je 0x10097520
mov al, byte [ebp + 3]
test al, al
je 0x100974ce
movzx edx, al
mov eax, dword [edx*4 + 0x100b0c04]
test eax, eax
je 0x100974d0
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x100974d0
mov edi, dword [esp + 0x20]
push ecx
push eax
mov eax, dword [esp + 0x1c]
add edi, 0x2c
push str._s_constraint_failed:__s
call fcn.100302e0
add esp, 0xc
jmp 0x100974f8
xor eax, eax
mov edi, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
add edi, 0x2c
test ecx, ecx
je 0x100974e6
push ecx
push 0x100b5014
jmp 0x100974ec
push eax
push str._s_constraint_failed
mov eax, dword [esp + 0x1c]
call fcn.100302e0
add esp, 8
mov eax, dword [edi]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xa8]
mov ecx, dword [ebp + 4]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
push str.abort_at__d_in___s_:__s
push ecx
call sym.SQLite.Interop.dll_sqlite3_log
mov edi, dword [esp + 0x34]
add esp, 0x14
push edi
call fcn.10085310
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x10097585
mov dword [edi + 0x50], esi
jmp 0x1009721f
mov dword [esp + 0x10], 0x14
jmp 0x1009595c
mov edx, dword [esp + 0x18]
mov dword [edi + 0x4c], edx
mov byte [esi + 0x3f], 0
mov esi, 5
mov dword [edi + 0x50], esi
jmp 0x1009721f
test ebp, ebp
je 0x10097597
mov edi, dword [esp + 0x14]
push 0x204
call fcn.1007b1f0
mov esi, dword [esp + 0x18]
mov byte [edi + 0x3f], 1
mov edi, dword [esp + 0x24]
add esp, 4
call fcn.10026880
mov esi, dword [edi + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x1009721f
push 1
mov esi, edi
call fcn.10031870
mov esi, eax
add esp, 4
test esi, esi
jne 0x1009721f
mov esi, dword [esp + 0x14]
push edi
mov byte [esi + 0x3f], bl
call fcn.10085310
add esp, 4
cmp eax, 5
jne 0x10097580
mov eax, dword [esp + 0x18]
mov cl, 1
sub cl, bl
mov dword [edi + 0x4c], eax
mov byte [esi + 0x3f], cl
mov esi, 5
mov dword [edi + 0x50], esi
jmp 0x1009721f
mov dword [esp + 0x10], 8
jmp 0x1009595c
mov edx, dword [esp + 0x18]
mov esi, 5
mov dword [edi + 0x4c], edx
mov dword [edi + 0x50], esi
jmp 0x1009721f
mov eax, 0x11ee7
call fcn.10063100
mov dword [esp + 0x10], eax
jmp 0x1009595c
cmp dword [esp + 0x10], 0xc0a
je 0x1009719c
cmp dword [esp + 0x10], 0x204
je 0x10097639
mov ecx, dword [esp + 0x10]
mov eax, str.unknown_error
call fcn.10011ef0
jmp 0x1009763e
mov eax, str.abort_due_to_ROLLBACK
mov edi, dword [esp + 0x20]
push eax
push 0x100b5014
add edi, 0x2c
mov eax, edx
call fcn.100302e0
add esp, 8
jmp 0x1009719c
mov eax, 9
mov dword [edi + 0x50], eax
mov ecx, dword [str.interrupted]
mov dword [esp + 0x10], eax
mov eax, str.unknown_error
test ecx, ecx
je 0x10097677
mov eax, ecx
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push 0x100b5014
add edi, 0x2c
call fcn.100302e0
add esp, 8
jmp 0x1009719c