Function at 0x433e8a
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push 0x258
mov eax, 0x44c42f
call fcn.004386f7
mov edi, ecx
push 0x457fd8
push str.CUninstLanguageSelector::IsInstalledScannerDriver
push 5
call fcn.00405a24
add esp, 0xc
xor ecx, ecx
push 7
pop ebx
push ecx
mov dword [ebp - 0x254], ecx
xor eax, eax
mov esi, 0x44d8ac
push esi
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x250], ebx
mov word [ebp - 0x264], ax
call fcn.00401db2
xor ecx, ecx
push ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x23c], ecx
xor eax, eax
push esi
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x238], ebx
mov word [ebp - 0x24c], ax
call fcn.00401db2
xor eax, eax
inc eax
mov dword [ebp - 0x220], ebx
xor ebx, ebx
mov byte [ebp - 4], al
push ebx
xor eax, eax
push esi
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x224], ebx
mov word [ebp - 0x234], ax
call fcn.00401db2
mov ecx, dword [edi + 0x3a4]
push str.___NAME_SG20_TWAINDS___
mov byte [ebp - 4], 2
call fcn.004326d5
mov esi, eax
cmp word [esi], bx
jne 0x433f4b
mov eax, ebx
jmp 0x433f52
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.00401db2
cmp dword [ebp - 0x224], 0
je 0x433f97
mov esi, str.___NAME_SG20_TWAINDS___
push esi
lea ecx, [ebp - 0x234]
call fcn.0040b7cd
test eax, eax
je 0x433f97
mov ecx, dword [edi + 0x3a4]
xor ebx, ebx
push esi
inc ebx
call fcn.004326d5
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x433fed
jmp 0x433fe6
mov ecx, dword [edi + 0x3a4]
push str.___NAME_CISDS_DS___
call fcn.004326d5
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x433fb7
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.00401db2
cmp dword [ebp - 0x224], 0
je 0x433fe1
push str.___NAME_CISDS_DS___
lea ecx, [ebp - 0x234]
call fcn.0040b7cd
test eax, eax
jne 0x433ffa
mov esi, str.CISDS.DS
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.00401db2
push 0x20a
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.00438dc0
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x434032
xor ebx, ebx
xor edi, edi
mov esi, ebx
inc edi
jmp 0x434116
cmp word [ebp - 0x21c], 0
jne 0x434040
xor eax, eax
jmp 0x43404d
lea eax, [ebp - 0x21c]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00401db2
lea eax, [ebp - 0x24c]
push str.Twain_32
push eax
call fcn.0043460e
pop ecx
pop ecx
lea eax, [ebp - 0x24c]
test ebx, ebx
je 0x434084
push str.SG20
jmp 0x43408a
push dword [edi + 0x3a0]
push eax
call fcn.0043460e
cmp dword [ebp - 0x220], 8
pop ecx
pop ecx
lea eax, [ebp - 0x234]
cmovae eax, dword [ebp - 0x234]
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.0043460e
cmp dword [ebp - 0x238], 8
lea esi, [ebp - 0x24c]
cmovae esi, dword [ebp - 0x24c]
push esi
push str.pFileName
push str.CUninstLanguageSelector::IsInstalledScannerDriver
push 4
call fcn.00405a06
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push 1
pop edi
xor ebx, ebx
cmp eax, 0xffffffff
mov esi, ebx
cmovne esi, edi
push esi
push str.bFound
push str.CUninstLanguageSelector::IsInstalledScannerDriver
push 4
call fcn.0040598e
push 0x457ff4
push str.CUninstLanguageSelector::IsInstalledScannerDriver
push 5
call fcn.00405a24
add esp, 0x1c
push ebx
push edi
lea ecx, [ebp - 0x234]
call fcn.00401ba5
push ebx
push edi
lea ecx, [ebp - 0x24c]
call fcn.00401ba5
push ebx
push edi
lea ecx, [ebp - 0x264]
call fcn.00401ba5
mov eax, esi
call fcn.004386a6
ret