Function at 0x1002bd70
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x35c
mov eax, dword [0x100d2170]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov ecx, dword [edi + 8]
mov edx, dword [esi + 0x20]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xd4], eax
mov al, byte [esi + 0x42]
xor ebx, ebx
mov byte [ebp - 0x110], al
mov eax, dword [esi + 0x24]
push edi
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xd8], esi
mov byte [ebp - 0x111], bl
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], eax
call fcn.100254b0
add esp, 4
cmp dword [edi + 0x50], 7
je 0x1003161f
mov dword [edi + 0x50], ebx
mov dword [edi + 0x90], ebx
mov dword [edi + 0x94], ebx
mov dword [edi + 0x14], ebx
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0x184], ebx
test ecx, ecx
jne 0x1003167b
cmp dword [esi + 0x130], ebx
je 0x1002be48
mov esi, dword [esi + 0x138]
mov eax, dword [edi + 0x84]
xor edx, edx
div esi
sub esi, edx
mov dword [ebp - 0x184], esi
mov eax, dword [edi + 0x4c]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x10c]
lea ebx, [eax + edx*4]
mov cl, byte [ebx]
inc dword [ebp - 0x148]
movzx eax, cl
mov dword [ebp - 0xd4], ebx
cmp eax, 0x9e
ja case.0x1002be73.62
jmp dword [eax*4 + 0x100317e8]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
mov eax, 4
mov word [ecx + 8], ax
mov edx, ebx
sub edx, dword [ebp - 0x10c]
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 0x1002ec0a
mov ebx, dword [ebx + 4]
mov edx, dword [ebp - 0xe0]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x10c]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, 0x80
mov ebx, ecx
mov dword [ebp - 0xd4], ecx
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebx + 8], 0
jne 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x10c]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4 - 0x14]
mov ecx, 0x80
mov ebx, edx
mov word [eax + 8], cx
mov dword [ebp - 0xd4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
sub ebx, dword [ebp - 0x10c]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea ecx, [eax + edx*8]
mov esi, dword [ecx]
mov edx, 4
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x10c]
lea eax, [esi + esi*4]
lea edx, [ecx + eax*4]
mov ebx, edx
mov dword [ebp - 0xd4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x1002be73.62
mov ecx, ebx
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebx + 4], 0
jne 0x100311af
mov ecx, dword [edi + 0xb8]
test ecx, ecx
je 0x100311af
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x64]
dec dword [edi + 0xc0]
mov dword [edi + 0xb8], edx
mov edx, dword [ebp - 0xd8]
add dword [edx + 0x58], eax
mov ebx, ecx
mov dword [edx + 0x54], eax
call fcn.10026020
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x140], edx
mov edx, dword [ebp - 0xd4]
cmp dword [edx + 8], 4
mov dword [ebp - 0x13c], ecx
jne 0x1002c04d
mov ecx, dword [edi + 4]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x10c], ecx
lea ecx, [ecx + eax*4]
mov ebx, ecx
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xd4], ecx
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
add ebx, 0x14
fstp qword [eax]
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0xe8], eax
mov eax, esi
mov byte [ebx], 0x18
call fcn.10006ca0
cmp byte [ebp - 0x110], 1
mov dword [ebx + 4], eax
je 0x1002c184
push 1
push esi
mov esi, dword [ebp - 0xe8]
xor eax, eax
or ecx, 0xffffffff
mov edx, esi
call fcn.100236f0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002cb06
movzx ecx, byte [ebp - 0x110]
mov eax, esi
call fcn.10022ae0
test eax, eax
jne 0x10031619
mov ebx, dword [ebp - 0xd4]
mov eax, esi
mov esi, dword [ebp - 0xd8]
mov edx, 0x800
or word [eax + 8], dx
mov dword [eax + 0x18], 0
cmp byte [ebx + 1], 0xff
jne 0x1002c166
mov eax, dword [ebx + 0x10]
mov ecx, esi
call fcn.10004130
mov eax, dword [ebp - 0xe8]
mov byte [ebx + 1], 0xff
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x10], ecx
mov edx, dword [eax + 0xc]
mov dword [ebx + 4], edx
mov ebx, dword [ebp - 0xd4]
jmp 0x1002c18a
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x5c]
jg 0x1002cb0c
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, 0xa02
mov word [eax + 8], cx
mov edx, dword [ebx + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ebx + 4]
mov dl, byte [ebp - 0x110]
mov dword [eax + 0xc], ecx
mov byte [eax + 0xa], dl
cmp byte [ebx + 3], 0
je case.0x1002be73.62
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0xe0]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*8]
or esi, dword [edx + ecx*8 + 4]
je case.0x1002be73.62
mov ecx, 0xa10
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov edx, dword [ebx + 4]
neg edx
sbb edx, edx
and edx, 0x100
inc edx
movzx ecx, dx
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xfc], ecx
mov word [eax + 8], cx
test esi, esi
jle case.0x1002be73.62
lea esp, [esp]
mov eax, dword [ebp - 0xe8]
add eax, 0x28
mov dword [ebp - 0xe8], eax
call fcn.10023410
mov ax, word [ebp - 0xfc]
mov ecx, dword [ebp - 0xe8]
dec esi
mov word [ecx + 8], ax
test esi, esi
jg 0x1002c230
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
mov cx, word [eax + edx*8 + 8]
lea eax, [eax + edx*8]
mov edx, 0xff7f
and cx, dx
or cx, 1
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebx + 0x10]
push 0
push eax
xor eax, eax
mov edx, esi
call fcn.100236f0
mov cl, byte [ebp - 0x110]
add esp, 8
mov byte [esi + 0xa], cl
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x3c]
lea esi, [eax + edx*8 - 0x28]
mov ecx, esi
call fcn.10023560
test eax, eax
jne 0x1002cb06
mov eax, ebx
mov edx, edi
call fcn.1002bd40
push 0x800
push esi
push eax
call fcn.100235c0
add esp, 0xc
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0xe0]
mov ebx, dword [ebx + 8]
lea edx, [eax + eax*4]
mov dword [ebp - 0xf4], ecx
lea eax, [esi + edx*8]
lea ecx, [ebx + ebx*4]
mov dword [ebp - 0xf0], eax
lea esi, [esi + ecx*8]
mov ebx, dword [ebp - 0xf0]
mov eax, esi
call fcn.100236b0
mov edx, 0x1000
test word [esi + 8], dx
je 0x1002c349
mov eax, esi
call fcn.10022c40
test eax, eax
jne 0x10031619
add dword [ebp - 0xf0], 0x28
add esi, 0x28
dec dword [ebp - 0xf4]
jne 0x1002c322
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*8]
mov eax, dword [ebp - 0xf0]
push 0x1000
push eax
push esi
call fcn.100235c0
mov ecx, 0x1000
add esp, 0xc
test word [esi + 8], cx
je 0x1002c3c5
mov eax, esi
call fcn.10022c40
test eax, eax
jne 0x10031619
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xf4]
mov edx, eax
dec eax
mov dword [ebp - 0xf4], eax
test edx, edx
je case.0x1002be73.62
add esi, 0x28
add dword [ebp - 0xf0], 0x28
jmp 0x1002c390
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
push 0x1000
lea eax, [eax + eax*4]
push edx
lea ecx, [ecx + eax*8]
push ecx
call fcn.100235c0
add esp, 0xc
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
push edx
push ecx
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
call fcn.10023470
add esp, 8
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov dword [ebp - 0xf0], edx
mov dl, byte [esi + 8]
or dl, cl
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xe8], eax
test dl, 1
je 0x1002c493
call fcn.10023410
add ebx, 0x14
jmp 0x1002be57
test ecx, 0x4000
je 0x1002c4ae
mov esi, dword [ebp - 0xf0]
call fcn.10022cb0
test eax, eax
jne 0x10031619
mov ecx, dword [ebp - 0xdc]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x1002c4ce
mov esi, ecx
call fcn.10022cb0
test eax, eax
jne 0x10031619
mov edx, dword [ebp - 0xf0]
test byte [edx + 8], 0x12
jne 0x1002c4f5
mov eax, dword [ebp - 0x110]
push 0
push eax
mov esi, edx
call fcn.10022d70
add esp, 8
test eax, eax
jne 0x10031619
mov ecx, dword [ebp - 0xdc]
test byte [ecx + 8], 0x12
jne 0x1002c51c
mov edx, dword [ebp - 0x110]
push 0
push edx
mov esi, ecx
call fcn.10022d70
add esp, 8
test eax, eax
jne 0x10031619
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xf0]
add eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0xd8]
cdq
mov ebx, eax
mov eax, dword [esi + 0x5c]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x1002cb0c
jl 0x1002c54f
cmp ebx, eax
ja 0x1002cb0c
mov esi, dword [ebp - 0xe8]
xor eax, eax
cmp esi, dword [ebp - 0xdc]
lea ecx, [ebx + 2]
sete al
mov edx, esi
call fcn.10022b00
test eax, eax
jne 0x10031619
mov dx, word [esi + 8]
mov eax, 0x3e00
and dx, ax
mov eax, dword [ebp - 0xdc]
or dx, 2
mov word [esi + 8], dx
cmp esi, eax
je 0x1002c5a4
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [esi + 0x10]
push ecx
push edx
push eax
call fcn.100aace0
add esp, 0xc
mov eax, dword [ebp - 0xf0]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov esi, dword [ebp - 0xe8]
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [ebp - 0xdc]
add eax, dword [ecx + 0xc]
push edx
push eax
call fcn.100aace0
mov edx, dword [esi + 0x10]
mov byte [ebx + edx], 0
mov eax, dword [esi + 0x10]
mov dl, byte [ebp - 0x110]
mov byte [eax + ebx + 1], 0
mov dword [esi + 0xc], ebx
mov ebx, dword [ebp - 0xd4]
add esp, 0xc
mov ecx, 0x200
or word [esi + 8], cx
mov byte [esi + 0xa], dl
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
call fcn.1002bce0
mov ecx, dword [ebp - 0xe0]
movzx edx, ax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xdc], eax
call fcn.1002bce0
mov ecx, dword [ebp - 0xe0]
movzx edx, ax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0xf4], edx
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xdc]
mov cl, byte [eax + 8]
or cl, byte [esi + 8]
mov dword [ebp - 0xe8], edx
test cl, 1
jne 0x1002c91b
mov dl, byte [ebp - 0xf4]
and dl, byte [ebp - 0xec]
test dl, 4
je 0x1002c7c6
mov edx, dword [ebp - 0xdc]
mov edx, dword [edx]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x130], edx
mov edx, dword [ebp - 0xdc]
mov edx, dword [edx + 4]
mov dword [ebp - 0x12c], edx
movzx edx, byte [ebx]
add edx, 0xffffffa7
mov byte [ebp - 0x101], 1
cmp edx, 3
ja case.default.0x1002c6b8
jmp dword [edx*4 + 0x10031a64]
push ecx
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.10007fa0
add esp, 0xc
test eax, eax
jne 0x1002c7cd
jmp 0x1002c793
push ecx
push eax
lea edx, [ebp - 0x130]
call fcn.10008040
add esp, 8
test eax, eax
jne 0x1002c7cd
jmp 0x1002c793
push ecx
push eax
lea ecx, [ebp - 0x130]
push ecx
call fcn.10008090
add esp, 0xc
test eax, eax
jne 0x1002c7cd
jmp 0x1002c793
mov edx, eax
or edx, ecx
je 0x1002c91b
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x1002c741
cmp dword [ebp - 0x130], 0
jne 0x1002c741
cmp dword [ebp - 0x12c], 0x80000000
je 0x1002c7cd
push ecx
mov ecx, dword [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x12c]
push eax
push ecx
call fcn.100a6af0
jmp 0x1002c787
mov edx, eax
or edx, ecx
je 0x1002c91b
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x1002c772
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x12c]
push eax
push ecx
call fcn.100a6ba0
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
mov dword [eax], edx
mov dx, word [eax + 8]
mov dword [eax + 4], ecx
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x1002be57
mov byte [ebp - 0x101], 0
mov eax, esi
call fcn.10023110
fstp qword [ebp - 0x100]
mov eax, dword [ebp - 0xdc]
call fcn.10023110
movzx eax, byte [ebx]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x1002c7f0
jmp dword [eax*4 + 0x10031a74]
fadd qword [ebp - 0x100]
jmp 0x1002c8a6
fsub qword [ebp - 0x100]
jmp 0x1002c8a6
fmul qword [ebp - 0x100]
jmp 0x1002c8a6
fld qword [ebp - 0x100]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1002c917
fdivp st(1)
jmp 0x1002c8a6
fld qword [ebp - 0x100]
call fcn.100b06e6
mov esi, eax
mov dword [ebp - 0x224], edx
call fcn.100b06e6
mov ecx, dword [ebp - 0x224]
mov dword [ebp - 0x12c], edx
mov edx, esi
or edx, ecx
mov dword [ebp - 0x130], eax
je 0x1002c91b
mov edx, esi
and edx, ecx
cmp edx, 0xffffffff
jne 0x1002c885
mov dword [ebp - 0x224], 0
mov ecx, dword [ebp - 0x224]
mov esi, 1
push ecx
mov ecx, dword [ebp - 0x12c]
push esi
push ecx
push eax
call fcn.100a6ba0
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], edx
fild qword [ebp - 0x278]
sub esp, 8
fst qword [ebp - 0x100]
fstp qword [esp]
call fcn.10006c70
add esp, 8
test eax, eax
jne 0x1002c91b
mov eax, dword [ebp - 0xe8]
fld qword [ebp - 0x100]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0x3e00
and dx, cx
or dx, 8
mov word [eax + 8], dx
mov dl, byte [ebp - 0xf4]
or dl, byte [ebp - 0xec]
test dl, 8
jne case.0x1002be73.62
cmp byte [ebp - 0x101], 0
jne case.0x1002be73.62
mov edi, eax
call fcn.10023160
mov edi, dword [ebp - 0xe4]
add ebx, 0x14
jmp 0x1002be57
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0xe8]
call fcn.10023410
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
test eax, eax
je case.0x1002be73.62
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
call fcn.10023470
add esp, 8
add ebx, 0x14
jmp 0x1002be57
movzx ebx, byte [ebx + 3]
mov eax, dword [ebp - 0xd8]
lea edx, [ebx*4 + 0x1c]
push 0
push edx
call fcn.10004420
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x10031619
mov esi, dword [ebp - 0xd4]
mov dword [ecx], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edx, esi
sub edx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 0x1a], bl
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edi
mov dword [esi + 0x10], ecx
mov word [esi], 0xec24
mov ebx, esi
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0xe0]
mov esi, dword [ebx + 0x10]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [ebp - 0xe8], eax
cmp dword [esi], eax
je 0x1002ca11
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], eax
js 0x1002ca11
lea eax, [esi + ecx*4 + 0x1c]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebx + 8]
add eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea edx, [eax + edx*8]
mov eax, dword [ebp - 0xf4]
mov dword [eax], edx
sub eax, 4
dec ecx
mov dword [ebp - 0xf4], eax
jns 0x1002c9ec
mov eax, dword [esi]
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
mov edx, dword [ebp - 0x13c]
or cx, 1
mov word [eax + 8], cx
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x140]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
movzx edx, byte [esi + 0x1a]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
lea ecx, [esi + 0x1c]
push ecx
push edx
push esi
call eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x13c], edx
je 0x1002cad3
cmp dword [esi + 0x14], 0
je 0x1002ca9f
mov eax, dword [esi]
push eax
call sym.SQLite3Encrypt.dll_sqlite3_value_text
add esp, 4
push eax
push 0x100bd55c
push edi
call fcn.100240b0
mov ecx, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0xd8]
push edx
push eax
mov eax, dword [ebp - 0xe4]
add eax, 0xd4
call fcn.100271e0
add esp, 8
cmp dword [ebp - 0xd0], 0
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xe8]
test byte [ecx + 8], 0x12
je 0x1002c909
movzx ecx, byte [ebp - 0x110]
mov eax, dword [esi]
call fcn.10022ae0
mov ecx, dword [esi]
call fcn.10023560
mov edi, dword [ebp - 0xe4]
test eax, eax
je case.0x1002be73.62
mov esi, dword [ebp - 0xd8]
push str.string_or_blob_too_big
push edi
call fcn.100240b0
add esp, 8
mov dword [ebp - 0xd0], 0x12
jmp 0x1002e6a4
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea ecx, [edx + ecx*8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [ebp - 0xe8], eax
test dl, 1
je 0x1002cb68
call fcn.10023410
add ebx, 0x14
jmp 0x1002be57
call fcn.100230a0
mov ecx, esi
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
call fcn.100230a0
mov esi, eax
mov al, byte [ebx]
cmp al, 0x55
jne 0x1002cb99
and dword [ebp - 0x120], esi
and dword [ebp - 0x11c], edx
jmp 0x1002cca7
cmp al, 0x56
jne 0x1002cbae
or dword [ebp - 0x120], esi
or dword [ebp - 0x11c], edx
jmp 0x1002cca7
mov ecx, esi
or ecx, edx
je 0x1002cca7
test edx, edx
jg 0x1002cbe6
jl 0x1002cbc2
test esi, esi
jae 0x1002cbdb
mov cl, 0xaf
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x1002cbe6
jg 0x1002cbd4
cmp esi, 0xffffffc0
jbe 0x1002cbe6
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x1002cc27
jg 0x1002cbe6
cmp esi, 0x40
jb 0x1002cc27
cmp dword [ebp - 0x11c], 0
jg 0x1002cc13
jl 0x1002cbfa
cmp dword [ebp - 0x120], 0
jae 0x1002cc13
cmp al, 0x57
je 0x1002cc13
or eax, 0xffffffff
cdq
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
jmp 0x1002cca7
xor eax, eax
cdq
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
jmp 0x1002cca7
mov edx, dword [ebp - 0x11c]
cmp al, 0x57
mov eax, dword [ebp - 0x120]
mov ecx, esi
jne 0x1002cc4c
call fcn.100b0690
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], edx
jmp 0x1002cc8f
call fcn.100ad420
cmp dword [ebp - 0x11c], 0
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], edx
jg 0x1002cc8f
jl 0x1002cc71
cmp dword [ebp - 0x120], 0
jae 0x1002cc8f
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.100b0690
or dword [ebp - 0x170], eax
or dword [ebp - 0x16c], edx
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0x3e00
and cx, dx
or cx, 4
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.10023200
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea ecx, [eax + edx*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xf0], ecx
test al, 4
jne 0x1002cd70
test al, 8
jne 0x1002cd32
test al, 2
je 0x1002cd49
push 1
mov eax, ecx
call fcn.1002bb10
add esp, 4
jmp 0x1002cd43
mov edi, dword [ebp - 0xf0]
call fcn.10023160
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xf0]
movzx eax, word [ecx + 8]
mov esi, dword [ebp - 0xd8]
test al, 4
jne 0x1002cd70
cmp dword [ebx + 8], 0
jne 0x1002ec0a
mov dword [ebp - 0xd0], 0x14
jmp 0x1002e6a4
and eax, 0x3e00
or eax, 4
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 4
lea esi, [edx + ecx*8]
je case.0x1002be73.62
call fcn.10023230
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edx, 0x4000
test word [esi + 8], dx
je 0x1002cdd2
call fcn.10022cb0
mov dword [ebp - 0xd0], eax
jmp 0x1002cddc
mov dword [ebp - 0xd0], 0
mov dl, byte [ebp - 0x110]
mov cl, byte [ebx + 8]
mov eax, esi
call fcn.10023350
cmp dword [ebp - 0xd0], 0
jne 0x1002e69e
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
lea ecx, [ecx + ecx*4]
lea eax, [esi + ecx*8]
mov dword [ebp - 0xf0], edx
movzx edx, word [edx + 8]
mov dword [ebp - 0xdc], eax
movzx eax, word [eax + 8]
mov dword [ebp - 0xd4], edx
mov cl, byte [ebp - 0xd4]
mov dword [ebp - 0xe8], eax
mov dl, al
or al, cl
test al, 1
mov al, byte [ebx + 3]
je 0x1002ceb5
test al, al
jns 0x1002ce7b
test cl, 1
je 0x1002ce71
test dl, 1
je 0x1002ce71
test dword [ebp - 0xe8], 0x100
jne 0x1002ce71
xor eax, eax
jmp 0x1002cfe9
mov eax, 1
jmp 0x1002cfe9
test al, 0x20
je 0x1002cea5
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov dx, word [esi + ecx*8 + 8]
lea eax, [esi + ecx*8]
mov ecx, 0x3e00
and dx, cx
or dx, 1
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x1002be57
test al, 0x10
jne 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
and al, 0x47
cmp al, 0x43
jl 0x1002cefa
and cl, 0xe
cmp cl, 2
jne 0x1002ced9
mov eax, dword [ebp - 0xf0]
push 0
call fcn.1002bb10
mov dl, byte [ebp - 0xe8]
add esp, 4
and dl, 0xe
cmp dl, 2
jne 0x1002cf8a
mov eax, dword [ebp - 0xdc]
push 0
call fcn.1002bb10
add esp, 4
jmp 0x1002cf8a
cmp al, 0x42
jne 0x1002cf8a
test cl, 2
jne 0x1002cf49
test cl, 0xc
je 0x1002cf49
mov edx, dword [ebp - 0x110]
mov esi, dword [ebp - 0xf0]
push 1
push edx
call fcn.10022d70
mov ax, word [ebp - 0xd4]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x7e00
and cx, dx
mov dl, byte [ebp - 0xe8]
add esp, 8
xor ax, cx
mov word [ebp - 0xd4], ax
test dl, 2
jne 0x1002cf8a
test dl, 0xc
je 0x1002cf8a
mov eax, dword [ebp - 0x110]
mov esi, dword [ebp - 0xdc]
push 1
push eax
call fcn.10022d70
mov ax, word [ebp - 0xe8]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x7e00
and cx, dx
add esp, 8
xor ax, cx
mov word [ebp - 0xe8], ax
mov edi, 0x4000
test dword [ebp - 0xd4], edi
je 0x1002cfac
mov esi, dword [ebp - 0xf0]
call fcn.10022cb0
and dword [ebp - 0xd4], 0xbfff
test dword [ebp - 0xe8], edi
je 0x1002cfc9
mov esi, dword [ebp - 0xdc]
call fcn.10022cb0
and dword [ebp - 0xe8], 0xbfff
mov edi, dword [ebx + 0x10]
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xdc]
call fcn.10028100
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe4]
movzx ecx, byte [ebx]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x1002cff4
jmp dword [ecx*4 + 0x10031a84]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x1002d037
xor edx, edx
test eax, eax
setne dl
jmp 0x1002d035
xor ecx, ecx
test eax, eax
sets cl
mov eax, ecx
jmp 0x1002d037
xor edx, edx
test eax, eax
setle dl
jmp 0x1002d035
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x1002d037
xor edx, edx
test eax, eax
setns dl
mov eax, edx
movzx ecx, word [ebp - 0xd4]
mov edx, dword [ebp - 0xf0]
mov word [edx + 8], cx
movzx ecx, word [ebp - 0xe8]
mov edx, dword [ebp - 0xdc]
mov word [edx + 8], cx
test byte [ebx + 3], 0x20
je 0x1002d3bf
mov ecx, dword [ebx + 8]
lea ecx, [ecx + ecx*4]
mov dx, word [esi + ecx*8 + 8]
lea ecx, [esi + ecx*8]
mov esi, 0x3e00
and dx, si
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0x10]
add eax, 4
mov dword [ebp - 0x194], eax
add ebx, 0x14
jmp 0x1002be57
test byte [ebx + 3], 1
jne 0x1002d0b3
mov dword [ebp - 0x194], 0
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x118], edx
mov edx, dword [ebx + 8]
xor esi, esi
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x108], edx
test eax, eax
jle 0x1002d195
add ecx, 0x14
mov dword [ebp - 0xec], ecx
lea ebx, [ebx]
mov eax, dword [ebp - 0x194]
test eax, eax
je 0x1002d0ff
mov ecx, dword [eax + esi*4]
jmp 0x1002d101
mov ecx, esi
mov eax, dword [ebp - 0xec]
mov edx, dword [eax]
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xf4], edx
mov edx, dword [eax + 0x10]
movzx eax, byte [edx + esi]
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0xe8], eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp - 0x118]
add eax, ecx
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
mov edi, dword [ebp - 0xf4]
call fcn.10028100
mov dword [ebp - 0x15c], eax
test eax, eax
jne 0x1002d17e
add dword [ebp - 0xec], 4
inc esi
cmp esi, dword [ebp - 0xdc]
jl 0x1002d0f0
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x194], eax
add ebx, 0x14
jmp 0x1002be57
cmp dword [ebp - 0xe8], 0
je 0x1002d195
mov edx, dword [ebp - 0x15c]
neg edx
mov dword [ebp - 0x15c], edx
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x194], 0
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x10c]
test eax, eax
jns 0x1002d1c5
mov ebx, dword [ebx + 4]
jmp 0x1002ec13
je 0x1002ec10
mov ebx, dword [ebx + 0xc]
jmp 0x1002ec13
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x1002d1f0
mov esi, 2
jmp 0x1002d202
call fcn.100230a0
or eax, edx
je 0x1002d200
mov esi, 1
jmp 0x1002d202
xor esi, esi
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
test byte [eax + edx*8 + 8], 1
lea ecx, [eax + edx*8]
je 0x1002d21f
mov eax, 2
jmp 0x1002d231
call fcn.100230a0
or eax, edx
je 0x1002d22f
mov eax, 1
jmp 0x1002d231
xor eax, eax
cmp byte [ebx], 0x48
jne 0x1002d243
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x100b93b8]
jmp 0x1002d24e
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x100b93c4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0xe0]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cmp eax, 2
jne 0x1002d27e
mov ax, word [ecx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x1002be57
cdq
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0x3e00
and ax, dx
or ax, 4
mov word [ecx + 8], ax
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov eax, esi
mov dword [ebp - 0xf0], ecx
call fcn.10023410
mov ecx, dword [ebp - 0xf0]
test byte [ecx + 8], 1
jne case.0x1002be73.62
mov eax, 4
mov word [esi + 8], ax
call fcn.100230a0
or eax, edx
jne 0x1002d2fa
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x1002be57
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [esi + ecx*8]
lea esi, [esi + eax*8]
mov eax, esi
mov dword [ebp - 0xf0], edx
call fcn.10023410
mov ecx, dword [ebp - 0xf0]
test byte [ecx + 8], 1
jne case.0x1002be73.62
mov edx, 4
mov word [esi + 8], dx
call fcn.100230a0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x1002ec0a
mov byte [eax + ecx], 1
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
test byte [eax + edx*8 + 8], 1
lea eax, [eax + edx*8]
je 0x1002d398
mov eax, dword [ebx + 0xc]
jmp 0x1002d3bf
call fcn.10023110
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1002d3af
mov eax, 1
jmp 0x1002d3b1
xor eax, eax
cmp byte [ebx], 0x2e
jne 0x1002d3bf
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
test byte [eax + edx*8 + 8], 1
jne 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1c4], edx
lea ecx, [ebp - 0x144]
lea edx, [ebp - 0x1c4]
mov dword [ebp - 0x144], eax
call fcn.10027880
mov ebx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea edx, [ebx + ebx*4]
mov ebx, dword [ebp - 0x1c4]
lea esi, [ecx + edx*8]
mov edx, dword [ebx + 0x54]
mov dword [ebp - 0xe8], edx
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edx
test eax, eax
jne 0x1002e69e
mov eax, dword [ebx + 0x40]
cmp eax, dword [edi + 0x48]
mov eax, dword [ebp - 0x144]
je 0x1002d5c1
cmp byte [ebx + 2], 0
je 0x1002d4c6
cmp byte [ebx], 3
jne 0x1002d4b1
mov eax, edx
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*8 + 0xc]
lea ecx, [ecx + edx*8]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x44], eax
mov dword [ebp - 0x160], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x50], eax
jmp 0x1002d549
mov eax, esi
call fcn.10023410
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
cmp byte [ebx + 4], 0
mov esi, edx
mov eax, esi
jne 0x1002d506
call fcn.1001afa0
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x23c], edx
mov edx, dword [ebp - 0xf0]
lea esi, [ebp - 0x160]
mov dword [ebp - 0x240], ecx
call fcn.1001b510
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0x240]
mov dword [ebx + 0x44], eax
jmp 0x1002d525
call fcn.1001afa0
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0xf0]
lea esi, [ebp - 0x160]
mov dword [ebx + 0x44], ecx
call fcn.1001b510
mov dword [ebx + 0x50], eax
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebp - 0x160]
cmp eax, ecx
ja 0x1002d537
mov dword [ebx + 0x48], eax
jmp 0x1002d549
mov edx, dword [ebp - 0xd8]
cmp eax, dword [edx + 0x5c]
ja 0x10031674
mov dword [ebx + 0x48], ecx
mov eax, dword [edi + 0x48]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0x50]
mov al, byte [ecx]
cmp al, 0x80
jae 0x1002d568
movzx eax, al
mov dword [ebp - 0x1d0], eax
mov ecx, 1
jmp 0x1002d57c
lea esi, [ebp - 0x1d0]
call fcn.10007de0
movzx ecx, al
mov eax, dword [ebp - 0x1d0]
movzx ecx, cl
mov dword [ebx + 0x4c], ecx
mov ecx, dword [ebp - 0xe8]
xor edx, edx
mov word [ebx + 0x12], dx
mov dword [ecx], eax
cmp dword [ebp - 0x160], eax
jae 0x1002d5cd
xor ecx, ecx
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x48], ecx
cmp eax, 0x18003
ja 0x1002d5ac
cmp eax, dword [ebx + 0x44]
jbe 0x1002d5cd
mov eax, 0x12c96
call fcn.1007c2f0
mov dword [ebp - 0xd0], eax
jmp 0x1002e69e
movzx edx, word [ebx + 0x12]
cmp edx, eax
jg 0x1002d81b
mov eax, dword [ebx + 0x4c]
mov edx, dword [ebp - 0xe8]
cmp eax, dword [edx]
jae 0x1002d7ba
cmp dword [ebx + 0x50], 0
jne 0x1002d658
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], eax
cmp byte [ebx + 4], al
mov edx, dword [edx]
sete cl
push ecx
push eax
mov eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x2c8]
call fcn.100239d0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e69e
mov edx, dword [ebp - 0x2b8]
jmp 0x1002d65b
mov edx, dword [ebx + 0x50]
movzx esi, word [ebx + 0x12]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx + esi*4]
mov ecx, dword [ecx]
mov dword [ebp - 0x150], eax
mov eax, dword [ebx + 0x4c]
add eax, edx
add ecx, edx
mov dword [ebp - 0xfc], ecx
lea ecx, [ebx + esi*4 + 0x58]
mov dword [ebp - 0x108], ecx
mov ecx, dword [ebp - 0x150]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0xdc], eax
movzx edx, byte [eax]
mov dword [ebp - 0x124], edx
cmp edx, 0x80
jae 0x1002d6dc
inc eax
movzx edx, dl
mov dword [ebp - 0xdc], eax
movzx eax, byte [edx + 0x100b92e0]
cdq
add ecx, eax
adc dword [ebp - 0x14c], edx
mov dword [ebp - 0x150], ecx
jmp 0x1002d714
mov ecx, dword [ebp - 0xdc]
lea esi, [ebp - 0x124]
call fcn.10007de0
movzx eax, al
add dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x124]
call fcn.10027a00
add dword [ebp - 0x150], eax
mov esi, dword [ebp - 0x118]
adc dword [ebp - 0x14c], 0
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0xdc]
mov dword [ecx], edx
mov edx, dword [ebp - 0xe8]
add ecx, 4
inc esi
mov dword [ebp - 0x108], ecx
mov ecx, dword [ebp - 0x150]
mov dword [edx + esi*4], ecx
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x118], esi
cmp esi, dword [ebp - 0x144]
jg 0x1002d75d
cmp eax, edx
jb 0x1002d6a9
mov word [ebx + 0x12], si
mov esi, eax
sub esi, dword [ebp - 0xec]
mov dword [ebx + 0x4c], esi
cmp eax, edx
jb 0x1002d78d
ja 0x100313b6
xor edx, edx
cmp ecx, dword [ebx + 0x44]
jne 0x100313b6
cmp dword [ebp - 0x14c], edx
jne 0x100313b6
mov edx, dword [ebx + 0x44]
xor eax, eax
cmp dword [ebp - 0x14c], eax
ja 0x100313b6
jb 0x1002d7a8
cmp ecx, edx
ja 0x100313b6
cmp dword [ebx + 0x50], eax
jne 0x1002d7c4
lea eax, [ebp - 0x2c8]
call fcn.10023020
jmp 0x1002d7c4
mov dword [ebp - 0x124], 0
movzx eax, word [ebx + 0x12]
cmp eax, dword [ebp - 0x144]
jg 0x1002d827
mov eax, dword [ebp - 0xd4]
cmp byte [eax + 1], 0xf8
jne 0x1002d802
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xf4]
push 0x800
push ecx
push edx
call fcn.100235c0
mov ebx, dword [ebp - 0xd4]
add esp, 0xc
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebp - 0xf4]
call fcn.10023410
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + eax*4 + 0x58]
mov dword [ebp - 0x124], eax
jmp 0x1002d82d
mov esi, dword [ebp - 0xf4]
mov ecx, 0x2460
test word [esi + 8], cx
je 0x1002d83f
mov eax, esi
call fcn.10023410
mov dl, byte [ebp - 0x110]
mov eax, dword [ebp - 0x144]
mov byte [esi + 0xa], dl
mov ecx, dword [ebx + 0x48]
mov edx, dword [ebp - 0xe8]
cmp ecx, dword [edx + eax*4 + 4]
jb 0x1002d907
mov ecx, dword [ebx + 0x50]
add ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0xec], ecx
cmp edx, 0xc
jae 0x1002d88d
mov eax, esi
call fcn.10027b20
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
lea ebx, [edx - 0xc]
shr ebx, 1
lea edx, [ebx + 2]
mov dword [esi + 0xc], ebx
cmp dword [esi + 0x18], edx
jge 0x1002d8c1
mov eax, 1
mov word [esi + 8], ax
mov ecx, edx
xor eax, eax
mov edx, esi
call fcn.10022b00
test eax, eax
jne 0x10031619
mov ecx, dword [ebp - 0xec]
jmp 0x1002d8c7
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
push ebx
push ecx
push eax
call fcn.100aace0
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x124]
mov byte [ebx + ecx], 0
mov edx, dword [esi + 0x10]
add esp, 0xc
mov byte [ebx + edx + 1], 0
mov ebx, dword [ebp - 0xd4]
and eax, 1
mov ax, word [eax*2 + 0x100b93d0]
mov word [esi + 8], ax
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebp - 0xd4]
mov al, byte [ecx + 3]
mov edx, dword [ebp - 0x124]
test al, 0xc0
je 0x1002d928
cmp edx, 0xc
jb 0x1002d924
test dl, 1
je 0x1002d933
test al, al
js 0x1002d933
mov eax, edx
call fcn.10027a00
test eax, eax
jne 0x1002d94d
mov eax, esi
mov ecx, 0x100d898c
call fcn.10027b20
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebp - 0xe8]
xor edx, edx
cmp byte [ebx + 4], dl
sete dl
push edx
mov edx, dword [ebp - 0x144]
mov ecx, dword [ecx + edx*4]
push ecx
mov edx, eax
mov eax, dword [ebp - 0xf0]
mov ecx, esi
call fcn.100239d0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e69e
mov edx, dword [ebp - 0x124]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.10027b20
mov ebx, dword [ebp - 0xd4]
mov edx, 0xefff
and word [esi + 8], dx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov al, byte [esi]
mov dword [ebp - 0xf0], edx
test al, al
je case.0x1002be73.62
mov ecx, dword [ebp - 0x110]
push ecx
mov ecx, dword [ebp - 0xf0]
inc esi
call fcn.1002bc30
mov al, byte [esi]
add dword [ebp - 0xf0], 0x28
add esp, 4
test al, al
jne 0x1002d9cf
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebx + 0x10]
xor eax, eax
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
lea edx, [ecx + edx*8]
lea eax, [eax + eax*4]
mov dword [ebp - 0xf4], edx
lea edx, [edx + eax*8 - 0x28]
movzx eax, byte [edi + 0x5c]
mov dword [ebp - 0x108], edx
lea edx, [ebx + ebx*4]
mov dword [ebp - 0xfc], eax
lea eax, [ecx + edx*8]
mov dword [ebp - 0xe8], eax
test esi, esi
je 0x1002da83
mov ebx, dword [ebp - 0xf4]
mov al, byte [esi]
mov ecx, dword [ebp - 0x110]
push ecx
mov ecx, ebx
call fcn.1002bc30
mov al, byte [esi + 1]
inc esi
add esp, 4
add ebx, 0x28
test al, al
jne 0x1002da67
mov esi, dword [ebp - 0x108]
lea esp, [esp]
mov edx, dword [ebp - 0xfc]
push edx
lea ebx, [ebp - 0x1a8]
mov edx, esi
call fcn.100278d0
mov dword [ebp - 0xec], eax
mov dword [esi + 0x1c], eax
mov eax, 0x4000
add esp, 4
test word [esi + 8], ax
je 0x1002daef
mov ecx, dword [ebp - 0x1a0]
or ecx, dword [ebp - 0x19c]
je 0x1002dad8
call fcn.10022cb0
test eax, eax
jne 0x10031619
jmp 0x1002daef
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0x180], eax
adc dword [ebp - 0x17c], edx
sub dword [ebp - 0x1a8], ecx
mov ebx, dword [ebp - 0x1a0]
add ebx, dword [ebp - 0x1a8]
adc dword [ebp - 0x19c], 0
cmp dword [ebp - 0xec], 0x7f
mov dword [ebp - 0x1a0], ebx
ja 0x1002db18
mov eax, 1
jmp 0x1002db29
mov edx, dword [ebp - 0xec]
push 0
push edx
call fcn.10007e50
add esp, 8
add dword [ebp - 0xdc], eax
sub esi, 0x28
cmp esi, dword [ebp - 0xf4]
jae 0x1002da90
mov eax, dword [ebp - 0xdc]
cmp eax, 0x7e
jg 0x1002db52
inc eax
mov dword [ebp - 0xdc], eax
jmp 0x1002db7f
cdq
push edx
push eax
call fcn.10007e50
mov esi, eax
mov eax, dword [ebp - 0xdc]
add eax, esi
mov dword [ebp - 0xdc], eax
cdq
push edx
push eax
call fcn.10007e50
add esp, 0x10
cmp esi, eax
jge 0x1002db7f
inc dword [ebp - 0xdc]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x19c]
cdq
add ebx, eax
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x5c]
adc ecx, edx
mov esi, ebx
add esi, dword [ebp - 0x180]
mov dword [ebp - 0x214], edx
adc ecx, dword [ebp - 0x17c]
cdq
mov dword [ebp - 0x320], ebx
cmp ecx, edx
jg 0x1002cb06
jl 0x1002dbcc
cmp esi, eax
ja 0x1002cb06
mov esi, dword [ebp - 0xe8]
cmp dword [esi + 0x18], ebx
jge 0x1002dc0a
xor eax, eax
mov ecx, ebx
mov edx, esi
call fcn.10022b00
test eax, eax
jne 0x10031619
mov ebx, dword [ebp - 0xdc]
mov esi, dword [esi + 0x10]
mov dword [ebp - 0xf0], esi
cmp ebx, 0x80
jae 0x1002dc17
mov byte [esi], bl
mov eax, 1
jmp 0x1002dc2d
mov ecx, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], ecx
jmp 0x1002dbea
mov edx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x218]
push edx
push eax
call fcn.10007c00
add esp, 8
movzx ecx, al
mov dword [ebp - 0xfc], ebx
mov ebx, dword [ebp - 0xf4]
mov dword [ebp - 0xdc], ecx
jmp 0x1002dc50
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0xec], ecx
cmp ecx, 0x80
jae 0x1002dc77
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xdc]
mov byte [edx + eax], cl
mov eax, 1
jmp 0x1002dc97
mov edx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xdc]
push 0
push ecx
lea esi, [esi + edx]
call fcn.10007c00
mov ecx, dword [ebp - 0xec]
add esp, 8
mov edx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xfc]
movzx eax, al
add dword [ebp - 0xdc], eax
lea edi, [esi + edx]
mov eax, ebx
call fcn.10027a20
add esi, eax
add ebx, 0x28
mov dword [ebp - 0xfc], esi
cmp ebx, dword [ebp - 0x108]
jbe 0x1002dc50
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x320]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x180]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [ebp - 0x17c]
je 0x1002dcfc
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
mov byte [eax + 0xa], 1
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x14]
lea edx, [ebp - 0x1f8]
xor esi, esi
push edx
mov dword [ebp - 0x1f8], esi
mov dword [ebp - 0x1f4], esi
call fcn.10020630
add esp, 4
mov dword [ebp - 0xd0], eax
cmp eax, esi
jne 0x1002e69e
mov eax, dword [ebp - 0xd4]
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1f4]
mov ebx, dword [ebp - 0xd4]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf0], ecx
test eax, eax
jne 0x1002de65
cmp dword [esi + 0xa0], eax
jg 0x10031129
mov eax, ecx
call fcn.10006ca0
mov edx, dword [esi + 0x1b4]
add edx, dword [esi + 0x1b0]
mov ebx, eax
push edx
push 0
push esi
mov dword [ebp - 0xfc], ebx
call fcn.10069fc0
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
push eax
add ebx, 0x21
push ebx
mov eax, esi
call fcn.10004420
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1002ec20
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0xf0]
inc ecx
push ecx
lea eax, [ebx + 0x20]
push edx
push eax
mov dword [ebx], eax
call fcn.100aace0
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x1002de1e
mov byte [esi + 0x43], 0
mov byte [esi + 0x4b], 1
jmp 0x1002de24
inc dword [esi + 0x1b0]
mov eax, dword [esi + 0x1a8]
mov dword [ebx + 0x18], eax
mov ecx, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], ebx
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x1bc]
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0x1c4]
mov dword [ebx + 0x14], ecx
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [esi + 0x1a8]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xec], eax
test eax, eax
je 0x1002deb0
nop
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [edx]
call fcn.10007010
test eax, eax
je 0x1002ded4
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x18]
inc dword [ebp - 0xdc]
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x1002de80
mov eax, dword [ebp - 0xf0]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.100240b0
add esp, 0xc
mov dword [ebp - 0xd0], 1
jmp 0x1002e6a4
mov eax, dword [ebp - 0xe8]
xor ecx, ecx
cmp dword [esi + 0xa0], ecx
jle 0x1002deed
cmp eax, 1
je 0x10031133
mov edx, dword [ebp - 0xec]
cmp dword [edx + 0x18], ecx
jne 0x1002df51
cmp byte [esi + 0x4b], cl
je 0x1002df51
mov dword [ebp - 0xf4], 1
cmp eax, 1
jne 0x1002df57
push eax
mov esi, edi
call fcn.10026cb0
mov esi, dword [ebp - 0xd8]
add esp, 4
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x10031372
mov eax, edi
mov byte [esi + 0x43], 1
call fcn.10026d20
cmp eax, 5
je 0x100313dc
mov byte [esi + 0x4b], 0
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xd0], eax
jmp 0x1002e05b
mov dword [ebp - 0xf4], ecx
mov edx, dword [esi + 0x1b0]
sub edx, dword [ebp - 0xdc]
dec edx
mov dword [ebp - 0xdc], edx
cmp eax, 2
jne 0x1002dfe3
mov eax, dword [esi + 0x18]
shr eax, 1
and eax, 1
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf0], ecx
cmp dword [esi + 0x14], ecx
jle 0x1002dfe9
xor edx, edx
cmp eax, ecx
sete dl
xor ebx, ebx
mov dword [ebp - 0x108], edx
jmp 0x1002dfa0
mov eax, dword [ebp - 0x108]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + ecx + 4]
push eax
push 0x204
push edx
call fcn.1001a8b0
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
mov eax, dword [ebp - 0xf0]
inc eax
add ebx, 0x10
mov dword [ebp - 0xf0], eax
cmp eax, dword [esi + 0x14]
jl 0x1002dfa0
xor ecx, ecx
jmp 0x1002dfe9
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xf0], ecx
cmp dword [esi + 0x14], ecx
jle 0x1002e040
xor ebx, ebx
jmp 0x1002e000
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [ebx + edx + 4]
push ecx
call fcn.1001ac80
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
mov eax, dword [ebp - 0xf0]
inc eax
add ebx, 0x10
mov dword [ebp - 0xf0], eax
cmp eax, dword [esi + 0x14]
jl 0x1002e000
cmp dword [ebp - 0xfc], 0
je 0x1002e05b
mov eax, esi
call fcn.10028e80
mov eax, esi
call fcn.10042760
or dword [esi + 0x18], 2
mov ebx, dword [ebp - 0xec]
cmp dword [esi + 0x1a8], ebx
je 0x1002e0ce
lea esp, [esp]
cmp dword [esi + 0x1c8], 0
mov eax, dword [esi + 0x1a8]
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1a8], ecx
je 0x1002e091
mov ecx, esi
call fcn.100040f0
jmp 0x1002e0c0
cmp eax, dword [esi + 0x120]
jb 0x1002e0b7
cmp eax, dword [esi + 0x124]
jae 0x1002e0b7
mov edx, dword [esi + 0x11c]
mov dword [eax], edx
dec dword [esi + 0x108]
mov dword [esi + 0x11c], eax
jmp 0x1002e0c0
push eax
call sym.SQLite3Encrypt.dll_sqlite3_free
add esp, 4
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], ebx
jne 0x1002e070
cmp dword [ebp - 0xe8], 1
jne 0x1002e0fe
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x1a8], eax
mov eax, ebx
mov ecx, esi
call fcn.10004130
cmp dword [ebp - 0xf4], 0
jne 0x1002e2c0
dec dword [esi + 0x1b0]
jmp 0x1002e138
cmp dword [ebp - 0xf4], 0
mov ecx, dword [ebx + 8]
mov dword [esi + 0x1b8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0x1bc], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x1c0], eax
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x1c4], ecx
je 0x1002e138
cmp dword [ebp - 0xe8], 2
jne 0x1002e2c0
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe8]
push edx
push eax
push esi
call fcn.10069fc0
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 8]
mov esi, dword [ebp - 0xd8]
test ecx, ecx
je 0x1002e185
test dword [esi + 0x18], 0x2000000
jne 0x10031542
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add edx, edx
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x1002e296
push ecx
mov ecx, eax
push ecx
call fcn.10019af0
mov ecx, eax
add esp, 8
mov dword [ebp - 0xd0], ecx
cmp cl, 5
je 0x10031551
test ecx, ecx
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
cmp dword [ebx + 8], eax
je 0x1002e268
test byte [edi + 0x60], 0x10
je 0x1002e268
cmp byte [esi + 0x43], al
je 0x1002e1ef
cmp dword [esi + 0x9c], 1
jle 0x1002e268
cmp dword [edi + 0x70], 0
jne 0x1002e20a
mov edx, dword [esi + 0x1b0]
inc dword [esi + 0x1b4]
add edx, dword [esi + 0x1b4]
mov dword [edi + 0x70], edx
mov eax, dword [edi + 0x70]
dec eax
push eax
push 0
push esi
call fcn.10069fc0
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e238
mov eax, dword [edi + 0x70]
mov ecx, dword [ebp - 0xf4]
call fcn.1001ac20
mov dword [ebp - 0xd0], eax
mov ecx, dword [esi + 0x1b8]
mov dword [edi + 0xa0], ecx
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0xa4], edx
mov eax, dword [esi + 0x1c0]
mov dword [edi + 0xa8], eax
mov ecx, dword [esi + 0x1c4]
mov dword [edi + 0xac], ecx
mov eax, dword [ebp - 0xf4]
lea edx, [ebp - 0x1a4]
push edx
push 1
call fcn.10020550
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
mov ebx, dword [ebp - 0xd4]
add esp, 8
add eax, eax
mov edx, dword [ecx + eax*8 + 0xc]
mov eax, dword [edx + 4]
jmp 0x1002e2a2
mov dword [ebp - 0x1a4], 0
xor eax, eax
cmp byte [ebx + 3], 0
je 0x1002e2c0
mov ecx, dword [ebp - 0x1a4]
cmp ecx, dword [ebx + 0xc]
jne 0x1003113d
cmp eax, dword [ebx + 0x10]
jne 0x1003113d
cmp dword [ebp - 0xd0], 0
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x1fc]
push edx
mov edx, dword [ebp - 0xd8]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
call fcn.10020550
add esp, 8
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, eax
mov eax, dword [ebp - 0x1fc]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0xd8]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl eax, 4
add eax, dword [esi + 0x10]
push ecx
mov dword [ebp - 0xfc], eax
mov eax, dword [eax + 4]
push edx
call fcn.100205b0
mov edx, eax
mov eax, dword [ebx + 8]
add esp, 8
mov dword [ebp - 0xd0], edx
cmp eax, 1
jne 0x1002e36b
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], 2
jmp 0x1002e37f
cmp eax, 2
jne 0x1002e37f
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ecx + 0xc]
mov cl, byte [ebx + 0xc]
mov byte [eax + 0x4c], cl
cmp dword [ebx + 4], 1
jne 0x1002e390
mov eax, esi
call fcn.10028e80
and dword [edi + 0x58], 0xfffffffe
test edx, edx
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
test esi, esi
je case.0x1002be73.54
mov edx, dword [esi + 0xc]
cmp edx, dword [ebx + 8]
je 0x1002e4f8
test byte [edi + 0x58], 1
mov esi, dword [ebp - 0xd8]
jne 0x10031573
mov edx, dword [ebx + 8]
xor eax, eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x108], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xec], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0xfc], edx
mov esi, dword [eax + 4]
mov dword [ebp - 0xdc], esi
cmp cl, 0x37
jne 0x1002e423
movzx ecx, byte [ebx + 3]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
and ecx, 8
or ecx, 4
mov dword [ebp - 0x118], ecx
cmp al, byte [edi + 0x5c]
jae 0x1002e42d
mov byte [edi + 0x5c], al
jmp 0x1002e42d
mov dword [ebp - 0x118], 0
test byte [ebx + 3], 0x10
je 0x1002e44c
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0xe0]
lea esi, [edx + ecx*8]
call fcn.10023200
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x1002e46e
mov ecx, dword [ebx + 0x10]
movzx eax, word [ecx + 8]
mov dword [ebp - 0x108], ecx
movzx ecx, word [ecx + 6]
add eax, ecx
mov dword [ebp - 0xf4], eax
jmp 0x1002e47b
cmp al, 0xf2
jne 0x1002e47b
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf4]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0xe4]
push 0
push eax
push ecx
call fcn.1002ba30
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10031613
mov edx, dword [esi + 0x14]
mov edi, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0xfc]
or dword [esi + 8], 4
push edx
push edi
push ecx
mov ecx, dword [ebp - 0xdc]
mov byte [esi + 2], 1
mov dword [esi + 0xc], eax
call fcn.1001add0
mov edx, dword [ebp - 0xd4]
mov dword [esi + 0x1c], edi
mov edi, dword [ebp - 0xe4]
add esp, 0xc
cmp byte [edx + 1], 0xfa
mov dword [ebp - 0xd0], eax
setne al
mov byte [esi + 4], al
mov ebx, edx
mov cl, byte [ebx + 3]
mov edx, dword [esi + 0x14]
and cl, 3
cmp dword [ebp - 0xd0], 0
mov byte [edx + 0x43], cl
jne 0x1002e69e
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0xe4]
push 0
push 0xffffffffffffffff
push eax
call fcn.1002ba30
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10031613
mov ecx, dword [ebp - 0xd4]
mov eax, 1
or dword [esi + 8], eax
mov byte [esi + 2], al
movzx edx, byte [ecx + 3]
push 0x41e
or edx, 5
push edx
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx]
push 0
push eax
lea ecx, [esi + 0x18]
call fcn.10018a30
add esp, 0x10
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ecx, dword [esi + 0x18]
push 1
push ecx
call fcn.10019af0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov eax, dword [ebp - 0xd4]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x1002e5f8
movzx edx, byte [eax + 3]
or edx, 2
push edx
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [esi + 0x18]
call fcn.1001fff0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e5f2
mov ecx, dword [esi + 0x14]
mov eax, dword [ebp - 0x20c]
push ecx
mov ecx, dword [esi + 0x18]
push ebx
push 4
mov dword [esi + 0x1c], ebx
call fcn.1001add0
add esp, 0xc
mov dword [ebp - 0xd0], eax
mov byte [esi + 4], 0
jmp 0x1002e61a
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
push edx
push 0
push 4
mov eax, 1
call fcn.1001add0
add esp, 0xc
mov dword [ebp - 0xd0], eax
mov byte [esi + 4], 1
cmp dword [ebp - 0xd0], 0
jne 0x1002e698
mov ecx, dword [ebp - 0xd4]
xor eax, eax
cmp byte [ecx + 3], 8
mov ebx, ecx
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 8]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0xe4]
push 1
push 0xffffffffffffffff
push edx
call fcn.1002ba30
add esp, 0xc
test eax, eax
je 0x10031613
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 0x1c], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xd8]
push eax
push ecx
call fcn.10032ff0
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x1002ec20
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xd8]
cmp byte [esi + 0x45], 0
je 0x1002e6b4
mov dword [ebp - 0xd0], 7
cmp dword [edi + 0x2c], 0
mov ebx, dword [ebp - 0xd0]
jne 0x100316f4
cmp ebx, 0xc0a
je 0x100316f4
mov ecx, str.unknown_error
cmp ebx, 0x204
je 0x100316e0
mov eax, ebx
and eax, 0xff
cmp eax, 0x1a
ja 0x100316e5
mov eax, dword [eax*4 + 0x100bc300]
test eax, eax
je 0x100316e5
mov ecx, eax
jmp 0x100316e5
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x30c], edx
adc edx, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edx
mov eax, ecx
mov ecx, dword [ebp - 0x30c]
or eax, ecx
je 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 0xc]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0xe4]
push 3
push 0xffffffffffffffff
push ecx
call fcn.1002ba30
add esp, 0xc
test eax, eax
je 0x10031613
mov edx, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xd4]
mov cl, 1
mov byte [eax + 2], cl
mov edx, dword [edx + 8]
mov dword [eax + 0x14], edx
mov byte [eax + 4], cl
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
push edi
call fcn.10025f40
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add esp, 4
mov dword [eax + edx*4], 0
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 4], 0
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf4], 0
mov byte [esi + 2], 0
je 0x1002e8bd
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
and dl, 0xe
mov dword [ebp - 0xdc], eax
cmp dl, 2
jne 0x1002e804
push 0
call fcn.1002bb10
add esp, 4
mov ecx, dword [ebp - 0xdc]
call fcn.100230a0
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0xdc]
movzx eax, word [eax + 8]
mov dword [ebp - 0x1e4], edx
test al, 4
jne 0x1002e877
test al, 8
je 0x1002ec0a
fild qword [ebp - 0x1e8]
mov ecx, dword [ebp - 0xdc]
fcom qword [ecx]
fnstsw ax
test ah, 0x41
jne 0x1002e859
test byte [ebp - 0xe8], 1
fstp st(0)
jne 0x1002e871
dec dword [ebp - 0xe8]
jmp 0x1002e871
fcomp qword [ecx]
fnstsw ax
test ah, 5
jp 0x1002e871
test byte [ebp - 0xe8], 1
je 0x1002e871
inc dword [ebp - 0xe8]
mov esi, dword [ebp - 0xec]
mov edx, dword [ebp - 0x1e4]
mov ebx, dword [ebp - 0x1e8]
mov eax, dword [esi + 0x14]
lea ecx, [ebp - 0x128]
push ecx
push 0
push edx
push ebx
push 0
push eax
call fcn.1001b9a0
mov ecx, dword [ebp - 0x1e4]
add esp, 0x18
mov dword [ebp - 0xd0], eax
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ecx
test eax, eax
jne 0x1002e69e
xor ebx, ebx
jmp 0x1002e968
mov edx, dword [esi + 0x14]
test byte [edx + 0x43], 2
je 0x1002e8d0
mov dword [ebp - 0xf4], 1
mov ecx, dword [esi + 0x1c]
mov dx, word [ebx + 0x10]
mov ebx, dword [ebx + 0xc]
dec eax
test al, 1
sete al
mov dword [ebp - 0x238], ecx
mov word [ebp - 0x230], dx
mov edx, dword [ebp - 0xe0]
lea ecx, [ebx + ebx*4]
lea eax, [eax + eax - 1]
mov byte [ebp - 0x22e], al
lea eax, [edx + ecx*8]
mov ecx, 0x4000
mov dword [ebp - 0x234], eax
test word [eax + 8], cx
je 0x1002e921
mov esi, eax
call fcn.10022cb0
mov esi, dword [ebp - 0xec]
xor ebx, ebx
lea edx, [ebp - 0x128]
push edx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x238]
mov byte [ebp - 0x22a], bl
mov ecx, dword [esi + 0x14]
push eax
push ecx
call fcn.1001b9a0
add esp, 0x18
mov dword [ebp - 0xd0], eax
cmp eax, ebx
jne 0x1002e69e
cmp dword [ebp - 0xf4], ebx
je 0x1002e968
cmp byte [ebp - 0x22a], bl
je 0x1002e9f1
mov ecx, dword [ebp - 0xe8]
mov byte [esi + 3], 0
mov dword [esi + 0x40], ebx
mov eax, dword [ebp - 0x128]
cmp ecx, 0x41
jl 0x1002e9ab
cmp eax, ebx
jl 0x1002e993
jne 0x1002e98b
cmp ecx, 0x42
je 0x1002e993
mov dword [ebp - 0x128], ebx
jmp 0x1002e9fd
lea edx, [ebp - 0x128]
mov dword [ebp - 0x128], ebx
mov eax, dword [esi + 0x14]
push edx
push eax
call fcn.1001bfd0
jmp 0x1002e9e0
cmp eax, ebx
jg 0x1002e9ca
jne 0x1002e9b6
cmp ecx, 0x3f
je 0x1002e9ca
mov ecx, dword [esi + 0x14]
xor edx, edx
cmp byte [ecx + 0x42], 1
setne dl
mov dword [ebp - 0x128], edx
jmp 0x1002e9f1
lea eax, [ebp - 0x128]
mov dword [ebp - 0x128], ebx
mov ecx, dword [esi + 0x14]
push eax
push ecx
call fcn.1001c220
add esp, 8
mov dword [ebp - 0xd0], eax
cmp eax, ebx
jne 0x1002e69e
cmp dword [ebp - 0x128], ebx
jne 0x1002ec04
cmp dword [ebp - 0xf4], ebx
je 0x1002ec20
add dword [ebp - 0xd4], 0x14
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [edi + 0x38]
mov edx, dword [ebx + 4]
mov edx, dword [eax + edx*4]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
xor esi, esi
lea ecx, [eax + ecx*8]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x1ec], esi
cmp dword [ebx + 0x10], esi
jle 0x1002eac7
mov edx, dword [edx + 0x1c]
mov ax, word [ebx + 0x10]
mov dword [ebp - 0x24c], ecx
xor ecx, ecx
mov dword [ebp - 0x250], edx
mov word [ebp - 0x248], ax
mov dword [ebp - 0xfc], esi
cmp cx, ax
jae 0x1002eabc
mov dword [ebp - 0x108], esi
add esi, dword [ebp - 0x24c]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x1002ea99
call fcn.10022cb0
mov ax, word [ebp - 0x248]
mov ecx, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x108]
movzx edx, ax
inc ecx
add esi, 0x28
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x108], esi
cmp ecx, edx
jl 0x1002ea7c
lea ecx, [ebp - 0x250]
jmp 0x1002eb46
mov eax, dword [ebp - 0xec]
mov esi, dword [eax + 0x1c]
push 0xb7
lea edi, [ebp - 0x1ec]
lea edx, [ebp - 0xc0]
call fcn.10027ca0
add esp, 4
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x10031613
mov esi, dword [ebp - 0xdc]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x1002eb0d
call fcn.10022cb0
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xec]
push ecx
mov ecx, dword [eax + 0x1c]
push edx
push ecx
call fcn.10027d10
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xfc]
add esp, 0x10
mov byte [ecx + 0xa], 0
xor esi, esi
cmp byte [ebx], 0x43
jne 0x1002eb79
xor eax, eax
xor edx, edx
cmp ax, word [ecx + 8]
jae 0x1002eb79
mov eax, dword [ecx + 4]
add eax, 8
test byte [eax], 1
jne 0x1002eb74
movzx ebx, word [ecx + 8]
inc edx
add eax, 0x28
cmp edx, ebx
jl 0x1002eb61
jmp 0x1002eb79
mov esi, 1
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0x21c]
push edx
push 0
push 0
push 0
push ecx
mov ecx, dword [eax + 0x14]
push ecx
call fcn.1001b9a0
mov ecx, dword [ebp - 0xd8]
mov ebx, eax
mov eax, dword [ebp - 0x1ec]
add esp, 0x18
mov dword [ebp - 0xd0], ebx
call fcn.10004130
test ebx, ebx
jne 0x1002e69e
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0x21c]
xor eax, eax
test edx, edx
mov dword [ecx + 0x20], edx
sete al
mov dl, 1
sub dl, al
mov byte [ecx + 2], dl
mov byte [ecx + 3], bl
mov dword [ecx + 0x40], ebx
mov ecx, dword [ebp - 0xd4]
cmp byte [ecx], 0x45
jne 0x1002ebf6
test eax, eax
jne 0x1002ec04
mov ebx, ecx
add ebx, 0x14
jmp 0x1002be57
test esi, esi
jne 0x1002ebfe
test eax, eax
jne 0x1002ec20
mov edi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x10c]
mov ebx, dword [ebx + 8]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [ebp - 0xd4], edx
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
lea ecx, [ebp - 0x1cc]
push ecx
push 0
push eax
push edx
mov dword [ebp - 0x204], eax
mov eax, dword [esi + 0x14]
push 0
push eax
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x208], edx
call fcn.1001b9a0
mov edx, dword [ebp - 0x208]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x204]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x1cc]
add esp, 0x18
mov dword [esi + 0x30], edx
mov dword [esi + 0x40], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x1002ecc5
cmp dword [ebx + 8], 0
jne 0x1002ec0a
mov eax, 0x132c8
call fcn.1007c2f0
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jne 0x1002e69e
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
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 [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
add ebx, 0x14
jmp 0x1002be57
mov esi, dword [ebp - 0xe4]
xor edi, edi
mov eax, ebx
mov edx, esi
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x164], edi
call fcn.1002bd40
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0xe8], eax
mov eax, dword [edx + ecx*4]
test byte [eax + 8], 2
mov dword [ebp - 0xec], eax
jne 0x1002eddf
mov esi, eax
mov eax, dword [esi + 0x14]
lea edi, [ebp - 0x164]
call fcn.1001b950
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
cmp dword [ebp - 0x164], eax
je 0x1002ed8c
mov dword [ebp - 0x138], 1
xor edi, edi
jmp 0x1002edd3
mov edi, dword [esi + 0x14]
mov eax, edi
call fcn.1001afa0
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edi
mov dword [ebp - 0xd0], 0
cmp edi, 0x7fffffff
jl 0x1002edc7
jg 0x1002edc1
cmp eax, 0xffffffff
jb 0x1002edc7
or dword [esi + 8], 2
jmp 0x1002edd9
add eax, 1
mov dword [ebp - 0x138], eax
adc edi, 0
mov dword [ebp - 0x134], edi
mov ebx, dword [ebp - 0xd4]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x1002ee79
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je 0x1002ee15
mov eax, dword [ecx + 4]
test eax, eax
je 0x1002ee0a
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x1002ee01
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x1002ee21
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0xe0]
lea esi, [edx + ecx*8]
call fcn.10023200
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x1002ee3c
cmp ecx, 0x7fffffff
je 0x1002eefd
mov edx, dword [ebp - 0xec]
test byte [edx + 8], 2
jne 0x1002eefd
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x1002ee6e
jl 0x1002ee60
cmp dword [ebp - 0x138], eax
jae 0x1002ee6e
mov edi, ecx
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edi
mov eax, dword [ebp - 0x138]
mov dword [esi], eax
mov dword [esi + 4], edi
mov ecx, dword [ebp - 0xec]
test byte [ecx + 8], 2
je 0x1002ef12
xor esi, esi
jmp 0x1002ee90
lea edx, [ebp - 0x138]
push edx
push 8
call sym.SQLite3Encrypt.dll_sqlite3_randomness
mov edi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0xec]
lea ecx, [ebp - 0x164]
push ecx
and edi, 0x3fffffff
add eax, 1
push 0
adc edi, 0
push edi
push eax
mov dword [ebp - 0x138], eax
mov eax, dword [edx + 0x14]
push 0
push eax
mov dword [ebp - 0x134], edi
call fcn.1001b9a0
add esp, 0x20
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
cmp dword [ebp - 0x164], eax
jne 0x1002ef0c
inc esi
cmp esi, 0x64
jl 0x1002ee90
mov dword [ebp - 0xd0], 0xd
jmp 0x1002e698
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x138]
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0xe8]
mov dword [eax + 4], edi
mov edi, dword [ebp - 0xe4]
mov dword [eax], ecx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 8]
mov esi, dword [edi + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea edx, [eax + edx*8]
mov dword [ebp - 0xec], edx
mov edx, dword [ebx + 4]
mov esi, dword [esi + edx*4]
cmp cl, 0x4b
jne 0x1002ef80
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x18c], ecx
jmp 0x1002ef94
mov eax, dword [ebx + 0xc]
cdq
mov dword [ebp - 0x18c], edx
mov ecx, edx
mov dword [ebp - 0x190], eax
mov edx, eax
test byte [ebx + 3], 1
mov eax, dword [ebp - 0xec]
je 0x1002efa3
inc dword [edi + 0x64]
test byte [ebx + 3], 2
je 0x1002efc7
mov eax, dword [ebp - 0xd8]
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], ecx
movzx edx, word [eax + 8]
test dl, 1
je 0x1002efd8
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov bl, byte [ebx + 3]
test bl, 0x10
je 0x1002efe5
mov ecx, dword [esi + 0x20]
jmp 0x1002efe7
xor ecx, ecx
test edx, 0x4000
je 0x1002eff3
mov eax, dword [eax]
jmp 0x1002eff5
xor eax, eax
push ecx
movzx ecx, bl
shr ecx, 3
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x18c]
push eax
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push edx
mov edx, dword [ebp - 0x190]
push eax
mov eax, dword [esi + 0x14]
push ecx
push edx
push 0
call fcn.1001f760
add esp, 0x20
mov dword [ebp - 0xd0], eax
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
test eax, eax
jne 0x1002e698
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xd8]
test ecx, ecx
je 0x1002ec20
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x10]
test eax, eax
je 0x1002ec20
mov edx, dword [ebp - 0x18c]
push edx
mov edx, dword [ebp - 0x190]
push edx
movsx edx, byte [esi + 1]
add edx, edx
push eax
mov eax, dword [ebp - 0xd8]
mov esi, dword [eax + 0x10]
mov edx, dword [esi + edx*8]
mov eax, dword [eax + 0xd4]
push edx
mov edx, dword [ebp - 0xd4]
mov dl, byte [edx + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
mov ebx, dword [ebp - 0xd4]
add esp, 0x18
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebp - 0xd8]
cmp dword [ecx + 0xd8], 0
mov dword [ebp - 0xfc], eax
je 0x1002f0ec
cmp dword [ebx + 0x10], 0
je 0x1002f0ec
cmp byte [eax + 4], 0
je 0x1002f0ec
mov al, 1
jmp 0x1002f0ee
xor al, al
cmp byte [ebx + 3], 0
mov byte [ebp - 0x101], al
je 0x1002f10f
test al, al
je 0x1002f10f
mov eax, dword [ebp - 0xfc]
mov esi, dword [eax + 0x14]
lea edi, [eax + 0x30]
call fcn.1001afe0
mov esi, dword [ebp - 0xfc]
mov al, byte [ebx + 3]
mov edi, dword [esi + 0x14]
call fcn.1001f970
mov dword [ebp - 0xd0], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x1002e698
cmp byte [ebp - 0x101], al
je 0x1002f176
mov edx, dword [esi + 0x34]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [esi + 0x30]
push edx
mov edx, dword [ecx + 0x10]
movsx ecx, byte [esi + 1]
push eax
mov eax, dword [ebp - 0xd8]
push edx
mov edx, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8]
mov edx, dword [eax + 0xd4]
mov eax, dword [eax + 0xd8]
push ecx
push 9
push edx
call eax
add esp, 0x18
mov ecx, dword [ebp - 0xd4]
test byte [ecx + 8], 1
mov ebx, ecx
je 0x1002c909
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x64]
mov edi, eax
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [edi + 0x64]
mov eax, dword [ebp - 0xd8]
add dword [eax + 0x58], ecx
mov dword [eax + 0x54], ecx
mov dword [edi + 0x64], 0
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0xe0]
mov ebx, dword [ebx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea edx, [ebp - 0x1dc]
push edx
push ebx
push ecx
mov dword [ebp - 0x1dc], 0
call fcn.10035410
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e69e
cmp dword [ebp - 0x1dc], eax
jne 0x1002ec04
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
call fcn.10035370
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov ebx, dword [ebp - 0xd4]
mov dword [eax + 0x40], 0
mov edi, ecx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov dword [ebp - 0xe8], eax
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax + 0x14]
cmp byte [eax + 4], 0
mov esi, ecx
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xdc], ecx
mov eax, esi
jne 0x1002f2dc
call fcn.1001afa0
mov ecx, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
mov esi, dword [ebp - 0xd8]
mov eax, dword [esi + 0x5c]
cdq
cmp ecx, edx
jg 0x1002cb0c
jl 0x1002f2d2
cmp ebx, eax
ja 0x1002cb0c
mov ecx, ebx
mov dword [ebp - 0xec], ecx
jmp 0x1002f2fb
call fcn.1001afa0
mov eax, dword [esi + 0x1c]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xec], eax
cmp eax, dword [esi + 0x5c]
ja 0x1002cb0c
mov ecx, eax
cmp ecx, 0x20
ja 0x1002f305
mov ecx, 0x20
mov ebx, dword [ebp - 0xe8]
cmp dword [ebx + 0x18], ecx
jge 0x1002f36a
xor eax, eax
mov edx, ebx
call fcn.10022b00
test eax, eax
jne 0x10031619
mov cx, word [ebx + 8]
mov eax, dword [ebp - 0xec]
mov edx, 0x3e00
and cx, dx
mov edx, dword [ebp - 0xdc]
or cx, 0x10
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xfc]
mov word [ebx + 8], cx
cmp byte [eax + 4], 0
mov ecx, dword [ebp - 0xec]
jne 0x1002f377
mov ebx, dword [ebx + 0x10]
push 0
push ebx
push ecx
push 0
push edx
call fcn.1001b1a0
add esp, 0x14
jmp 0x1002f387
mov edx, dword [ebx + 0x14]
and word [ebx + 8], 0xd
mov dword [ebx + 0x10], edx
jmp 0x1002f321
mov eax, dword [ebx + 0x10]
push eax
push ecx
push 0
push edx
call fcn.1001b4c0
add esp, 0x10
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
mov eax, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0xd4]
mov byte [eax + 0xa], 1
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 2], 0
mov dword [ebp - 0xe8], eax
je 0x1002f3dc
mov ecx, 1
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x1002be57
cmp byte [esi + 3], 0
je 0x1002f407
mov edx, dword [esi + 0x30]
mov dword [ebp - 0x1b8], edx
mov ecx, dword [esi + 0x34]
mov dword [ebp - 0x1b4], ecx
mov dword [eax], edx
mov ecx, dword [ebp - 0x1b4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x1002be57
cmp byte [esi], 2
jne 0x1002f45f
mov esi, dword [esi + 0x14]
mov ebx, dword [esi]
mov eax, dword [ebx]
mov eax, dword [eax + 0x30]
lea edx, [ebp - 0x1b8]
push edx
push esi
call eax
mov esi, eax
push ebx
push edi
mov dword [ebp - 0xd0], esi
call fcn.10028f10
add esp, 0x10
test esi, esi
jne 0x1002e69e
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1b8]
mov ebx, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x1b4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [esi + 0x14]
cmp byte [ecx + 0x42], 1
je 0x1002f4a6
mov edi, esi
call fcn.10027840
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xe8]
cmp byte [esi + 2], 0
je 0x1002f4b2
mov edi, dword [ebp - 0xe4]
mov edx, 1
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x1002be57
mov dword [ebp - 0xd0], 0
jmp 0x1002f489
mov esi, dword [esi + 0x14]
mov eax, esi
call fcn.1001afa0
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x1b8], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1b4], ecx
mov dword [eax], edx
mov ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0xd0], 0
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x40], 0
jne case.0x1002be73.62
mov esi, dword [eax + 0x14]
call fcn.10017260
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x14]
lea edi, [ebp - 0x1d4]
mov dword [ebp - 0x1d4], 0
call fcn.1001b950
mov ecx, dword [ebp - 0x1d4]
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0xd0], eax
mov dword [esi + 0x20], edx
test eax, eax
jne 0x1002e698
mov eax, dword [ebp - 0xd4]
cmp dword [eax + 8], 0
mov edi, dword [ebp - 0xe4]
mov ebx, eax
jle case.0x1002be73.62
test ecx, ecx
jne 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
inc dword [edi + 0x7c]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov ebx, dword [edx + ecx*4]
cmp byte [ebx], 1
mov dword [ebp - 0x158], 1
jne 0x1002f5cb
lea edi, [ebp - 0x158]
mov ecx, ebx
call fcn.100352b0
jmp 0x1002f5fd
mov esi, dword [ebx + 0x14]
call fcn.1001b5b0
xor edi, edi
cmp eax, edi
jne 0x1002f5f6
cmp byte [esi + 0x42], 0
jne 0x1002f5eb
mov dword [ebp - 0x158], 1
jmp 0x1002f5f6
mov dword [ebp - 0x158], edi
call fcn.1001b7d0
mov byte [ebx + 3], 0
mov dword [ebx + 0x40], edi
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov eax, dword [ebp - 0x158]
mov byte [ebx + 2], al
test eax, eax
jne 0x1002ebfe
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov edi, dword [ebp - 0xd8]
lea ebx, [ebp - 0x168]
mov eax, esi
mov dword [ebp - 0x168], 0
call fcn.10035300
jmp 0x1002f693
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
cmp dword [ecx + eax*4], 0
je case.0x1002be73.62
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x168], ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [ebx + 0x10]
lea edx, [ebp - 0x168]
push edx
push eax
call ecx
add esp, 8
mov dword [ebp - 0xd0], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x1002e698
cmp dword [ebp - 0x168], eax
jne 0x1002f6d2
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xe4]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
inc dword [ecx + eax*4 + 0x74]
lea eax, [ecx + eax*4 + 0x74]
mov edi, ecx
jmp 0x10030e0a
mov edi, dword [ebp - 0xe4]
mov byte [esi + 2], 1
jmp 0x10030e26
test byte [ebx + 3], 1
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xf4], ecx
lea esi, [eax + edx*8]
je 0x1002f708
inc dword [edi + 0x64]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x1002f72c
call fcn.10022cb0
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
cmp byte [ebx], 0x6d
jne 0x1002f742
mov eax, dword [ebp - 0xf4]
push esi
call fcn.10034320
add esp, 4
jmp 0x1002f77f
test byte [ebx + 3], 0x10
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov esi, dword [ebp - 0xf4]
je 0x1002f759
mov edx, dword [esi + 0x20]
jmp 0x1002f75b
xor edx, edx
push edx
mov edx, dword [ebx + 0xc]
push edx
push 0
push 0
cdq
push 0x100bd4d8
push edx
push eax
mov eax, dword [esi + 0x14]
push ecx
call fcn.1001f760
add esp, 0x20
mov dword [esi + 0x40], 0
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
mov edx, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
mov ax, word [ebx + 0xc]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x2f8], edx
mov edx, dword [ebp - 0xe0]
lea ecx, [ebx + ebx*4]
mov word [ebp - 0x2f0], ax
lea eax, [edx + ecx*8]
lea ecx, [ebp - 0x210]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x2f8]
push edx
push edi
mov byte [ebp - 0x2ee], 0
mov dword [ebp - 0x2f4], eax
call fcn.1001b9a0
add esp, 0x18
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
cmp dword [ebp - 0x210], eax
jne 0x1002f81f
mov al, 4
call fcn.1001f970
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
mov dword [esi + 0x40], 0
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + eax*4]
mov edx, dword [edi + 0x14]
cmp byte [edx + 0x42], 1
je 0x1002f8f7
call fcn.10027840
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
cmp byte [edi + 2], 0
jne 0x1002f93f
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0x1b0]
push eax
mov eax, dword [edi + 0x14]
xor esi, esi
push ecx
mov dword [ebp - 0x1b0], esi
mov dword [ebp - 0x1ac], esi
call fcn.10028c20
add esp, 8
mov dword [ebp - 0xd0], eax
cmp eax, esi
jne 0x1002e698
mov eax, dword [ebp - 0xd4]
cmp byte [eax], 0x70
jne 0x1002f906
mov edx, dword [eax + 0xc]
mov ecx, dword [ebp - 0xe4]
mov ecx, dword [ecx + 0x38]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebp - 0x1b0]
mov ebx, dword [ebp - 0xd4]
mov dword [ecx + 0x30], edx
mov edx, dword [ebp - 0x1ac]
mov dword [ecx + 0x34], edx
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x38], edi
mov edi, dword [ebp - 0xe4]
mov dword [ecx + 0x3c], eax
add ebx, 0x14
jmp 0x1002be57
mov dword [ebp - 0xd0], 0
jmp 0x1002f869
mov edx, dword [ebp - 0xe4]
call fcn.1002bd40
mov ecx, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
mov dword [eax], ecx
mov ecx, 4
mov dword [eax + 4], edx
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea eax, [eax + edx*8]
call fcn.10023410
mov edi, dword [ebp - 0xe4]
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x1c]
cmp cl, 0x74
sbb cl, cl
mov dword [ebp - 0x308], edx
mov dx, word [ebx + 0x10]
mov byte [ebp - 0x2fe], cl
mov ecx, dword [ebx + 0xc]
mov word [ebp - 0x300], dx
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + edx*8]
lea ecx, [ebp - 0x154]
push ecx
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x304], edx
lea edx, [ebp - 0x308]
push edx
push ecx
mov dword [ebp - 0x154], 0
call fcn.10028d70
mov ecx, dword [ebp - 0x154]
add esp, 0xc
test byte [ebx], 1
mov dword [ebp - 0xd0], eax
jne 0x1002f9da
neg ecx
jmp 0x1002f9db
inc ecx
mov dword [ebp - 0x154], ecx
test eax, eax
jne 0x1002e698
test ecx, ecx
jg 0x1002ebfe
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov esi, dword [ebp - 0xd8]
mov edx, 1
mov word [eax + 8], dx
mov dword [ebp - 0xe8], eax
mov eax, dword [esi + 0xa8]
inc eax
cmp dword [esi + 0x9c], eax
jg 0x10031582
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0xfc], eax
push ecx
mov ecx, dword [esi + 0x10]
add eax, eax
mov eax, dword [ecx + eax*8 + 4]
push edx
mov dword [ebp - 0x1c0], 0
call fcn.10020500
mov ecx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x1c0]
mov ebx, eax
mov edx, 4
mov eax, esi
mov word [ecx + 8], dx
cdq
add esp, 8
mov dword [ebp - 0xd0], ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
test ebx, ebx
jne 0x1002e698
test esi, esi
je 0x1002ec20
mov eax, dword [ebp - 0xd4]
mov edi, dword [eax + 4]
mov ebx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xd8]
mov eax, ebx
call fcn.10045350
mov edi, dword [ebp - 0xe4]
inc bl
mov byte [ebp - 0x111], bl
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x1c8]
and ecx, edx
mov edx, dword [ebp - 0xd8]
push ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [edx + 0x10]
shl ecx, 4
mov dword [ebp - 0x1c8], 0
mov eax, dword [ecx + eax + 4]
call fcn.100201f0
add esp, 8
cmp dword [ebx + 0xc], 0
mov esi, eax
mov dword [ebp - 0xd0], esi
je 0x1002fb35
mov eax, dword [ebp - 0x1c8]
add dword [edi + 0x64], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jle 0x1002fb35
mov edx, dword [ebp - 0xe0]
lea ecx, [ebx + ebx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
test esi, esi
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 1
jne 0x1002fb74
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0xd8]
push edx
push eax
call fcn.100335a0
add esp, 8
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push ecx
call fcn.100201f0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov edx, dword [ebp - 0xd8]
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [edx + 0x10]
xor ecx, ecx
cmp byte [ebx], 0x7a
mov eax, dword [eax + 4]
setne cl
mov dword [ebp - 0x1bc], 0
inc ecx
push ecx
lea ecx, [ebp - 0x1bc]
push ecx
call fcn.1001fff0
add esp, 8
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e698
mov eax, dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0xd4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x1002fc1d
mov ecx, str.sqlite_master
mov esi, dword [ebp - 0xd8]
lea edx, [edi + 0x2c]
mov dword [ebp - 0x25c], edx
mov edx, dword [ebx + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x258], eax
add eax, eax
mov dword [ebp - 0x260], esi
mov edx, dword [ecx + eax*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.10005f90
add esp, 0x14
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x100311a0
mov ecx, dword [ebp - 0xfc]
push 0
lea eax, [ebp - 0x260]
push eax
push fcn.10058620
push ecx
push esi
mov byte [esi + 0x95], 1
mov dword [ebp - 0x254], 0
call sym.SQLite3Encrypt.dll_sqlite3_exec
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002fca7
mov edx, dword [ebp - 0x254]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xfc]
mov ecx, esi
call fcn.10004130
cmp dword [ebp - 0xd0], 0
mov byte [esi + 0x95], 0
je case.0x1002be73.62
mov eax, esi
call fcn.10042760
cmp dword [ebp - 0xd0], 7
je 0x10031619
jmp 0x1002e6a4
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0xd8]
call fcn.100407d0
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e69e
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0xd8]
push eax
mov eax, dword [ebx + 4]
call fcn.10042ae0
mov edi, dword [ebp - 0xe4]
add esp, 4
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xd8]
push ecx
call fcn.10042510
mov ebx, dword [ebp - 0xd4]
add esp, 4
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0xd8]
push edx
call fcn.100655d0
mov edi, dword [ebp - 0xe4]
add esp, 4
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0xf0], edx
mov edx, dword [esi]
lea eax, [ebp - 0x1d8]
push eax
mov eax, dword [ebx + 0x10]
push edx
push ecx
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x10]
push eax
movzx eax, byte [ebx + 3]
add eax, eax
mov ecx, dword [edx + eax*8 + 4]
call fcn.10021250
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x1d8]
cdq
add esp, 0x10
sub dword [esi], eax
mov eax, dword [ebp - 0xf0]
sbb dword [esi + 4], edx
call fcn.10023410
cmp dword [ebp - 0x1d8], 0
je 0x1002fe18
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x10031619
mov edx, dword [ebp - 0xf0]
push 1
push eax
mov eax, sym.SQLite3Encrypt.dll_sqlite3_free
or ecx, 0xffffffff
call fcn.100236f0
mov ebx, dword [ebp - 0xd4]
add esp, 8
movzx ecx, byte [ebp - 0x110]
mov eax, dword [ebp - 0xf0]
call fcn.10022ae0
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [ebp - 0xdc], eax
jne 0x1002fe6c
call fcn.100234b0
test byte [esi + 8], 0x20
je 0x10031619
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov esi, dword [esi]
push ecx
push edx
call fcn.1000e110
add esp, 8
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea eax, [ecx + eax*8]
mov dword [ebp - 0xf0], eax
je 0x1002feea
mov edx, eax
mov eax, dword [edx]
lea esi, [ebp - 0x268]
call fcn.1000e4b0
test eax, eax
je 0x1002fee4
mov eax, dword [ebp - 0x264]
mov ebx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x268]
push eax
mov eax, dword [ebp - 0xe0]
lea edx, [ebx + ebx*4]
push ecx
lea eax, [eax + edx*8]
call fcn.10023470
add esp, 8
jmp 0x10030e26
mov eax, dword [ebp - 0xf0]
call fcn.10023410
jmp case.0x1002be73.13
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebx + 0xc]
lea esi, [ecx + edx*8]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xfc], edx
jne 0x1002ff37
call fcn.100234b0
test byte [esi + 8], 0x20
je 0x10031619
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x1002ff69
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
push ecx
push eax
mov eax, dword [esi]
call fcn.1000e500
add esp, 0xc
test eax, eax
jne 0x1002ec0a
mov eax, dword [ebp - 0xfc]
test eax, eax
js case.0x1002be73.62
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov esi, dword [esi]
push edx
push eax
call fcn.1000e110
add esp, 8
add ebx, 0x14
jmp 0x1002be57
cmp byte [ebx + 3], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea edx, [eax + edx*8]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xf4], edx
je 0x1002ffd0
mov eax, dword [edi + 0xb8]
mov esi, dword [ecx + 0x14]
test eax, eax
je 0x1002ffd0
nop
cmp dword [eax + 0x1c], esi
je case.0x1002be73.62
mov eax, dword [eax + 4]
test eax, eax
jne 0x1002ffc0
mov eax, dword [edi + 0xc0]
mov esi, dword [ebp - 0xd8]
cmp eax, dword [esi + 0x84]
jge 0x10031595
test byte [edx + 8], 0x40
jne 0x100300e5
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
add ebx, eax
test eax, eax
jne 0x1002ffff
inc ebx
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 0xc]
lea ecx, [ebx + ebx*4 + 0xa]
lea ecx, [edx + ecx*2]
mov edx, dword [eax + 0x10]
lea eax, [edx + ecx*4]
cdq
push edx
push eax
mov eax, esi
call fcn.10004370
mov esi, eax
add esp, 8
test esi, esi
je 0x10031619
mov eax, dword [ebp - 0xf4]
call fcn.10023020
mov eax, dword [ebp - 0xf4]
mov dword [eax], esi
mov ecx, 0x40
mov word [eax + 8], cx
mov ecx, dword [ebp - 0xec]
mov dword [esi], edi
mov dword [esi + 0x40], ebx
mov edx, dword [ecx + 0xc]
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 0xd4]
sub edx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov edx, dword [edi + 8]
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x38], eax
mov edx, dword [edi + 0x38]
mov dword [esi + 0x18], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 4]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x20]
mov dword [esi + 0x34], eax
mov ecx, dword [ecx + 0x14]
mov dword [esi + 0x1c], ecx
mov edx, dword [edi + 0xd0]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0xcc]
lea ecx, [ebx + ebx*4 + 0xa]
mov dword [esi + 0x3c], eax
lea ecx, [esi + ecx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x100300ed
mov edx, dword [ebp - 0xd8]
lea esp, [esp]
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x100300d0
jmp 0x100300ed
mov edx, dword [ebp - 0xf4]
mov esi, dword [edx]
inc dword [edi + 0xc0]
mov eax, dword [edi + 0xb8]
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x13c]
mov dword [esi + 0x20], ecx
mov dword [esi + 4], eax
mov dword [esi + 0x24], edx
mov eax, dword [edi + 0x64]
mov dword [esi + 0x48], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 0x54]
mov dword [esi + 0x4c], edx
mov eax, dword [edi + 0xd4]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x50]
mov dword [edi + 0xb8], esi
mov dword [edi + 8], eax
xor ebx, ebx
mov dword [edi + 0xd4], ebx
mov dword [edi + 0x64], ebx
mov ecx, dword [esi + 0x40]
mov dword [edi + 0x1c], ecx
movzx edx, word [esi + 0x44]
mov dword [edi + 0x24], edx
mov edx, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov dword [edi + 0x38], ecx
mov dword [ebp - 0xe0], eax
mov eax, dword [edx]
mov dword [edi + 4], eax
mov esi, dword [edx + 4]
mov dword [edi + 0x20], esi
mov esi, dword [edi + 0x24]
lea ecx, [ecx + esi*4]
mov dword [edi + 0xd0], ecx
mov edx, dword [edx + 0x10]
push edx
mov dword [ebp - 0x10c], eax
add eax, 0xffffffec
push ebx
push ecx
mov dword [edi + 0xcc], edx
mov dword [ebp - 0xd4], eax
call fcn.100a6a70
mov ebx, dword [ebp - 0xd4]
add esp, 0xc
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov edx, dword [edi + 0xb8]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebx + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.100235c0
add esp, 0xc
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebp - 0xd8]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebx + 8]
cdq
je 0x1003020c
add dword [ecx + 0x1c0], eax
adc dword [ecx + 0x1c4], edx
add ebx, 0x14
jmp 0x1002be57
cmp dword [ebx + 4], 0
je 0x10030226
add dword [ecx + 0x1b8], eax
adc dword [ecx + 0x1bc], edx
add ebx, 0x14
jmp 0x1002be57
add dword [edi + 0x98], eax
adc dword [edi + 0x9c], edx
add ebx, 0x14
jmp 0x1002be57
cmp dword [ebx + 4], 0
je 0x1003025a
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 0x1b8]
or edx, dword [eax + 0x1bc]
jne case.0x1002be73.62
jmp 0x10030272
mov edx, dword [edi + 0x98]
or edx, dword [edi + 0x9c]
jne case.0x1002be73.62
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
je 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [edi + 0xb8]
test ecx, ecx
je 0x100302b4
mov eax, dword [ecx + 4]
test eax, eax
je 0x100302a9
lea ecx, [ecx]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x100302a0
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
jmp 0x100302c0
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea ecx, [eax + edx*8]
mov esi, ecx
mov dword [ebp - 0xf0], ecx
call fcn.10023200
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea esi, [eax + edx*8]
call fcn.10023200
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [ebp - 0xf0]
cmp dword [ecx + 4], esi
jg case.0x1002be73.62
jl 0x10030302
cmp dword [ecx], eax
jae case.0x1002be73.62
mov ecx, dword [ebp - 0xf0]
mov dword [ecx], eax
mov dword [ecx + 4], esi
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x32c], eax
test eax, eax
jl case.0x1002be73.62
jg 0x10030342
test esi, esi
je case.0x1002be73.62
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov eax, dword [ebp - 0x32c]
sbb eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x1002ec0a
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
lea ecx, [ecx + eax*8]
mov eax, ebx
mov edx, edi
mov dword [ebp - 0xdc], ecx
call fcn.1002bd40
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 0xe8], eax
test esi, esi
jg 0x100303a8
jl 0x10030396
test ecx, ecx
jne 0x100303a8
or ecx, 0xffffffff
or esi, ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jl 0x100303bd
jg 0x100303c1
test edx, edx
jne 0x100303c1
xor edx, edx
xor eax, eax
add ecx, edx
adc esi, eax
mov eax, dword [ebp - 0xe8]
mov dword [eax], ecx
mov dword [eax + 4], esi
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
mov esi, dword [eax + edx*8]
lea ecx, [eax + edx*8]
mov eax, dword [ecx + 4]
mov edx, esi
or edx, eax
mov dword [ebp - 0x314], eax
je case.0x1002be73.62
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov eax, dword [ebp - 0x314]
sbb eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x1002ec0a
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
add dword [ecx + eax*8], 0xffffffff
mov edx, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
adc dword [eax + 4], 0xffffffff
or edx, dword [eax + 4]
je 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov esi, ecx
add esi, 1
mov dword [ebp - 0x324], edx
adc edx, 0
mov dword [eax], esi
mov dword [eax + 4], edx
mov eax, ecx
mov ecx, dword [ebp - 0x324]
or eax, ecx
je 0x1002ec0a
add ebx, 0x14
jmp 0x1002be57
movzx eax, byte [ebx + 3]
mov esi, dword [ebp - 0xd8]
lea edx, [eax*4 + 0x1c]
mov dword [ebp - 0xfc], eax
push 0
push edx
mov eax, esi
call fcn.10004420
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x10031619
mov ebx, dword [ebp - 0xd4]
mov dword [ecx + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [ecx + 4], eax
mov edx, ebx
sub edx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [ebp - 0xfc]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edi
mov byte [ecx + 0x1a], dl
mov dword [ebx + 0x10], ecx
mov word [ebx], 0xec90
jmp 0x100304f9
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x108], eax
cmp dword [edx + 8], eax
je 0x1003055b
movzx ecx, byte [edx + 0x1a]
dec ecx
mov dword [edx + 8], eax
js 0x1003055b
lea edx, [edx + ecx*4 + 0x1c]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0xe0]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xfc]
mov dword [eax], edx
sub eax, 4
dec ecx
mov dword [ebp - 0xfc], eax
jns 0x10030530
mov eax, dword [ebp - 0x108]
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x350], ax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x338], esi
mov dword [ebp - 0x340], 0
mov edx, dword [eax + 4]
lea ecx, [ebp - 0x358]
mov dword [eax], ecx
lea ecx, [eax + 0x1c]
push ecx
movzx ecx, byte [eax + 0x1a]
push ecx
mov word [eax + 0x18], 0
mov edx, dword [edx + 0xc]
push eax
call edx
mov eax, dword [ebp - 0xec]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x100305fc
mov ebx, eax
cmp dword [ebx + 0x14], 0
je 0x100305de
lea ecx, [ebp - 0x358]
push ecx
call sym.SQLite3Encrypt.dll_sqlite3_value_text
add esp, 4
push eax
push 0x100bd55c
push edi
call fcn.100240b0
mov edx, dword [ebx + 0x14]
add esp, 0xc
mov dword [ebp - 0xd0], edx
lea eax, [ebp - 0x358]
call fcn.10023020
cmp dword [ebp - 0xd0], 0
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xec]
cmp byte [eax + 0x18], 0
je case.0x1002be73.62
mov eax, dword [ebx - 0x10]
test eax, eax
je case.0x1002be73.62
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
push 0
push 1
lea eax, [edx + ecx*8]
call fcn.10023470
add esp, 8
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [ebx + 0x10]
mov eax, esi
call fcn.10022e50
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x100315b2
movzx ecx, byte [ebp - 0x110]
mov eax, esi
call fcn.10022ae0
mov ecx, esi
call fcn.10023560
test eax, eax
jne 0x1002cb06
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 8]
mov esi, dword [ebp - 0xd8]
or eax, 0xffffffff
lea edx, [ebp - 0xc4]
push edx
mov edx, dword [ebx + 4]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0xc8]
push eax
push ecx
push edx
push esi
mov dword [ebp - 0xcc], 0
call fcn.1007ab60
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x100306ee
cmp eax, 5
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 1
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
xor esi, esi
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp + esi*4 - 0xcc]
cdq
push edx
push eax
mov eax, dword [ebp - 0xf4]
call fcn.10023470
add dword [ebp - 0xf4], 0x28
inc esi
add esp, 8
cmp esi, 3
jl 0x10030705
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0xd8]
mov edx, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov dword [ebp - 0xfc], ecx
mov ecx, dword [ecx + 4]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0xc]
mov ebx, dword [ecx]
movzx edx, byte [ebx + 5]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xec], edx
cmp eax, 0xffffffff
jne 0x1003077e
mov eax, edx
mov dword [ebp - 0xdc], eax
cmp byte [ebx + 0x11], 3
jae 0x1003079a
mov ecx, dword [ebx + 0x44]
cmp dword [ecx], 0
je 0x100307a6
cmp dword [ebx + 0x54], 0
jl 0x100307a6
jg 0x1003079a
cmp dword [ebx + 0x50], 0
jbe 0x100307a6
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xdc], edx
cmp byte [ebx + 0x10], 0
mov eax, 0x100bd4d8
jne 0x100307b7
mov eax, dword [ebx + 0xb0]
cmp dword [ebp - 0xdc], 5
jne 0x100307e5
call fcn.10006ca0
test eax, eax
je 0x100307d4
mov eax, ebx
call fcn.10013be0
test eax, eax
jne 0x100307e5
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xdc], eax
jmp 0x1003087b
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xec]
cmp ecx, eax
je 0x1003087b
cmp eax, 5
je 0x10030803
cmp ecx, 5
jne 0x1003087b
cmp byte [esi + 0x43], 0
je 0x100315cf
cmp dword [esi + 0x9c], 1
jg 0x100315cf
cmp eax, 5
jne 0x1003083f
mov eax, ebx
call fcn.10013d90
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x10030884
mov eax, dword [ebp - 0xdc]
mov ecx, ebx
call fcn.10013a70
jmp 0x10030859
cmp eax, 4
jne 0x10030850
mov eax, 2
mov ecx, ebx
call fcn.10013a70
cmp dword [ebp - 0xd0], 0
jne 0x10030884
mov eax, dword [ebp - 0xfc]
xor ecx, ecx
cmp dword [ebp - 0xdc], 5
sete cl
inc ecx
push ecx
call fcn.10021880
add esp, 4
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x10030890
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0xdc]
mov ecx, ebx
call fcn.10013a70
mov ebx, dword [ebp - 0xe8]
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x100308b5
xor eax, eax
jmp 0x100308bc
mov eax, dword [eax*4 + 0x100b9c9c]
mov dword [ebx + 0x10], eax
call fcn.10006ca0
movzx ecx, byte [ebp - 0x110]
mov dword [ebx + 0xc], eax
mov eax, ebx
mov byte [ebx + 0xa], 1
call fcn.10022ae0
cmp dword [ebp - 0xd0], 0
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov esi, dword [ebp - 0xd8]
lea eax, [edi + 0x2c]
call fcn.100686c0
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0xd8]
mov eax, dword [esi + 0x10]
add edx, edx
mov eax, dword [eax + edx*8 + 4]
push eax
call fcn.1001a420
add esp, 4
mov dword [ebp - 0xd0], eax
test eax, eax
je case.0x1002be73.62
cmp eax, 0x65
jne 0x1002e6a4
mov dword [ebp - 0xd0], 0
jmp 0x1002ec04
cmp dword [ebx + 4], 0
jne 0x10030978
mov eax, dword [ebp - 0xd8]
call fcn.10028e80
add ebx, 0x14
jmp 0x1002be57
or dword [edi + 0x58], 1
add ebx, 0x14
jmp 0x1002be57
mov cl, byte [ebx + 0xc]
mov esi, dword [ebp - 0xd8]
test cl, cl
jne 0x1003099e
test dword [esi + 0x18], 0x4000
jne case.0x1002be73.62
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push edx
mov edx, dword [esi + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.100217a0
add esp, 4
mov dword [ebp - 0xd0], eax
test eax, eax
je case.0x1002be73.62
cmp al, 6
jne 0x1002e6a4
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx + 0x10]
push edx
push str.database_table_is_locked:__s
push edi
call fcn.100240b0
add esp, 0xc
jmp 0x1002e6a4
mov edi, dword [ebx + 0x10]
mov esi, dword [ebp - 0xd8]
call fcn.10069eb0
mov esi, eax
mov dword [ebp - 0xd0], esi
test edi, edi
je 0x10030a16
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xe4]
push eax
push ecx
call fcn.10028f10
add esp, 8
test esi, esi
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
add ebx, 0x14
jmp 0x1002be57
mov esi, dword [ebp - 0xd8]
xor eax, eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x27c], eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea edi, [eax + edx*8]
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x280], esi
call fcn.10023630
lea ecx, [ebp - 0x2a0]
push ecx
mov dword [ebp - 0xd0], eax
call sym.SQLite3Encrypt.dll_sqlite3_value_text
add esp, 4
test eax, eax
je 0x10030acd
mov edx, dword [ebp - 0xe4]
add edx, 0x2c
push edx
push eax
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.100699a0
add esp, 8
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0x2a0]
call fcn.10023020
cmp dword [ebp - 0xd0], 0
jne 0x1002e698
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
add ebx, 0x14
jmp 0x1002be57
mov esi, dword [ebp - 0xd8]
inc dword [esi + 0xa8]
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.10069c80
dec dword [esi + 0xa8]
add esp, 4
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x174], 0
mov esi, dword [ecx + 8]
test esi, esi
je 0x10031665
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x10031665
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0x174]
push edx
push esi
call eax
mov ebx, eax
push esi
push edi
mov dword [ebp - 0xd0], ebx
call fcn.10028f10
add esp, 0x10
test ebx, ebx
jne 0x1002e69e
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xe4]
push 2
push 0xffffffffffffffff
mov dword [ecx], esi
push ebx
mov ebx, dword [edx + 4]
call fcn.1002ba30
add esp, 0xc
test eax, eax
je 0x100315fc
mov ecx, dword [ebp - 0x174]
mov ebx, dword [ebp - 0xd4]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea edx, [eax + edx*8]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x14]
mov dword [ebp - 0xdc], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [ebp - 0xec], eax
mov eax, dword [edx]
mov dword [ebp - 0xf4], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x108], ecx
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0xfc], eax
xor eax, eax
mov dword [ebp - 0x118], esi
test ecx, ecx
jle 0x10030c38
mov esi, dword [ebp - 0xfc]
add edx, 0x50
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x10030c27
mov esi, dword [ebp - 0x118]
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebx + 0x10]
push edx
mov edx, dword [ebp - 0x108]
push ecx
mov ecx, dword [ebp - 0xf4]
push eax
mov eax, dword [edx + 0x20]
push ecx
push esi
call eax
mov ecx, dword [ebp - 0xec]
add esp, 0x14
push ecx
mov ebx, eax
push edi
mov dword [ebp - 0xd0], ebx
call fcn.10028f10
add esp, 8
test ebx, ebx
jne 0x1002e69e
mov edx, dword [ebp - 0x108]
mov eax, dword [edx + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0xdc]
add esp, 4
mov byte [ecx + 2], bl
test eax, eax
jne 0x1002ebfe
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 2], 0
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
lea esi, [eax + edx*8]
je 0x10030cd5
mov eax, esi
call fcn.10023410
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ecx + 0x14]
mov eax, dword [edx]
mov dword [ebp - 0x108], eax
mov eax, dword [eax]
mov dword [ebp - 0xfc], eax
xor eax, eax
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x2e8], esi
mov dx, word [esi + 8]
mov eax, 0x3e00
and dx, ax
or dx, 1
mov word [esi + 8], dx
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + 0x14]
push edx
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0x2e8]
push eax
mov eax, dword [edx + 0x2c]
push ecx
call eax
mov ecx, dword [ebp - 0x108]
add esp, 0xc
push ecx
push edi
mov dword [ebp - 0xd0], eax
call fcn.10028f10
mov eax, dword [ebp - 0x2d4]
add esp, 8
test eax, eax
je 0x10030d77
mov dword [ebp - 0xd0], eax
movzx ecx, byte [ebp - 0x110]
mov eax, esi
call fcn.10022ae0
mov ecx, esi
call fcn.10023560
test eax, eax
jne 0x1002cb06
cmp dword [ebp - 0xd0], eax
jne 0x1002e69e
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
cmp byte [esi + 2], 0
jne case.0x1002be73.62
mov eax, dword [esi + 0x14]
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov dword [ebp - 0xfc], ecx
mov ecx, dword [ecx + 0x24]
push eax
call ecx
add esp, 4
push ebx
push edi
mov dword [ebp - 0xd0], eax
call fcn.10028f10
add esp, 8
cmp dword [ebp - 0xd0], 0
jne 0x1002e69e
mov edx, dword [esi + 0x14]
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
jne 0x10030e26
mov ebx, dword [ebp - 0xd4]
mov ebx, dword [ebx + 8]
mov eax, dword [ebp - 0x10c]
lea edx, [ebx + ebx*4]
lea ecx, [eax + edx*4 - 0x14]
mov dword [ebp - 0xd4], ecx
mov esi, dword [ebp - 0xd8]
mov edx, dword [esi + 0xf8]
test edx, edx
jne 0x1003167b
mov ebx, dword [esi + 0x130]
test ebx, ebx
je 0x1002ec20
mov eax, dword [ebp - 0x148]
cmp eax, dword [ebp - 0x184]
jb 0x1002ec20
mov ecx, dword [esi + 0x138]
div ecx
mov eax, dword [esi + 0x134]
push eax
sub ecx, edx
add ecx, dword [ebp - 0x148]
mov dword [ebp - 0x184], ecx
call ebx
add esp, 4
test eax, eax
jne 0x10031297
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov eax, dword [ebp - 0xe0]
mov esi, dword [ecx + 8]
lea edx, [ebx + ebx*4]
lea ebx, [eax + edx*8]
mov ecx, 1
mov eax, ebx
call fcn.10022ae0
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e69e
mov edx, dword [ebx + 0x10]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
push edx
push esi
call eax
mov ebx, eax
push esi
push edi
mov dword [ebp - 0xd0], ebx
call fcn.10028f10
and dword [edi + 0x58], 0xfffffffe
add esp, 0x10
test ebx, ebx
jne 0x1002e69e
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x108], eax
test eax, eax
je 0x10031665
mov eax, dword [eax]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x10031665
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
mov dword [ebp - 0x118], edx
je case.0x1002be73.62
mov esi, dword [ebp - 0xd8]
mov al, byte [esi + 0x4a]
mov ecx, dword [edi + 0xc]
mov byte [ebp - 0x101], al
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xfc], ecx
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x10030f77
lea ecx, [ecx]
mov edx, dword [ebp - 0xfc]
mov dword [edx + eax*4], ecx
mov edx, dword [ebp - 0x118]
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x10030f60
mov al, byte [ebx + 3]
mov byte [esi + 0x4a], al
mov eax, dword [ebp - 0xfc]
lea ecx, [ebp - 0x270]
push ecx
mov ecx, dword [ebp - 0x108]
push eax
push edx
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x34]
push ecx
call eax
mov edx, dword [ebp - 0x108]
mov cl, byte [ebp - 0x101]
push edx
push edi
mov dword [ebp - 0xd0], eax
mov byte [esi + 0x4a], cl
call fcn.10028f10
add esp, 0x18
cmp dword [ebp - 0xd0], 0
jne 0x10030fea
cmp dword [ebx + 4], 0
je 0x10030fea
mov eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov ecx, dword [ebp - 0xd0]
cmp cl, 0x13
jne 0x1003102d
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x1003102d
mov al, byte [ebx + 3]
cmp al, 4
jne 0x10031017
mov dword [ebp - 0xd0], 0
add ebx, 0x14
jmp 0x1002be57
cmp al, 5
jne 0x10031025
mov eax, 2
mov byte [edi + 0x56], al
jmp 0x10031030
movzx eax, al
mov byte [edi + 0x56], al
jmp 0x10031030
inc dword [edi + 0x64]
test ecx, ecx
jne 0x1002e6a4
mov ebx, dword [ebp - 0xd4]
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0xd8]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x30]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebx, 0x14
jmp 0x1002be57
mov eax, ebx
mov edx, edi
call fcn.1002bd40
mov edx, dword [ebx + 4]
mov ebx, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
xor ecx, ecx
test ebx, ebx
je 0x100310aa
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x30]
cmp ecx, ebx
jae 0x100310aa
mov ecx, ebx
mov ebx, ecx
call fcn.100195f0
mov ebx, dword [ebp - 0xd4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x1002be57
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 0xb4], 0
je 0x1003111a
test byte [edi + 0x58], 2
jne 0x1003111a
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jne 0x100310eb
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x1003111a
mov edx, edi
call fcn.1002b590
mov esi, eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xb8]
mov edx, dword [eax + 0xb4]
push esi
push ecx
call edx
mov ecx, dword [ebp - 0xd8]
add esp, 8
mov eax, esi
call fcn.10004130
cmp dword [ebx + 8], 0
je case.0x1002be73.62
jmp 0x1002ec0a
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x10031459
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x10031459
mov eax, dword [edi + 0x2c]
mov ecx, esi
call fcn.10004130
mov esi, dword [ebp - 0xd8]
mov ebx, str.database_schema_has_changed
mov eax, esi
call fcn.100046a0
mov ecx, dword [ebp - 0xd4]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
add edx, edx
mov edx, dword [ecx + edx*8 + 0xc]
mov ecx, dword [ebp - 0x1a4]
cmp dword [edx], ecx
je 0x1003118d
mov edi, dword [ebp - 0xd8]
mov esi, eax
call fcn.10042730
mov edi, dword [ebp - 0xe4]
or dword [edi + 0x58], 1
mov dword [ebp - 0xd0], 0x11
jmp 0x1002e69e
mov dword [ebp - 0xd0], 7
jmp 0x1002fcc8
mov edx, dword [ebx + 4]
mov dword [edi + 0x50], edx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test edx, edx
je 0x1003122d
mov al, byte [ebx + 3]
test al, al
je 0x100311f0
movzx ecx, al
mov ecx, dword [ecx*4 + 0x100b93a4]
test ecx, ecx
je 0x100311f2
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x100311f2
push eax
push ecx
push str._s_constraint_failed:__s
push edi
call fcn.100240b0
add esp, 0x10
jmp 0x10031210
xor ecx, ecx
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x10031201
push eax
push 0x100bd55c
jmp 0x10031207
push ecx
push str._s_constraint_failed
push edi
call fcn.100240b0
add esp, 0xc
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0xb0]
mov ecx, dword [ebx + 4]
push edx
push eax
push esi
push str.abort_at__d_in___s_:__s
push ecx
call sym.SQLite3Encrypt.dll_sqlite3_log
add esp, 0x14
mov eax, edi
call fcn.10026d20
mov esi, dword [ebp - 0xd8]
mov ecx, 5
cmp eax, ecx
jne 0x10031251
mov dword [ebp - 0xd0], ecx
mov dword [edi + 0x50], ecx
jmp 0x10031372
mov eax, dword [edi + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 0xd0], eax
jmp 0x10031372
mov esi, dword [ebp - 0xd8]
mov eax, dword [esi + 0x130]
test eax, eax
je 0x100312a6
mov edx, dword [ebp - 0x148]
cmp edx, dword [ebp - 0x184]
jb 0x100312a6
mov ecx, dword [esi + 0x134]
push ecx
call eax
add esp, 4
test eax, eax
je 0x100312a6
mov dword [ebp - 0xd0], 9
jmp 0x1002e6a4
push 0
mov esi, edi
call fcn.10026cb0
add esp, 4
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1002e69e
push 1
push edi
call fcn.10026b90
mov edx, dword [edi + 0x48]
mov ecx, dword [ebp - 0xd4]
add edx, 2
or edx, 1
mov dword [edi + 0x48], edx
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
xor ebx, ebx
add esp, 8
mov dword [edi + 0x14], esi
cmp dword [ecx + 8], ebx
jle 0x10031330
jmp 0x10031300
mov eax, 0x1000
test word [esi + 8], ax
je 0x1003131a
mov eax, esi
call fcn.10022c40
test eax, eax
jne 0x10031619
mov eax, esi
call fcn.10022d50
mov ecx, dword [ebp - 0xd4]
inc ebx
add esi, 0x28
cmp ebx, dword [ecx + 8]
jl 0x10031300
mov edx, dword [ebp - 0xd8]
cmp byte [edx + 0x45], 0
jne 0x10031619
mov ecx, dword [ebp - 0xd4]
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [edi + 0x4c], ecx
mov dword [ebp - 0xd0], 0x64
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x148]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
add dword [edi + 0x84], edx
cmp dword [edi + 0x6c], 0
je 0x1003139f
push edi
call fcn.10025530
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xd0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100a3aa6
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x50], 0
jne 0x100313c7
lea eax, [ebp - 0x2c8]
call fcn.10023020
mov eax, 0x12cd3
call fcn.1007c2f0
mov dword [ebp - 0xd0], eax
jmp 0x1002e69e
sub ebx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x4c], eax
mov byte [esi + 0x43], 0
mov dword [ebp - 0xd0], 5
mov dword [edi + 0x50], 5
jmp 0x10031372
mov esi, dword [ebp - 0xd8]
movzx edx, byte [esi + 0x43]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xfc], eax
cmp eax, edx
je 0x10031510
test ecx, ecx
je 0x10031447
push 0x204
mov eax, esi
call fcn.10079f90
add esp, 4
mov byte [esi + 0x43], 1
jmp 0x1003149c
test eax, eax
je 0x10031471
cmp dword [esi + 0xa0], 0
jle 0x10031471
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.100240b0
add esp, 8
mov dword [ebp - 0xd0], 5
jmp 0x1002e6a4
push 1
mov esi, edi
call fcn.10026cb0
add esp, 4
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x1003136c
mov ecx, dword [ebp - 0xd8]
mov al, byte [ebp - 0xfc]
mov byte [ecx + 0x43], al
mov esi, ecx
mov eax, edi
call fcn.10026d20
mov ecx, 5
cmp eax, ecx
jne 0x100314df
sub ebx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, byte [ebp - 0xfc]
mov dword [edi + 0x4c], eax
mov byte [esi + 0x43], dl
mov dword [ebp - 0xd0], ecx
mov dword [edi + 0x50], ecx
jmp 0x10031372
mov edi, dword [ebp - 0xd8]
call fcn.10079440
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov esi, edi
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], eax
jmp 0x10031372
test eax, eax
jne 0x1003151b
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x10031529
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x10031529
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push edi
call fcn.100240b0
add esp, 8
mov dword [ebp - 0xd0], 1
jmp 0x1002e6a4
mov dword [ebp - 0xd0], 8
jmp 0x1002e6a4
sub ebx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], ecx
jmp 0x10031372
mov dword [ebp - 0xd0], 0x204
jmp 0x1002e6a4
mov dword [ebp - 0xd0], 6
mov byte [edi + 0x56], 2
jmp 0x1002e6a4
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0xd0], 1
call fcn.100240b0
add esp, 8
jmp 0x1002e6a4
push esi
call sym.SQLite3Encrypt.dll_sqlite3_value_text
add esp, 4
push eax
push 0x100bd55c
push edi
call fcn.100240b0
add esp, 0xc
jmp 0x1002e69e
mov dword [ebp - 0xd0], 1
mov eax, str.into
cmp ecx, 5
je 0x100315e8
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.100240b0
add esp, 0xc
jmp 0x1002e6a4
mov eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp 0x10031619
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xd8]
cmp byte [esi + 0x45], 0
jne 0x10031648
cmp byte [esi + 0x46], 0
jne 0x10031648
cmp dword [esi + 0xa4], 0
mov byte [esi + 0x45], 1
jle 0x10031642
mov dword [esi + 0xf8], 1
inc dword [esi + 0x100]
push str.out_of_memory
push edi
call fcn.100240b0
add esp, 8
mov dword [ebp - 0xd0], 7
jmp 0x1002e6a4
mov dword [ebp - 0xd0], 6
jmp 0x1002e69e
mov esi, edx
jmp 0x1002cb0c
xor eax, eax
cmp byte [esi + 0x45], al
mov ecx, str.unknown_error
sete al
lea eax, [eax + eax + 7]
mov dword [ebp - 0xd0], eax
mov dword [edi + 0x50], eax
cmp eax, 0x204
je 0x100316c7
and eax, 0xff
cmp eax, 0x1a
ja 0x100316cc
mov eax, dword [eax*4 + 0x100bc300]
test eax, eax
je 0x100316cc
mov ecx, eax
push ecx
push 0x100bd55c
push edi
call fcn.100240b0
add esp, 0xc
jmp 0x1002e6a4
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x100bd55c
push edi
call fcn.100240b0
add esp, 0xc
jmp 0x1002e6a4
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x100bd55c
push edi
call fcn.100240b0
add esp, 0xc
mov dword [edi + 0x50], ebx
cmp ebx, 0xc0a
je 0x1003172a
mov eax, ebx
and eax, 0xff
cmp eax, 0xe
je 0x10031710
cmp eax, 0xa
jne 0x1003172a
mov eax, dword [esi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x10031725
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x10031727
xor eax, eax
mov dword [esi + 0x3c], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0xb0]
push eax
push ecx
mov ecx, dword [ebp - 0xd4]
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call sym.SQLite3Encrypt.dll_sqlite3_log
add esp, 0x14
mov eax, edi
call fcn.10026d20
cmp ebx, 0xc0a
jne 0x10031799
cmp byte [esi + 0x45], 0
jne 0x10031799
cmp byte [esi + 0x46], 0
jne 0x10031799
cmp dword [esi + 0xa4], 0
mov byte [esi + 0x45], 1
jle 0x10031793
mov dword [esi + 0xf8], 1
inc dword [esi + 0x100]
mov al, byte [ebp - 0x111]
mov dword [ebp - 0xd0], 1
test al, al
je 0x10031372
mov edx, dword [esi + 0x10]
movzx ebx, al
dec ebx
mov ecx, ebx
add ecx, ecx
mov eax, dword [edx + ecx*8 + 0xc]
push eax
call fcn.100494a0
add esp, 4
cmp ebx, 1
je 0x10031372
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.100494a0
add esp, 4
jmp 0x10031372