Function at 0x10053960
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2e8
mov eax, dword [0x10066ffc]
xor eax, esp
mov dword [esp + 0x2e4], eax
push ebx
mov ebx, dword [esp + 0x2f0]
mov eax, dword [ebx]
mov cl, byte [eax + 0x3e]
mov edx, dword [eax + 0x20]
push ebp
mov ebp, dword [ebx + 4]
push esi
mov esi, dword [ebx + 8]
push edi
xor edi, edi
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x24]
push ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x14], edi
mov byte [esp + 0x5b], 0
mov byte [esp + 0x47], cl
mov dword [esp + 0xb4], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x90], edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
call fcn.10011b00
add esp, 4
cmp dword [ebx + 0x50], 7
je 0x10057f1b
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x88], eax
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x14], eax
mov dword [ecx + 0x1c4], eax
mov ecx, dword [ecx + 0xf0]
test ecx, ecx
jne 0x10057f40
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x124], eax
je 0x10053a34
mov ecx, dword [edi + 0x12c]
mov eax, dword [ebx + 0x7c]
xor edx, edx
div ecx
sub ecx, edx
mov dword [esp + 0x88], ecx
mov eax, dword [ebx + 0x4c]
lea edx, [eax + eax*4]
mov eax, ebp
lea ebp, [eax + edx*4]
nop
cmp byte [edi + 0x41], 0
jne 0x10057f1b
mov cl, byte [ebp]
inc dword [esp + 0x84]
movzx eax, cl
lea edx, [eax - 1]
cmp edx, 0x9d
ja case.0x10053a66.62
jmp dword [edx*4 + 0x10058018]
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea ecx, [esi + ecx*8]
mov edx, 4
mov word [ecx + 8], dx
mov edx, ebp
sub edx, dword [esp + 0x38]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10057d01
mov ebp, dword [ebp + 4]
mov edx, dword [esp + 0x38]
lea eax, [ebp + ebp*4]
mov ecx, dword [esi + eax*8]
lea eax, [esi + eax*8]
lea ecx, [ecx + ecx*4]
lea ebp, [edx + ecx*4]
mov ecx, 0x80
mov word [eax + 8], cx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + edx*8]
dec eax
cdq
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [ebp + 8], 0
jne 0x10057d01
jmp case.0x10053a66.62
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov eax, dword [esi + ecx*8]
lea esi, [esi + ecx*8]
mov ecx, dword [esp + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 + 8]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*4 - 0x14]
mov ecx, 0x80
mov word [esi + 8], cx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x38]
lea edx, [eax + eax*4]
mov ecx, dword [esi + edx*8]
lea esi, [esi + edx*8]
mov eax, 4
mov word [esi + 8], ax
sub ebp, edi
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
lea ecx, [ecx + ecx*4]
mov dword [esi], eax
mov dword [esi + 4], edx
lea ebp, [edi + ecx*4]
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 1
je case.0x10053a66.62
mov ecx, ebp
sub ecx, dword [esp + 0x38]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebp + 4], 0
jne 0x10057d2f
mov edi, dword [ebx + 0xb0]
test edi, edi
je 0x10057d2f
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x14]
mov ecx, dword [ebx + 0x5c]
dec dword [ebx + 0xb8]
mov dword [ebx + 0xb0], eax
mov eax, esi
call fcn.10008280
call fcn.10047360
cmp dword [ebp + 8], 4
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
jne 0x10053bdc
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov ebp, dword [ebx + 4]
mov edx, dword [ebx + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edx
lea ebp, [ebp + eax*4]
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebp + 0x10]
fld qword [ecx]
fstp qword [eax]
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edi, dword [ebp + 0x10]
mov esi, eax
mov eax, edi
mov byte [ebp], 0x19
call fcn.10002170
cmp byte [esp + 0x43], 1
mov dword [ebp + 4], eax
je 0x10053ccc
push 0
push 1
push edi
or eax, 0xffffffff
mov ecx, esi
call fcn.100192b0
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, 0x12
je 0x10054507
movzx ecx, byte [esp + 0x43]
mov eax, esi
call fcn.10019200
test eax, eax
jne 0x10057f1b
mov edx, 0x800
or word [esi + 8], dx
mov dword [esi + 0x18], eax
cmp byte [ebp + 1], 0xff
jne 0x10053cbc
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10001ed0
mov byte [ebp + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
cmp edx, dword [eax + 0x58]
jg 0x10054507
mov esi, dword [esp + 0x3c]
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, 0xa02
mov word [eax + 8], cx
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp + 4]
mov dl, byte [esp + 0x43]
mov dword [eax + 0xc], ecx
mov byte [eax + 0xa], dl
cmp byte [ebp + 3], 0
je case.0x10053a66.62
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [esi + ecx*8]
or edx, dword [esi + ecx*8 + 4]
je case.0x10053a66.62
mov ecx, 0xa10
mov word [eax + 8], cx
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov esi, dword [ebp + 0xc]
sub esi, dword [ebp + 8]
mov edx, dword [ebp + 4]
neg edx
sbb edx, edx
and edx, 0x100
inc edx
movzx ebx, dx
mov edi, eax
mov word [edi + 8], bx
test esi, esi
jle case.0x10053a66.62
mov edi, edi
add edi, 0x28
mov eax, edi
call fcn.10007670
dec esi
mov word [edi + 8], bx
test esi, esi
jg 0x10053d60
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
mov cx, word [esi + eax*8 + 8]
lea eax, [esi + eax*8]
mov edx, 0xff7f
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov esi, eax
mov eax, dword [ebp + 0x10]
push 0
push 0
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.100192b0
mov cl, byte [esp + 0x4f]
add esp, 0xc
mov byte [esi + 0xa], cl
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x3c]
lea esi, [eax + edx*8 - 0x28]
mov ecx, esi
call fcn.10007760
test eax, eax
jne 0x10054507
mov eax, ebp
mov edx, ebx
call fcn.100089e0
push 0x800
push esi
push eax
call fcn.100077b0
add esp, 0xc
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea edi, [esi + ecx*8]
lea esi, [esi + edx*8]
push edi
mov eax, esi
call fcn.10007810
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x10053e3a
mov eax, esi
call fcn.10015d60
test eax, eax
jne 0x10057f1b
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x10053e15
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea edi, [esi + ecx*8]
lea esi, [esi + edx*8]
nop
push 0x1000
push edi
push esi
call fcn.100077b0
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x10053e89
mov eax, esi
call fcn.10015d60
test eax, eax
jne 0x10057f1b
mov ecx, ebx
dec ebx
test ecx, ecx
je case.0x10053a66.62
add esi, 0x28
add edi, 0x28
jmp 0x10053e60
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
push 0x1000
push eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edx, [esi + ecx*8]
push edx
call fcn.100077b0
add esp, 0xc
jmp case.0x10053a66.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x10053ef4
mov edx, dword [esp + 0x88]
cmp dword [esp + 0x84], edx
jb 0x10053ef4
mov ecx, dword [ecx + 0x128]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x10057ade
push 0
mov eax, ebx
call fcn.1001f110
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x10053a66.62
push 1
push ebx
call fcn.1003a230
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x10053a66.62
mov edx, dword [ebx + 0x48]
add edx, 2
or edx, 1
mov dword [ebx + 0x48], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor edi, edi
mov dword [ebx + 0x14], esi
cmp dword [ebp + 8], edi
jle 0x10053f6c
mov ecx, 0x1000
test word [esi + 8], cx
je 0x10053f5c
mov eax, esi
call fcn.10015d60
test eax, eax
jne 0x10057f1b
mov eax, esi
call fcn.100112c0
inc edi
add esi, 0x28
cmp edi, dword [ebp + 8]
jl 0x10053f42
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x41], 0
jne 0x10057f1b
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [ebx + 0x4c], ecx
mov edi, 0x64
jmp 0x10057fd7
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + edx*8]
lea edx, [eax + eax*4]
movzx eax, word [ecx + 8]
mov dword [esp + 0x18], ecx
mov cl, byte [edi + 8]
or cl, al
lea ebx, [esi + edx*8]
test cl, 1
je 0x10053fd7
mov eax, ebx
call fcn.10007670
jmp case.0x10053a66.62
test eax, 0x4000
je 0x10053fef
mov esi, dword [esp + 0x18]
call fcn.10011220
test eax, eax
jne 0x10057f1b
mov edx, 0x4000
test word [edi + 8], dx
je 0x10054009
mov esi, edi
call fcn.10011220
test eax, eax
jne 0x10057f1b
mov eax, dword [esp + 0x18]
test byte [eax + 8], 0x12
jne 0x1005402c
mov ecx, dword [esp + 0x43]
push 0
push ecx
mov esi, eax
call fcn.10019220
add esp, 8
test eax, eax
jne 0x10057f1b
test byte [edi + 8], 0x12
jne 0x1005404b
mov edx, dword [esp + 0x43]
push 0
push edx
mov esi, edi
call fcn.10019220
add esp, 8
test eax, eax
jne 0x10057f1b
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov ecx, edx
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x10054507
jl 0x10054074
cmp esi, eax
ja 0x10054507
xor eax, eax
cmp ebx, edi
sete al
push eax
lea eax, [esi + 2]
push ebx
call fcn.10011120
add esp, 8
test eax, eax
jne 0x10057f1b
mov cx, word [ebx + 8]
mov edx, 0xbe02
and cx, dx
or cx, 2
mov word [ebx + 8], cx
cmp ebx, edi
je 0x100540bc
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
add eax, dword [edi + 0xc]
push ecx
push edx
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebx + 0x10]
mov byte [esi + ecx], 0
mov edx, dword [ebx + 0x10]
mov cl, byte [esp + 0x4f]
mov byte [edx + esi + 1], 0
mov eax, 0x200
add esp, 0xc
or word [ebx + 8], ax
mov dword [ebx + 0xc], esi
mov byte [ebx + 0xa], cl
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea edi, [esi + edx*8]
mov eax, edi
call fcn.100089c0
movzx eax, ax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea ebx, [esi + ecx*8]
mov eax, ebx
call fcn.100089c0
movzx edx, ax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x1c], edx
mov dl, byte [ebx + 8]
or dl, byte [edi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [esp + 0x18], ecx
test dl, 1
jne 0x1005437a
mov al, byte [esp + 0x1c]
and al, byte [esp + 0x34]
test al, 4
je 0x1005427a
mov edx, dword [ebx + 4]
mov esi, dword [ebx]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x80], edx
movzx edx, byte [ebp]
add edx, 0xffffffa7
mov dword [esp + 0x7c], esi
mov byte [esp + 0x47], 1
cmp edx, 3
ja case.default.0x10054182
jmp dword [edx*4 + 0x10058290]
push ecx
push eax
lea eax, [esp + 0x84]
push eax
call fcn.10002e70
add esp, 0xc
test eax, eax
jne 0x1005427f
jmp 0x1005424d
push ecx
push eax
lea edx, [esp + 0x84]
call fcn.10002f10
add esp, 8
test eax, eax
jne 0x1005427f
jmp 0x1005424d
push ecx
push eax
lea ecx, [esp + 0x84]
push ecx
call fcn.10002f60
add esp, 0xc
test eax, eax
jne 0x1005427f
jmp 0x1005424d
mov edx, eax
or edx, ecx
je 0x1005437a
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x10054206
test esi, esi
jne 0x10054206
cmp dword [esp + 0x80], 0x80000000
je 0x1005427f
push ecx
push eax
mov eax, dword [esp + 0x88]
push eax
push esi
call fcn.10059970
jmp 0x10054242
mov edx, eax
or edx, ecx
je 0x1005437a
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x10054232
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x88]
push eax
push esi
call fcn.10059a20
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
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.0x10053a66.62
mov byte [esp + 0x47], 0
mov eax, edi
call fcn.100074d0
fstp qword [esp + 0x28]
mov eax, ebx
call fcn.100074d0
movzx eax, byte [ebp]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x1005429d
jmp dword [eax*4 + 0x100582a0]
fadd qword [esp + 0x28]
jmp 0x10054319
fsub qword [esp + 0x28]
jmp 0x10054319
fmul qword [esp + 0x28]
jmp 0x10054319
fldz
fld qword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x10054376
fdivp st(1)
jmp 0x10054319
fld qword [esp + 0x28]
call fcn.100598e5
mov edi, eax
mov ebx, edx
call fcn.100598e5
mov ecx, edi
or ecx, ebx
je 0x1005437a
mov ecx, edi
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x100542fb
mov edi, 1
xor ebx, ebx
push ebx
push edi
push edx
push eax
call fcn.10059a20
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], edx
fild qword [esp + 0x134]
sub esp, 8
fst qword [esp + 0x30]
fstp qword [esp]
call fcn.10002130
add esp, 8
test eax, eax
jne 0x1005437a
mov eax, dword [esp + 0x18]
fld qword [esp + 0x28]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0xbe08
and dx, cx
or dx, 8
mov word [eax + 8], dx
mov al, byte [esp + 0x1c]
or al, byte [esp + 0x34]
test al, 8
jne case.0x10053a66.62
cmp byte [esp + 0x47], 0
jne case.0x10053a66.62
mov esi, dword [esp + 0x18]
call fcn.10007520
jmp case.0x10053a66.62
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x18]
call fcn.10007670
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
test eax, eax
je case.0x10053a66.62
lea edx, [eax + eax*4]
push 0
push 0
lea eax, [esi + edx*8]
call fcn.100076f0
add esp, 8
jmp case.0x10053a66.62
movzx eax, byte [ebp + 3]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
call fcn.1000e2b0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x10057f1b
mov dword [ecx], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov esi, dword [esp + 0x3c]
mov edx, ebp
sub edx, dword [esp + 0x38]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + 0x28]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x1a], dl
mov byte [ebp + 1], 0xec
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x24
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
cmp dword [edi], eax
je 0x1005444d
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi], eax
js 0x1005444d
lea edx, [edi + ecx*4 + 0x1c]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x10054438
mov eax, dword [edi]
mov cx, word [eax + 8]
mov esi, dword [esp + 0x14]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [eax + 8], cx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov byte [edi + 0x19], 0
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
movzx ecx, byte [edi + 0x1a]
mov edx, dword [edi + 4]
mov edx, dword [edx + 0xc]
lea eax, [edi + 0x1c]
push eax
push ecx
push edi
call edx
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
add esp, 0xc
cmp byte [edi + 0x19], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
je 0x100544de
cmp dword [edi + 0x14], 0
je 0x100544cd
mov esi, dword [esp + 0x1c]
mov edx, dword [esi]
push edx
call sym.idmindex.dll_sqlite3_value_text
push eax
push 0x1006026c
mov edi, ebx
call fcn.1001edb0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x10], eax
mov edi, esi
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x10]
push ecx
push edx
push ebx
call fcn.10007bf0
add esp, 0xc
mov eax, dword [esp + 0x18]
test byte [eax + 8], 0x12
je case.0x10053a66.62
movzx ecx, byte [esp + 0x43]
mov eax, dword [edi]
call fcn.10019200
mov ecx, dword [edi]
call fcn.10007760
test eax, eax
je case.0x10053a66.62
mov ebx, dword [esp + 0x5c]
push str.string_or_blob_too_big
mov edi, ebx
call fcn.1001edb0
add esp, 4
mov dword [esp + 0x10], 0x12
jmp 0x10057f67
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea edi, [esi + ecx*8]
lea ecx, [esi + edx*8]
mov dl, byte [ecx + 8]
or dl, byte [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x18], eax
test dl, 1
je 0x1005455b
call fcn.10007670
jmp case.0x10053a66.62
call fcn.10007460
mov ecx, edi
mov esi, eax
mov ebx, edx
call fcn.10007460
mov edi, eax
mov al, byte [ebp]
cmp al, 0x55
jne 0x1005457d
and esi, edi
and ebx, edx
jmp 0x1005464d
cmp al, 0x56
jne 0x1005458a
or esi, edi
or ebx, edx
jmp 0x1005464d
mov ecx, edi
or ecx, edx
je 0x1005464d
test edx, edx
jg 0x100545c2
jl 0x1005459e
test edi, edi
jae 0x100545b7
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x100545c2
jg 0x100545b0
cmp edi, 0xffffffc0
jbe 0x100545c2
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x100545e3
jg 0x100545c2
cmp edi, 0x40
jb 0x100545e3
test ebx, ebx
jg 0x100545da
jl 0x100545cc
test esi, esi
jae 0x100545da
cmp al, 0x57
je 0x100545da
or eax, 0xffffffff
cdq
mov esi, eax
mov ebx, edx
jmp 0x1005464d
xor eax, eax
cdq
mov esi, eax
mov ebx, edx
jmp 0x1005464d
cmp al, 0x57
mov edx, ebx
mov ecx, edi
mov eax, esi
jne 0x10054602
call fcn.10059c20
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
jmp 0x1005463f
call fcn.10059c00
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
test ebx, ebx
jg 0x1005463f
jl 0x1005461f
test esi, esi
jae 0x1005463f
mov ecx, 0x40
sub ecx, edi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.10059c20
or dword [esp + 0xa0], eax
or dword [esp + 0xa4], edx
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x18]
mov dx, word [eax + 8]
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov dword [eax], esi
mov dword [eax + 4], ebx
mov word [eax + 8], dx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
lea esi, [eax + edx*8]
call fcn.10007590
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
movzx eax, word [esi + ecx*8 + 8]
lea esi, [esi + ecx*8]
test al, 4
jne 0x100546d1
mov edx, dword [esp + 0x43]
push edx
mov al, 0x43
mov ecx, esi
call fcn.10019a60
movzx eax, word [esi + 8]
add esp, 4
test al, 4
jne 0x100546d1
cmp dword [ebp + 8], 0
jne 0x10057d01
mov dword [esp + 0x10], 0x14
jmp 0x1005627d
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 4
lea esi, [esi + eax*8]
je case.0x10053a66.62
call fcn.100075c0
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov edx, 0x4000
test word [esi + 8], dx
je 0x10054732
call fcn.10011220
mov dl, byte [ebp + 8]
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x43]
push esi
call fcn.1001e930
add esp, 4
jmp case.0x10053a66.62
mov al, byte [esp + 0x43]
mov dl, byte [ebp + 8]
push esi
mov dword [esp + 0x14], 0
call fcn.1001e930
add esp, 4
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
movzx eax, word [ebx + 8]
lea edi, [esi + ecx*8]
movzx ecx, word [edi + 8]
movzx edx, ax
mov dword [esp + 0x18], ecx
or cl, dl
mov dword [esp + 0x20], edx
test cl, 1
je 0x100547db
mov al, byte [ebp + 3]
test al, al
jns 0x100547a7
test dl, 1
je 0x1005479d
mov eax, dword [esp + 0x18]
test al, 1
je 0x1005479d
test eax, 0x100
jne 0x1005479d
xor eax, eax
jmp 0x100548ed
mov eax, 1
jmp 0x100548ed
test al, 0x20
je 0x100547ce
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
mov cx, word [esi + eax*8 + 8]
lea esi, [esi + eax*8]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [esi + 8], cx
jmp case.0x10053a66.62
test al, 0x10
jne 0x10057d01
jmp case.0x10053a66.62
mov cl, byte [ebp + 3]
and cl, 0x47
cmp cl, 0x43
jl 0x10054816
and al, 0xe
cmp al, 2
jne 0x100547f8
push 0
mov eax, ebx
call fcn.100088d0
add esp, 4
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x10054891
push 0
mov eax, edi
call fcn.100088d0
add esp, 4
jmp 0x10054891
cmp cl, 0x42
jne 0x10054891
test al, 2
jne 0x10054854
test al, 0xc
je 0x10054854
mov ecx, dword [esp + 0x43]
push 1
push ecx
mov esi, ebx
call fcn.10019220
mov dx, word [ebx + 8]
xor dx, word [esp + 0x28]
mov esi, dword [esp + 0x44]
mov eax, 0x1ff
and dx, ax
add esp, 8
xor dx, word [ebx + 8]
movzx ecx, dx
mov dword [esp + 0x20], ecx
movzx eax, word [edi + 8]
test al, 2
jne 0x10054891
test al, 0xc
je 0x10054891
mov edx, dword [esp + 0x43]
push 1
push edx
mov esi, edi
call fcn.10019220
mov ax, word [edi + 8]
xor ax, word [esp + 0x20]
mov esi, dword [esp + 0x44]
mov ecx, 0x1ff
and ax, cx
add esp, 8
xor ax, word [edi + 8]
movzx edx, ax
mov dword [esp + 0x18], edx
mov eax, 0x4000
test word [ebx + 8], ax
je 0x100548af
mov esi, ebx
call fcn.10011220
and dword [esp + 0x20], 0xbfff
mov esi, dword [esp + 0x3c]
mov ecx, 0x4000
test word [edi + 8], cx
je 0x100548cd
mov esi, edi
call fcn.10011220
and dword [esp + 0x18], 0xbfff
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x41], 0
jne 0x10057f1b
mov eax, dword [ebp + 0x10]
push ebx
mov ecx, edi
call fcn.10019710
mov edx, dword [esp + 0x24]
add esp, 4
movzx ecx, byte [ebp]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x100548f9
jmp dword [ecx*4 + 0x100582b0]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x10054934
xor ecx, ecx
test eax, eax
setne cl
jmp 0x10054934
xor ecx, ecx
test eax, eax
setl cl
jmp 0x10054934
xor ecx, ecx
test eax, eax
setle cl
jmp 0x10054934
xor ecx, ecx
test eax, eax
setg cl
jmp 0x10054934
xor ecx, ecx
test eax, eax
setge cl
mov word [ebx + 8], dx
mov dx, word [esp + 0x18]
mov word [edi + 8], dx
test byte [ebp + 3], 0x20
mov eax, ecx
je 0x10054c28
mov ecx, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
mov dx, word [esi + ecx*8 + 8]
lea esi, [esi + ecx*8]
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov word [esi + 8], dx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x10053a66.62
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x8c], edx
jmp case.0x10053a66.62
test byte [ebp + 3], 1
jne 0x10054996
mov dword [esp + 0x8c], 0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], ecx
test eax, eax
jle 0x10054a35
mov edi, dword [esp + 0x1c]
add edi, 0x14
nop
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x100549d0
mov edx, dword [eax + ebx*4]
jmp 0x100549d2
mov edx, ebx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x10]
movzx ecx, byte [ecx + ebx]
mov eax, dword [edi]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x28]
add ecx, edx
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
push ecx
mov ecx, dword [esp + 0x50]
add ecx, edx
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*8]
call fcn.10019710
add esp, 4
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x10054a25
inc ebx
add edi, 4
cmp ebx, dword [esp + 0x70]
jl 0x100549c0
mov dword [esp + 0x8c], eax
jmp case.0x10053a66.62
cmp dword [esp + 0x30], 0
je 0x10054a35
neg eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x8c], 0
jmp case.0x10053a66.62
mov eax, dword [esp + 0xb0]
test eax, eax
jge 0x10054a58
mov ebp, dword [ebp + 4]
jmp 0x10057d04
jne 0x10054a6e
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x38]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
jmp case.0x10053a66.62
mov ebp, dword [ebp + 0xc]
mov edx, dword [esp + 0x38]
lea ecx, [ebp + ebp*4]
lea ebp, [edx + ecx*4 - 0x14]
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
lea ecx, [esi + eax*8]
je 0x10054a99
mov edi, 2
jmp 0x10054aab
call fcn.10007460
or eax, edx
je 0x10054aa9
mov edi, 1
jmp 0x10054aab
xor edi, edi
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 8], 1
lea ecx, [esi + ecx*8]
je 0x10054ac2
mov eax, 2
jmp 0x10054ad4
call fcn.10007460
or eax, edx
je 0x10054ad2
mov eax, 1
jmp 0x10054ad4
xor eax, eax
cmp byte [ebp], 0x48
jne 0x10054ae7
lea edx, [eax + edi*2]
movzx eax, byte [edi + edx + 0x1005d040]
jmp 0x10054af2
lea eax, [eax + edi*2]
movzx eax, byte [edi + eax + 0x1005d04c]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
cmp eax, 2
jne 0x10054b19
mov dx, word [esi + 8]
mov eax, 0xbe01
and dx, ax
or dx, 1
mov word [esi + 8], dx
jmp case.0x10053a66.62
mov cx, word [esi + 8]
cdq
mov dword [esi + 4], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov dword [esi], eax
mov word [esi + 8], cx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.10007670
test byte [edi + 8], 1
jne case.0x10053a66.62
mov edx, 4
mov ecx, edi
mov word [esi + 8], dx
call fcn.10007460
or eax, edx
jne 0x10054b7f
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x10053a66.62
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.10007670
test byte [edi + 8], 1
jne case.0x10053a66.62
mov edx, 4
mov ecx, edi
mov word [esi + 8], dx
call fcn.10007460
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x10053a66.62
mov eax, dword [ebx + 0xc8]
mov ecx, dword [ebp + 4]
add eax, ecx
cmp byte [eax], 0
jne 0x10057d01
mov byte [eax], 1
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 1
lea eax, [esi + edx*8]
je 0x10054bfe
mov eax, dword [ebp + 0xc]
jmp 0x10054c28
call fcn.100074d0
fcomp qword [0x10060080]
fnstsw ax
test ah, 0x44
jnp 0x10054c17
mov eax, 1
jmp 0x10054c19
xor eax, eax
cmp byte [ebp], 0x2e
jne 0x10054c28
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 1
jne 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
je 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], ecx
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x5c]
mov edx, dword [ebp + 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x38]
mov ebx, dword [ecx + edx*4]
mov eax, dword [ebx]
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x20], eax
mov eax, ebx
mov dword [esp + 0x50], edx
call fcn.10045fa0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
mov ecx, dword [ebx + 0x3c]
mov edx, dword [esp + 0x5c]
cmp ecx, dword [edx + 0x48]
je 0x10054dea
cmp byte [ebx + 0x19], al
je 0x10054cfb
cmp dword [esp + 0x20], eax
jne 0x10054ceb
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 0xc]
lea edi, [ebx + 0x40]
mov dword [ebx + 0x44], ecx
mov dword [edi], ecx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x9c], ecx
mov dword [ebx + 0x4c], edx
jmp 0x10054d73
mov esi, dword [esp + 0x18]
mov eax, esi
call fcn.10007670
jmp 0x1005508a
test byte [ebx + 0x1c], 4
mov esi, dword [esp + 0x20]
jne 0x10054d32
lea edi, [esp + 0x10c]
call fcn.10006ef0
mov eax, dword [esp + 0x20]
lea esi, [esp + 0x9c]
call fcn.10006f60
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 0x10c]
lea edi, [ebx + 0x40]
mov dword [edi], eax
jmp 0x10054d51
lea edi, [ebx + 0x40]
push edi
call fcn.10006f10
mov eax, dword [esp + 0x24]
add esp, 4
lea esi, [esp + 0x9c]
call fcn.10006f60
mov dword [ebx + 0x4c], eax
mov eax, dword [edi]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
ja 0x10054d63
mov dword [ebx + 0x44], eax
jmp 0x10054d66
mov dword [ebx + 0x44], ecx
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
ja 0x10054507
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0x48]
mov ecx, dword [ebx + 0x4c]
mov dword [ebx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x10054d94
movzx eax, al
mov dword [esp + 0x78], eax
mov ecx, 1
jmp 0x10054da4
lea esi, [esp + 0x78]
call fcn.10002d80
movzx ecx, al
mov eax, dword [esp + 0x78]
movzx ecx, cl
mov dword [ebx + 0x48], ecx
mov ecx, dword [esp + 0x50]
xor edx, edx
mov word [ebx + 0x16], dx
mov dword [ecx], eax
cmp eax, 0x18003
ja 0x10054dd4
cmp eax, dword [edi]
ja 0x10054dd4
cmp dword [esp + 0x9c], eax
jae 0x10054dfa
xor eax, eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], eax
jmp 0x10054dfa
push 0x12314
call fcn.10026140
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
movzx edx, word [ebx + 0x16]
mov edi, dword [esp + 0x48]
cmp edx, edi
jg 0x10054fba
mov eax, dword [ebx + 0x48]
mov ecx, dword [esp + 0x50]
cmp eax, dword [ecx]
jae 0x10054f87
mov edx, dword [ebx + 0x4c]
test edx, edx
jne 0x10054e98
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov eax, dword [ebx + 0x1c]
shr eax, 2
not eax
lea edx, [esp + 0x164]
push edx
mov edx, dword [esp + 0x54]
and eax, 1
push eax
mov eax, dword [edx]
push 0
push ecx
call fcn.10045690
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x10053a66.62
mov edx, dword [esp + 0x174]
movzx edi, word [ebx + 0x16]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + edi*4]
mov esi, dword [ebx + 0x48]
mov eax, dword [eax]
add esi, edx
add eax, edx
mov dword [esp + 0x1c], eax
lea eax, [ebx + edi*4 + 0x54]
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x10054ed8
movzx eax, al
inc esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x24], esi
jmp 0x10054ef8
mov ecx, dword [esp + 0x24]
lea esi, [esp + 0x74]
call fcn.10002d80
movzx ecx, al
add dword [esp + 0x24], ecx
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x34]
mov dword [edx], eax
call fcn.10007d40
add ecx, eax
mov dword [esp + 0x78], ecx
cmp ecx, eax
jb 0x10054f28
add dword [esp + 0x34], 4
mov eax, dword [esp + 0x50]
inc edi
cmp edi, dword [esp + 0x48]
mov dword [eax + edi*4], ecx
jg 0x10054f2d
cmp esi, dword [esp + 0x1c]
jb 0x10054ec4
jmp 0x10054f2d
mov esi, dword [esp + 0x1c]
inc esi
mov edx, esi
sub edx, dword [esp + 0x30]
cmp dword [ebx + 0x4c], 0
mov word [ebx + 0x16], di
mov dword [ebx + 0x48], edx
jne 0x10054f5d
lea eax, [esp + 0x164]
call fcn.100073e0
mov ecx, dword [esp + 0x78]
mov eax, 1
mov word [esp + 0x16c], ax
mov eax, dword [esp + 0x1c]
cmp esi, eax
jb 0x10054f6c
ja 0x10054f71
cmp ecx, dword [ebx + 0x40]
jne 0x10054f71
cmp ecx, dword [ebx + 0x40]
jbe 0x10054f87
push 0x12368
call fcn.10026140
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
movzx ecx, word [ebx + 0x16]
cmp ecx, dword [esp + 0x48]
jg 0x10054fb6
cmp byte [ebp + 1], 0xf8
mov esi, dword [esp + 0x18]
jne 0x10054cef
mov edx, dword [ebp + 0x10]
push 0x800
push edx
push esi
call fcn.100077b0
add esp, 0xc
jmp 0x1005508a
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x18]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10054fd0
mov eax, esi
call fcn.10007670
mov ecx, dword [ebx + 0x44]
mov edx, dword [esp + 0x50]
mov eax, dword [ebx + edi*4 + 0x54]
mov dword [esp + 0x74], eax
cmp ecx, dword [edx + edi*4 + 4]
jb 0x10054ffb
mov ecx, dword [ebx + 0x4c]
add ecx, dword [edx + edi*4]
push esi
mov edx, eax
call fcn.10007e50
add esp, 4
jmp 0x10055083
mov cl, byte [ebp + 3]
test cl, 0xc0
je 0x10055010
cmp eax, 0xc
jb 0x1005500c
test al, 1
je 0x10055019
test cl, cl
js 0x10055019
call fcn.10007d40
test eax, eax
jne 0x1005503c
mov edx, dword [esp + 0x74]
mov eax, 0xd
cmp eax, edx
sbb ecx, ecx
not ecx
lea eax, [esp + 0x10c]
push esi
and ecx, eax
call fcn.10007e50
add esp, 4
jmp 0x10055083
mov ecx, dword [ebx + 0x1c]
mov edx, dword [edx + edi*4]
shr ecx, 2
not ecx
push esi
and ecx, 1
push ecx
mov ecx, dword [esp + 0x28]
push edx
push ecx
call fcn.10045690
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x10053a66.62
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x74]
mov ecx, dword [esi + 0x10]
push esi
call fcn.10007e50
mov edx, 0xefff
add esp, 4
and word [esi + 8], dx
mov al, byte [esp + 0x43]
mov byte [esi + 0xa], al
movzx edi, word [esi + 8]
test edi, 0x1000
je case.0x10053a66.62
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 0x10]
test ebx, ebx
je case.0x10053a66.62
mov esi, dword [ecx + 0xc]
lea eax, [esi + 2]
and edi, 0x12
call fcn.10011200
test eax, eax
jne 0x10057f1b
push esi
push ebx
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + 0x10]
push edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x10]
mov byte [esi + eax], 0
mov ecx, dword [ebx + 0x10]
add esp, 0xc
or edi, 0x200
mov byte [ecx + esi + 1], 0
mov word [ebx + 8], di
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov al, byte [edi]
lea esi, [esi + edx*8]
test al, al
je case.0x10053a66.62
mov ebx, dword [esp + 0x43]
lea esp, [esp]
push ebx
mov ecx, esi
inc edi
call fcn.10019a60
mov al, byte [edi]
add esp, 4
add esi, 0x28
test al, al
jne 0x10055110
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x1c], ecx
lea ecx, [ecx + eax*8 - 0x28]
movzx eax, byte [ebx + 0x57]
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], ecx
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x18], eax
cmp edi, edx
je 0x100551a6
mov esi, dword [esp + 0x1c]
mov al, byte [edi]
mov ebx, dword [esp + 0x43]
lea ecx, [ecx]
push ebx
mov ecx, esi
call fcn.10019a60
mov al, byte [edi + 1]
inc edi
add esp, 4
add esi, 0x28
test al, al
jne 0x10055190
mov esi, dword [esp + 0x24]
lea ebx, [ebx]
mov ecx, dword [esp + 0x28]
push ecx
mov edx, esi
call fcn.10007c60
mov edi, eax
add esp, 4
mov dword [esi + 0x1c], edi
call fcn.10007d40
mov edx, 0x4000
mov ebx, eax
mov dword [esp + 0x4c], ebx
test word [esi + 8], dx
je 0x10055212
mov eax, dword [esp + 0xa8]
or eax, dword [esp + 0xac]
je 0x100551f9
call fcn.10011220
test eax, eax
jne 0x10057f1b
jmp 0x10055212
mov ecx, dword [esi]
mov ebx, dword [esp + 0x4c]
mov eax, ecx
cdq
add dword [esp + 0x90], eax
adc dword [esp + 0x94], edx
sub ebx, ecx
mov eax, ebx
cdq
add dword [esp + 0xa8], eax
adc dword [esp + 0xac], edx
cmp edi, 0x7f
ja 0x1005522f
mov eax, 1
jmp 0x1005523a
push 0
push edi
call fcn.10002e00
add esp, 8
add dword [esp + 0x20], eax
sub esi, 0x28
cmp esi, dword [esp + 0x1c]
jae 0x100551b0
mov esi, dword [esp + 0x20]
cmp esi, 0x7e
jle 0x10055277
mov eax, esi
cdq
push edx
push eax
call fcn.10002e00
mov edi, eax
add esi, edi
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x30], esi
call fcn.10002e00
add esp, 0x10
cmp edi, eax
jge 0x1005527c
inc esi
mov dword [esp + 0x20], esi
mov eax, esi
cdq
mov ebx, eax
mov ecx, edx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x58]
mov esi, ebx
add esi, dword [esp + 0xa8]
mov dword [esp + 0x1f4], ecx
adc ecx, dword [esp + 0xac]
mov edi, esi
add edi, dword [esp + 0x90]
cdq
adc ecx, dword [esp + 0x94]
mov dword [esp + 0x1c0], esi
cmp ecx, edx
jg 0x10054507
jl 0x100552cb
cmp edi, eax
ja 0x10054507
mov eax, esi
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.10011200
test eax, eax
jne 0x10057f1b
mov ecx, dword [esp + 0x20]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x34], esi
cmp ecx, 0x80
jae 0x100552fc
mov byte [esi], cl
mov eax, 1
jmp 0x10055311
mov eax, dword [esp + 0x1f4]
push eax
push ebx
call fcn.10002bb0
mov ecx, dword [esp + 0x28]
add esp, 8
mov ebx, dword [esp + 0x1c]
movzx edx, al
mov dword [esp + 0x48], edx
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], ecx
cmp ecx, 0x80
jae 0x10055341
mov edx, dword [esp + 0x34]
mov byte [eax + edx], cl
mov eax, 1
jmp 0x10055357
push 0
push ecx
mov ecx, dword [esp + 0x3c]
lea esi, [eax + ecx]
call fcn.10002bb0
mov ecx, dword [esp + 0x30]
add esp, 8
mov esi, dword [esp + 0x30]
movzx edx, al
mov eax, dword [esp + 0x34]
add dword [esp + 0x48], edx
lea edi, [esi + eax]
mov eax, ebx
call fcn.10007d60
add esi, eax
add ebx, 0x28
mov dword [esp + 0x30], esi
cmp ebx, dword [esp + 0x24]
jbe 0x10055320
mov ecx, dword [esp + 0x1c0]
mov eax, dword [esp + 0x18]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x90]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [esp + 0x94]
je 0x100553b3
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov byte [eax + 0xa], 1
jmp case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
mov esi, dword [ecx]
xor eax, eax
lea edx, [esp + 0xcc]
push edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
call fcn.10040760
mov dword [esp + 0x14], eax
add esp, 4
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], edi
test eax, eax
jne 0x100554df
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x9c], eax
jle 0x10055438
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x1005554d
mov eax, edi
call fcn.10002170
mov ebx, eax
mov eax, dword [esi + 0x1f4]
add eax, dword [esi + 0x1f0]
push eax
push 0
push esi
call fcn.1000bc60
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
lea ecx, [ebx + 0x21]
push eax
push ecx
call fcn.1000e2b0
mov esi, eax
add esp, 8
test esi, esi
je case.0x10053a66.62
inc ebx
push ebx
lea eax, [esi + 0x20]
push edi
push eax
mov dword [esi], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax + 0x3f], 0
je 0x100554a1
mov byte [eax + 0x3f], 0
mov byte [eax + 0x46], 1
jmp 0x100554a7
inc dword [eax + 0x1f0]
mov edx, dword [eax + 0x1e8]
mov dword [esi + 0x18], edx
mov ecx, dword [eax + 0x1f8]
mov dword [eax + 0x1e8], esi
mov dword [esi + 8], ecx
mov edx, dword [eax + 0x1fc]
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 0x200]
mov dword [esi + 0x10], ecx
mov edx, dword [eax + 0x204]
mov dword [esi + 0x14], edx
jmp case.0x10053a66.62
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 0x1e8]
mov dword [esp + 0x50], 0
test esi, esi
je 0x10055514
mov eax, dword [esp + 0x30]
mov ecx, dword [esi]
push eax
push ecx
call sym.idmindex.dll_sqlite3_stricmp
add esp, 8
test eax, eax
je 0x10055535
mov esi, dword [esi + 0x18]
inc dword [esp + 0x50]
test esi, esi
jne 0x100554f5
mov edx, dword [esp + 0x30]
push edx
push str.no_such_savepoint:__s
mov edi, ebx
call fcn.1001edb0
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x10053a66.62
mov eax, dword [esp + 0x48]
xor ecx, ecx
cmp dword [edi + 0x9c], ecx
jle 0x10055564
cmp eax, 1
jne 0x10055564
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edi, ebx
call fcn.1001edb0
add esp, 4
mov dword [esp + 0x10], 5
jmp case.0x10053a66.62
cmp dword [esi + 0x18], ecx
jne 0x100555c3
cmp byte [edi + 0x46], 0
je 0x100555c3
mov dword [esp + 0x34], 1
cmp eax, 1
jne 0x100555c7
push eax
mov eax, ebx
call fcn.1001f110
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
jne 0x10057fd7
mov eax, dword [esp + 0x14]
mov edi, ebx
mov byte [eax + 0x3f], 1
call fcn.1004b220
mov ecx, dword [esp + 0x14]
cmp eax, 5
je 0x10057dd5
mov byte [ecx + 0x46], 0
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x10], edx
mov edi, ecx
jmp 0x100556a5
mov dword [esp + 0x34], ecx
mov edx, dword [edi + 0x1f0]
sub edx, dword [esp + 0x50]
dec edx
mov dword [esp + 0x50], edx
cmp eax, 2
jne 0x1005563d
mov eax, dword [edi + 0x18]
shr eax, 1
and eax, 1
cmp dword [edi + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
jle 0x10055641
xor eax, eax
cmp dword [esp + 0x1c], eax
sete al
xor ebx, ebx
mov dword [esp + 0x28], eax
nop
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 0x10]
mov eax, dword [ebx + edx + 4]
push ecx
push 0x204
push eax
call fcn.1003ee00
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
inc eax
add ebx, 0x10
cmp eax, dword [edi + 0x14]
mov dword [esp + 0x24], eax
jl 0x10055600
jmp 0x10055641
mov dword [esp + 0x1c], ecx
cmp dword [edi + 0x14], 0
mov dword [esp + 0x24], 0
jle 0x1005568c
xor ebx, ebx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov eax, dword [edi + 0x10]
push ecx
mov ecx, dword [ebx + eax + 4]
push edx
push ecx
call fcn.1003a160
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
inc eax
add ebx, 0x10
cmp eax, dword [edi + 0x14]
mov dword [esp + 0x24], eax
jl 0x10055651
cmp dword [esp + 0x1c], 0
je 0x100556a5
mov eax, edi
call fcn.100082a0
mov eax, edi
call fcn.1001a560
or dword [edi + 0x18], 2
cmp dword [edi + 0x1e8], esi
je 0x100556d4
or ebx, 0xffffffff
mov edx, dword [edi + 0x1e8]
mov eax, dword [edx + 0x18]
mov ecx, edi
mov dword [edi + 0x1e8], eax
call fcn.10001ed0
add dword [edi + 0x1f0], ebx
cmp dword [edi + 0x1e8], esi
jne 0x100556b0
mov ebx, dword [esp + 0x48]
cmp ebx, 1
jne 0x10055702
mov ecx, dword [esi + 0x18]
mov dword [edi + 0x1e8], ecx
mov edx, esi
mov ecx, edi
call fcn.10001ed0
cmp dword [esp + 0x34], 0
jne case.0x10053a66.62
dec dword [edi + 0x1f0]
jmp 0x10055736
cmp dword [esp + 0x34], 0
mov edx, dword [esi + 8]
mov dword [edi + 0x1f8], edx
mov eax, dword [esi + 0xc]
mov dword [edi + 0x1fc], eax
mov ecx, dword [esi + 0x10]
mov dword [edi + 0x200], ecx
mov edx, dword [esi + 0x14]
mov dword [edi + 0x204], edx
je 0x10055736
cmp ebx, 2
jne case.0x10053a66.62
mov eax, dword [esp + 0x50]
push eax
push ebx
push edi
call fcn.1000bc60
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
test eax, eax
je 0x10055784
cmp byte [esi + 0x3f], 0
jne 0x10055784
test ecx, ecx
jne 0x10055784
cmp dword [esi + 0x9c], ecx
jle 0x10055784
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x1005554d
movzx edx, byte [esi + 0x3f]
cmp eax, edx
jne 0x10057dfe
test eax, eax
jne 0x1005579b
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x100557a9
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x100557a9
mov eax, str.cannot_commit___no_transaction_is_active
push eax
mov edi, ebx
call fcn.1001edb0
add esp, 4
mov dword [esp + 0x10], 1
jmp case.0x10053a66.62
mov eax, dword [ebp + 8]
test eax, eax
je 0x100557d9
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x18], 0x2000000
jne 0x10057e97
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10]
shl edx, 4
mov esi, dword [edx + ecx + 4]
test esi, esi
je 0x100558de
push eax
push esi
call fcn.1003b170
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, 5
je 0x10057ea4
test eax, eax
jne 0x1005627d
cmp dword [ebp + 8], eax
je 0x100558af
test byte [ebx + 0x58], 0x20
je 0x100558af
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x3f], al
je 0x1005583a
cmp dword [edi + 0x98], 1
jle 0x100558af
cmp dword [ebx + 0x68], 0
jne 0x10055857
inc dword [edi + 0x1f4]
mov eax, dword [edi + 0x1f4]
mov edx, dword [edi + 0x1f0]
add edx, eax
mov dword [ebx + 0x68], edx
mov eax, dword [ebx + 0x68]
dec eax
push eax
push 0
push edi
call fcn.1000bc60
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005587f
mov ecx, dword [ebx + 0x68]
push ecx
call fcn.10010f60
add esp, 4
mov dword [esp + 0x10], eax
mov edx, dword [edi + 0x1f8]
mov dword [ebx + 0x98], edx
mov eax, dword [edi + 0x1fc]
mov dword [ebx + 0x9c], eax
mov ecx, dword [edi + 0x200]
mov dword [ebx + 0xa0], ecx
mov edx, dword [edi + 0x204]
mov dword [ebx + 0xa4], edx
lea eax, [esp + 0xc8]
push eax
push 1
call fcn.10011030
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov esi, dword [esp + 0xd0]
add esp, 8
shl ecx, 4
mov ecx, dword [ecx + eax + 0xc]
mov eax, dword [ecx + 4]
jmp 0x100558e9
xor esi, esi
mov dword [esp + 0xc8], esi
xor eax, eax
cmp byte [ebp + 3], 0
je case.0x10053a66.62
cmp esi, dword [ebp + 0xc]
jne 0x10055901
cmp eax, dword [ebp + 0x10]
je case.0x10053a66.62
mov edi, dword [esp + 0x14]
mov edx, dword [ebx + 0x2c]
mov ecx, edi
call fcn.10001ed0
push str.database_schema_has_changed
push edi
call fcn.1000e430
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x10]
mov edx, eax
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
add esp, 8
cmp dword [edx], esi
je 0x1005593a
mov esi, eax
call fcn.1001a530
or dword [ebx + 0x58], 8
mov dword [esp + 0x10], 0x11
jmp case.0x10053a66.62
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
lea eax, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + 0x10]
shl edx, 4
mov esi, dword [edx + ecx + 4]
call fcn.10011030
add esp, 8
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, eax
mov eax, dword [esp + 0xfc]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x10053a66.62
mov edi, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
shl edi, 4
add edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [esp + 0x30], edi
call fcn.10007590
mov edx, dword [esi]
mov eax, dword [ebp + 8]
mov edi, dword [edi + 4]
push edx
push eax
call fcn.10037f30
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 1
jne 0x100559e3
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0x18], 2
jmp 0x100559f4
cmp eax, 2
jne 0x100559f4
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0xc]
mov al, byte [esi]
mov byte [edx + 0x4c], al
cmp dword [ebp + 4], 1
jne case.0x10053a66.62
mov eax, dword [esp + 0x14]
call fcn.100082a0
and dword [ebx + 0x58], 0xfffffff7
jmp case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov edi, dword [eax + edx*4]
test edi, edi
je case.0x10053a66.54
mov edx, dword [edi + 0x20]
cmp edx, dword [ebp + 8]
je 0x10055b26
test byte [ebx + 0x58], 8
je 0x10055a3c
mov dword [esp + 0x10], 0x204
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x14]
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], eax
shl eax, 4
add eax, dword [edx + 0x10]
xor edi, edi
mov edx, dword [eax + 4]
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], edx
cmp cl, 0x37
jne 0x10055a7a
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
mov dword [esp + 0x1c], 1
cmp al, byte [ebx + 0x57]
jae 0x10055a82
mov byte [ebx + 0x57], al
jmp 0x10055a82
mov dword [esp + 0x1c], 0
test byte [ebp + 3], 4
je 0x10055aa2
mov edx, dword [esp + 0x3c]
lea ecx, [esi + esi*4]
lea esi, [edx + ecx*8]
call fcn.10007590
mov esi, dword [esi]
cmp esi, 2
jl 0x10057ec9
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x10055abc
mov eax, dword [ebp + 0x10]
movzx edi, word [eax + 8]
mov dword [esp + 0x30], eax
movzx eax, word [eax + 6]
add edi, eax
jmp 0x10055ac3
cmp al, 0xf2
jne 0x10055ac3
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
mov edx, dword [ebp + 4]
push 1
push ecx
push edi
push edx
mov edi, ebx
call fcn.100473c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x10057f1b
mov eax, dword [edi]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
or dword [edi + 0x1c], 8
push eax
mov dword [edi + 0x20], esi
push ebx
mov eax, esi
mov esi, dword [esp + 0x54]
push ecx
mov byte [edi + 0x19], 1
call fcn.100288c0
xor edx, edx
add esp, 0xc
mov dword [edi + 8], ebx
cmp byte [ebp + 1], 0xfa
mov dword [esp + 0x10], eax
setne dl
add edx, edx
add edx, edx
xor edx, dword [edi + 0x1c]
and edx, 4
xor dword [edi + 0x1c], edx
movzx eax, byte [ebp + 3]
mov ecx, dword [edi]
and eax, 3
push eax
call fcn.10007180
add esp, 4
jmp case.0x10053a66.62
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push ecx
push edx
mov edi, ebx
call fcn.100473c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x10057f1b
or dword [edi + 0x1c], 1
mov byte [edi + 0x19], 1
movzx eax, byte [ebp + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
push 0
lea ebx, [edi + 4]
push ecx
mov ecx, ebx
call fcn.1003a910
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10055c1f
mov edx, dword [ebx]
push 1
push edx
call fcn.1003b170
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10055c1f
mov eax, dword [ebp + 0x10]
mov esi, dword [ebx]
mov dword [esp + 0x28], eax
test eax, eax
je 0x10055c03
movzx eax, byte [ebp + 3]
or eax, 2
push eax
lea ecx, [esp + 0xec]
push ecx
call fcn.10044e30
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10055bfd
mov edx, dword [edi]
mov eax, dword [esp + 0x28]
mov esi, dword [ebx]
push edx
push eax
mov dword [edi + 8], eax
mov eax, dword [esp + 0xf0]
push 1
call fcn.100288c0
add esp, 0xc
mov dword [esp + 0x10], eax
and dword [edi + 0x1c], 0xfffffffb
jmp 0x10055c1f
mov eax, dword [edi]
push eax
push 0
push 1
mov eax, 1
call fcn.100288c0
add esp, 0xc
or dword [edi + 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 [edi + 0x1c]
and ecx, 8
xor dword [edi + 0x1c], ecx
jmp case.0x10053a66.62
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
mov edi, ebx
call fcn.100473c0
add esp, 0x10
test eax, eax
je 0x10057f1b
mov ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.10016430
add esp, 0xc
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov eax, dword [edx + ecx*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
je 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
push 0
push 0xffffffffffffffff
push eax
push ecx
mov edi, ebx
call fcn.100473c0
add esp, 0x10
test eax, eax
je 0x10057f1b
mov byte [eax + 0x19], 1
mov edx, dword [ebp + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], edx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov ecx, dword [ecx + eax*4]
mov eax, ebx
call fcn.100472d0
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov dword [eax + edx*4], 0
jmp case.0x10053a66.62
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 4]
mov edi, dword [edx + ecx*4]
test byte [edi + 0x1c], 4
mov ebx, eax
mov byte [edi + 0x19], 0
je 0x10055db4
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
mov cl, byte [esi + eax*8 + 8]
lea esi, [esi + eax*8]
and cl, 0xe
cmp cl, 2
jne 0x10055d36
push 0
mov eax, esi
call fcn.100088d0
add esp, 4
mov ecx, esi
call fcn.10007460
mov dword [esp + 0xb8], eax
movzx eax, word [esi + 8]
mov dword [esp + 0xbc], edx
test al, 4
jne 0x10055d84
test al, 8
je 0x10057d01
fild qword [esp + 0xb8]
fcom qword [esi]
fnstsw ax
test ah, 0x41
jne 0x10055d75
fstp st(0)
test bl, 1
jne 0x10055d84
dec ebx
jmp 0x10055d84
fcomp qword [esi]
fnstsw ax
test ah, 5
jp 0x10055d84
test bl, 1
je 0x10055d84
inc ebx
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
mov ecx, dword [edi]
lea edx, [esp + 0x58]
push edx
push 0
push eax
push esi
push 0
push ecx
call fcn.1003f170
mov edx, dword [esp + 0xd4]
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], edx
jmp 0x10055e19
mov eax, dword [edi + 8]
mov cx, word [ebp + 0x10]
lea edx, [ebx - 1]
mov dword [esp + 0x1c8], eax
test dl, 1
sete al
mov word [esp + 0x1cc], cx
mov edx, 0x4000
lea eax, [eax + eax - 1]
mov byte [esp + 0x1ce], al
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov dword [esp + 0x1d0], esi
test word [esi + 8], dx
je 0x10055dfe
call fcn.10011220
mov edx, dword [edi]
lea eax, [esp + 0x58]
push eax
push 0
push 0
push 0
lea ecx, [esp + 0x1d8]
push ecx
push edx
call fcn.1003f170
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
xor esi, esi
cmp ebx, 0x41
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], esi
mov eax, dword [esp + 0x58]
jl 0x10055e61
cmp eax, esi
jl 0x10055e4e
jne 0x10055e45
cmp ebx, 0x42
je 0x10055e4e
mov dword [esp + 0x58], esi
jmp case.0x10053a66.62
lea eax, [esp + 0x58]
mov dword [esp + 0x58], esi
mov ecx, dword [edi]
push eax
push ecx
call fcn.10044650
jmp 0x10055e8a
cmp eax, esi
jg 0x10055e79
jne 0x10055e6c
cmp ebx, 0x3f
je 0x10055e79
mov ecx, dword [edi]
call fcn.10006f70
mov dword [esp + 0x58], eax
jmp 0x10055e9b
lea edx, [esp + 0x58]
mov dword [esp + 0x58], esi
mov eax, dword [edi]
push edx
push eax
call fcn.100447b0
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x1005627d
xor esi, esi
cmp dword [esp + 0x58], esi
jne 0x10057d01
jmp case.0x10053a66.62
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov edi, dword [edx + ecx*4]
mov byte [edi + 0x19], 0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10007460
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov byte [edi + 0x1a], 1
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov ebx, dword [edx + ecx*4]
xor edi, edi
cmp dword [ebp + 0x10], edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x30], edi
jle 0x10055f5c
mov ecx, dword [ebx + 8]
mov ax, word [ebp + 0x10]
xor edx, edx
mov dword [esp + 0x1ac], ecx
mov word [esp + 0x1b0], ax
mov dword [esp + 0x1b4], esi
cmp dx, ax
jae 0x10055f53
mov dword [esp + 0x1c], edi
lea ecx, [ecx]
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1c]
lea esi, [ecx + edx]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x10055f46
call fcn.10011220
mov ax, word [esp + 0x1b0]
add dword [esp + 0x1c], 0x28
movzx edx, ax
inc edi
cmp edi, edx
jl 0x10055f20
lea edi, [esp + 0x1ac]
jmp 0x10055fa7
mov edi, dword [ebx + 8]
lea eax, [esp + 0x30]
push eax
push 0xbf
lea edx, [esp + 0x23c]
call fcn.10011c50
mov edi, eax
add esp, 8
test edi, edi
je 0x10057f1b
mov ecx, 0x4000
test word [esi + 8], cx
je 0x10055f92
call fcn.10011220
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx + 8]
push edi
push edx
push eax
push ecx
call fcn.10007fd0
add esp, 0x10
mov byte [edi + 6], 0
xor esi, esi
cmp byte [ebp], 0x44
jne 0x10055fdb
xor edx, edx
xor ecx, ecx
cmp dx, word [edi + 4]
jae 0x10055fdb
mov eax, dword [edi + 8]
add eax, 8
test byte [eax], 1
jne 0x10055fd6
movzx edx, word [edi + 4]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10055fc3
jmp 0x10055fdb
mov esi, 1
mov ecx, dword [ebx]
lea eax, [esp + 0xec]
push eax
push 0
push 0
push 0
push edi
push ecx
call fcn.1003f170
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
mov edi, eax
add esp, 0x18
mov dword [esp + 0x10], edi
call fcn.10001ed0
test edi, edi
jne case.0x10053a66.62
mov ecx, dword [esp + 0xec]
xor eax, eax
test ecx, ecx
sete al
mov dl, 1
sub dl, al
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0x19], dl
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], edi
cmp byte [ebp], 0x46
jne 0x10056042
test eax, eax
jne 0x10057d01
jmp case.0x10053a66.62
test esi, esi
jne 0x10057d01
test eax, eax
je 0x10057d01
jmp case.0x10053a66.62
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 4]
mov edi, dword [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi]
lea eax, [eax + eax*4]
mov ebx, dword [esi + eax*8]
mov esi, dword [esi + eax*8 + 4]
lea edx, [esp + 0x50]
push edx
push 0
push esi
push ebx
push 0
push ecx
mov dword [esp + 0x68], 0
call fcn.1003f170
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x68]
add esp, 0x18
mov dword [edi + 0x30], ebx
mov dword [edi + 0x34], esi
mov byte [edi + 0x19], 0
mov dword [edi + 0x3c], 0
mov byte [edi + 0x1a], 0
mov dword [edi + 0xc], eax
test eax, eax
jne 0x10057d01
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 4]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.0x10053a66.62
xor edi, edi
mov eax, ebp
mov edx, ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x48], edi
call fcn.100089e0
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edx + ecx*4]
test byte [eax + 0x1c], 2
mov dword [esp + 0x24], eax
jne 0x10056184
mov eax, dword [eax]
lea edi, [esp + 0x48]
call fcn.1003f120
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
cmp dword [esp + 0x48], eax
je 0x10056146
mov dword [esp + 0x60], 1
xor edi, edi
jmp 0x10056180
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
lea edi, [esp + 0x60]
call fcn.10006ef0
mov edi, dword [esp + 0x64]
cmp edi, 0x7fffffff
mov dword [esp + 0x10], eax
jl 0x10056178
jg 0x1005616e
cmp dword [esp + 0x60], 0xffffffff
jb 0x10056178
mov eax, dword [esp + 0x24]
or dword [eax + 0x1c], 2
jmp 0x10056184
add dword [esp + 0x60], 1
adc edi, 0
mov dword [esp + 0x64], edi
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x10056210
mov ebx, dword [ebx + 0xb0]
test ebx, ebx
je 0x100561b6
mov ecx, ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x100561ab
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x100561a2
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x100561c0
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x3c]
lea esi, [edx + ecx*8]
call fcn.10007590
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x100561db
cmp ecx, 0x7fffffff
je 0x10056275
mov ebx, dword [esp + 0x24]
test byte [ebx + 0x1c], 2
jne 0x10056275
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x10056205
jl 0x100561fb
cmp dword [esp + 0x60], eax
jae 0x10056205
mov edi, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov dword [esi + 4], edi
jmp 0x10056214
mov ebx, dword [esp + 0x24]
test byte [ebx + 0x1c], 2
je 0x10056299
xor esi, esi
lea ecx, [esp + 0x60]
push ecx
push 8
call sym.idmindex.dll_sqlite3_randomness
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x50]
push edx
and edi, 0x3fffffff
add eax, 1
push 0
adc edi, 0
push edi
push eax
mov dword [esp + 0x78], eax
mov eax, dword [ebx]
push 0
push eax
mov dword [esp + 0x84], edi
call fcn.1003f170
add esp, 0x20
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10056299
cmp dword [esp + 0x48], eax
jne 0x10056299
inc esi
cmp esi, 0x64
jl 0x10056220
mov dword [esp + 0x10], 0xd
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x41], 0
je 0x10057edf
mov ecx, 7
mov dword [esp + 0x10], ecx
jmp 0x10057eef
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov dword [eax], ecx
mov dword [eax + 4], edi
jmp case.0x10053a66.62
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea edi, [esi + edx*8]
mov edx, dword [ebx + 0x38]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
cmp cl, 0x54
jne 0x100562e0
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
mov esi, dword [esi + ecx*8 + 4]
jmp 0x100562e3
cdq
mov esi, edx
test byte [ebp + 3], 1
mov dword [esp + 0xf4], eax
je 0x100562f3
inc dword [ebx + 0x5c]
test byte [ebp + 3], 2
je 0x1005630b
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], esi
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], esi
movzx eax, word [edi + 8]
test al, 1
je 0x1005631b
xor ecx, ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], ecx
mov dl, byte [ebp + 3]
test dl, 0x10
je 0x1005632c
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xc]
jmp 0x1005632e
xor ecx, ecx
test eax, 0x4000
je 0x10056339
mov eax, dword [edi]
jmp 0x1005633b
xor eax, eax
mov ebx, dword [esp + 0x1c]
movzx edx, dl
push ecx
mov ecx, dword [edi + 0x10]
shr edx, 3
and edx, 1
push edx
mov edx, dword [esp + 0xfc]
push eax
mov eax, dword [edi + 0xc]
mov edi, dword [ebx]
push eax
push ecx
push esi
push edx
push 0
call fcn.10044800
add esp, 0x20
mov dword [esp + 0x10], eax
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
test eax, eax
jne case.0x10053a66.62
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je case.0x10053a66.62
mov eax, dword [ebp + 0x10]
test eax, eax
je case.0x10053a66.62
mov edx, dword [esp + 0xf4]
push esi
push edx
push eax
mov eax, ebx
movsx edx, byte [eax + 0x18]
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xd0]
shl edx, 4
mov edx, dword [edx + esi]
push edx
mov dl, byte [ebp + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x10053a66.62
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov esi, dword [edx + ecx*4]
mov edi, dword [esi]
call fcn.10044a20
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x1005643e
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xd4]
test edx, edx
je 0x1005643e
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1005643e
test byte [esi + 0x1c], 4
je 0x1005643e
mov edi, dword [esi + 0x34]
push edi
mov edi, dword [esi + 0x30]
push edi
push eax
movsx eax, byte [esi + 0x18]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xd0]
shl eax, 4
mov eax, dword [eax + esi]
push eax
push 9
push ecx
call edx
add esp, 0x18
test byte [ebp + 8], 1
je case.0x10053a66.62
inc dword [ebx + 0x5c]
jmp case.0x10053a66.62
mov ecx, dword [ebx + 0x5c]
mov eax, dword [esp + 0x14]
call fcn.10008280
mov dword [ebx + 0x5c], 0
jmp case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + edx*4]
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x20]
push edx
push ecx
push esi
mov dword [esp + 0x2c], 0
call fcn.1002a670
add esp, 0xc
cmp dword [esp + 0x20], 0
mov dword [esp + 0x10], eax
jne 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
call fcn.100127c0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x3c], 0
jmp case.0x10053a66.62
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea edx, [esi + ecx*8]
mov ecx, dword [ebx + 0x38]
mov ebx, dword [ecx + eax*4]
test byte [ebx + 0x1c], 4
mov esi, dword [ebx]
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], esi
jne 0x1005653b
lea edi, [esp + 0x114]
call fcn.10006ef0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x58]
mov ecx, dword [esp + 0x118]
cdq
cmp ecx, edx
jg 0x10054507
mov edi, dword [esp + 0x114]
jl 0x10056532
cmp edi, eax
ja 0x10054507
mov dword [esp + 0xb4], edi
jmp 0x1005655f
lea edx, [esp + 0xb4]
push edx
call fcn.10006f10
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x18]
add esp, 4
cmp edi, dword [eax + 0x58]
ja 0x10054507
mov eax, edi
cmp edi, 0x20
ja 0x1005656b
mov eax, 0x20
mov ecx, dword [esp + 0x18]
call fcn.10011200
test eax, eax
jne 0x10057f1b
mov esi, dword [esp + 0x18]
mov cx, word [esi + 8]
mov edx, 0xbe10
and cx, dx
or cx, 0x10
mov dword [esi + 0xc], edi
mov word [esi + 8], cx
test byte [ebx + 0x1c], 4
jne 0x100565bd
push eax
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esi + 0x10]
mov ecx, edi
call fcn.1003b970
add esp, 8
mov dword [esp + 0x10], eax
mov byte [esi + 0xa], 1
jmp case.0x10053a66.62
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x30]
push ecx
push edi
push 0
push edx
call fcn.10044520
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0xa], 1
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, dword [ebx + 0x38]
mov edi, eax
mov eax, dword [ebp + 4]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 0x19], 0
mov dword [esp + 0x18], edi
je 0x1005660a
mov edx, 1
mov word [edi + 8], dx
jmp case.0x10053a66.62
cmp byte [esi + 0x1a], 0
je 0x10056637
mov eax, dword [esi + 0x30]
mov dword [esp + 0xc0], eax
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xc4], ecx
mov edx, eax
mov dword [edi], edx
mov eax, dword [esp + 0xc4]
mov dword [edi + 4], eax
jmp case.0x10053a66.62
cmp dword [esi + 0x24], 0
je 0x1005667c
mov eax, dword [esi + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [esp + 0xc0]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
add esp, 8
mov edi, ebx
mov dword [esp + 0x10], eax
call fcn.10011cb0
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc0]
mov dword [edi], edx
mov eax, dword [esp + 0xc4]
mov dword [edi + 4], eax
jmp case.0x10053a66.62
mov edx, esi
call fcn.10045f80
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
cmp byte [esi + 0x19], al
je 0x100566a2
mov ecx, 1
mov word [edi + 8], cx
jmp case.0x10053a66.62
mov esi, dword [esi]
lea edi, [esp + 0xc0]
call fcn.10006ef0
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x10], eax
mov dword [edi], edx
mov eax, dword [esp + 0xc4]
mov dword [edi + 4], eax
jmp case.0x10053a66.62
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 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.0x10053a66.62
mov esi, eax
call fcn.10006950
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
xor ebx, ebx
lea edi, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.1003f120
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov byte [esi + 0x19], al
mov byte [esi + 0x1a], bl
mov dword [esi + 0x3c], ebx
mov edx, dword [ebp + 0xc]
mov dword [esi + 0xc], edx
cmp dword [ebp + 8], ebx
jle case.0x10053a66.62
test eax, eax
jne 0x10057d01
jmp case.0x10053a66.62
inc dword [ebx + 0x74]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
cmp dword [esi + 0x38], 0
mov dword [esp + 0x1c], 1
lea edi, [esp + 0x1c]
je 0x10056768
mov eax, esi
call fcn.1002a610
jmp 0x1005677a
mov eax, dword [esi]
call fcn.1003f0f0
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x19], al
test eax, eax
jne 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebx + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x98]
push ecx
mov eax, esi
mov dword [esp + 0x9c], 0
call fcn.10016bc0
add esp, 4
jmp 0x100567f4
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
cmp dword [eax + edx*4], 0
je case.0x10053a66.62
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov esi, dword [edx + ecx*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x98], eax
mov edx, dword [esi]
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x98]
push ecx
push edx
call eax
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [esp + 0x98], 0
mov dword [esp + 0x10], eax
jne 0x1005681e
mov byte [esi + 0x19], 0
movzx ecx, byte [ebp + 3]
inc dword [ebx + ecx*4 + 0x6c]
lea eax, [ebx + ecx*4 + 0x6c]
jmp case.0x10053a66.14
mov byte [esi + 0x19], 1
jmp 0x10057a74
test byte [ebp + 3], 1
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov dword [esp + 0x30], ecx
lea esi, [esi + edx*8]
je 0x10056846
inc dword [ebx + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10056862
call fcn.10011220
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x10053a66.62
cmp byte [ebp], 0x6e
mov ebx, dword [esp + 0x30]
jne 0x10056880
push esi
mov eax, ebx
call fcn.1002a300
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
test byte [ebp + 3], 0x10
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
je 0x10056891
mov ecx, dword [ebx + 0xc]
jmp 0x10056893
xor ecx, ecx
mov edi, dword [ebx]
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
push 0
push 0
cdq
push 0x1005bafa
push edx
push eax
push esi
call fcn.10044800
add esp, 0x20
mov dword [esp + 0x10], eax
mov dword [ebx + 0x3c], 0
jmp case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ebx, dword [eax + edx*4]
mov edi, dword [ebx]
mov ecx, dword [ebx + 8]
mov dx, word [ebp + 0xc]
mov eax, dword [ebp + 8]
mov word [esp + 0x1e0], dx
lea edx, [esp + 0xf0]
push edx
push 0
lea eax, [eax + eax*4]
push 0
mov dword [esp + 0x1e8], ecx
lea ecx, [esi + eax*8]
push 0
lea eax, [esp + 0x1ec]
push eax
push edi
mov byte [esp + 0x1fa], 0
mov dword [esp + 0x1fc], ecx
call fcn.1003f170
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10056931
cmp dword [esp + 0xf0], eax
jne 0x10056931
call fcn.10044a20
mov dword [esp + 0x10], eax
mov dword [ebx + 0x3c], 0
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 4]
mov esi, dword [edx + ecx*4]
mov ebx, dword [esi]
mov edi, eax
mov eax, 1
mov edx, esi
mov word [edi + 8], ax
call fcn.10045f80
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005627d
cmp byte [esi + 0x19], al
jne case.0x10053a66.62
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xd4]
push ecx
xor esi, esi
push edx
mov eax, ebx
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
call fcn.10045fd0
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x1005627d
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov edx, 4
mov dword [edi], eax
mov dword [edi + 4], ecx
mov word [edi + 8], dx
jmp case.0x10053a66.62
mov edx, dword [ebx + 0x38]
mov eax, dword [ebp + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [eax + 8]
cmp cl, 0x74
sbb cl, cl
mov dword [esp + 0x1f8], edx
mov dx, word [ebp + 0x10]
mov byte [esp + 0x1fe], cl
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x1fc], dx
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*8]
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x204], ecx
lea ecx, [esp + 0x1fc]
push ecx
push eax
push edx
mov dword [esp + 0x44], 0
call fcn.100460d0
add esp, 0x10
test byte [ebp], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
jne 0x10056a3c
neg eax
jmp 0x10056a3d
inc eax
test eax, eax
jg 0x10057d01
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edi, eax
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa4]
inc ecx
cmp dword [eax + 0x98], ecx
jle 0x10056a82
mov dword [esp + 0x10], 6
mov byte [ebx + 0x56], 2
jmp case.0x10053a66.62
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [edx + 0x10]
mov ecx, ebx
shl ecx, 4
mov esi, dword [ecx + eax + 4]
mov dword [esp + 0x78], 0
call fcn.100450c0
mov esi, dword [esp + 0x78]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [esp + 0x10], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne case.0x10053a66.62
test esi, esi
je case.0x10053a66.62
mov edi, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov eax, ebx
call fcn.1000a330
inc bl
mov byte [esp + 0x57], bl
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
neg eax
sbb eax, eax
lea ecx, [esp + 0x4c]
and eax, ecx
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [ebp + 8]
push edx
mov edx, dword [ecx + 0x10]
shl eax, 4
mov dword [esp + 0x54], 0
mov edi, dword [eax + edx + 4]
call fcn.10044e60
add esp, 8
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x10], eax
je case.0x10053a66.62
mov eax, dword [esp + 0x4c]
add dword [ebx + 0x5c], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle case.0x10053a66.62
lea ecx, [ecx + ecx*4]
cdq
add dword [esi + ecx*8], eax
lea ecx, [esi + ecx*8]
adc dword [ecx + 4], edx
jmp case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x10056b7a
push ecx
mov ecx, dword [esp + 0x18]
push ecx
call fcn.100165e0
add esp, 8
jmp case.0x10053a66.62
mov eax, dword [eax]
call fcn.10044eb0
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [edx + 0x10]
xor ecx, ecx
cmp byte [ebp], 0x7a
mov esi, dword [eax + 4]
setne cl
mov dword [esp + 0x28], 0
inc ecx
push ecx
lea ecx, [esp + 0x2c]
push ecx
call fcn.10044e30
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
cdq
add esp, 8
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x10056bea
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 + 0x12c], eax
add ebx, 0x2c
shl eax, 4
mov dword [esp + 0x124], esi
mov dword [esp + 0x128], ebx
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.1001d320
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x10056c33
mov ebx, 7
mov dword [esp + 0x10], ebx
jmp 0x10056c87
push 0
lea eax, [esp + 0x120]
push eax
push fcn.100537c0
push edi
push esi
mov byte [esi + 0x91], 1
mov dword [esp + 0x13c], 0
call sym.idmindex.dll_sqlite3_exec
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10056c73
mov ebx, dword [esp + 0x128]
mov dword [esp + 0x10], ebx
mov edx, edi
mov ecx, esi
call fcn.10001ed0
mov byte [esi + 0x91], 0
test ebx, ebx
je 0x10056c8e
mov eax, esi
call fcn.1001a560
cmp ebx, 7
je 0x10057f1b
jmp case.0x10053a66.62
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
push ecx
call fcn.10020320
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x14]
call fcn.10017520
jmp case.0x10053a66.62
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [ebp + 0x10]
call fcn.10013460
add esp, 4
jmp case.0x10053a66.62
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
call fcn.100142f0
jmp case.0x10053a66.62
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 4]
push 0
push eax
call fcn.1000e2b0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x10057f1b
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
xor esi, esi
cmp dword [esp + 0x34], esi
lea eax, [ecx + eax*8]
lea edi, [ecx + edx*8]
mov dword [esp + 0x18], eax
jle 0x10056d5a
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
call fcn.10007460
add dword [esp + 0x1c], 0x28
mov dword [ebx + esi*4], eax
inc esi
cmp esi, dword [esp + 0x34]
jl 0x10056d42
mov eax, dword [esp + 0x34]
mov dword [ebx + esi*4], 0
mov edx, dword [edi]
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x100]
push ecx
movzx ecx, byte [ebp + 3]
push edx
mov edx, dword [esi + 0x10]
push eax
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
push ebx
call fcn.1003ce60
add esp, 0x10
mov edx, ebx
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.10001ed0
mov ebx, dword [esp + 0x100]
mov eax, ebx
cdq
sub dword [edi], eax
mov eax, dword [esp + 0x18]
sbb dword [edi + 4], edx
call fcn.10007670
test ebx, ebx
je 0x10056dd8
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10057f1b
mov ecx, dword [esp + 0x18]
push sym.idmindex.dll_sqlite3_free
push 1
push eax
or eax, 0xffffffff
call fcn.100192b0
add esp, 0xc
movzx ecx, byte [esp + 0x43]
mov eax, dword [esp + 0x18]
call fcn.10019200
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 0x20
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
jne 0x10056e13
call fcn.100112e0
test byte [edi + 8], 0x20
je 0x10057f1b
mov edx, dword [esi + 4]
mov eax, dword [esi]
push edx
push eax
mov eax, dword [edi]
call fcn.1000f840
add esp, 8
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 8], 0x20
lea edi, [esi + ecx*8]
je 0x10056e71
mov ecx, dword [edi]
lea eax, [esp + 0x104]
call fcn.10004e70
test eax, eax
je 0x10056e71
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x104]
push edx
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
call fcn.100076f0
add esp, 8
jmp 0x10057a74
mov eax, edi
call fcn.10007670
jmp case.0x10053a66.14
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 8], 0x20
mov eax, dword [ebp + 0xc]
lea edi, [esi + edx*8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
jne 0x10056ea8
call fcn.100112e0
test byte [edi + 8], 0x20
je 0x10057f1b
test ebx, ebx
je 0x10056ece
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [edi]
push ecx
push edx
push ebx
call fcn.1000f8a0
add esp, 0xc
test eax, eax
jne 0x10057d01
test ebx, ebx
jl case.0x10053a66.62
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
mov eax, dword [edi]
push ecx
call fcn.1000f840
add esp, 8
jmp case.0x10053a66.62
cmp byte [ebp + 3], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x28], esi
je 0x10056f17
mov eax, dword [ebx + 0xb0]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x10056f17
cmp dword [eax + 0x1c], ecx
je case.0x10053a66.62
mov eax, dword [eax + 4]
test eax, eax
jne 0x10056f07
mov eax, dword [ebx + 0xb8]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x80]
jl 0x10056f45
push str.too_many_levels_of_trigger_recursion
mov edi, ebx
mov dword [esp + 0x14], 1
call fcn.1001edb0
add esp, 4
jmp case.0x10053a66.62
test byte [esi + 8], 0x40
jne 0x10057025
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, ecx
lea edx, [eax + eax*4 + 0xa]
mov dword [esp + 0x4c], eax
lea eax, [ecx + edx*2]
mov ecx, dword [edi + 0x10]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
cdq
push edx
push eax
call fcn.10015870
mov esi, eax
add esp, 8
test esi, esi
je 0x10057f1b
mov eax, dword [esp + 0x28]
call fcn.100073e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov dword [eax], esi
sub ebp, dword [esp + 0x38]
mov edx, 0x40
mov word [eax + 8], dx
mov dword [esi + 0x3c], ecx
mov dword [esi], ebx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x2c], eax
mov edx, dword [ebx + 8]
mov dword [esi + 0x10], edx
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x34], eax
mov edx, dword [ebx + 0x38]
mov dword [esi + 0x18], edx
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x28], eax
mov edx, dword [ebx + 4]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x30], eax
mov edx, dword [edi + 0x14]
mov dword [esi + 0x1c], edx
mov eax, dword [ebx + 0xc8]
mov dword [esi + 0x14], eax
mov edx, dword [ebx + 0xc4]
lea eax, [ecx + ecx*4 + 0xa]
lea ecx, [esi + eax*8]
lea eax, [esi + 0x50]
mov dword [esi + 0x38], edx
cmp eax, ecx
je 0x10057027
mov edx, dword [esp + 0x14]
mov edi, edi
mov ebp, 0x80
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x10057010
jmp 0x10057027
mov esi, dword [esi]
inc dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xb0]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], edx
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 0x5c]
mov dword [esi + 0x44], ecx
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
mov dword [esi + 0x48], eax
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0xb0], esi
lea ecx, [esi + 0x28]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x3c]
mov dword [ebx + 0x1c], edx
movzx eax, word [esi + 0x40]
mov dword [ebx + 0x24], eax
mov eax, edx
inc eax
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x38], eax
mov ebp, dword [edi]
mov dword [ebx + 4], ebp
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 4]
lea eax, [eax + edx*4]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0xc8], eax
mov edi, dword [edi + 0x10]
push edi
push 0
mov dword [esp + 0x40], ebp
push eax
mov dword [ebx + 0xc4], edi
add ebp, 0xffffffec
call sub.msvcrt.dll_memset
add esp, 0xc
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ebx, dword [ebx + 0xb0]
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 8]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
add ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x10]
lea ecx, [ecx + ecx*4]
push 0x1000
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.100077b0
add esp, 0xc
jmp case.0x10053a66.62
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebp + 8]
cdq
je 0x10057118
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.0x10053a66.62
cmp dword [ebp + 4], 0
je 0x1005712f
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.0x10053a66.62
add dword [ebx + 0x90], eax
adc dword [ebx + 0x94], edx
jmp case.0x10053a66.62
cmp dword [ebp + 4], 0
je 0x1005715e
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x1f8]
or edx, dword [eax + 0x1fc]
jne case.0x10053a66.62
jmp 0x10057174
mov edx, dword [ebx + 0x90]
or edx, dword [ebx + 0x94]
jne case.0x10053a66.62
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x200]
or ecx, dword [eax + 0x204]
je 0x10057d01
jmp case.0x10053a66.62
mov ebx, dword [ebx + 0xb0]
test ebx, ebx
je 0x100571b7
mov ecx, ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x100571a9
mov edi, edi
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x100571a0
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea edi, [eax + edx*8]
jmp 0x100571c0
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea edi, [esi + ecx*8]
mov esi, edi
call fcn.10007590
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
lea esi, [eax + edx*8]
call fcn.10007590
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x10053a66.62
jl 0x100571f5
mov edx, dword [edi]
cmp edx, eax
jae case.0x10053a66.62
mov dword [edi], eax
mov dword [edi + 4], esi
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
jg 0x10057d01
jl case.0x10053a66.62
cmp dword [esi + eax*8], 0
ja 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebp + 0xc]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [ecx + 4], 0
jl 0x10057d01
jg case.0x10053a66.62
cmp dword [ecx], 0
jb 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov edi, dword [esi + ecx*8 + 4]
lea ecx, [esi + ecx*8]
mov esi, dword [ecx]
mov edx, esi
or edx, edi
je case.0x10053a66.62
mov eax, dword [ebp + 0xc]
cdq
add eax, esi
adc edx, edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10057d01
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
add dword [esi + eax*8], 0xffffffff
mov ecx, dword [esi + eax*8]
lea esi, [esi + eax*8]
adc dword [esi + 4], 0xffffffff
or ecx, dword [esi + 4]
je 0x10057d01
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov ecx, dword [esi + edx*8]
lea eax, [esi + edx*8]
mov edx, dword [eax + 4]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax], esi
mov dword [eax + 4], edi
mov eax, ecx
or eax, edx
je 0x10057d01
jmp case.0x10053a66.62
movzx eax, byte [ebp + 3]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
call fcn.1000e2b0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x10057f1b
mov dword [ecx + 8], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov esi, dword [esp + 0x3c]
mov edx, ebp
sub edx, dword [esp + 0x38]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + 0x28]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x1a], dl
mov byte [ebp + 1], 0xec
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x90
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x28], edi
mov dword [esp + 0x4c], eax
cmp dword [edi + 8], eax
je 0x10057379
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], eax
js 0x10057379
lea edx, [edi + ecx*4 + 0x1c]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x10057360
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
mov ecx, 1
add dword [eax + 0xc], ecx
push edx
lea eax, [esp + 0x210]
call fcn.10007650
mov ecx, dword [edi + 4]
mov dword [edi], eax
movzx eax, byte [edi + 0x1a]
lea edx, [edi + 0x1c]
push edx
push eax
mov byte [edi + 0x19], 0
mov byte [edi + 0x18], 0
mov ecx, dword [ecx + 0x10]
push edi
call ecx
add esp, 0x10
cmp byte [edi + 0x19], 0
je 0x100573f3
cmp dword [edi + 0x14], 0
je 0x100573e7
lea edx, [esp + 0x20c]
push edx
call sym.idmindex.dll_sqlite3_value_text
push eax
push 0x1006026c
mov edi, ebx
call fcn.1001edb0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x14]
add esp, 0xc
mov dword [esp + 0x10], ecx
mov edi, eax
lea eax, [esp + 0x20c]
call fcn.100073e0
cmp byte [edi + 0x18], 0
je case.0x10053a66.62
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x10053a66.62
lea edx, [eax + eax*4]
push 0
push 1
lea eax, [esi + edx*8]
call fcn.100076f0
add esp, 8
jmp case.0x10053a66.62
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, esi
call fcn.10007270
mov dword [esp + 0x10], eax
test eax, eax
je 0x10057450
push esi
call sym.idmindex.dll_sqlite3_value_text
push eax
push 0x1006026c
mov edi, ebx
call fcn.1001edb0
add esp, 0xc
movzx ecx, byte [esp + 0x43]
mov eax, esi
call fcn.10019200
mov ecx, esi
call fcn.10007760
test eax, eax
jne 0x10054507
jmp case.0x10053a66.62
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x14]
push ecx
or eax, 0xffffffff
push edx
xor edi, edi
lea edx, [esp + 0xec]
lea ecx, [esp + 0xe8]
mov dword [esp + 0xe4], edi
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], eax
call fcn.1003a350
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, 5
jne 0x100574c4
mov dword [esp + 0x10], edi
mov dword [esp + 0xdc], 1
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
xor esi, esi
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0xdc]
cdq
push edx
push eax
mov eax, edi
call fcn.100076f0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x100574d3
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
mov edi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov dword [esp + 0x28], eax
call fcn.10007030
mov dword [esp + 0x20], eax
call fcn.10005af0
mov dword [esp + 0x24], eax
cmp esi, 0xffffffff
jne 0x10057531
mov esi, eax
mov eax, dword [esp + 0x20]
call fcn.10005b00
test eax, eax
jne 0x10057542
mov esi, dword [esp + 0x24]
cmp esi, 5
jne 0x100575b7
mov eax, dword [esp + 0x20]
push 1
call fcn.10005a60
add esp, 4
call fcn.10002170
test eax, eax
je 0x1005756f
mov eax, dword [esp + 0x20]
call fcn.10005b40
test eax, eax
jne 0x100575b7
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x10], 0
je 0x1005757e
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, esi
call fcn.10039f40
mov ecx, 0xa02
mov word [edi + 8], cx
call fcn.1000b040
mov dword [edi + 0x10], eax
call fcn.10002170
movzx ecx, byte [esp + 0x43]
mov dword [edi + 0xc], eax
mov eax, edi
mov byte [edi + 0xa], 1
call fcn.10019200
jmp case.0x10053a66.62
mov eax, dword [esp + 0x24]
cmp esi, eax
je 0x10057573
cmp eax, 5
je 0x100575c9
cmp esi, 5
jne 0x10057573
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x3f], 0
je 0x10057634
cmp dword [ecx + 0x98], 1
jg 0x10057634
cmp eax, 5
jne 0x100575f6
mov eax, dword [esp + 0x20]
call fcn.1003a470
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005757a
mov eax, esi
jmp 0x10057600
cmp eax, 4
jne 0x10057609
mov eax, 2
mov ecx, dword [esp + 0x20]
call fcn.10039f40
cmp dword [esp + 0x10], 0
jne 0x1005757a
mov eax, dword [esp + 0x28]
xor edx, edx
cmp esi, 5
sete dl
inc edx
push edx
push eax
call fcn.1003d0f0
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x10057573
mov dword [esp + 0x10], 1
mov eax, str.into
cmp esi, 5
je 0x1005764b
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov edi, ebx
call fcn.1001edb0
add esp, 8
jmp case.0x10053a66.62
mov edx, dword [esp + 0x14]
push edx
add ebx, 0x2c
push ebx
call fcn.100532a0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
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.10044170
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, 0x65
jne case.0x10053a66.62
mov dword [esp + 0x10], 0
jmp 0x10057d01
cmp dword [ebp + 4], 0
jne 0x100576c2
mov eax, dword [esp + 0x14]
call fcn.100082a0
jmp case.0x10053a66.62
or dword [ebx + 0x58], 8
jmp case.0x10053a66.62
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x100576e3
mov eax, dword [esp + 0x14]
test dword [eax + 0x18], 0x4000
jne case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x10]
mov eax, dword [ebp + 8]
shl edx, 4
mov esi, dword [edx + esi + 4]
call fcn.100110b0
mov dword [esp + 0x10], eax
cmp al, 6
jne case.0x10053a66.62
mov ecx, dword [ebp + 0x10]
push ecx
push str.database_table_is_locked:__s
mov edi, ebx
call fcn.1001edb0
add esp, 8
jmp case.0x10053a66.62
mov esi, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
push esi
call fcn.10014500
add esp, 4
mov dword [esp + 0x10], eax
test esi, esi
je case.0x10053a66.62
mov esi, dword [esi + 8]
mov edi, ebx
call fcn.10011cb0
jmp case.0x10053a66.62
mov edx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x160], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
lea eax, [esp + 0x13c]
mov dword [esp + 0x15c], edx
call fcn.10015dd0
lea ecx, [esp + 0x13c]
push ecx
mov dword [esp + 0x14], eax
call sym.idmindex.dll_sqlite3_value_text
add esp, 4
test eax, eax
je 0x100577e3
mov ecx, dword [esp + 0x14]
add ebx, 0x2c
push ebx
push eax
mov eax, dword [ebp + 4]
call fcn.10024d80
add esp, 8
mov dword [esp + 0x10], eax
lea eax, [esp + 0x13c]
call fcn.100073e0
jmp case.0x10053a66.62
mov esi, dword [esp + 0x14]
inc dword [esi + 0xa4]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
mov ecx, esi
call fcn.1000bb50
add esp, 4
dec dword [esi + 0xa4]
mov dword [esp + 0x10], eax
jmp case.0x10053a66.62
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x1005788f
mov eax, dword [esi]
mov dword [esp + 0x28], eax
test eax, eax
je 0x1005788f
lea ecx, [esp + 0x24]
push ecx
mov edx, eax
mov eax, dword [edx + 0x18]
push esi
call eax
add esp, 8
mov edi, ebx
mov dword [esp + 0x10], eax
call fcn.10011cb0
cmp dword [esp + 0x10], 0
jne case.0x10053a66.62
mov ecx, dword [esp + 0x24]
push 0
push 0xffffffffffffffff
mov dword [ecx], esi
mov edx, dword [ebp + 4]
push 0
push edx
call fcn.100473c0
add esp, 0x10
test eax, eax
je 0x10057f0a
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x24], ecx
inc dword [esi + 4]
jmp case.0x10053a66.62
mov dword [esp + 0x10], 6
jmp case.0x10053a66.62
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x38]
mov edi, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + edx*8]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 0x24]
lea edx, [esi + edx*8]
mov esi, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x70], ecx
xor ecx, ecx
mov dword [esp + 0x30], 0
test eax, eax
jle 0x100578eb
add edx, 0x50
nop
mov dword [edi + ecx*4], edx
inc ecx
add edx, 0x28
cmp ecx, eax
jl 0x100578e0
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
push edi
push eax
mov eax, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [edx + 0x20]
push ecx
call eax
add esp, 0x14
mov edi, ebx
mov dword [esp + 0x10], eax
call fcn.10011cb0
cmp dword [esp + 0x10], 0
jne 0x1005792c
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
jmp 0x10057930
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0x19], 0
test eax, eax
jne 0x10057d01
jmp case.0x10053a66.62
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x19], 0
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x28], eax
je 0x1005796b
call fcn.10007670
jmp case.0x10053a66.62
mov eax, dword [ecx + 0x24]
mov esi, dword [eax]
mov edx, dword [esi]
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 + 0x1a8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x18c], eax
mov dx, word [eax + 8]
mov edi, 0xbe01
and dx, di
or dx, 1
mov word [eax + 8], dx
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x190]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
add esp, 0xc
mov edi, ebx
mov dword [esp + 0x10], eax
call fcn.10011cb0
mov eax, dword [esp + 0x1a0]
test eax, eax
je 0x10057a05
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x28]
jmp 0x10057450
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x19], 0
mov dword [esp + 0x28], eax
jne case.0x10053a66.62
mov edx, eax
mov eax, dword [edx + 0x24]
mov esi, dword [eax]
mov ecx, dword [esi]
push eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x50], ecx
call eax
add esp, 4
mov edi, ebx
mov dword [esp + 0x10], eax
call fcn.10011cb0
cmp dword [esp + 0x10], 0
jne case.0x10053a66.14
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x24]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
jne 0x10057a74
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x38]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xf0]
test ecx, ecx
jne 0x10057f40
mov esi, dword [eax + 0x124]
test esi, esi
je case.0x10053a66.62
mov edx, dword [esp + 0x88]
cmp dword [esp + 0x84], edx
jb case.0x10053a66.62
mov ecx, dword [eax + 0x12c]
mov edi, dword [esp + 0x84]
xor edx, edx
mov eax, edi
div ecx
sub ecx, edx
add ecx, edi
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x128]
push edx
call esi
add esp, 4
test eax, eax
je case.0x10053a66.62
mov dword [esp + 0x10], 9
jmp 0x10057f67
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov ecx, 1
mov eax, esi
call fcn.10019200
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x10053a66.62
mov eax, dword [esi + 0x10]
mov edx, dword [edi]
mov ecx, dword [edx + 0x4c]
push eax
push edi
call ecx
mov esi, edi
add esp, 8
mov edi, ebx
mov dword [esp + 0x10], eax
call fcn.10011cb0
and dword [ebx + 0x58], 0xfffffff7
jmp case.0x10053a66.62
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
test eax, eax
je 0x1005788f
mov edx, dword [eax]
test edx, edx
je 0x1005788f
cmp dword [edx + 0x34], 0
mov ecx, dword [ebp + 8]
je case.0x10053a66.62
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x45]
mov edi, dword [ebx + 0xc]
mov byte [esp + 0x47], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
test ecx, ecx
jle 0x10057b8b
lea ecx, [ecx]
mov dword [edi + eax*4], esi
inc eax
add esi, 0x28
cmp eax, ecx
jl 0x10057b80
movzx eax, byte [ebp + 3]
mov esi, dword [esp + 0x14]
mov byte [esi + 0x45], al
mov edx, dword [edx + 0x34]
lea eax, [esp + 0x12c]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x34]
push ecx
call edx
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x57]
mov byte [esi + 0x45], al
mov esi, dword [esp + 0x38]
add esp, 0x10
mov edi, ebx
call fcn.10011cb0
cmp dword [esp + 0x10], 0
jne 0x10057bf1
cmp dword [ebp + 4], 0
je 0x10057bf1
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
cmp byte [esp + 0x10], 0x13
jne 0x10056448
mov ecx, dword [ebp + 0x10]
cmp byte [ecx + 0x10], 0
je 0x10056448
mov al, byte [ebp + 3]
cmp al, 4
jne 0x10057c1d
mov dword [esp + 0x10], 0
jmp case.0x10053a66.62
cmp al, 5
jne 0x10057c2e
mov eax, 2
mov byte [ebx + 0x56], al
jmp case.0x10053a66.62
movzx eax, al
mov byte [ebx + 0x56], al
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov edx, dword [ebp + 4]
mov ecx, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
call fcn.10006d70
mov dword [ecx], eax
mov dword [ecx + 4], 0
jmp case.0x10053a66.62
mov eax, ebp
mov edx, ebx
call fcn.100089e0
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [edx + 0x10]
shl ecx, 4
mov esi, dword [ecx + eax + 4]
mov ecx, dword [ebp + 0xc]
xor eax, eax
test ecx, ecx
je 0x10057c9a
mov eax, esi
call fcn.10006d70
cmp eax, ecx
jae 0x10057c9a
mov eax, ecx
push eax
call fcn.10010e40
cdq
add esp, 4
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x10053a66.62
mov edi, dword [esp + 0x14]
cmp dword [edi + 0xb0], 0
je 0x10057cfb
test dword [ebx + 0x58], 0x200
jne 0x10057cfb
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x10057cd5
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x10057cfb
push eax
mov ecx, ebx
call fcn.1001f420
mov ecx, dword [edi + 0xb4]
mov edx, dword [edi + 0xb0]
mov esi, eax
push esi
push ecx
call edx
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.10001ed0
cmp dword [ebp + 8], 0
je case.0x10053a66.62
mov ebp, dword [ebp + 8]
mov ecx, dword [esp + 0x38]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
mov ebx, dword [esp + 0x5c]
add ebp, 0x14
cmp dword [esp + 0x10], 0
jne 0x10057f67
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
jmp 0x10053a40
mov edx, dword [ebp + 4]
mov dword [ebx + 0x50], edx
mov al, byte [ebp + 8]
mov byte [ebx + 0x56], al
mov dword [ebx + 0x4c], esi
test edx, edx
je 0x10057db3
mov al, byte [ebp + 3]
test al, al
je 0x10057d75
movzx ecx, al
mov ecx, dword [ecx*4 + 0x1005d02c]
test ecx, ecx
je 0x10057d77
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10057d77
push eax
push ecx
push str._s_constraint_failed:__s
mov edi, ebx
call fcn.1001edb0
add esp, 0xc
jmp 0x10057d96
xor ecx, ecx
mov eax, dword [ebp + 0x10]
mov edi, ebx
test eax, eax
je 0x10057d88
push eax
push 0x1006026c
jmp 0x10057d8e
push ecx
push str._s_constraint_failed
call fcn.1001edb0
add esp, 8
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0xa8]
mov ecx, dword [ebp + 4]
push edx
push eax
push esi
push str.abort_at__d_in___s_:__s
push ecx
call sym.idmindex.dll_sqlite3_log
add esp, 0x14
mov edi, ebx
call fcn.1004b220
mov edi, 5
cmp eax, edi
je 0x10057df6
mov edi, dword [ebx + 0x50]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x10057fd7
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x4c], eax
mov byte [ecx + 0x3f], 0
mov edi, 5
mov dword [ebx + 0x50], edi
jmp 0x10057fd7
test ecx, ecx
je 0x10057e34
push 0x204
mov eax, esi
call fcn.10047130
add esp, 4
mov byte [esi + 0x3f], 1
mov esi, dword [esp + 0x14]
call fcn.1000d4e0
mov eax, dword [ebx + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x10], eax
jmp 0x10057fd3
push 1
mov eax, ebx
call fcn.1001f110
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
jne 0x10057fd7
mov dl, byte [esp + 0x28]
mov eax, dword [esp + 0x14]
mov edi, ebx
mov byte [eax + 0x3f], dl
call fcn.1004b220
cmp eax, 5
jne 0x10057e15
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
mov eax, dword [esp + 0x14]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, 1
sub dl, byte [esp + 0x28]
mov dword [ebx + 0x4c], ecx
mov edi, 5
mov byte [eax + 0x3f], dl
mov dword [ebx + 0x50], edi
jmp 0x10057fd7
mov dword [esp + 0x10], 8
jmp 0x1005627d
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edi, 5
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], edi
jmp 0x10057fd7
push 0x126b4
call fcn.10026140
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x1005627d
mov ecx, dword [esp + 0x10]
cmp ecx, 0xc0a
je 0x10057f63
call fcn.1000d5b0
mov ebx, dword [esp + 0x5c]
push eax
push 0x1006026c
mov edi, ebx
call fcn.1001edb0
add esp, 8
jmp 0x10057f67
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x5c]
push 0x1005b3b8
mov edi, ebx
mov byte [eax + 0x41], 1
call fcn.1001edb0
add esp, 4
mov dword [esp + 0x10], 7
jmp 0x10057f67
mov ecx, 9
mov dword [esp + 0x10], ecx
mov dword [ebx + 0x50], ecx
call fcn.1000d5b0
push eax
push 0x1006026c
mov edi, ebx
call fcn.1001edb0
add esp, 8
jmp 0x10057f67
mov ebx, dword [esp + 0x5c]
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0xa8]
sub ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x10]
push ecx
push edx
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
mov dword [ebx + 0x50], esi
call sym.idmindex.dll_sqlite3_log
add esp, 0x14
mov edi, ebx
call fcn.1004b220
cmp esi, 0xc0a
jne 0x10057fb4
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x41], 1
cmp byte [esp + 0x57], 0
mov edi, 1
mov dword [esp + 0x10], edi
jbe 0x10057fd7
movzx esi, byte [esp + 0x57]
mov edi, dword [esp + 0x14]
dec esi
call fcn.1001a530
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 0x24], ecx
add dword [ebx + 0x7c], edx
mov eax, ebx
call fcn.10007ab0
mov ecx, dword [esp + 0x2f4]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100595c0
add esp, 0x2e8
ret