Function at 0x446080
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
push edi
mov edi, dword [sym.imp.MSVCR90.dll__stricmp]
push str.btree
push esi
call edi
add esp, 8
test eax, eax
jne 0x4460b1
mov esi, dword [0x6d410c]
mov edi, dword [esp + 0x14]
mov ecx, 0x45
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ecx
ret
push ebx
push str.soundex
push esi
call edi
mov ebx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x4460ea
mov esi, dword [0x6d410c]
add esi, 0x228
mov ecx, 0x45
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx], 0
jne 0x4462b6
push str.E:MyProjects_soundexDebug_soundex.dll
jmp 0x44611f
push str.odbc
push esi
call edi
add esp, 8
test eax, eax
jne 0x4462b6
mov esi, dword [0x6d410c]
add esi, 0x450
mov ecx, 0x45
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp dword [ebx], eax
jne 0x4462b6
push str.E:MyProjectsodbcDebugodbc.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebx], eax
test eax, eax
je 0x4462e0
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Create
push eax
call esi
mov dword [ebx + 0x34], eax
test eax, eax
je 0x4462e0
mov eax, dword [ebx]
push str.Drop
push eax
call esi
mov dword [ebx + 0x3c], eax
test eax, eax
je 0x4462e0
mov ecx, dword [ebx]
push str.Insert
push ecx
call esi
mov dword [ebx + 0x40], eax
test eax, eax
je 0x4462e0
mov edx, dword [ebx]
push str.Delete
push edx
call esi
mov dword [ebx + 0x48], eax
test eax, eax
je 0x4462e0
mov eax, dword [ebx]
push str.ScanOpen
push eax
call esi
mov dword [ebx + 0x4c], eax
test eax, eax
je 0x4462e0
mov ecx, dword [ebx]
push str.ScanNext
push ecx
call esi
mov dword [ebx + 0x54], eax
test eax, eax
je 0x4462e0
mov edx, dword [ebx]
push str.ScanClose
push edx
call esi
mov dword [ebx + 0x64], eax
test eax, eax
je 0x4462e0
mov eax, dword [ebx]
push str.DefineSavepoint
push eax
call esi
mov dword [ebx + 0x68], eax
test eax, eax
je 0x4462e0
mov ecx, dword [ebx]
push str.ApplySavepoint
push ecx
call esi
mov dword [ebx + 0x6c], eax
test eax, eax
je 0x4462e0
mov edx, dword [ebx]
push str.BeginTA
push edx
call esi
mov dword [ebx + 0x70], eax
test eax, eax
je 0x4462e0
mov eax, dword [ebx]
push str.CommitTA
push eax
call esi
mov dword [ebx + 0x74], eax
test eax, eax
je 0x4462e0
mov ecx, dword [ebx]
push str.PrepareTA
push ecx
call esi
mov dword [ebx + 0x78], eax
test eax, eax
je 0x4462e0
mov edx, dword [ebx]
push str.RollbackTA
push edx
call esi
mov dword [ebx + 0x7c], eax
test eax, eax
je 0x4462e0
mov eax, dword [ebx]
push str.OnLoad
push eax
call esi
mov ecx, dword [ebx]
push str.OnUnload
push ecx
mov dword [ebx + 4], eax
call esi
mov edx, dword [ebx]
push str.Truncate
push edx
mov dword [ebx + 8], eax
call esi
mov dword [ebx + 0x38], eax
mov eax, dword [ebx]
push str.Update
push eax
call esi
mov ecx, dword [ebx]
push str.ScanPrev
push ecx
mov dword [ebx + 0x44], eax
call esi
mov edx, dword [ebx]
push str.ScanSet
push edx
mov dword [ebx + 0x50], eax
call esi
mov edx, dword [0x6a0a88]
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 4]
lea esi, [edx + 0x30]
lea edi, [ebx + 0xb0]
mov ecx, 0x19
rep movsd dword es:[edi], dword [esi]
test eax, eax
je 0x4462b6
push ebx
push edx
call eax
add esp, 8
call fcn.0046f2a0
push eax
mov eax, dword [ebx + 0x70]
call eax
mov esi, eax
add esp, 4
test esi, esi
je 0x446340
push 0x3f0
push 0
call fcn.00406f10
add esp, 8
pop ebx
pop edi
mov eax, esi
pop esi
pop ecx
ret
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x44630b
push 0
push 0
lea ecx, [esp + 0x14]
push ecx
push 0
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x446318
mov eax, 0x5a8a1a
push eax
push 0x3f0
push 0x1ff2
call fcn.00406f10
mov edx, dword [esp + 0x18]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
pop ebx
pop edi
mov eax, 0x1ff2
pop esi
pop ecx
ret
pop ebx
pop edi
xor eax, eax
pop esi
pop ecx
ret