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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov eax, dword [ecx]
push esi
xor esi, esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
cmp word [esp + 0x6c], si
je 0x1002ecf2
test byte [eax + 0x3c], 0x80
je 0x1002ecf2
xor al, al
pop esi
add esp, 0x54
ret
mov edx, dword [esp + 0x60]
movzx eax, word [edx]
mov dword [esp + 0x34], eax
cmp ax, 0x3f
ja 0x1002eceb
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 7], 1
mov dword [esp + 0x14], ecx
call fcn.10059c20
add eax, 0xffffffff
push ebx
adc edx, 0xffffffff
push ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x24], esi
push edi
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x60]
ja 0x1002f253
jb 0x1002ed5e
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x5c]
jae 0x1002f253
movzx ecx, word [esp + 0x78]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jg 0x1002f253
xor edi, edi
cmp edx, edi
jle 0x1002ed87
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x4c], esi
or dword [esp + 0x50], eax
cmp edx, ecx
jge 0x1002ed97
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 0x18]
mov esi, dword [eax + edx*4]
jmp 0x1002ed9b
mov esi, dword [esp + 0x7c]
test dword [esi + 0x24], 0x400
mov dword [esp + 0x18], esi
jne 0x1002f24d
movzx eax, byte [esi + 0x10]
mov edx, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 4]
shl ecx, 4
cmp dword [esp + 0x20], edi
mov ecx, dword [ecx + eax + 0x38]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], edi
jle 0x1002eeee
mov dword [esp + 0x24], edi
jmp 0x1002ede0
mov ecx, dword [esp + 0x1c]
mov eax, 1
xor edx, edx
call fcn.10059c20
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x44]
mov ecx, ebp
and ecx, dword [esp + 0x48]
or eax, ecx
jne 0x1002eed6
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
mov eax, dword [ecx + eax]
call fcn.10009450
mov edi, eax
cmp byte [edi], 0x9a
jne 0x1002eed6
mov edx, dword [esp + 0x2c]
cmp dword [edi + 0x1c], edx
jne 0x1002eed6
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
movsx edx, word [edi + 0x20]
push 0
push 0x182
not ecx
not eax
push ecx
push eax
mov eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x7c]
add edx, 0x148
call fcn.1002db50
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1002eed2
test byte [esi + 0x12], 0x82
je 0x1002eeca
cmp word [edi + 0x20], 0
jl 0x1002eeca
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [edx + ecx]
call fcn.1002b510
add esp, 4
test eax, eax
jne 0x1002ee9c
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
mov edi, dword [eax]
mov eax, dword [esi]
push edx
call fcn.1002b510
add esp, 4
test eax, eax
jne 0x1002eeba
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
push ecx
push edi
call sym.idmindex.dll_sqlite3_stricmp
add esp, 8
test eax, eax
jne 0x1002eed2
or dword [esp + 0x44], ebx
or dword [esp + 0x48], ebp
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add dword [esp + 0x24], 0x18
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jl 0x1002ede0
mov eax, dword [esi + 0x24]
test eax, 0x1000
jne 0x1002f16c
test eax, 0x100
je 0x1002ef12
xor ebp, ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
lea eax, [ebp + 1]
jmp 0x1002ef40
mov ebp, dword [esi + 0x1c]
mov dword [esp + 0x34], ebp
test ebp, ebp
je 0x1002f2b9
test byte [ebp + 0x34], 4
jne 0x1002f2b9
movzx edx, word [ebp + 0x2e]
cmp byte [ebp + 0x32], 0
movzx eax, word [ebp + 0x30]
mov dword [esp + 0x38], edx
setne byte [esp + 0x13]
movzx edx, ax
xor edi, edi
mov byte [esp + 0x16], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], edx
test edx, edx
jle 0x1002f16c
movzx ecx, word [esi + 0x18]
cmp edi, ecx
jge 0x1002ef99
cmp word [esi + 0x2a], 0
jne 0x1002ef99
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edi*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x1002ef99
test eax, 0x100
je 0x1002f156
mov byte [esp + 0x13], 0
jmp 0x1002f156
test ebp, ebp
je 0x1002efbf
mov edx, dword [ebp + 4]
movsx eax, word [edx + edi*2]
mov edx, dword [ebp + 0x1c]
mov dl, byte [edi + edx]
mov byte [esp + 0x14], dl
mov edx, dword [ebp + 0xc]
movsx edx, word [edx + 0x20]
mov dword [esp + 0x24], eax
cmp eax, edx
jne 0x1002efcb
jmp 0x1002efc4
mov byte [esp + 0x14], 0
or eax, 0xffffffff
mov dword [esp + 0x24], eax
cmp byte [esp + 0x13], 0
je 0x1002efef
test eax, eax
jl 0x1002efef
cmp edi, ecx
jl 0x1002efef
mov ecx, dword [ebp + 0xc]
lea edx, [eax + eax*2]
mov eax, dword [ecx + 4]
cmp byte [eax + edx*8 + 0x14], 0
jne 0x1002efef
mov byte [esp + 0x13], 0
mov ebp, dword [esp + 0x6c]
xor esi, esi
mov bl, 1
xor edi, edi
lea esp, [esp]
cmp esi, dword [esp + 0x20]
jge 0x1002f0a1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.10059c20
and eax, dword [esp + 0x44]
and edx, dword [esp + 0x48]
or eax, edx
jne 0x1002f095
mov ecx, dword [ebp + 4]
mov edx, dword [edi + ecx]
mov eax, edx
call fcn.10009450
test dword [esp + 0x74], 0x300
jne 0x1002f03d
xor bl, bl
cmp byte [eax], 0x9a
jne 0x1002f095
mov ecx, dword [esp + 0x2c]
cmp dword [eax + 0x1c], ecx
jne 0x1002f095
movsx ecx, word [eax + 0x20]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jne 0x1002f095
test eax, eax
jl 0x1002f0cc
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
push ecx
mov eax, edx
call fcn.1002b510
add esp, 4
test eax, eax
jne 0x1002f077
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx + ecx*4]
mov eax, dword [eax]
push edx
push eax
call sym.idmindex.dll_sqlite3_stricmp
add esp, 8
test eax, eax
je 0x1002f0cc
inc esi
add edi, 0x18
test bl, bl
jne 0x1002f000
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1002f0b2
movzx edx, word [esp + 0x38]
cmp eax, edx
jge 0x1002f0b7
mov byte [esp + 0x13], 0
cmp byte [esp + 0x17], 0
je 0x1002f16c
mov byte [esp + 0x13], 1
jmp 0x1002f177
test dword [esp + 0x74], 0x100
jne 0x1002f128
cmp byte [esp + 0x16], 0
je 0x1002f0f3
mov al, byte [esp + 0x14]
xor al, byte [esp + 0x15]
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*2]
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x1002f0a1
jmp 0x1002f128
mov ecx, dword [ebp + 4]
lea eax, [esi + esi*2]
mov al, byte [ecx + eax*8 + 0xc]
xor al, byte [esp + 0x14]
mov byte [esp + 0x15], al
je 0x1002f123
mov ecx, dword [esp + 0x28]
mov eax, 1
xor edx, edx
call fcn.10059c20
mov ecx, dword [esp + 0x80]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x16], 1
cmp dword [esp + 0x24], 0
jge 0x1002f134
mov byte [esp + 0x17], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.10059c20
or dword [esp + 0x44], eax
or dword [esp + 0x48], edx
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
inc edi
cmp edi, edx
mov dword [esp + 0x1c], edi
jge 0x1002f0b7
mov esi, dword [esp + 0x18]
jmp 0x1002ef64
cmp byte [esp + 0x13], 0
je 0x1002f23c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
or dword [esp + 0x54], ecx
or dword [esp + 0x58], edx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
jle 0x1002f23c
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
jmp 0x1002f1b0
mov eax, 1
xor edx, edx
call fcn.10059c20
mov ebx, edx
mov ebp, eax
and eax, dword [esp + 0x44]
mov ecx, ebx
and ecx, dword [esp + 0x48]
or eax, ecx
jne 0x1002f224
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + ecx]
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
add eax, 0x44
push eax
call fcn.10014a50
mov esi, eax
mov edi, edx
mov ecx, esi
add esp, 8
or ecx, edi
jne 0x1002f208
mov edx, dword [esp + 0x3c]
call fcn.10012e10
test eax, eax
je 0x1002f224
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
not eax
not ecx
and eax, esi
and ecx, edi
or eax, ecx
jne 0x1002f224
or dword [esp + 0x44], ebp
or dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x34], 0x18
inc ecx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jl 0x1002f1b0
inc dword [esp + 0x28]
cmp byte [esp + 0x13], 0
jne 0x1002ed40
jmp 0x1002f253
cmp byte [esi + 0x1d], 0
jne 0x1002f267
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x44], edx
jne 0x1002f273
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x48], eax
jne 0x1002f273
mov al, byte [esp + 0x40]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x54
ret
cmp byte [esp + 0x13], 0
jne 0x1002f2cd
mov ebx, dword [esp + 0x20]
dec ebx
test ebx, ebx
jle 0x1002f2b9
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
jmp 0x1002f290
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.10059c20
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x1002f2b4
cmp esi, edx
je 0x1002f2c3
dec ebx
test ebx, ebx
jg 0x1002f290
pop edi
pop ebp
pop ebx
xor al, al
pop esi
add esp, 0x54
ret
pop edi
pop ebp
mov al, bl
pop ebx
pop esi
add esp, 0x54
ret
pop edi
pop ebp
pop ebx
or al, 0xff
pop esi
add esp, 0x54
ret