Function at 0x40e9e0
Capabilities:
Copy file
Enumerate files on windows
Set file attributes

Disassembly:
sub esp, 0x550
push ebx
mov ebx, ecx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ebp, [ebx + 0x52eedc]
push edi
push ebp
call esi
test eax, eax
je 0x40ed33
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x218]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x21c]
push eax
call ebp
lea ecx, [esp + 0x218]
push ecx
call esi
dec eax
js 0x40ea60
mov ecx, 1
mov edi, 0x41aec8
lea esi, [esp + eax + 0x218]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40ea4d
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
je 0x40ea56
dec eax
jns 0x40ea31
jmp 0x40ea60
lea edx, [esp + eax + 0x218]
mov byte [edx], 0
lea eax, [ebx + 0x5ca5c8]
push eax
lea eax, [esp + 0x14]
push eax
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x218]
lea edx, [esp + 0x10]
push ecx
push edx
call esi
lea eax, [esp + 0x10]
push 0x41aec4
push eax
call esi
xor edi, edi
test edi, edi
jne 0x40eb23
lea ecx, [esp + 0x31c]
lea edx, [esp + 0x10]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40ed33
lea eax, [ebx + 0x18a48]
lea ecx, [esp + 0x10]
push eax
push ecx
call ebp
push 1
mov ecx, ebx
call fcn.0040e960
test eax, eax
jne 0x40eadf
push 2
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40eaed
lea edx, [ebx + 0x18b4c]
lea eax, [esp + 0x10]
push edx
push eax
call esi
lea ecx, [esp + 0x348]
lea edx, [esp + 0x10]
push ecx
push edx
call esi
lea eax, [esp + 0x10]
push 0
lea ecx, [esp + 0x34c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea edx, [esp + 0x10]
push 0x20
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x40ea91
lea eax, [esp + 0x31c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40eba2
lea ecx, [ebx + 0x18a48]
lea edx, [esp + 0x10]
push ecx
push edx
call ebp
push 1
mov ecx, ebx
call fcn.0040e960
test eax, eax
jne 0x40eb5e
push 2
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40eb6c
lea eax, [ebx + 0x18b4c]
lea ecx, [esp + 0x10]
push eax
push ecx
call esi
lea edx, [esp + 0x348]
lea eax, [esp + 0x10]
push edx
push eax
call esi
lea ecx, [esp + 0x10]
push 0
lea edx, [esp + 0x34c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [esp + 0x10]
push 0x20
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x40ea91
test edi, edi
je 0x40ebad
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebx + 0x5ca5c8]
lea ecx, [esp + 0x45c]
push eax
push ecx
call ebp
lea edx, [ebx + 0x5ca6cc]
lea eax, [esp + 0x45c]
push edx
push eax
call esi
lea edi, [ebx + 0x18a48]
lea ecx, [esp + 0x10]
push edi
push ecx
call ebp
push 1
mov ecx, ebx
call fcn.0040e960
test eax, eax
jne 0x40ebf7
push 2
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40ec05
lea edx, [ebx + 0x18b4c]
lea eax, [esp + 0x10]
push edx
push eax
call esi
lea eax, [ebx + 0x5ca7d0]
push eax
lea eax, [ebx + 0x5ca5c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40ed23
lea eax, [ebx + 0x5ca7d0]
lea ecx, [esp + 0x114]
push eax
push ecx
call ebp
lea edx, [esp + 0x114]
push str.install.exe
push edx
call esi
lea eax, [esp + 0x10]
push edi
push eax
call ebp
push 1
mov ecx, ebx
call fcn.0040e960
test eax, eax
jne 0x40ec63
push 2
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40ec71
lea ecx, [ebx + 0x18b4c]
lea edx, [esp + 0x10]
push ecx
push edx
call esi
lea eax, [esp + 0x10]
push str.install.exe
push eax
call esi
lea ecx, [esp + 0x10]
push 0
lea edx, [esp + 0x118]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [esp + 0x10]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebx + 0x5ca7d0]
lea ecx, [esp + 0x114]
push eax
push ecx
call ebp
lea edx, [esp + 0x114]
push str.install.ist
push edx
call esi
lea eax, [esp + 0x10]
push edi
push eax
call ebp
push 1
mov ecx, ebx
call fcn.0040e960
test eax, eax
jne 0x40ece4
push 2
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40ecf2
add ebx, 0x18b4c
lea ecx, [esp + 0x10]
push ebx
push ecx
call esi
lea edx, [esp + 0x10]
push str.install.ist
push edx
call esi
lea eax, [esp + 0x10]
push 0
lea ecx, [esp + 0x118]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea edx, [esp + 0x10]
push 0x80
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x550
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x550
ret