Function at 0x436316
Capabilities:
Read .ini file

Disassembly:
push 0x708
mov eax, 0x564f97
call fcn.0053cd89
and dword [ebp - 4], 0
push 0x2f
mov ebx, str...CommonUtility.cpp
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x436340
push 0x2f
jmp 0x436350
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x43635b
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x43635d
mov eax, ebx
push 1
push 0x4e8
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b3c
push str.Enumerating_all_DSs
push 0
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
pop ecx
mov ecx, esi
mov byte [ebp - 4], 0
call fcn.00404ba8
and dword [ebp - 0x700], 0
mov byte [ebp - 4], 2
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jne 0x4363b1
lea ecx, [eax - 0x10]
jmp 0x436a00
push str.ScanEngine30.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [ebp - 0x710], edi
test edi, edi
jne 0x436434
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x4363da
push 0x2f
jmp 0x4363ea
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x4363f5
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x4363f7
mov eax, ebx
push 4
push 0x4f2
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b3c
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
pop ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00404ba8
jmp 0x4369fa
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 0x436987
test eax, eax
je 0x436987
push dword [ebp + 8]
lea eax, [ebp - 0x69c]
push 0x104
push eax
push 0x599080
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.0040a735
pop ecx
test eax, eax
jns 0x4364b8
xor eax, eax
jmp 0x4364f8
mov esi, dword [ebp - 0x6f0]
cmp esi, 0x400
jg 0x4364dc
push esi
call fcn.0040a688
pop ecx
test al, al
je 0x4364dc
mov eax, esi
call fcn.0053f330
mov eax, esp
jmp 0x4364e8
push esi
lea ecx, [ebp - 0x700]
call fcn.0040a639
push 3
push esi
lea ecx, [ebp - 0x69c]
push ecx
push eax
call fcn.0040a6fd
push eax
lea eax, [ebp - 0x494]
push 0x400
push eax
call fcn.0053c156
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 0x4365c4
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.0053c620
pop ecx
pop ecx
test eax, eax
jne 0x43658d
mov byte [ebp - 0x6f1], 1
lea eax, [ebp - 0x94]
push str.EPSON
push eax
call fcn.0053c620
pop ecx
pop ecx
test eax, eax
jne 0x4365aa
inc dword [ebp - 0x6fc]
push ebx
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436178
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x43653b
push 0x59c8d0
lea ecx, [ebp - 0x704]
call fcn.00402372
mov byte [ebp - 4], 5
test edi, edi
jle 0x4365f1
push edi
lea eax, [ebp - 0x704]
push 0x599d04
push eax
call fcn.0040a7d8
add esp, 0xc
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push dword [ebp - 0x704]
push str.count
push 0x59ed54
call edi
and dword [ebp - 0x6f0], 0
cmp dword [ebp - 0x6f8], 0
jle 0x436696
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.00436012
add esp, 0x10
inc dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x6f0]
cmp eax, dword [ebp - 0x6f8]
jl 0x43661c
and dword [ebp - 0x6f0], 0
cmp byte [ebp - 0x6f1], 0
je 0x43672f
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.0040a735
pop ecx
test eax, eax
jns 0x4366d3
xor eax, eax
jmp 0x436715
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x4366f7
push ebx
call fcn.0040a688
pop ecx
test al, al
je 0x4366f7
mov eax, ebx
call fcn.0053f330
mov eax, esp
jmp 0x436703
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a639
push 3
shr ebx, 1
push ebx
lea ecx, [ebp - 0x494]
push ecx
push eax
call fcn.004374ab
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 0x4367aa
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.0053c620
pop ecx
pop ecx
test eax, eax
jne 0x4367a1
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.0053c620
pop ecx
pop ecx
test eax, eax
je 0x4367a1
push dword [ebp - 0x6f0]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00436248
add esp, 0xc
inc dword [ebp - 0x6f0]
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x436739
cmp byte [ebp - 0x6f1], 0
je 0x436817
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.0040a735
pop ecx
test eax, eax
js 0x436890
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x436800
push ebx
call fcn.0040a688
pop ecx
test al, al
je 0x436800
mov eax, ebx
call fcn.0053f330
mov eax, esp
jmp 0x43680c
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a639
lea ecx, [ebp - 0x494]
jmp 0x4368c7
xor ebx, ebx
cmp dword [ebp - 0x6fc], ebx
jle 0x4368e3
cmp dword [ebp - 0x6f8], ebx
jle 0x43686e
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.0053c620
pop ecx
pop ecx
test eax, eax
je 0x436860
inc ebx
cmp ebx, dword [ebp - 0x6f8]
jl 0x43682d
jmp 0x43686e
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.0040a735
pop ecx
test eax, eax
jns 0x436894
xor eax, eax
jmp 0x4368d3
mov ebx, dword [ebp - 0x6f0]
cmp ebx, 0x400
jg 0x4368b8
push ebx
call fcn.0040a688
pop ecx
test al, al
je 0x4368b8
mov eax, ebx
call fcn.0053f330
mov eax, esp
jmp 0x4368c4
push ebx
lea ecx, [ebp - 0x700]
call fcn.0040a639
lea ecx, [ebp - 0x54]
push 3
shr ebx, 1
push ebx
push ecx
push eax
call fcn.004374ab
push dword [ebp + 8]
push eax
push str.name0
push 0x59ed54
call edi
call fcn.00437969
push eax
lea ecx, [ebp - 0x6f8]
call fcn.00402738
push dword [ebp - 0x6fc]
lea eax, [ebp - 0x6f8]
push 0x599d04
push eax
mov byte [ebp - 4], 6
call fcn.0040a7d8
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.00402760
mov ecx, dword [ebp - 0x704]
add ecx, 0xfffffff0
call fcn.00402760
cmp dword [ebp - 0x700], 0
je 0x436974
mov eax, dword [ebp - 0x700]
mov esi, dword [eax]
push eax
mov dword [ebp - 0x700], esi
call fcn.0053786e
pop ecx
test esi, esi
jne 0x43695b
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402760
xor eax, eax
inc eax
jmp 0x436a07
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x436999
push 0x2f
jmp 0x4369a9
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x4369b4
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x4369b6
mov eax, ebx
push 4
push 0x4f9
push eax
lea esi, [ebp - 0x6ec]
call fcn.00404b3c
push str.Cannot_load_scan_IF
push 0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
pop ecx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00404ba8
push dword [ebp - 0x710]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00402760
xor eax, eax
lea esp, [ebp - 0x724]
call fcn.0053ce0c
ret