Function at 0x43690b
Capabilities:
Read .ini file

Disassembly:
push 0x708
mov eax, 0x5655af
call fcn.0053d399
push 0x2f
mov ebx, str...CommonUtility.cpp
xor edi, edi
push ebx
mov dword [ebp - 4], edi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x436936
push 0x2f
jmp 0x436946
push 0x5c
push ebx
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x436951
push 0x5c
push ebx
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x436953
mov eax, ebx
push 1
push 0x4e8
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b6f
push str.Enumerating_all_DSs
push edi
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
pop ecx
lea ecx, [ebp - 0x6ec]
mov byte [ebp - 4], 0
call fcn.00404bdb
mov dword [ebp - 0x700], edi
mov byte [ebp - 4], 2
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], edi
jne 0x4369a8
lea ecx, [eax - 0x10]
jmp 0x436ff7
push str.ScanEngine30.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [ebp - 0x710], edi
test edi, edi
jne 0x436a2f
push 0x2f
push ebx
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4369d1
push 0x2f
jmp 0x4369e1
push 0x5c
push ebx
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x4369ec
push 0x5c
push ebx
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x4369ee
mov eax, ebx
push 4
push 0x4f2
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b6f
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
pop ecx
lea ecx, [ebp - 0x6ec]
mov byte [ebp - 4], 2
call fcn.00404bdb
jmp 0x436ff1
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 0x436f7f
test eax, eax
je 0x436f7f
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.0040a74b
pop ecx
test eax, eax
jns 0x436ab3
xor eax, eax
jmp 0x436af3
mov esi, dword [ebp - 0x6f0]
cmp esi, 0x400
jg 0x436ad7
push esi
call fcn.0040a69e
pop ecx
test al, al
je 0x436ad7
mov eax, esi
call fcn.0053f940
mov eax, esp
jmp 0x436ae3
push esi
lea ecx, [ebp - 0x700]
call fcn.0040a64f
push 3
push esi
lea ecx, [ebp - 0x69c]
push ecx
push eax
call fcn.0040a713
push eax
lea eax, [ebp - 0x494]
push 0x400
push eax
call fcn.0053c766
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 0x436bbf
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.0053cc30
pop ecx
pop ecx
test eax, eax
jne 0x436b88
mov byte [ebp - 0x6f1], 1
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053cc30
pop ecx
pop ecx
test eax, eax
jne 0x436ba5
inc dword [ebp - 0x6fc]
push ebx
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043676d
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x436b36
push 0x59c920
lea ecx, [ebp - 0x704]
call fcn.00402358
mov byte [ebp - 4], 5
test edi, edi
jle 0x436bec
push edi
lea eax, [ebp - 0x704]
push 0x599d24
push eax
call fcn.0040a7ee
add esp, 0xc
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0x704]
push str.count
push 0x59ee54
call edi
and dword [ebp - 0x6f0], 0
cmp dword [ebp - 0x6f8], 0
jle 0x436c91
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.00436607
add esp, 0x10
inc dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x6f0]
cmp eax, dword [ebp - 0x6f8]
jl 0x436c17
and dword [ebp - 0x6f0], 0
cmp byte [ebp - 0x6f1], 0
je 0x436d2a
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.0040a74b
pop ecx
test eax, eax
jns 0x436cce
xor eax, eax
jmp 0x436d10
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x436cf2
push ebx
call fcn.0040a69e
pop ecx
test al, al
je 0x436cf2
mov eax, ebx
call fcn.0053f940
mov eax, esp
jmp 0x436cfe
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a64f
push 3
shr ebx, 1
push ebx
lea ecx, [ebp - 0x494]
push ecx
push eax
call fcn.00437aa2
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 0x436da5
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.0053cc30
pop ecx
pop ecx
test eax, eax
jne 0x436d9c
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.0053cc30
pop ecx
pop ecx
test eax, eax
je 0x436d9c
push dword [ebp - 0x6f0]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043683d
add esp, 0xc
inc dword [ebp - 0x6f0]
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x436d34
cmp byte [ebp - 0x6f1], 0
je 0x436e12
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.0040a74b
pop ecx
test eax, eax
js 0x436e8b
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x436dfb
push ebx
call fcn.0040a69e
pop ecx
test al, al
je 0x436dfb
mov eax, ebx
call fcn.0053f940
mov eax, esp
jmp 0x436e07
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a64f
lea ecx, [ebp - 0x494]
jmp 0x436ec2
xor ebx, ebx
cmp dword [ebp - 0x6fc], ebx
jle 0x436ede
cmp dword [ebp - 0x6f8], ebx
jle 0x436e69
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.0053cc30
pop ecx
pop ecx
test eax, eax
je 0x436e5b
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x436e28
jmp 0x436e69
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.0040a74b
pop ecx
test eax, eax
jns 0x436e8f
xor eax, eax
jmp 0x436ece
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x436eb3
push ebx
call fcn.0040a69e
pop ecx
test al, al
je 0x436eb3
mov eax, ebx
call fcn.0053f940
mov eax, esp
jmp 0x436ebf
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a64f
lea ecx, [ebp - 0x54]
push 3
shr ebx, 1
push ebx
push ecx
push eax
call fcn.00437aa2
push dword [ebp + 8]
push eax
push str.name0
push 0x59ee54
call edi
call fcn.00437f60
push eax
lea ecx, [ebp - 0x6f8]
call fcn.0042a551
push dword [ebp - 0x6fc]
lea eax, [ebp - 0x6f8]
push 0x599d24
push eax
mov byte [ebp - 4], 6
call fcn.0040a7ee
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.00402728
mov ecx, dword [ebp - 0x704]
add ecx, 0xfffffff0
call fcn.00402728
cmp dword [ebp - 0x700], 0
je 0x436f6f
mov eax, dword [ebp - 0x700]
mov esi, dword [eax]
push eax
mov dword [ebp - 0x700], esi
call fcn.00537e71
pop ecx
test esi, esi
jne 0x436f56
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402728
xor eax, eax
inc eax
jmp 0x436ffe
push 0x2f
push ebx
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x436f91
push 0x2f
jmp 0x436fa1
push 0x5c
push ebx
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x436fac
push 0x5c
push ebx
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x436fae
mov eax, ebx
push 4
push 0x4f9
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b6f
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
pop ecx
lea ecx, [ebp - 0x6ec]
mov byte [ebp - 4], 2
call fcn.00404bdb
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402728
xor eax, eax
lea esp, [ebp - 0x724]
call fcn.0053d41c
ret