Function at 0x44becc
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x330
mov eax, 0x5b23a1
call fcn.0058f792
push 0x5d30c0
push str.CInstLanguageSelector::IsInstalledScannerDriver
push 5
call fcn.00424dad
add esp, 0xc
xor ebx, ebx
mov edi, ebx
call fcn.00474a71
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x3c4]
mov esi, dword [esi]
mov dword [ebp - 0x33c], esi
call fcn.00474a71
mov eax, dword [eax + 4]
cmp esi, dword [eax + 0x3c4]
je 0x44c174
push 7
pop ecx
xor eax, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], ebx
mov word [ebp - 0x40], ax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], ebx
mov word [ebp - 0x58], ax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
mov byte [ebp - 4], 2
call fcn.00474a71
lea ecx, [ebp - 0x338]
mov eax, dword [eax + 4]
add eax, 0xd0
push eax
call fcn.004072e1
add esi, 0x38
mov byte [ebp - 4], 3
cmp dword [esi + 0x14], 8
jb 0x44bf6f
mov esi, dword [esi]
push esi
push str.__NAME_SCANNERDRIVER__
lea ecx, [ebp - 0x338]
call fcn.0046d72a
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.0041520f
cmp eax, 1
jne 0x44bfd9
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.00413a27
and eax, 0x30000
lea ecx, [ebp - 0x338]
cmp eax, 0x10000
jne 0x44bfd2
push str.CNQ___NAME_PRODUCTID___D.ds
call fcn.0046ed66
mov esi, eax
cmp word [esi], bx
jne 0x44c021
mov eax, ebx
jmp 0x44c028
push str.CNC___NAME_PRODUCTID___D.ds
jmp 0x44bfc2
push str.___NAME_CISDS_DS___
lea ecx, [ebp - 0x338]
call fcn.0046ed66
mov esi, eax
cmp word [esi], bx
jne 0x44bff4
mov eax, ebx
jmp 0x44bffb
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00404be0
cmp dword [ebp - 0x18], 0
je 0x44c01c
push str.___NAME_CISDS_DS___
lea ecx, [ebp - 0x28]
call fcn.0041fdbb
test eax, eax
jne 0x44c032
mov esi, str.CISDS.DS
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00404be0
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.0041520f
cmp eax, 1
jne 0x44c057
push str.___FLD_WINDOWS___Twain_32SG20
lea ecx, [ebp - 0x338]
jmp 0x44c088
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.00413a27
and eax, 0x30000
lea ecx, [ebp - 0x338]
cmp eax, 0x10000
jne 0x44c083
push str.___FLD_WINDOWS___Twain_32___NAME_SCANNERINF_BASE___
jmp 0x44c088
push str.___FLD_WINDOWS___Twain_32_NAME_MODEL_
call fcn.0046ed66
mov esi, eax
cmp word [esi], bx
jne 0x44c098
mov eax, ebx
jmp 0x44c09f
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x40]
call fcn.00404be0
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0047026a
cmp dword [ebp - 0x2c], 8
lea esi, [ebp - 0x40]
cmovae esi, dword [ebp - 0x40]
push esi
push str.pFileName
push str.CInstLanguageSelector::IsInstalledScannerDriver
push 4
call fcn.00424d8f
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x338]
cmp eax, 0xffffffff
jne 0x44c148
call fcn.0046d621
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.00404970
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.00404970
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
push ebx
push 1
call fcn.00404970
lea ecx, [ebp - 0x33c]
call fcn.004212e4
call fcn.00474a71
mov esi, dword [ebp - 0x33c]
push 7
pop ecx
mov eax, dword [eax + 4]
cmp esi, dword [eax + 0x3c4]
jne 0x44bf20
jmp 0x44c174
xor esi, esi
inc esi
mov edi, esi
call fcn.0046d621
push ebx
push esi
lea ecx, [ebp - 0x28]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x58]
call fcn.00404970
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
push ebx
push esi
call fcn.00404970
push edi
push str.bFound
mov ebx, str.CInstLanguageSelector::IsInstalledScannerDriver
push ebx
push 4
call fcn.00424d17
push 0x5d30dc
push ebx
push 5
call fcn.00424dad
add esp, 0x1c
mov eax, edi
call fcn.0058f741
ret