Function at 0x436ff4
Capabilities:
Read .ini file

Disassembly:
push 0x708
mov eax, 0x565c89
call fcn.0053da79
and dword [ebp - 4], 0
push 0x2f
mov ebx, str...CommonUtility.cpp
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x43701e
push 0x2f
jmp 0x43702e
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x437039
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x43703b
mov eax, ebx
push 1
push 0x4e8
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b01
push str.Enumerating_all_DSs
push 0
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00404bdf
mov edi, eax
call fcn.00402776
pop ecx
mov ecx, esi
mov byte [ebp - 4], 0
call fcn.00404b6d
and dword [ebp - 0x700], 0
mov byte [ebp - 4], 2
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jne 0x43708f
lea ecx, [eax - 0x10]
jmp 0x4376de
push str.ScanEngine30.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [ebp - 0x710], edi
test edi, edi
jne 0x437112
push 0x2f
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x4370b8
push 0x2f
jmp 0x4370c8
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x4370d3
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x4370d5
mov eax, ebx
push 4
push 0x4f2
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b01
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00404bdf
mov edi, eax
call fcn.00402776
pop ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00404b6d
jmp 0x4376d8
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateDeviceEnumerator
push edi
call esi
push str.DestroyDeviceEnumerator
push edi
mov dword [ebp - 0x6fc], eax
call esi
cmp dword [ebp - 0x6fc], 0
mov dword [ebp - 0x714], eax
je 0x437665
test eax, eax
je 0x437665
push dword [ebp + 8]
lea eax, [ebp - 0x69c]
push 0x104
push eax
push 0x5990a0
push str.name0
push str.AllEpsonDS
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x69c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [ebp - 0x6f0]
inc eax
push ecx
mov dword [ebp - 0x6f0], eax
call fcn.0040a720
pop ecx
test eax, eax
jns 0x437196
xor eax, eax
jmp 0x4371d6
mov esi, dword [ebp - 0x6f0]
cmp esi, 0x400
jg 0x4371ba
push esi
call fcn.0040a673
pop ecx
test al, al
je 0x4371ba
mov eax, esi
call fcn.00540020
mov eax, esp
jmp 0x4371c6
push esi
lea ecx, [ebp - 0x700]
call fcn.0040a624
push 3
push esi
lea ecx, [ebp - 0x69c]
push ecx
push eax
call fcn.0040a6e8
push eax
lea eax, [ebp - 0x494]
push 0x400
push eax
call fcn.0053ce46
add esp, 0xc
mov byte [ebp - 0x6f1], 0
call dword [ebp - 0x6fc]
mov esi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, eax
xor ebx, ebx
mov dword [ebp - 0x6f8], edi
mov dword [ebp - 0x6fc], ebx
cmp edi, ebx
jle 0x4372a2
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x94]
push ecx
push ebx
mov ecx, esi
call dword [eax + 0x10]
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x54]
push ecx
push ebx
mov ecx, esi
call dword [eax + 8]
mov eax, dword [esi]
lea ecx, [ebp - 0x70c]
push ecx
lea ecx, [ebp - 0x708]
push ecx
push ebx
mov ecx, esi
call dword [eax + 0xc]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x494]
push eax
call fcn.0053d310
pop ecx
pop ecx
test eax, eax
jne 0x43726b
mov byte [ebp - 0x6f1], 1
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053d310
pop ecx
pop ecx
test eax, eax
jne 0x437288
inc dword [ebp - 0x6fc]
push ebx
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436e56
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x437219
push 0x59c8d8
lea ecx, [ebp - 0x704]
call fcn.0040235d
mov byte [ebp - 4], 5
test edi, edi
jle 0x4372cf
push edi
lea eax, [ebp - 0x704]
push 0x599d24
push eax
call fcn.0040a7c3
add esp, 0xc
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0x704]
push str.count
push 0x59edd4
call edi
and dword [ebp - 0x6f0], 0
cmp dword [ebp - 0x6f8], 0
jle 0x437374
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x94]
push ecx
push dword [ebp - 0x6f0]
mov ecx, esi
call dword [eax + 0x10]
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x6f0]
mov ecx, esi
call dword [eax + 8]
mov eax, dword [esi]
lea ecx, [ebp - 0x70c]
push ecx
lea ecx, [ebp - 0x708]
push ecx
push dword [ebp - 0x6f0]
mov ecx, esi
call dword [eax + 0xc]
push dword [ebp - 0x70c]
lea eax, [ebp - 0x94]
push dword [ebp - 0x708]
lea ebx, [ebp + 8]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00436cf0
add esp, 0x10
inc dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x6f0]
cmp eax, dword [ebp - 0x6f8]
jl 0x4372fa
and dword [ebp - 0x6f0], 0
cmp byte [ebp - 0x6f1], 0
je 0x43740d
lea eax, [ebp - 0x494]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x6f0]
inc eax
push ecx
mov dword [ebp - 0x6f0], eax
call fcn.0040a720
pop ecx
test eax, eax
jns 0x4373b1
xor eax, eax
jmp 0x4373f3
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x4373d5
push ebx
call fcn.0040a673
pop ecx
test al, al
je 0x4373d5
mov eax, ebx
call fcn.00540020
mov eax, esp
jmp 0x4373e1
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a624
push 3
shr ebx, 1
push ebx
lea ecx, [ebp - 0x494]
push ecx
push eax
call fcn.00438189
push dword [ebp + 8]
push eax
push str.name0
push str.AllEpsonDS
call edi
mov dword [ebp - 0x6f0], 1
xor ebx, ebx
cmp dword [ebp - 0x6f8], ebx
jle 0x437488
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x94]
push ecx
push ebx
mov ecx, esi
call dword [eax + 0x10]
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053d310
pop ecx
pop ecx
test eax, eax
jne 0x43747f
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x54]
push ecx
push ebx
mov ecx, esi
call dword [eax + 8]
lea eax, [ebp - 0x494]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0053d310
pop ecx
pop ecx
test eax, eax
je 0x43747f
push dword [ebp - 0x6f0]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436f26
add esp, 0xc
inc dword [ebp - 0x6f0]
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x437417
cmp byte [ebp - 0x6f1], 0
je 0x4374f5
lea eax, [ebp - 0x494]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x6f0]
inc eax
push ecx
mov dword [ebp - 0x6f0], eax
call fcn.0040a720
pop ecx
test eax, eax
js 0x43756e
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x4374de
push ebx
call fcn.0040a673
pop ecx
test al, al
je 0x4374de
mov eax, ebx
call fcn.00540020
mov eax, esp
jmp 0x4374ea
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a624
lea ecx, [ebp - 0x494]
jmp 0x4375a5
xor ebx, ebx
cmp dword [ebp - 0x6fc], ebx
jle 0x4375c1
cmp dword [ebp - 0x6f8], ebx
jle 0x43754c
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x94]
push ecx
push ebx
mov ecx, esi
call dword [eax + 0x10]
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053d310
pop ecx
pop ecx
test eax, eax
je 0x43753e
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x43750b
jmp 0x43754c
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0x54]
push ecx
push ebx
mov ecx, esi
call dword [eax + 8]
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x6f0]
inc eax
push ecx
mov dword [ebp - 0x6f0], eax
call fcn.0040a720
pop ecx
test eax, eax
jns 0x437572
xor eax, eax
jmp 0x4375b1
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x437596
push ebx
call fcn.0040a673
pop ecx
test al, al
je 0x437596
mov eax, ebx
call fcn.00540020
mov eax, esp
jmp 0x4375a2
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a624
lea ecx, [ebp - 0x54]
push 3
shr ebx, 1
push ebx
push ecx
push eax
call fcn.00438189
push dword [ebp + 8]
push eax
push str.name0
push 0x59edd4
call edi
call fcn.00438647
push eax
lea ecx, [ebp - 0x6f8]
call fcn.0042a80d
push dword [ebp - 0x6fc]
lea eax, [ebp - 0x6f8]
push 0x599d24
push eax
mov byte [ebp - 4], 6
call fcn.0040a7c3
mov ebx, dword [ebp - 0x6f8]
add esp, 0xc
push dword [ebp + 8]
push ebx
push str.count
push str.AllEpsonDS
call edi
push esi
call dword [ebp - 0x714]
pop ecx
push dword [ebp - 0x710]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebx - 0x10]
call fcn.00402722
mov ecx, dword [ebp - 0x704]
add ecx, 0xfffffff0
call fcn.00402722
cmp dword [ebp - 0x700], 0
je 0x437652
mov eax, dword [ebp - 0x700]
mov esi, dword [eax]
push eax
mov dword [ebp - 0x700], esi
call fcn.0053855f
pop ecx
test esi, esi
jne 0x437639
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402722
xor eax, eax
inc eax
jmp 0x4376e5
push 0x2f
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x437677
push 0x2f
jmp 0x437687
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x437692
push 0x5c
push ebx
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x437694
mov eax, ebx
push 4
push 0x4f9
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b01
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00404bdf
mov edi, eax
call fcn.00402776
pop ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00404b6d
push dword [ebp - 0x710]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402722
xor eax, eax
lea esp, [ebp - 0x724]
call fcn.0053dafc
ret