Function at 0x4bb690
Capabilities:
Accept command line arguments
Check if file exists
Copy file
Create directory
Create process on windows
Delete directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c6d84
mov eax, dword fs:[0]
push eax
sub esp, 0x8d0
mov eax, dword [0x66a8c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push 0
push str.TempFile
push 0x66e36c
lea eax, [ebp - 0x714]
push eax
call fcn.0041a5c0
add esp, 8
mov dword [ebp - 0x8a8], eax
mov ecx, dword [ebp - 0x8a8]
mov dword [ebp - 0x8ac], ecx
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x8ac]
push edx
lea eax, [ebp - 0x730]
push eax
call fcn.004031b0
add esp, 0xc
mov dword [ebp - 0x8b0], eax
mov ecx, dword [ebp - 0x8b0]
mov dword [ebp - 0x8b4], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x8b4]
push edx
push reloc.WS2_32.dll_accept
lea ecx, [ebp - 0x6dc]
call fcn.005be880
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x730]
call fcn.00403d10
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x714]
call fcn.00403d10
push 0x5d6d98
lea ecx, [ebp - 0x74c]
call fcn.00404560
mov byte [ebp - 4], 5
lea eax, [ebp - 0x74c]
push eax
lea ecx, [ebp - 0x250]
push ecx
lea ecx, [ebp - 0x6dc]
call fcn.005beb40
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x74c]
call fcn.00403d10
lea ecx, [ebp - 0x250]
call fcn.00408810
movzx edx, al
test edx, edx
jne 0x4bb825
lea ecx, [ebp - 0x250]
call fcn.00403c80
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4bb825
lea ecx, [ebp - 0x250]
call fcn.00403c80
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x250]
call fcn.00403c80
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea ecx, [ebp - 0x250]
call fcn.00403c80
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0x5d6da0
lea ecx, [ebp - 0x768]
call fcn.00404560
mov byte [ebp - 4], 8
lea eax, [ebp - 0x768]
push eax
lea ecx, [ebp - 0x6dc]
call fcn.005be660
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x768]
call fcn.00403d10
push 0
push 0
push 0x5d6da8
push 0x5d6db0
push 0x66e36c
lea ecx, [ebp - 0x784]
push ecx
call fcn.0041a5c0
add esp, 8
mov dword [ebp - 0x8b8], eax
mov edx, dword [ebp - 0x8b8]
mov dword [ebp - 0x8bc], edx
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x8bc]
push eax
lea ecx, [ebp - 0x7a0]
push ecx
call fcn.004031b0
add esp, 0xc
mov dword [ebp - 0x8c0], eax
mov edx, dword [ebp - 0x8c0]
mov dword [ebp - 0x8c4], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x8c4]
push eax
lea ecx, [ebp - 0x7bc]
push ecx
call fcn.004031b0
add esp, 0xc
mov dword [ebp - 0x8c8], eax
mov edx, dword [ebp - 0x8c8]
mov dword [ebp - 0x8cc], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x8cc]
push eax
push reloc.WS2_32.dll_accept
lea ecx, [ebp - 0x280]
call fcn.005be880
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x7bc]
call fcn.00403d10
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x7a0]
call fcn.00403d10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x784]
call fcn.00403d10
mov dword [ebp - 0x254], 0
push 0x5d6db4
lea ecx, [ebp - 0x7d8]
call fcn.00404560
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x254]
push ecx
lea edx, [ebp - 0x7d8]
push edx
lea ecx, [ebp - 0x280]
call fcn.005be6a0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x7d8]
call fcn.00403d10
cmp dword [ebp - 0x254], 0
jne 0x4bb98a
mov byte [ebp - 0x7d9], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x280]
call fcn.005be860
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x250]
call fcn.00403d10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6dc]
call fcn.005be860
mov al, byte [ebp - 0x7d9]
jmp 0x4bbe2b
lea ecx, [ebp - 0x2c]
call fcn.00403ca0
mov byte [ebp - 4], 0x11
push str.http:__api.kpzip.com_showyesterdaycount.php_paramshowname
lea ecx, [ebp - 0x6b0]
call fcn.00404560
mov byte [ebp - 4], 0x12
push 0x66e36c
lea ecx, [ebp - 0x6b0]
call fcn.004035d0
push 0x66e220
lea ecx, [ebp - 0x6b0]
call fcn.004035d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x6b0]
push ecx
call fcn.005baa50
add esp, 8
lea edx, [ebp - 0x2c]
push edx
call fcn.005bf300
add esp, 4
cdq
mov dword [ebp - 0x8d4], eax
mov dword [ebp - 0x8d0], edx
mov eax, dword [ebp - 0x8d0]
cmp eax, dword [0x6437d4]
jg 0x4bba71
jl 0x4bba14
mov ecx, dword [ebp - 0x8d4]
cmp ecx, dword [0x6437d0]
ja 0x4bba71
mov byte [ebp - 0x7da], 0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x6b0]
call fcn.00403d10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2c]
call fcn.00403d10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x280]
call fcn.005be860
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x250]
call fcn.00403d10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6dc]
call fcn.005be860
mov al, byte [ebp - 0x7da]
jmp 0x4bbe2b
push str..needcopyrun
lea ecx, [ebp - 0x7f8]
call fcn.00404560
mov byte [ebp - 4], 0x13
lea edx, [ebp - 0x7f8]
push edx
call fcn.004cb890
add esp, 4
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x7f8]
call fcn.00403d10
push str.needcopyrun
lea ecx, [ebp - 0x814]
call fcn.00404560
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x814]
push eax
call fcn.004cd620
add esp, 4
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x814]
call fcn.00403d10
xor ecx, ecx
mov word [ebp - 0x234], cx
push 0x206
push 0
lea edx, [ebp - 0x232]
push edx
call fcn.00591690
add esp, 0xc
lea eax, [ebp - 0x234]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ecx, ecx
mov word [ebp - 0x694], cx
push 0x206
push 0
lea edx, [ebp - 0x692]
push edx
call fcn.00591690
add esp, 0xc
lea eax, [ebp - 0x694]
push eax
push 0
push 0x5d6e1c
lea ecx, [ebp - 0x234]
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea edx, [ebp - 0x694]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x694]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
push 0
lea ecx, [ebp - 0x694]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea edx, [ebp - 0x694]
push edx
push 0
push 0x5d6e24
lea eax, [ebp - 0x694]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea ecx, [ebp - 0x694]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x5d6e2c
lea edx, [ebp - 0x694]
push edx
call dword [sym.imp.SHLWAPI.dll_StrCatW]
xor eax, eax
mov word [ebp - 0x48c], ax
push 0x206
push 0
lea ecx, [ebp - 0x48a]
push ecx
call fcn.00591690
add esp, 0xc
push 0x104
lea edx, [ebp - 0x48c]
push edx
mov eax, dword [0x66e0a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
lea ecx, [ebp - 0x694]
push ecx
lea edx, [ebp - 0x48c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x4bbdd3
push 0x5d6e38
lea ecx, [ebp - 0x84c]
call fcn.00404560
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x694]
push eax
lea ecx, [ebp - 0x830]
push ecx
call fcn.005bfd30
add esp, 8
mov dword [ebp - 0x8d8], eax
mov edx, dword [ebp - 0x8d8]
mov dword [ebp - 0x8dc], edx
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x8dc]
push eax
lea ecx, [ebp - 0x84c]
push ecx
lea ecx, [ebp - 0x6dc]
call fcn.005be800
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x830]
call fcn.00403d10
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x84c]
call fcn.00403d10
push str.360block
lea ecx, [ebp - 0x868]
call fcn.00404560
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x868]
push edx
lea ecx, [ebp - 0x280]
call fcn.005be660
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x868]
call fcn.00403d10
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x6f8]
call fcn.004016d0
mov byte [ebp - 4], 0x18
push str.__blocklimit_1
lea ecx, [ebp - 0x6f8]
call fcn.00418080
push 1
push 0
lea ecx, [ebp - 0x6f8]
call fcn.00401790
push eax
lea eax, [ebp - 0x694]
push eax
push 0x5d6e6c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jbe 0x4bbdc4
push str..copyrun
lea ecx, [ebp - 0x884]
call fcn.00404560
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x884]
push ecx
call fcn.004cb890
add esp, 4
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x884]
call fcn.00403d10
push str.copyrun
lea ecx, [ebp - 0x8a0]
call fcn.00404560
mov byte [ebp - 4], 0x1a
lea edx, [ebp - 0x8a0]
push edx
call fcn.004cd620
add esp, 4
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x8a0]
call fcn.00403d10
mov byte [ebp - 0x8a1], 1
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x6f8]
call fcn.00401750
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x6b0]
call fcn.00403d10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2c]
call fcn.00403d10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x280]
call fcn.005be860
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x250]
call fcn.00403d10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6dc]
call fcn.005be860
mov al, byte [ebp - 0x8a1]
jmp 0x4bbe2b
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x6f8]
call fcn.00401750
mov byte [ebp - 0x8a2], 0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x6b0]
call fcn.00403d10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2c]
call fcn.00403d10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x280]
call fcn.005be860
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x250]
call fcn.00403d10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6dc]
call fcn.005be860
mov al, byte [ebp - 0x8a2]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00590c4b
mov esp, ebp
pop ebp
ret