Function at 0x401fb0
Capabilities:
Check if file exists
Copy file
Delete directory
Delete file
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x784
mov eax, dword [0x421004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x104
lea eax, [ebp - 0x530]
mov esi, ecx
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea eax, [ebp - 0x110]
push 0x104
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea eax, [ebp - 0x638]
push 0x104
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea eax, [ebp - 0x428]
push 0x104
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea eax, [ebp - 0x320]
push 0x104
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea ecx, [ebp - 0x530]
call fcn.00401cf0
mov dword [ebp - 0x77c], eax
lea eax, [ebp - 0x110]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineA]
lea eax, [ebp - 0x530]
push str.extract.exe
push eax
lea eax, [ebp - 0x218]
push eax
call ebx
push str.copyip.ini
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x428]
push eax
call ebx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00403df0
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov edi, eax
test edi, edi
je 0x4022a1
push str.extract.exe
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x320]
push eax
call ebx
push 0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edi, eax
test edi, edi
je 0x4022a1
push 0x116e4
call fcn.00404c6b
add esp, 4
mov dword [ebp - 0x780], eax
mov ecx, eax
call fcn.00403880
mov esi, eax
lea eax, [ebp - 0x218]
push eax
push 0x104
lea ecx, [esi + 0x101d8]
push ecx
call fcn.0040a5f4
add esp, 0xc
lea eax, [esi + 0x102dc]
push str.copyip.exe
push 0x400
push eax
call fcn.0040a5f4
mov eax, dword [esi]
add esp, 0xc
mov dword [esi + 0x106dc], 0
cmp eax, 0xfa
jge 0x4021c0
imul eax, eax, 0x108
lea edx, [esi + 8]
mov ecx, str.copyip.exe
add edx, eax
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x402180
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xfa
jge 0x4021c0
imul eax, eax, 0x108
lea edx, [esi + 8]
mov ecx, str.copyip.ini
add edx, eax
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x4021b0
inc dword [esi]
push 0x140
lea eax, [ebp - 0x778]
push 0
push eax
call fcn.004071a0
add esp, 0xc
lea eax, [ebp - 0x110]
push str.copyip__.dll
push eax
lea eax, [ebp - 0x638]
push eax
call ebx
lea eax, [ebp - 0x778]
push eax
lea eax, [ebp - 0x638]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
test edi, edi
je 0x40225b
mov ebx, dword [sym.imp.KERNEL32.dll_FindNextFileA]
nop dword [eax + eax]
mov ecx, dword [esi]
cmp ecx, 0xfa
jge 0x402240
imul eax, ecx, 0x108
lea edx, [ebp - 0x74c]
add eax, 8
add eax, esi
nop dword [eax + eax]
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x402230
inc dword [esi]
lea eax, [ebp - 0x778]
push eax
push edi
call ebx
test eax, eax
jne 0x402210
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineA]
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.004038e0
mov edi, eax
neg edi
sbb edi, edi
add edi, 1
je 0x4022a1
push str.setupip.exe
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x320]
push eax
call ebx
push 0
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edi, eax
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x218]
push eax
call esi
lea eax, [ebp - 0x428]
push eax
call esi
cmp dword [ebp - 0x77c], 0
je 0x4022e0
lea eax, [ebp - 0x530]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyA]
test eax, eax
je 0x4022e0
lea eax, [ebp - 0x530]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00404b37
mov esp, ebp
pop ebp
ret