Function at 0x40a378
Capabilities:
Read .ini file

Disassembly:
push 0x678
mov eax, 0x46c3fb
call fcn.004517f7
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x66c]
mov dword [ebp - 0x648], eax
call fcn.0042be99
and dword [ebp - 4], 0
call fcn.0042a8d7
push eax
lea ecx, [ebp - 0x650]
call fcn.00402773
lea esi, [ebp - 0x654]
mov byte [ebp - 4], 1
call fcn.0040830b
push str.Epson_SoftwareEvent_ManagerResourcesApplications.adi
mov eax, esi
push eax
lea eax, [ebp - 0x64c]
push eax
mov byte [ebp - 4], 2
call fcn.004017f8
add esp, 0xc
push eax
lea ecx, [ebp - 0x650]
mov byte [ebp - 4], 3
call fcn.0040270e
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x64c]
add ecx, 0xfffffff0
call fcn.0040285d
mov esi, dword [ebp - 0x650]
push 0
push esi
lea ecx, [ebp - 0x66c]
call fcn.0042bf31
test eax, eax
jne 0x40a44b
lea ecx, [ebp - 0x66c]
call fcn.0042ba95
mov ecx, dword [ebp - 0x654]
add ecx, 0xfffffff0
call fcn.0040285d
lea ecx, [esi - 0x10]
call fcn.0040285d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x66c]
call fcn.0042bec2
xor eax, eax
jmp 0x40a679
mov esi, str.Launch
call fcn.0042a8d7
push eax
lea ecx, [ebp - 0x634]
call fcn.00402773
mov byte [ebp - 4], 4
call fcn.0042a8d7
push eax
lea ecx, [ebp - 0x638]
call fcn.00402773
lea ecx, [ebp - 0x66c]
mov byte [ebp - 4], 5
call fcn.0042bb7b
mov dword [ebp - 0x644], eax
lea eax, [ebp - 0x63c]
push eax
lea ecx, [ebp - 0x66c]
call fcn.0042c130
push eax
lea ecx, [ebp - 0x634]
mov byte [ebp - 4], 6
call fcn.0040270e
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x63c]
add ecx, 0xfffffff0
call fcn.0040285d
push 4
lea eax, [ebp - 0x630]
push eax
lea ecx, [ebp - 0x634]
call fcn.0040692c
lea edi, [ebp - 0x630]
mov byte [ebp - 4], 7
call fcn.0040ad59
push str..adi
mov ecx, edi
call fcn.00408c1b
test eax, eax
je 0x40a520
mov ecx, dword [ebp - 0x630]
add ecx, 0xfffffff0
call fcn.0040285d
mov ecx, dword [ebp - 0x638]
add ecx, 0xfffffff0
call fcn.0040285d
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x634]
add ecx, 0xfffffff0
jmp 0x40a639
push 0x2e
lea ecx, [ebp - 0x634]
call fcn.00406907
push eax
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x634]
call fcn.00402e80
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 8
call fcn.0042be99
mov byte [ebp - 4], 9
mov edi, dword [ebp - 0x64c]
push 0
push edi
lea ecx, [ebp - 0x684]
call fcn.0042bf31
test eax, eax
jne 0x40a587
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 8
call fcn.0042bec2
lea ecx, [edi - 0x10]
call fcn.0040285d
jmp 0x40a4f2
lea eax, [ebp - 0x640]
push eax
lea ecx, [ebp - 0x66c]
call fcn.0042c065
push eax
lea ecx, [ebp - 0x638]
mov byte [ebp - 4], 0xa
call fcn.0040270e
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x640]
add ecx, 0xfffffff0
call fcn.0040285d
mov ebx, dword [ebp - 0x634]
push ebx
push 0xffffffffffffffff
push 0x478964
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x648]
cmp eax, dword [ecx + 0x38]
je 0x40a681
lea ecx, [ebp - 0x66c]
call fcn.0042be5a
test eax, eax
jne 0x40a5ff
mov eax, dword [ebp - 0x66c]
push 0x10
lea ecx, [ebp - 0x66c]
call dword [eax + 0x38]
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 8
call fcn.0042bec2
lea ecx, [edi - 0x10]
call fcn.0040285d
mov ecx, dword [ebp - 0x630]
add ecx, 0xfffffff0
call fcn.0040285d
mov ecx, dword [ebp - 0x638]
add ecx, 0xfffffff0
call fcn.0040285d
lea ecx, [ebx - 0x10]
mov byte [ebp - 4], 2
call fcn.0040285d
cmp dword [ebp - 0x644], 0
jne 0x40a450
mov ecx, dword [ebp - 0x654]
add ecx, 0xfffffff0
call fcn.0040285d
mov ecx, dword [ebp - 0x650]
add ecx, 0xfffffff0
call fcn.0040285d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x66c]
call fcn.0042bec2
xor eax, eax
inc eax
call fcn.0045187a
ret 4
call fcn.0042a8d7
push eax
lea ecx, [ebp - 0x63c]
call fcn.00402773
push ebx
mov edi, 0x104
push edi
lea eax, [ebp - 0x21c]
push eax
push str.0x0000
push str.OptionType
mov byte [ebp - 4], 0xb
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
call esi
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x63c]
push 0x4774a8
push eax
call fcn.0040314f
mov edx, dword [ebp - 0x63c]
mov ecx, dword [edx - 0xc]
lea eax, [ecx - 1]
add esp, 0xc
test eax, eax
jl 0x40a833
cmp eax, ecx
jg 0x40a833
movzx eax, word [edx + eax*2]
mov ecx, dword [ebp - 0x648]
push ebx
sub eax, 0x30
push edi
mov dword [ecx + 0x48], eax
lea eax, [ebp - 0x21c]
push eax
push 0x47741c
push str.Option
push str.Launch_Win
call esi
mov ecx, dword [ebp - 0x648]
lea eax, [ebp - 0x21c]
add ecx, 0x4c
push eax
call fcn.0040247a
push ebx
push edi
lea eax, [ebp - 0x424]
push eax
push 0x47741c
push 0x4789ac
push str.Launch_Win
call esi
call fcn.0042a8d7
push eax
lea ecx, [ebp - 0x640]
call fcn.00402773
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x640]
push 0x4774a8
push eax
mov byte [ebp - 4], 0xc
call fcn.0040314f
pop ecx
pop ecx
lea eax, [ebp - 0x640]
mov dword [ebp - 0x644], esp
mov ecx, esp
push eax
call fcn.0040283c
mov eax, dword [ebp - 0x648]
add eax, 0x40
push eax
mov dword [ebp - 0x644], eax
call fcn.004288c5
pop ecx
pop ecx
test eax, eax
jne 0x40a7d1
push ebx
push edi
lea eax, [ebp - 0x62c]
push eax
push 0x47741c
push str.AppPath
push str.Launch_Win
call esi
mov ecx, dword [ebp - 0x644]
lea eax, [ebp - 0x62c]
push eax
call fcn.0040247a
mov ecx, dword [ebp - 0x640]
add ecx, 0xfffffff0
call fcn.0040285d
mov ecx, dword [ebp - 0x63c]
add ecx, 0xfffffff0
call fcn.0040285d
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 8
call fcn.0042bec2
mov ecx, dword [ebp - 0x64c]
add ecx, 0xfffffff0
call fcn.0040285d
mov ecx, dword [ebp - 0x630]
add ecx, 0xfffffff0
call fcn.0040285d
mov ecx, dword [ebp - 0x638]
add ecx, 0xfffffff0
call fcn.0040285d
lea ecx, [ebx - 0x10]
call fcn.0040285d
jmp 0x40a64b
push 0x80070057
call fcn.004027b9
int3