Function at 0x4212c5
Capabilities:
Read .ini file

Disassembly:
push 0x220
mov eax, 0x46cb4f
call fcn.004517f7
mov ebx, ecx
xor edi, edi
mov dword [ebp - 4], edi
mov eax, dword [ebp + 8]
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], 4
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x1c], edi
cmp dword [eax - 0xc], edi
jne 0x421311
xor esi, esi
inc esi
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0040285d
mov eax, esi
call fcn.0045187a
ret 4
call fcn.0042a8d7
push eax
lea ecx, [ebp - 0x228]
call fcn.00402773
lea esi, [ebp - 0x220]
mov byte [ebp - 4], 1
call fcn.00408676
push eax
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 2
call fcn.0040270e
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.0040285d
mov esi, dword [ebp - 0x228]
push esi
push edi
push 0x47ae54
push dword [ebp + 8]
mov dword [ebp - 0x220], edi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
call edi
push esi
push 1
push str.CacheVersion
push dword [ebp + 8]
mov dword [ebp - 0x224], eax
call edi
cmp dword [ebp - 0x224], 0
je 0x4214b6
cmp eax, 3
jl 0x4214b6
lea eax, [ebp + 8]
push eax
lea ecx, [ebx + 0x20]
call fcn.0040270e
push esi
push 0
push 0x477348
push dword [ebp + 8]
call edi
push esi
push 0
push str.ScannerType
push dword [ebp + 8]
mov dword [ebx + 8], eax
call edi
push esi
push 0
push str.ButtonNum
push dword [ebp + 8]
mov dword [ebx + 0xc], eax
call edi
push esi
push 0
push str.ModelDependency
push dword [ebp + 8]
mov dword [ebx + 0x10], eax
call edi
push esi
push 0
push str.EPSSetting
push dword [ebp + 8]
mov dword [ebx + 0x14], eax
call edi
mov dword [ebx + 0x18], eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.0044de40
add esp, 0xc
push esi
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0x47741c
push str.ShortTranslation
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebx + 0x24]
call fcn.0040247a
push esi
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0x47741c
push str.DeviceSettingAlias
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebx + 0x28]
call fcn.0040247a
push esi
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0x47741c
push str.DevInfAlias
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebx + 0x2c]
call fcn.0040247a
push esi
push 0
push str.ModifiedEvent
push dword [ebp + 8]
call edi
mov dword [ebx + 0x1c], eax
jmp 0x42154a
push ecx
lea eax, [ebp + 8]
mov dword [ebp - 0x224], esp
mov ecx, esp
push eax
lea edi, [ebp - 0x220]
call fcn.0040283c
call fcn.00429ab3
pop ecx
test eax, eax
je 0x4214f7
lea ecx, [esi - 0x10]
cmp eax, 4
jne 0x4214ed
call fcn.0040285d
push 4
pop esi
jmp 0x4212fc
call fcn.0040285d
jmp 0x4212f9
push ecx
mov ecx, esp
mov dword [ebp - 0x224], esp
push 0x47741c
call fcn.004024c3
push ecx
mov byte [ebp - 4], 3
lea eax, [ebp - 0x228]
mov dword [ebp - 0x22c], esp
mov ecx, esp
push eax
call fcn.0040283c
push ecx
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0x220]
lea eax, [ebp + 8]
mov dword [ebp - 0x220], esp
mov ecx, esp
push eax
call fcn.0040283c
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.00421559
lea ecx, [esi - 0x10]
call fcn.0040285d
xor esi, esi
jmp 0x4212fc