Function at 0x4029f0
Capabilities:
Copy file
Create directory
Create process on windows
Delete file
Get common file path
Get program files directory
Set current directory

Disassembly:
push 0xffffffffffffffff
push 0x428082
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x433ae0]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push edi
mov eax, dword [0x433ae0]
xor eax, esp
push eax
lea eax, [esp + 0x298]
mov dword fs:[0], eax
mov ecx, dword [esi + 0x20]
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov ebx, 1
push ebx
push 0x20
lea eax, [esp + 0x8c]
push eax
push ecx
call edi
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x28]
call fcn.00401530
push ebx
xor ebp, ebp
push 0x42ce4c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2a8], ebp
call fcn.00405570
mov ecx, dword [esi + 0x20]
push ebx
push 0x1c
lea eax, [esp + 0x8c]
push eax
push ecx
call edi
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.00401530
push 0xb
push str.EdenFlash_
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a8], bl
call fcn.00405570
mov ecx, dword [esi + 0x20]
push ebp
push 0x26
lea eax, [esp + 0x194]
push eax
push ecx
call edi
lea edx, [esp + 0x18c]
push edx
lea ecx, [esp + 0x20]
call fcn.00401530
push str.Eden_FlirtEdenFlirt.exe
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x2ac], 2
call fcn.00405250
mov eax, dword [eax]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 0xc
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402b14
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Eden_FlirtEdenFlirtUpdate.exe
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00405250
mov eax, dword [eax]
add esp, 0xc
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402b50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Eden_Flirt_voidSwf.swf
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00405250
mov eax, dword [eax]
add esp, 0xc
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402b8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Eden_Flirtlibexpat.dll
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00405250
mov eax, dword [eax]
add esp, 0xc
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402bc8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Eden_Flirticon.ico
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00405250
mov eax, dword [eax]
add esp, 0xc
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Eden_FlirtEdenFlash.swf
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00405250
mov eax, dword [eax]
add esp, 0xc
push eax
call edi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402c40
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], ebx
jle 0x402c5a
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00401370
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push eax
call edi
test eax, eax
jne 0x402ca6
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], ebx
jle 0x402c81
mov edx, dword [eax - 0xc]
push edx
lea ecx, [esp + 0x18]
call fcn.00401370
mov eax, dword [esp + 0x14]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], ebx
jle 0x402ca3
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x18]
call fcn.00401370
mov eax, dword [esp + 0x14]
push eax
call edi
mov eax, dword [esi + 0xd8]
test eax, eax
jle 0x402df1
cmp byte [esi + 0xa6], 0
jne 0x402de1
test ebp, ebp
jl 0x402f48
cmp ebp, dword [esi + 0xc4]
jge 0x402f48
mov eax, dword [esi + 0xc0]
lea edi, [ebp*4]
add eax, edi
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00405190
add esp, 0xc
mov byte [esp + 0x2a0], 3
cmp ebp, dword [esi + 0xec]
jge 0x402f48
mov ecx, dword [esi + 0xe8]
mov eax, dword [eax]
mov edx, dword [esi + 0x9c]
push eax
add ecx, edi
mov ecx, dword [ecx]
push ecx
push str.MoveFile__s___s_
push 2
push edx
call fcn.00406520
mov byte [esp + 0x2b4], 2
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402d57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp ebp, dword [esi + 0xc4]
jge 0x402f48
mov eax, dword [esi + 0xc0]
add eax, edi
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.00405190
add esp, 0xc
mov byte [esp + 0x2a0], 4
cmp ebp, dword [esi + 0xec]
mov ecx, dword [eax]
jge 0x402f48
mov eax, dword [esi + 0xe8]
push 0
add eax, edi
mov eax, dword [eax]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
and ebx, eax
mov byte [esp + 0x2a0], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402dd2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 1
cmp ebp, dword [esi + 0xd8]
jl 0x402cb4
test ebx, ebx
jne 0x402df1
push ebx
push ebx
push str.Probl
call fcn.0040af45
mov edi, 1
cmp dword [esi + 0xc4], edi
jle 0x402f48
mov eax, dword [esi + 0xc0]
add eax, 4
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.00405190
add esp, 0xc
push 0x44
lea eax, [esp + 0x40]
push 0
push eax
mov byte [esp + 0x2ac], 5
call fcn.004170d0
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x3c], 0x44
cmp dword [eax - 4], edi
jle 0x402e6b
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x24]
call fcn.00401370
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x40]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x402f4d
push eax
push eax
push str.Un_probl
call fcn.0040af45
mov byte [esp + 0x2a0], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402ec6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2a0], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402eee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2a0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402f16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2a0], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402f41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x403015
jmp fcn.00407650
push 3
push 0
push 0
push 0
push 0
push 0x436a28
mov ecx, esi
call fcn.0040bb1d
mov ecx, dword [esp + 0x30]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov byte [esp + 0x2a0], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x402f98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2a0], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402fc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2a0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402fe8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2a0], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403013
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x298]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x284]
xor ecx, esp
call fcn.0041531b
add esp, 0x294
ret