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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
mov ebx, edx
mov edx, ecx
push esi
push edi
xor edi, edi
mov dword [esp + 0x34], edx
mov eax, dword [edx + 0x74]
mov esi, edx
test eax, eax
cmovne esi, eax
cmp byte [esi + 0xcf], 2
jne 0x4f2f8e
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx + 0x38]
mov edi, dword [ecx + 0x4c]
lea eax, [eax + eax*8]
lea eax, [eax + 1]
lea eax, [ebx + eax*8]
mov ebx, dword [edi + 0x2c]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 8]
mov edx, dword [edx]
mov dword [esp + 0x30], eax
test ebx, 0x2000
jne 0x4f2fdb
mov cx, word [ebp + 0xc]
test cl, 0x20
jne 0x4f2fdb
mov eax, ebx
and eax, 0x30
mov dword [esp + 0x24], eax
jne 0x4f2d20
mov esi, ebx
and esi, 0x400
jne 0x4f2d17
cmp word [edi + 0x18], si
ja 0x4f2d20
test cl, 3
jne 0x4f2d20
xor ecx, ecx
jmp 0x4f2d2d
mov esi, ebx
mov ecx, 1
and esi, 0x400
push dword [esp + 0x28]
lea eax, [esp + 0x3c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
test ecx, ecx
mov edx, str.SCAN
mov dword [esp + 0x30], ecx
mov eax, str.SEARCH
mov dword [esp + 0x18], 0x64
cmove eax, edx
mov dword [esp + 0x1c], 0x3b9aca00
push eax
lea eax, [esp + 0x14]
mov dword [esp + 0x24], 0
push str._s__S
push eax
mov word [esp + 0x30], 0x100
call fcn.0046c8a0
add esp, 0x10
test ebx, 0x500
jne 0x4f2e59
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x10]
test byte [eax + 0x1c], 0x80
je 0x4f2dc3
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
jne 0x4f2dc3
xor eax, eax
mov esi, str.PRIMARY_KEY
cmp dword [esp + 0x2c], eax
cmove esi, eax
test esi, esi
je 0x4f2eef
jmp 0x4f2df1
test ebx, 0x20000
je 0x4f2dd2
mov esi, str.AUTOMATIC_PARTIAL_COVERING_INDEX
jmp 0x4f2df1
test ebx, 0x4000
je 0x4f2de1
mov esi, str.AUTOMATIC_COVERING_INDEX
jmp 0x4f2df1
test bl, 0x40
mov esi, str.COVERING_INDEX__s
mov eax, str.INDEX__s
cmove esi, eax
mov ecx, dword [esp + 0x1c]
add ecx, 7
cmp ecx, dword [esp + 0x14]
jb 0x4f2e13
push 7
mov edx, str._USING
lea ecx, [esp + 0x10]
call fcn.0046c200
add esp, 4
jmp 0x4f2e35
mov eax, dword [str._USING]
mov dword [esp + 0x1c], ecx
add ecx, dword [esp + 0x10]
mov dword [ecx - 7], eax
mov ax, word [0x59da18]
mov word [ecx - 3], ax
mov al, byte [0x59da1a]
mov byte [ecx - 1], al
mov eax, dword [esp + 0x24]
push dword [eax]
lea eax, [esp + 0x10]
push esi
push eax
call fcn.0046c8a0
add esp, 0xc
lea ecx, [esp + 0xc]
mov edx, edi
call fcn.004f2b00
jmp 0x4f2eef
test bl, 0xf
setne cl
bt ebx, 8
setb al
test al, cl
je 0x4f2ed3
push str.rowid
lea eax, [esp + 0x10]
push str._USING_INTEGER_PRIMARY_KEY___s
push eax
call fcn.0046c8a0
add esp, 0xc
test bl, 5
je 0x4f2e8d
mov eax, 0x3d
jmp 0x4f2ebe
cmp dword [esp + 0x24], 0x30
jne 0x4f2eb2
push str.rowid
lea eax, [esp + 0x10]
push str.___AND__s
push eax
call fcn.0046c8a0
add esp, 0xc
mov eax, 0x3c
jmp 0x4f2ebe
movzx eax, bl
shr eax, 4
and eax, 2
or eax, 0x3c
push eax
lea eax, [esp + 0x10]
push str._c__
push eax
call fcn.0046c8a0
add esp, 0xc
jmp 0x4f2eef
test esi, esi
je 0x4f2eef
push dword [edi + 0x24]
lea eax, [esp + 0x10]
push dword [edi + 0x18]
push str._VIRTUAL_TABLE_INDEX__d:_s
push eax
call fcn.0046c8a0
add esp, 0x10
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4f2f1e
mov eax, dword [esp + 0x1c]
mov byte [eax + esi], 0
cmp dword [esp + 0x18], 0
jbe 0x4f2f1a
test byte [esp + 0x21], 4
jne 0x4f2f1a
lea ecx, [esp + 0xc]
call fcn.0046c2e0
mov esi, eax
jmp 0x4f2f1e
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edi, dword [ebx + 0x74]
mov edx, dword [eax + 0xdc]
cmp dword [ebx + 0x78], edi
jg 0x4f2f4b
push 0
push edx
push edi
mov edx, 0xb7
mov ecx, ebx
call fcn.0048e530
add esp, 0xc
mov edi, eax
jmp 0x4f2f76
lea eax, [edi + 1]
mov dword [ebx + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0xb7
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx]
mov eax, edi
cmp byte [ecx + 0x57], 0
je 0x4f2f97
push esi
mov edx, 0xfffffff9
call fcn.0048f040
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
jns 0x4f2f9f
mov eax, dword [ebx + 0x74]
dec eax
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x70]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4f2fc7
push 0xfffffffffffffff9
push esi
mov edx, eax
mov ecx, ebx
call fcn.0048f290
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x4f2f8e
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xf9
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret