Function at 0x4ef648
Capabilities:
Check if file exists
Get file system object information
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b943c
mov eax, dword fs:[0]
push eax
mov eax, 0x17e0
call fcn.005a41d0
mov eax, dword [0x61dc40]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push ebx
mov dword [ebp - 0x1740], ecx
mov dword [ebp - 0x1730], ebx
mov dword [ebp - 0x174c], edi
call esi
test eax, eax
je 0x4efe34
push edi
call esi
test eax, eax
je 0x4efe34
lea eax, [ebp - 0x17e8]
push eax
call fcn.00440517
xor esi, esi
mov dword [ebp - 4], esi
lea eax, [ebp - 0x17e8]
mov dword [ebp - 0x17d0], esi
mov dword [ebp - 0x17cc], esi
call fcn.004f4ce4
mov ecx, ebx
lea edi, [ebp - 0x17e8]
call fcn.004f4932
mov dword [ebp - 4], 1
cmp dword [ebp - 0x17cc], esi
jle 0x4efe29
lea eax, [ebp - 0x17c8]
push eax
call fcn.004f08bd
push 0x414
lea eax, [ebp - 0x1470]
push esi
mov byte [ebp - 4], 2
push eax
mov dword [ebp - 0x1474], esi
call fcn.00596530
add esp, 0xc
jmp 0x4ef725
xor esi, esi
mov eax, dword [ebp - 0x17d0]
cmp eax, esi
jl 0x4ef987
cmp eax, dword [ebp - 0x17cc]
jge 0x4ef987
push eax
lea esi, [ebp - 0x17e8]
call fcn.004f4c50
mov ecx, 0x106
mov esi, eax
lea edi, [ebp - 0x1474]
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x17d0]
xor esi, esi
cmp dword [ebp - 0x1474], esi
je 0x4ef855
push 0x2b0
lea eax, [ebp - 0x1728]
push esi
push eax
mov dword [ebp - 0x172c], esi
call fcn.00596530
add esp, 0xc
push 0x200
push 0x2b4
lea eax, [ebp - 0x172c]
push eax
push esi
lea eax, [ebp - 0x1470]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea edi, [ebp - 0x17a8]
call fcn.004eba8b
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 3
mov dword [ebp - 0x1798], eax
mov dword [ebp - 0x1794], 1
lea eax, [ebp - 0x1720]
cmp word [ebp - 0x1720], si
jne 0x4ef7df
lea eax, [ebp - 0x1268]
push eax
lea eax, [ebp - 0x178c]
push eax
call fcn.00407af8
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1780]
push eax
call fcn.00407af8
lea eax, [ebp - 0x1470]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea eax, [ebp - 0x1470]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [ebp - 0x1738]
push eax
call fcn.00407b16
lea eax, [ebp - 0x1738]
push eax
lea eax, [ebp - 0x17c8]
push eax
mov byte [ebp - 4], 4
call fcn.004f090e
lea ebx, [ebp - 0x17a8]
mov esi, eax
call fcn.004efe58
mov eax, dword [ebp - 0x1738]
jmp 0x4ef94f
xor eax, eax
push 0x1046
mov word [ebp - 0x105c], ax
lea eax, [ebp - 0x105a]
push esi
push eax
call fcn.00596530
add esp, 0xc
lea eax, [ebp - 0x1470]
push eax
push 0x824
lea eax, [ebp - 0x105c]
push eax
push 0x5d0be4
push 0x5ec2f0
push 0x5ec2f8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
cmp ax, word [ebp - 0x105c]
je 0x4ef723
lea eax, [ebp - 0x1268]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
lea edi, [ebp - 0x17a8]
call fcn.004eba8b
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 5
and dword [ebp - 0x1794], 0
mov dword [ebp - 0x1798], eax
lea eax, [ebp - 0x105c]
push eax
lea eax, [ebp - 0x1788]
push eax
call fcn.00407af8
lea eax, [ebp - 0x1268]
push eax
lea eax, [ebp - 0x178c]
push eax
call fcn.00407af8
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1780]
push eax
call fcn.00407af8
lea eax, [ebp - 0x1470]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [ebp - 0x173c]
push eax
call fcn.00407b16
lea eax, [ebp - 0x173c]
push eax
lea eax, [ebp - 0x17c8]
push eax
mov byte [ebp - 4], 6
call fcn.004f090e
mov ebx, edi
mov esi, eax
call fcn.004efe58
mov eax, dword [ebp - 0x173c]
add eax, 0xfffffff0
call fcn.00407b6b
lea esi, [ebp - 0x1798]
mov byte [ebp - 4], 2
call fcn.004ebad1
push 0x418
lea eax, [ebp - 0x1474]
push 0
push eax
call fcn.00596530
mov ebx, dword [ebp - 0x1730]
add esp, 0xc
jmp 0x4ef723
lea eax, [ebp - 0x1764]
push eax
call fcn.00440517
mov eax, dword [ebp - 0x174c]
mov byte [ebp - 4], 7
mov dword [ebp - 0x173c], esi
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
cmp dx, si
jne 0x4ef9a6
sub eax, ecx
sar eax, 1
mov esi, eax
push esi
push dword [ebp - 0x174c]
push ebx
call fcn.00590d27
add esp, 0xc
test eax, eax
jne 0x4efcce
push 0x206
mov word [ebp - 0x1684], ax
xor edi, edi
lea eax, [ebp - 0x1682]
push edi
push eax
call fcn.00596530
add esp, 0xc
push ebx
push 0x5db9e0
lea eax, [ebp - 0x1684]
push 0x103
push eax
call fcn.0058f42f
add esp, 0x10
lea eax, [ebp - 0x1684]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
push 4
call fcn.0058f82d
pop ecx
cmp eax, edi
je 0x4efa29
lea ecx, [ebp - 0x177c]
mov dword [eax], ecx
jmp 0x4efa2b
xor eax, eax
mov dword [ebp - 0x177c], eax
mov dword [ebp - 0x1770], edi
mov dword [ebp - 0x176c], edi
mov dword [ebp - 0x1768], edi
push dword [ebp - 0x1740]
lea edx, [ebp + esi*2 - 0x1684]
lea ecx, [ebp - 0x177c]
mov byte [ebp - 4], 9
call fcn.004f045f
test eax, eax
je 0x4efc7f
mov eax, dword [ebp - 0x176c]
sub eax, dword [ebp - 0x1770]
push 0xc
cdq
pop ecx
idiv ecx
xor ebx, ebx
mov dword [ebp - 0x173c], 1
test eax, eax
jbe 0x4efb2d
and dword [ebp - 0x1738], ebx
cmp ebx, eax
jb 0x4efa9c
call fcn.005908ee
mov ecx, dword [ebp - 0x1770]
mov eax, dword [ebp - 0x1738]
add eax, ecx
push eax
lea eax, [ebp - 0x1734]
push eax
lea eax, [ebp - 0x17c8]
push eax
call fcn.004f0a1f
mov eax, dword [ebp - 0x17b0]
mov dword [ebp - 0x1744], eax
mov eax, dword [ebp - 0x17c8]
lea edi, [ebp - 0x1748]
lea esi, [ebp - 0x1734]
mov dword [ebp - 0x1748], eax
call fcn.004acc17
test al, al
jne 0x4efb0b
call fcn.00518626
mov dword [eax + 0x28], 1
call fcn.00518626
add eax, 4
push eax
lea esi, [ebp - 0x1764]
call fcn.004f0ad3
mov eax, dword [ebp - 0x176c]
sub eax, dword [ebp - 0x1770]
push 0xc
cdq
pop ecx
idiv ecx
add dword [ebp - 0x1738], 0xc
inc ebx
cmp ebx, eax
jb 0x4efa9c
mov eax, dword [ebp - 0x1754]
sub eax, dword [ebp - 0x1758]
push 0x2c
cdq
pop ecx
idiv ecx
cmp dword [ebp - 0x17ac], eax
je 0x4efc7d
lea eax, [ebp - 0x1794]
push eax
call fcn.00440517
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x17b0]
mov eax, dword [eax]
mov dword [ebp - 0x1730], eax
mov eax, dword [ebp - 0x17c8]
mov dword [ebp - 0x1734], eax
mov eax, dword [ebp - 0x17b0]
mov dword [ebp - 0x1744], eax
mov eax, dword [ebp - 0x17c8]
lea edi, [ebp - 0x1748]
lea esi, [ebp - 0x1734]
mov dword [ebp - 0x1748], eax
call fcn.004acc17
test al, al
jne 0x4efbce
call fcn.00518626
cmp dword [eax + 0x28], 0
jne 0x4efbc1
call fcn.00518626
add eax, 4
push eax
lea esi, [ebp - 0x1794]
call fcn.004f0ad3
lea esi, [ebp - 0x1734]
call fcn.004f1791
jmp 0x4efb75
mov ebx, dword [ebp - 0x1784]
mov eax, ebx
sub eax, dword [ebp - 0x1788]
push 0x2c
cdq
pop ecx
idiv ecx
test eax, eax
je 0x4efc72
cmp dword [ebp - 0x1788], ebx
jbe 0x4efbf7
call fcn.005908ee
mov edi, dword [ebp - 0x1788]
mov esi, dword [ebp - 0x1794]
cmp edi, dword [ebp - 0x1784]
jbe 0x4efc10
call fcn.005908ee
push ebx
push esi
push edi
push dword [ebp - 0x1794]
call fcn.004f1c61
mov eax, dword [ebp - 0x1784]
sub eax, dword [ebp - 0x1788]
add esp, 0x10
push 0x2c
cdq
pop ecx
idiv ecx
xor ebx, ebx
test eax, eax
jbe 0x4efc72
xor edi, edi
cmp ebx, eax
jb 0x4efc44
call fcn.005908ee
mov eax, dword [ebp - 0x1788]
add eax, edi
push eax
lea esi, [ebp - 0x1764]
call fcn.004f0ad3
mov eax, dword [ebp - 0x1784]
sub eax, dword [ebp - 0x1788]
push 0x2c
cdq
pop ecx
idiv ecx
inc ebx
add edi, 0x2c
cmp ebx, eax
jb 0x4efc44
lea esi, [ebp - 0x1794]
call fcn.004f0a8a
xor edi, edi
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x1770]
cmp eax, edi
je 0x4efca4
push dword [ebp - 0x176c]
call fcn.004f1520
push dword [ebp - 0x1770]
call fcn.0058f3c4
pop ecx
push dword [ebp - 0x177c]
mov dword [ebp - 0x1770], edi
mov dword [ebp - 0x176c], edi
mov dword [ebp - 0x1768], edi
call fcn.0058f3c4
pop ecx
cmp dword [ebp - 0x173c], edi
jne 0x4efd85
mov eax, dword [ebp - 0x17b0]
mov eax, dword [eax]
mov dword [ebp - 0x1730], eax
mov eax, dword [ebp - 0x17c8]
mov dword [ebp - 0x1734], eax
mov eax, dword [ebp - 0x17b0]
mov dword [ebp - 0x1744], eax
mov eax, dword [ebp - 0x17c8]
lea edi, [ebp - 0x1748]
lea esi, [ebp - 0x1734]
mov dword [ebp - 0x1748], eax
call fcn.004acc17
test al, al
jne 0x4efd36
call fcn.00518626
add eax, 4
push eax
lea esi, [ebp - 0x1764]
call fcn.004f0ad3
lea esi, [ebp - 0x1734]
call fcn.004f1791
jmp 0x4efce8
mov ebx, dword [ebp - 0x1754]
mov eax, ebx
sub eax, dword [ebp - 0x1758]
push 0x2c
cdq
pop ecx
idiv ecx
test eax, eax
je 0x4efd85
cmp dword [ebp - 0x1758], ebx
jbe 0x4efd5b
call fcn.005908ee
mov edi, dword [ebp - 0x1758]
mov esi, dword [ebp - 0x1764]
cmp edi, dword [ebp - 0x1754]
jbe 0x4efd74
call fcn.005908ee
push ebx
push esi
push edi
push dword [ebp - 0x1764]
call fcn.004f1c61
add esp, 0x10
lea edi, [ebp - 0x17c8]
call fcn.004f09fb
mov eax, dword [ebp - 0x1754]
sub eax, dword [ebp - 0x1758]
push 0x2c
cdq
pop ecx
idiv ecx
xor ebx, ebx
test eax, eax
jbe 0x4efe0e
xor edi, edi
cmp ebx, eax
jb 0x4efdb3
call fcn.005908ee
mov eax, dword [ebp - 0x1758]
lea esi, [eax + edi]
cmp dword [esi + 0x14], 0
mov eax, dword [ebp - 0x1740]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
push esi
je 0x4efdee
call dword [eax]
test eax, eax
je 0x4efe0e
push dword [esi + 0x18]
mov eax, dword [esi + 0x28]
push dword [ebp - 0x174c]
mov ecx, dword [ebp - 0x1740]
push eax
call fcn.004ef648
jmp 0x4efdf4
call dword [eax]
test eax, eax
je 0x4efe0e
mov eax, dword [ebp - 0x1754]
sub eax, dword [ebp - 0x1758]
push 0x2c
cdq
pop ecx
idiv ecx
inc ebx
add edi, 0x2c
cmp ebx, eax
jb 0x4efdb3
lea esi, [ebp - 0x1764]
call fcn.004f0a8a
lea eax, [ebp - 0x17c8]
push eax
mov byte [ebp - 4], 1
call fcn.004f09d3
lea esi, [ebp - 0x17e8]
call fcn.0047509e
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0058f3cf
leave
ret 0xc