Function at 0x436cd2
Capabilities:
Read .ini file

Disassembly:
push 0x708
mov eax, 0x56597a
call fcn.0053d749
push 0x2f
mov ebx, str...CommonUtility.cpp
xor edi, edi
push ebx
mov dword [ebp - 4], edi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x436cfd
push 0x2f
jmp 0x436d0d
push 0x5c
push ebx
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x436d18
push 0x5c
push ebx
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x436d1a
mov eax, ebx
push 1
push 0x4e8
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404e75
push str.Enumerating_all_DSs
push edi
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00404f53
mov esi, eax
call fcn.00402aa4
pop ecx
lea ecx, [ebp - 0x6ec]
mov byte [ebp - 4], 0
call fcn.00404ee1
mov dword [ebp - 0x700], edi
mov byte [ebp - 4], 2
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], edi
jne 0x436d6f
lea ecx, [eax - 0x10]
jmp 0x4373be
push str.ScanEngine30.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [ebp - 0x710], edi
test edi, edi
jne 0x436df6
push 0x2f
push ebx
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x436d98
push 0x2f
jmp 0x436da8
push 0x5c
push ebx
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x436db3
push 0x5c
push ebx
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x436db5
mov eax, ebx
push 4
push 0x4f2
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404e75
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00404f53
mov esi, eax
call fcn.00402aa4
pop ecx
lea ecx, [ebp - 0x6ec]
mov byte [ebp - 4], 2
call fcn.00404ee1
jmp 0x4373b8
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 0x437346
test eax, eax
je 0x437346
push dword [ebp + 8]
lea eax, [ebp - 0x69c]
push 0x104
push eax
push 0x599168
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.0040aa67
pop ecx
test eax, eax
jns 0x436e7a
xor eax, eax
jmp 0x436eba
mov esi, dword [ebp - 0x6f0]
cmp esi, 0x400
jg 0x436e9e
push esi
call fcn.0040a9ba
pop ecx
test al, al
je 0x436e9e
mov eax, esi
call fcn.0053fcf0
mov eax, esp
jmp 0x436eaa
push esi
lea ecx, [ebp - 0x700]
call fcn.0040a96b
push 3
push esi
lea ecx, [ebp - 0x69c]
push ecx
push eax
call fcn.0040aa2f
push eax
lea eax, [ebp - 0x494]
push 0x400
push eax
call fcn.0053cb16
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 0x436f86
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.0053cfe0
pop ecx
pop ecx
test eax, eax
jne 0x436f4f
mov byte [ebp - 0x6f1], 1
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053cfe0
pop ecx
pop ecx
test eax, eax
jne 0x436f6c
inc dword [ebp - 0x6fc]
push ebx
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436b34
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x436efd
push 0x59c9e8
lea ecx, [ebp - 0x704]
call fcn.0040266d
mov byte [ebp - 4], 5
test edi, edi
jle 0x436fb3
push edi
lea eax, [ebp - 0x704]
push 0x599dec
push eax
call fcn.0040ab0a
add esp, 0xc
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0x704]
push str.count
push 0x59eeec
call edi
and dword [ebp - 0x6f0], 0
cmp dword [ebp - 0x6f8], 0
jle 0x437058
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.004369ce
add esp, 0x10
inc dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x6f0]
cmp eax, dword [ebp - 0x6f8]
jl 0x436fde
and dword [ebp - 0x6f0], 0
cmp byte [ebp - 0x6f1], 0
je 0x4370f1
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.0040aa67
pop ecx
test eax, eax
jns 0x437095
xor eax, eax
jmp 0x4370d7
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x4370b9
push ebx
call fcn.0040a9ba
pop ecx
test al, al
je 0x4370b9
mov eax, ebx
call fcn.0053fcf0
mov eax, esp
jmp 0x4370c5
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a96b
push 3
shr ebx, 1
push ebx
lea ecx, [ebp - 0x494]
push ecx
push eax
call fcn.00437e69
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 0x43716c
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.0053cfe0
pop ecx
pop ecx
test eax, eax
jne 0x437163
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.0053cfe0
pop ecx
pop ecx
test eax, eax
je 0x437163
push dword [ebp - 0x6f0]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436c04
add esp, 0xc
inc dword [ebp - 0x6f0]
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x4370fb
cmp byte [ebp - 0x6f1], 0
je 0x4371d9
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.0040aa67
pop ecx
test eax, eax
js 0x437252
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x4371c2
push ebx
call fcn.0040a9ba
pop ecx
test al, al
je 0x4371c2
mov eax, ebx
call fcn.0053fcf0
mov eax, esp
jmp 0x4371ce
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a96b
lea ecx, [ebp - 0x494]
jmp 0x437289
xor ebx, ebx
cmp dword [ebp - 0x6fc], ebx
jle 0x4372a5
cmp dword [ebp - 0x6f8], ebx
jle 0x437230
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.0053cfe0
pop ecx
pop ecx
test eax, eax
je 0x437222
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x4371ef
jmp 0x437230
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.0040aa67
pop ecx
test eax, eax
jns 0x437256
xor eax, eax
jmp 0x437295
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x43727a
push ebx
call fcn.0040a9ba
pop ecx
test al, al
je 0x43727a
mov eax, ebx
call fcn.0053fcf0
mov eax, esp
jmp 0x437286
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a96b
lea ecx, [ebp - 0x54]
push 3
shr ebx, 1
push ebx
push ecx
push eax
call fcn.00437e69
push dword [ebp + 8]
push eax
push str.name0
push 0x59eeec
call edi
call fcn.00438329
push eax
lea ecx, [ebp - 0x6f8]
call fcn.00402a28
push dword [ebp - 0x6fc]
lea eax, [ebp - 0x6f8]
push 0x599dec
push eax
mov byte [ebp - 4], 6
call fcn.0040ab0a
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.00402a50
mov ecx, dword [ebp - 0x704]
add ecx, 0xfffffff0
call fcn.00402a50
cmp dword [ebp - 0x700], 0
je 0x437336
mov eax, dword [ebp - 0x700]
mov esi, dword [eax]
push eax
mov dword [ebp - 0x700], esi
call fcn.0053823b
pop ecx
test esi, esi
jne 0x43731d
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402a50
xor eax, eax
inc eax
jmp 0x4373c5
push 0x2f
push ebx
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x437358
push 0x2f
jmp 0x437368
push 0x5c
push ebx
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x437373
push 0x5c
push ebx
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x437375
mov eax, ebx
push 4
push 0x4f9
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404e75
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00404f53
mov esi, eax
call fcn.00402aa4
pop ecx
lea ecx, [ebp - 0x6ec]
mov byte [ebp - 4], 2
call fcn.00404ee1
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402a50
xor eax, eax
lea esp, [ebp - 0x724]
call fcn.0053d7cc
ret