Function at 0x43652e
Capabilities:
Read .ini file

Disassembly:
push 0x708
mov eax, 0x5650be
call fcn.0053cea9
and dword [ebp - 4], 0
push 0x2f
mov ebx, str...CommonUtility.cpp
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x436558
push 0x2f
jmp 0x436568
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x436573
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x436575
mov eax, ebx
push 1
push 0x4e8
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404558
push str.Enumerating_all_DSs
push 0
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00404636
mov edi, eax
call fcn.0040a124
pop ecx
mov ecx, esi
mov byte [ebp - 4], 0
call fcn.004045c4
and dword [ebp - 0x700], 0
mov byte [ebp - 4], 2
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jne 0x4365c9
lea ecx, [eax - 0x10]
jmp 0x436c18
push str.ScanEngine30.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [ebp - 0x710], edi
test edi, edi
jne 0x43664c
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x4365f2
push 0x2f
jmp 0x436602
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x43660d
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x43660f
mov eax, ebx
push 4
push 0x4f2
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404558
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00404636
mov edi, eax
call fcn.0040a124
pop ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.004045c4
jmp 0x436c12
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 0x436b9f
test eax, eax
je 0x436b9f
push dword [ebp + 8]
lea eax, [ebp - 0x69c]
push 0x104
push eax
push 0x598e70
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.0040a046
pop ecx
test eax, eax
jns 0x4366d0
xor eax, eax
jmp 0x436710
mov esi, dword [ebp - 0x6f0]
cmp esi, 0x400
jg 0x4366f4
push esi
call fcn.00409f99
pop ecx
test al, al
je 0x4366f4
mov eax, esi
call fcn.0053f460
mov eax, esp
jmp 0x436700
push esi
lea ecx, [ebp - 0x700]
call fcn.00409f4a
push 3
push esi
lea ecx, [ebp - 0x69c]
push ecx
push eax
call fcn.0040a00e
push eax
lea eax, [ebp - 0x494]
push 0x400
push eax
call fcn.0053c276
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 0x4367dc
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.0053c740
pop ecx
pop ecx
test eax, eax
jne 0x4367a5
mov byte [ebp - 0x6f1], 1
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053c740
pop ecx
pop ecx
test eax, eax
jne 0x4367c2
inc dword [ebp - 0x6fc]
push ebx
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436390
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x436753
push 0x59c6a8
lea ecx, [ebp - 0x704]
call fcn.0040235d
mov byte [ebp - 4], 5
test edi, edi
jle 0x436809
push edi
lea eax, [ebp - 0x704]
push 0x599af4
push eax
call fcn.0040a0e9
add esp, 0xc
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0x704]
push str.count
push 0x59eba4
call edi
and dword [ebp - 0x6f0], 0
cmp dword [ebp - 0x6f8], 0
jle 0x4368ae
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.0043622a
add esp, 0x10
inc dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x6f0]
cmp eax, dword [ebp - 0x6f8]
jl 0x436834
and dword [ebp - 0x6f0], 0
cmp byte [ebp - 0x6f1], 0
je 0x436947
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.0040a046
pop ecx
test eax, eax
jns 0x4368eb
xor eax, eax
jmp 0x43692d
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x43690f
push ebx
call fcn.00409f99
pop ecx
test al, al
je 0x43690f
mov eax, ebx
call fcn.0053f460
mov eax, esp
jmp 0x43691b
push ebx
lea ecx, [ebp - 0x700]
call fcn.00409f4a
push 3
shr ebx, 1
push ebx
lea ecx, [ebp - 0x494]
push ecx
push eax
call fcn.004376c3
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 0x4369c2
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.0053c740
pop ecx
pop ecx
test eax, eax
jne 0x4369b9
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.0053c740
pop ecx
pop ecx
test eax, eax
je 0x4369b9
push dword [ebp - 0x6f0]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436460
add esp, 0xc
inc dword [ebp - 0x6f0]
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x436951
cmp byte [ebp - 0x6f1], 0
je 0x436a2f
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.0040a046
pop ecx
test eax, eax
js 0x436aa8
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x436a18
push ebx
call fcn.00409f99
pop ecx
test al, al
je 0x436a18
mov eax, ebx
call fcn.0053f460
mov eax, esp
jmp 0x436a24
push ebx
lea ecx, [ebp - 0x700]
call fcn.00409f4a
lea ecx, [ebp - 0x494]
jmp 0x436adf
xor ebx, ebx
cmp dword [ebp - 0x6fc], ebx
jle 0x436afb
cmp dword [ebp - 0x6f8], ebx
jle 0x436a86
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.0053c740
pop ecx
pop ecx
test eax, eax
je 0x436a78
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x436a45
jmp 0x436a86
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.0040a046
pop ecx
test eax, eax
jns 0x436aac
xor eax, eax
jmp 0x436aeb
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x436ad0
push ebx
call fcn.00409f99
pop ecx
test al, al
je 0x436ad0
mov eax, ebx
call fcn.0053f460
mov eax, esp
jmp 0x436adc
push ebx
lea ecx, [ebp - 0x700]
call fcn.00409f4a
lea ecx, [ebp - 0x54]
push 3
shr ebx, 1
push ebx
push ecx
push eax
call fcn.004376c3
push dword [ebp + 8]
push eax
push str.name0
push 0x59eba4
call edi
call fcn.00437a9e
push eax
lea ecx, [ebp - 0x6f8]
call fcn.00402723
push dword [ebp - 0x6fc]
lea eax, [ebp - 0x6f8]
push 0x599af4
push eax
mov byte [ebp - 4], 6
call fcn.0040a0e9
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.0040274b
mov ecx, dword [ebp - 0x704]
add ecx, 0xfffffff0
call fcn.0040274b
cmp dword [ebp - 0x700], 0
je 0x436b8c
mov eax, dword [ebp - 0x700]
mov esi, dword [eax]
push eax
mov dword [ebp - 0x700], esi
call fcn.0053798d
pop ecx
test esi, esi
jne 0x436b73
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0040274b
xor eax, eax
inc eax
jmp 0x436c1f
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x436bb1
push 0x2f
jmp 0x436bc1
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x436bcc
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x436bce
mov eax, ebx
push 4
push 0x4f9
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404558
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00404636
mov edi, eax
call fcn.0040a124
pop ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.004045c4
push dword [ebp - 0x710]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0040274b
xor eax, eax
lea esp, [ebp - 0x724]
call fcn.0053cf2c
ret