Function at 0x41b40c
Capabilities:
Check if file exists
Enumerate files on windows
Get common file path
Read .ini file

Disassembly:
push 0x6d4
mov eax, 0x566a4a
call fcn.0053d749
mov eax, dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 0x6a0], eax
push 1
push 0x1a
lea eax, [ebp - 0x418]
xor edi, edi
push eax
push edi
mov dword [ebp - 4], edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.00438329
push eax
lea ecx, [ebp - 0x68c]
call fcn.00402a28
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x68c]
push str._sEpsonEvent_Manager_
push eax
mov byte [ebp - 4], 1
call fcn.0040ab0a
add esp, 0xc
push str.AllEpsonDS.ini
lea eax, [ebp - 0x68c]
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.00401c58
add esp, 0xc
lea ecx, [esi + 0xde8]
mov byte [ebp - 4], 2
mov dword [ebp - 0x6c8], ecx
call fcn.00439318
lea ecx, [esi + 0xe04]
mov dword [ebp - 0x6d0], ecx
call fcn.00439318
push dword [ebp - 0x694]
push edi
push str.count
push str.AllEpsonDS
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x674], edi
cmp eax, edi
jle 0x41b9b5
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [ebp - 0x690], 0x85fc
mov ebx, 0x599168
mov esi, 0x599c28
call fcn.00438329
push eax
lea ecx, [ebp - 0x698]
call fcn.00402a28
push dword [ebp - 0x674]
lea eax, [ebp - 0x698]
push str.name_d
push eax
mov byte [ebp - 4], 3
call fcn.0040ab0a
add esp, 0xc
push dword [ebp - 0x694]
lea eax, [ebp - 0x90]
push 0x40
push eax
push ebx
push dword [ebp - 0x698]
push str.AllEpsonDS
call edi
push ecx
lea eax, [ebp - 0x90]
mov ecx, esp
mov dword [ebp - 0x69c], esp
push eax
call fcn.0040266d
lea ecx, [ebp - 0x6a4]
call fcn.00422795
pop ecx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x6a4]
add eax, 0xfffffff0
push eax
call fcn.00402741
add eax, 0x10
mov dword [ebp - 0x66c], eax
mov byte [ebp - 4], 5
mov dword [esp], str.Model
push 0x598ee8
lea ecx, [ebp - 0x66c]
call fcn.00410f02
push esi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x6d4]
push eax
call fcn.00401c58
add esp, 0xc
lea ecx, [ebp - 0x66c]
push ecx
push eax
lea eax, [ebp - 0x6c0]
push eax
mov byte [ebp - 4], 6
call fcn.00401c01
add esp, 0xc
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, dword [ebp - 0x6c0]
add ecx, 0xfffffff0
mov dword [ebp - 0x670], eax
call fcn.00402a50
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x6d4]
add ecx, 0xfffffff0
call fcn.00402a50
cmp dword [ebp - 0x670], 0
je 0x41b94f
push esi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x6ac]
push eax
call fcn.00401c58
add esp, 0xc
lea ecx, [ebp - 0x66c]
push ecx
push eax
lea eax, [ebp - 0x6b8]
push eax
mov byte [ebp - 4], 7
call fcn.00401c01
add esp, 0xc
push str.AppInfo1.plg
push eax
lea eax, [ebp - 0x6a8]
push eax
mov byte [ebp - 4], 8
call fcn.00401c58
add esp, 0xc
mov ecx, dword [ebp - 0x6b8]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x6ac]
add ecx, 0xfffffff0
call fcn.00402a50
lea eax, [ebp - 0x668]
push eax
push dword [ebp - 0x6a8]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x670], eax
cmp eax, 0xffffffff
je 0x41b941
and dword [ebp - 0x67c], 0
mov dword [ebp - method.CMenu.virtual_0], vtable.CMenu.0
mov byte [ebp - 4], 0xc
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0x680]
call fcn.0044a29a
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x67c]
mov eax, dword [ebp - 0x6a0]
push 0x10
push dword [eax + 4]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov ecx, dword [ebp - 0x6c8]
lea eax, [ebp - 0x66c]
push eax
call fcn.0043947b
mov ecx, dword [ebp - 0x6d0]
lea eax, [ebp - 0x90]
push eax
call fcn.004395bc
push esi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x6b4]
push eax
call fcn.00401c58
add esp, 0xc
lea ecx, [ebp - 0x66c]
push ecx
push eax
lea eax, [ebp - 0x6e0]
push eax
mov byte [ebp - 4], 0xd
call fcn.00401c01
add esp, 0xc
push str.AppInfo1_
push eax
lea eax, [ebp - 0x6d8]
push eax
mov byte [ebp - 4], 0xe
call fcn.00401c58
add esp, 0xc
lea ecx, [ebp - 0x63c]
push ecx
push eax
lea eax, [ebp - 0x688]
push eax
mov byte [ebp - 4], 0xf
call fcn.00401c58
add esp, 0xc
mov ecx, dword [ebp - 0x6d8]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x6e0]
add ecx, 0xfffffff0
call fcn.00402a50
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x6b4]
add ecx, 0xfffffff0
call fcn.00402a50
push dword [ebp - 0x688]
lea eax, [ebp - 0x110]
push 0x40
push eax
push ebx
push str.ProjectUid
push str.Launch
call edi
push dword [ebp - 0x688]
push 0x2bc
push str.ProjectID
push str.Launch
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x69c], eax
push esi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x6c4]
push eax
call fcn.00401c58
add esp, 0xc
lea ecx, [ebp - 0x66c]
push ecx
push eax
lea eax, [ebp - 0x6dc]
push eax
mov byte [ebp - 4], 0x14
call fcn.00401c01
add esp, 0xc
push str.AppInfo1_
mov byte [ebp - 4], 0x15
push eax
lea eax, [ebp - 0x6bc]
push eax
call fcn.00401c58
add esp, 0xc
lea ecx, [ebp - 0x110]
push ecx
push eax
lea eax, [ebp - 0x6cc]
push eax
mov byte [ebp - 4], 0x16
call fcn.00401c58
add esp, 0xc
push 0x599c10
push eax
lea eax, [ebp - 0x678]
push eax
mov byte [ebp - 4], 0x17
call fcn.00401c58
mov ecx, dword [ebp - 0x6cc]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x6bc]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x6dc]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x6c4]
add ecx, 0xfffffff0
call fcn.00402a50
push dword [ebp - 0x678]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41b8c9
push dword [ebp - 0x678]
lea eax, [ebp - 0x210]
push 0x80
push eax
push ebx
push 0x599c2c
push str.String
call edi
lea eax, [ebp - 0x210]
push eax
mov eax, dword [ebp - 0x690]
add eax, dword [ebp - 0x69c]
push eax
push 0
push dword [ebp - 0x67c]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov ecx, dword [ebp - 0x678]
add ecx, 0xfffffff0
call fcn.00402a50
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x688]
add ecx, 0xfffffff0
call fcn.00402a50
lea eax, [ebp - 0x668]
push eax
push dword [ebp - 0x670]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x41b6f6
push dword [ebp - 0x670]
inc dword [ebp - 0x684]
add dword [ebp - 0x690], 0x64
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x680]
call fcn.0044a2c8
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x680]
mov dword [ebp - method.CMenu.virtual_0], vtable.CMenu.0
call fcn.0044a2f4
mov ecx, dword [ebp - 0x6a8]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x66c]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x6a4]
add ecx, 0xfffffff0
call fcn.00402a50
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x698]
add ecx, 0xfffffff0
call fcn.00402a50
inc dword [ebp - 0x674]
mov eax, dword [ebp - 0x674]
cmp eax, dword [ebp - 0x6b0]
jl 0x41b4f9
xor eax, eax
cmp dword [ebp - 0x684], eax
jle 0x41b9b5
push eax
push eax
mov eax, dword [ebp - 0x6a0]
push 0x800
push dword [eax + 4]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov ecx, dword [ebp - 0x694]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp - 0x68c]
add ecx, 0xfffffff0
call fcn.00402a50
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.00402a50
call fcn.0053d7cc
ret 8