Function at 0x4073f2
Capabilities:
Read .ini file

Disassembly:
push 0x25c
mov eax, 0x558802
call fcn.0052faf2
mov esi, ecx
mov ebx, edx
and dword [ebp - 4], 0
xor edi, edi
inc edi
call fcn.0042b589
push eax
lea ecx, [ebp - 0x22c]
call fcn.0040217f
mov byte [ebp - 4], 1
call fcn.0042b589
push eax
lea ecx, [ebp - 0x228]
call fcn.0040217f
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 2
call fcn.00401ee1
lea ecx, [ebp - 0x228]
call fcn.00407c89
lea eax, [ebp - 0x22c]
push eax
push dword [ebp - 0x228]
lea ecx, [esi + 0x50]
call fcn.0042db91
test eax, eax
je 0x4074f0
lea esi, [ebp - 0x268]
call fcn.00421a9b
lea eax, [ebp - 0x22c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x260], 0xffff
mov dword [ebp - 0x25c], 5
call fcn.00401ee1
and dword [ebp - 0x258], 0
mov eax, esi
mov esi, ebx
call fcn.00407819
lea ecx, [ebp - 0x268]
call fcn.00421b13
xor esi, esi
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
call fcn.004021a7
mov ecx, dword [ebp - 0x22c]
add ecx, 0xfffffff0
call fcn.004021a7
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.004021a7
mov eax, esi
call fcn.0052fb75
ret 8
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
cmp byte [ebp + 0xc], 0
je 0x4077f0
push eax
call fcn.00401e83
lea edi, [eax + 0x10]
pop ecx
mov dword [ebp - 0x230], edi
mov byte [ebp - 4], 4
xor eax, eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 4
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], eax
cmp dword [edi - 0xc], eax
jne 0x407541
lea ecx, [edi - 0x10]
call fcn.004021a7
xor eax, eax
inc eax
jmp 0x4077e9
call fcn.0042b589
push eax
lea ecx, [ebp - 0x21c]
call fcn.0040217f
lea esi, [ebp - 0x224]
mov byte [ebp - 4], 5
call fcn.00409e44
push eax
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 6
call fcn.00401ee1
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x224]
add ecx, 0xfffffff0
call fcn.004021a7
push dword [ebp - 0x21c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
and dword [ebp - 0x224], 0
push 0
push 0x58b86c
push edi
call esi
push dword [ebp - 0x21c]
mov dword [ebp - 0x220], eax
push 1
push str.CacheVersion
push edi
call esi
cmp dword [ebp - 0x220], 0
je 0x407706
cmp eax, 3
jl 0x407706
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebx + 0x20]
call fcn.00401ee1
push dword [ebp - 0x21c]
push 0
push str.ModelID
push edi
call esi
push dword [ebp - 0x21c]
mov dword [ebx + 8], eax
push 0
push str.ScannerType
push edi
call esi
push dword [ebp - 0x21c]
mov dword [ebx + 0xc], eax
push 0
push str.ButtonNum
push edi
call esi
push dword [ebp - 0x21c]
mov dword [ebx + 0x10], eax
push 0
push str.ModelDependency
push edi
call esi
push dword [ebp - 0x21c]
mov dword [ebx + 0x14], eax
push 0
push str.EPSSetting
push edi
call esi
mov dword [ebx + 0x18], eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.0052bfd0
add esp, 0xc
push dword [ebp - 0x21c]
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0x587cac
push str.ShortTranslation
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x24]
call fcn.00401d89
push dword [ebp - 0x21c]
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0x587cac
push str.DeviceSettingAlias
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x28]
call fcn.00401d89
push dword [ebp - 0x21c]
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0x587cac
push str.DevInfAlias
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebx + 0x2c]
call fcn.00401d89
push dword [ebp - 0x21c]
push 0
push str.ModifiedEvent
push edi
call esi
mov dword [ebx + 0x1c], eax
jmp 0x4077d1
push ecx
mov dword [ebp - 0x220], esp
lea esi, [edi - 0x10]
mov dword [ebp - 0x220], esp
push esi
call fcn.00401e83
pop ecx
mov ecx, dword [ebp - 0x220]
add eax, 0x10
lea edi, [ebp - 0x224]
mov dword [ecx], eax
call fcn.0042aa18
pop ecx
test eax, eax
je 0x407766
mov ecx, dword [ebp - 0x21c]
add ecx, 0xfffffff0
cmp eax, 4
jne 0x40775a
call fcn.004021a7
mov ecx, esi
call fcn.004021a7
push 4
pop eax
jmp 0x4077e9
call fcn.004021a7
mov ecx, esi
jmp 0x407534
push ecx
mov ecx, esp
mov dword [ebp - 0x238], esp
push 0x587cac
call fcn.00401daf
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x21c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x234], esp
mov edi, esp
push eax
call fcn.00401e83
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 0x220], esp
mov dword [ebp - 0x220], esp
push esi
mov byte [ebp - 4], 8
call fcn.00401e83
pop ecx
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov ecx, dword [ebp - 0x224]
mov byte [ebp - 4], 5
call fcn.00421d67
mov edi, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x21c]
add ecx, 0xfffffff0
call fcn.004021a7
lea ecx, [edi - 0x10]
call fcn.004021a7
xor eax, eax
mov esi, eax
jmp 0x4074bf
push ecx
mov dword [ebp - 0x234], esp
mov esi, esp
push eax
call fcn.00401e83
add eax, 0x10
mov dword [esi], eax
pop ecx
mov esi, ebx
call fcn.00421c69
test eax, eax
je 0x407812
xor edi, edi
mov esi, edi
jmp 0x4074bf