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

Disassembly:
push ebp
mov ecx, edx
push edi
push esi
push ebx
sub esp, 0xac
mov esi, dword [edx + 4]
cmp byte [eax + 0xef], 0
mov dword [esp + 0x2c], eax
mov eax, 0x66589920
mov dword [esp + 0x48], edx
mov edx, 0x665899a0
cmovne eax, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], eax
test esi, esi
je 0x666694c8
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 0xc]
mov edi, eax
mov esi, eax
mov dword [esp + 0x88], eax
and edi, 2
and esi, 4
mov dword [esp + 0x80], edi
mov edi, eax
and edi, 1
mov dword [esp + 0x64], esi
mov esi, eax
mov dword [esp + 0x58], edi
mov edi, eax
and eax, 0x20
and esi, 0x10
mov dword [esp + 0x74], eax
mov eax, dword [ecx]
and edi, 8
mov dword [esp + 0x8c], edi
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x84], esi
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x30]
test ebx, ebx
jle 0x66669313
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x48]
xor ebx, ebx
jmp 0x666692c7
cmp byte [esi + 5], 0
je 0x666692f0
mov dword [esi + 0x28], 0
mov eax, dword [ebp + 8]
add ebx, 1
cmp eax, ebx
jle 0x6666930f
mov esi, dword [edi + ebx*4]
cmp byte [esi + 4], 0
jne 0x666692b0
mov eax, dword [esp + 0x2c]
mov edx, esi
call fcn.66668f10
test eax, eax
je 0x666692bd
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x28]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_free
mov eax, dword [esi + 0x34]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_blob_close
mov dword [esi + 0x34], 0
jmp 0x666692b6
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
lea eax, [esi - 2]
lea edi, [ecx - 1]
cmp esi, ecx
cmovne eax, edi
mov dword [esp + 0x24], eax
test eax, eax
js 0x66669382
sub esi, 1
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
lea esi, [esi]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov ebx, eax
cmp eax, esi
jl 0x66669360
jmp 0x66669374
mov dword [edi + ebx*4 + 4], ebp
mov dword [edi + ebx*4], esi
add ebx, 1
cmp ebx, dword [esp + 0x18]
je 0x66669374
mov esi, dword [edi + ebx*4 + 4]
mov ebp, dword [edi + ebx*4]
mov edx, esi
mov eax, ebp
call fcn.66587b20
test eax, eax
jns 0x66669350
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
jne 0x66669340
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov edi, dword [edi]
mov dword [eax + 8], 0
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x666694c8
mov esi, dword [edi + 0x3c]
mov ebx, dword [edi + 0x40]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
mov dword [eax + 0x2c], esi
mov dword [eax + 0x28], ebx
mov eax, dword [ecx]
test edx, edx
jne 0x666693f3
test eax, eax
je 0x666693f3
mov edx, dword [ecx + 4]
cmp esi, edx
jl 0x666694c8
jle 0x666693db
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x666694c8
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x666694c8
cmp dword [esp + 0x60], 1
mov dword [esp + 0x30], 1
mov eax, 1
jle 0x66669464
mov dword [esp + 0x18], edi
mov ebp, dword [esp + 0x3c]
mov edi, 1
jmp 0x66669449
cmp esi, dword [eax + 0x3c]
jne 0x66669454
mov dword [esp + 8], esi
mov eax, dword [eax + 0x40]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x66669454
add edi, 1
cmp dword [esp + 0x60], edi
je 0x666694d5
mov eax, dword [ebp + edi*4]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jne 0x66669420
mov eax, edi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
cmp eax, 1
sete al
mov edx, dword [esp + 0x80]
test edx, edx
sete byte [esp + 0x6b]
test byte [esp + 0x88], 0x22
jne 0x666694eb
test al, al
je 0x666694eb
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x38]
cmp byte [esi + 0xef], 0
je 0x66669ade
test eax, eax
jne 0x66669b53
mov esi, dword [esp + 0x48]
mov eax, dword [edi + 0x4c]
mov dword [esi + 0x34], eax
mov esi, dword [edi + 0x48]
mov eax, dword [esp + 0x48]
mov dword [eax + 0x30], esi
mov eax, dword [esp + 0x48]
mov dword [eax + 8], 1
mov eax, 0x64
jmp 0x666692df
add esp, 0xac
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
test eax, eax
sete byte [esp + 0x6b]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov edx, edi
mov ebp, dword [esp + 0x2c]
lea esi, [eax + 4]
lea ebx, [eax + ecx*4]
jmp 0x6666950d
mov edx, dword [esi]
add esi, 4
movzx eax, byte [ebp + 0xef]
call fcn.665fcda0
cmp ebx, esi
jne 0x66669508
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov dword [esp], eax
mov eax, esi
mov edx, ecx
call fcn.665847c0
mov edx, dword [esi]
mov eax, dword [edx + 0x50]
test eax, eax
je 0x666697a5
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x38], 0
lea esi, [esi]
lea eax, [esp + 0x94]
mov ecx, dword [edx + 0x58]
mov ebx, dword [edx + 0x5c]
mov dword [esp + 0x90], 0
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov ebp, 1
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0x94], 0
mov dword [esp + 0x1c], ebx
call fcn.665fce30
cmp dword [esp + 0x30], 1
je 0x666695f3
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
jmp 0x666695e9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
xor eax, dword [edx + 0x58]
xor ecx, dword [edx + 0x5c]
or ecx, eax
jne 0x666695f3
mov dword [esp], 0
xor ecx, ecx
mov eax, edi
add ebp, 1
call fcn.665fce30
cmp esi, ebp
je 0x666695f3
mov edx, dword [ebx + ebp*4]
mov eax, dword [edx + 0x50]
test eax, eax
jne 0x666695c0
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x66669870
cmp byte [esp + 0x6b], 0
jne 0x66669615
mov eax, dword [esp + 0x94]
test eax, eax
jle 0x66669774
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0xef], 0
je 0x666699be
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x66669850
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
cmp ecx, eax
mov esi, ebx
sbb esi, edx
jge 0x666699e6
sub eax, ecx
sbb edx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
xor ecx, ecx
lea esi, [esi]
shrd eax, edx, 7
shr edx, 7
add ecx, 1
mov esi, edx
or esi, eax
jne 0x66669668
mov eax, dword [esp + 0x58]
test eax, eax
je 0x6666968b
mov eax, dword [esp + 0x94]
lea ecx, [ecx + eax + 1]
mov eax, dword [esp + 0x48]
add ecx, dword [esp + 0x38]
mov esi, dword [eax + 0x10]
cmp ecx, dword [eax + 0x14]
jg 0x66669949
mov eax, dword [esp + 0x74]
add esi, dword [esp + 0x38]
mov dword [esp + 0x34], esi
test eax, eax
je 0x66669898
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
movzx edx, byte [ebx]
add eax, ebx
mov dword [esp + 0x28], eax
cmp dl, 1
je 0x66669a58
xor esi, esi
xor edi, edi
cmp dl, 2
je 0x66669a79
test dl, 0xfe
je 0x666696f9
lea esi, [esi]
add ebx, 1
mov eax, edx
movzx edx, byte [ebx]
and eax, 0xffffff80
or eax, edx
test al, 0xfe
jne 0x666696e8
cmp dword [esp + 0x28], ebx
jbe 0x6666974d
mov dword [esp + 0x78], ebp
mov ebp, edi
lea esi, [esi]
add ebx, 1
lea edx, [esp + 0x98]
mov eax, ebx
call fcn.66583d20
add ebx, eax
movzx edx, byte [ebx]
cmp dl, 2
je 0x666697b8
test dl, 0xfe
je 0x66669741
lea esi, [esi]
add ebx, 1
mov eax, edx
movzx edx, byte [ebx]
and eax, 0xffffff80
or eax, edx
test al, 0xfe
jne 0x66669730
cmp dword [esp + 0x28], ebx
ja 0x66669708
mov edi, ebp
mov ebp, dword [esp + 0x78]
test esi, esi
je 0x6666975c
mov eax, dword [esp + 0x34]
mov byte [eax + edi], 0
add edi, 1
test edi, edi
je 0x66669774
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add dword [esp + 0x38], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
mov ecx, ebp
mov edx, dword [esp + 0x30]
mov dword [esp], eax
mov eax, esi
call fcn.665847c0
mov edx, dword [esi]
mov ecx, dword [edx + 0x50]
test ecx, ecx
jne 0x66669560
mov edx, dword [esp + 0x38]
test edx, edx
jg 0x66669b85
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
mov dword [eax + 8], esi
jmp 0x66669296
mov eax, dword [esp + 0x34]
add eax, ebp
mov dword [esp + 0x4c], eax
test esi, esi
je 0x666699f6
mov eax, dword [esp + 0x4c]
lea edi, [ebp + 1]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], edi
mov byte [eax], 1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x9c]
add eax, edi
mov dword [esp + 0x4c], eax
mov ecx, eax
mov eax, dword [esp + 0x98]
lea esi, [esi]
lea esi, [esi]
mov edi, eax
mov esi, eax
shrd eax, edx, 7
mov dword [esp + 0x24], ecx
shr edx, 7
or edi, 0xffffff80
add ecx, 1
mov ebp, edx
mov ebx, edi
or ebp, eax
mov byte [ecx - 1], bl
jne 0x66669800
mov eax, esi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x70]
mov esi, 1
and eax, 0x7f
sub ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x6c]
mov byte [edi], al
mov eax, dword [esp + 0x34]
lea ebp, [ecx + 1]
mov byte [eax + ecx], 2
movzx edx, byte [ebx]
jmp 0x66669727
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
sub eax, dword [esp + 0x50]
sbb edx, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x6666965a
mov eax, dword [esp + 0x7c]
lea esi, [esp + 0x94]
lea ecx, [esp + 0x90]
xor edx, edx
mov eax, dword [eax + 8]
mov dword [esp], esi
call fcn.66586650
jmp 0x666695ff
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0x44]
lea esi, [esi]
nop
mov edi, ecx
mov byte [esp + 0x24], cl
shrd ecx, ebx, 7
mov esi, eax
shr ebx, 7
or edi, 0xffffff80
add eax, 1
mov ebp, ebx
mov edx, edi
or ebp, ecx
mov byte [eax - 1], dl
jne 0x666698b0
movzx edx, byte [esp + 0x24]
sub eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x58]
add dword [esp + 0x38], eax
and edx, 0x7f
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov byte [esi], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
test ebx, ebx
je 0x66669774
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x38]
mov eax, dword [esi + 0x10]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x90]
add eax, edi
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x94]
mov edx, dword [esi + 0x10]
add eax, edi
lea edi, [eax + 1]
mov byte [edx + eax], 0
mov dword [esp + 0x38], edi
jmp 0x66669774
lea ebx, [ecx + ecx]
mov dword [eax + 0x14], ebx
mov eax, dword [0x6667ced0]
test eax, eax
jne 0x66669ad4
call fcn.66587320
test eax, eax
jne 0x66669a69
call fcn.665cb300
test eax, eax
jne 0x66669a69
test ebx, ebx
mov eax, 0
cmovns eax, ebx
cdq
test esi, esi
je 0x66669b47
test ebx, ebx
jle 0x66669b35
cmp ebx, 0x7ffffeff
jg 0x66669a69
mov ecx, edx
mov edx, eax
mov eax, esi
call fcn.6658ba80
mov esi, eax
test esi, esi
je 0x66669a69
mov eax, dword [esp + 0x48]
mov dword [eax + 0x10], esi
jmp 0x6666969f
mov esi, dword [esp + 0x38]
test esi, esi
jle 0x66669850
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x1c]
cmp eax, ecx
mov eax, edx
sbb eax, ebx
jl 0x66669850
add esp, 0xac
mov eax, 0x10b
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0x4c]
lea esi, [esi]
mov edi, eax
mov esi, eax
shrd eax, edx, 7
mov dword [esp + 0x24], ecx
shr edx, 7
or edi, 0xffffff80
add ecx, 1
mov ebp, edx
mov ebx, edi
or ebp, eax
mov byte [ecx - 1], bl
jne 0x66669a10
mov edi, dword [esp + 0x24]
mov eax, esi
mov ebp, dword [esp + 0x6c]
and eax, 0x7f
sub ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x70]
mov byte [edi], al
mov eax, dword [esp + 0x34]
add ebp, ecx
add eax, ebp
mov dword [esp + 0x4c], eax
jmp 0x666697ca
xor edi, edi
xor esi, esi
cmp ebx, eax
jb 0x666696ff
jmp 0x66669774
add esp, 0xac
mov eax, 7
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x34]
lea esi, [esi]
mov ecx, esi
mov edx, esi
shrd esi, edi, 7
mov ebx, eax
shr edi, 7
add eax, 1
or ecx, 0xffffff80
mov ebp, edi
mov byte [eax - 1], cl
or ebp, esi
jne 0x66669a90
mov edi, ebx
and edx, 0x7f
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
mov byte [edi], dl
mov edx, eax
sub edx, dword [esp + 0x34]
mov esi, 1
mov byte [eax], 2
lea edi, [edx + 1]
movzx edx, byte [ebx]
jmp 0x666696e0
lock or dword [esp], 0
jmp 0x66669976
mov ebx, dword [edi + 0x4c]
mov ecx, dword [esp + 0x48]
mov esi, dword [edi + 0x48]
mov dword [ecx + 0x34], ebx
test eax, eax
je 0x666694a9
mov eax, dword [ecx + 0x10]
mov edi, ecx
cmp ebx, dword [ecx + 0x14]
jle 0x66669b16
lea edx, [ebx + ebx]
mov dword [ecx + 0x14], edx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_realloc
test eax, eax
je 0x66669b6a
mov dword [edi + 0x10], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov dword [edi + 0x30], eax
jmp 0x666694b0
mov dword [esp], esi
call sym.libsqlite3_0.dll_sqlite3_free
mov eax, 7
jmp 0x666692df
call fcn.6658bcf0
mov esi, eax
jmp 0x666699aa
mov eax, dword [esp + 0x2c]
mov edx, edi
movzx eax, byte [eax + 0xef]
call fcn.665fcda0
jmp 0x6666951d
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov dword [edi + 8], 1
mov dword [edi + 0x30], eax
mov eax, 7
jmp 0x666692df
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
lea edx, [eax + 0x14]
mov eax, dword [esi + 0x10]
cmp edx, dword [esi + 0x14]
jg 0x66669be0
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
add eax, esi
mov dword [eax + 8], 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov eax, dword [edi + 0x10]
mov dword [edi + 0x34], esi
mov dword [edi + 0x30], eax
mov eax, edi
mov edi, dword [esp + 0x30]
mov dword [eax + 8], edi
mov eax, 0x64
jmp 0x666692df
add edx, edx
mov dword [esi + 0x14], edx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_realloc
test eax, eax
je 0x66669a69
mov dword [esi + 0x10], eax
jmp 0x66669b98