Function at 0x405a20
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create process on windows
Create tcp socket
Download and write a file
Initialize winsock library
Move file
Receive and write data from server to client
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Send http request with host header
Terminate process
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4382b6
mov eax, dword fs:[0]
push eax
sub esp, 0x218
mov eax, dword [0x44d958]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0
push 0x7dc6c0
call fcn.0042eb6e
push 0x7dc6c0
mov edi, eax
call fcn.0042eb6e
push 0x7dc6c0
mov esi, eax
push 0
push edi
mov dword [ebp - 0x218], esi
call fcn.00430eb0
add esp, 0x14
mov dword [esi], 0
lea ecx, [ebp - 0x28]
push 8
push 0x43b124
call fcn.004028e0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x68]
push 0x43b170
push eax
call fcn.004045a0
mov byte [ebp - 4], 1
push str._HTTP_1.1_r_nHOST:_crunchman.info_r_nCache_Control:_no_cache_r_n_r_n
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.0040f280
add esp, 0x18
mov esi, eax
mov byte [ebp - 4], 2
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x405b1c
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x405b01
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004029e0
push esi
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00404750
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x405b35
inc eax
lea ecx, [ebp - 0x50]
push eax
push dword [ebp - 0x50]
call fcn.004029e0
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x50], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x54]
cmp eax, 0x10
jb 0x405b60
inc eax
lea ecx, [ebp - 0x68]
push eax
push dword [ebp - 0x68]
call fcn.004029e0
lea eax, [ebp - 0x210]
mov dword [ebp - 0x54], 0xf
push eax
push 0x202
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x405ba4
push 0x40030
push 0x43b178
push 0x43b190
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x405f80
mov eax, dword [ebp - 0x210]
cmp al, 2
jne 0x405f63
shr eax, 8
cmp al, 2
jne 0x405f63
xorps xmm0, xmm0
push 0x50
movups xmmword [ebp - 0x38], xmm0
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x36], ax
mov eax, 2
push str.crunchman.info
mov word [ebp - 0x38], ax
call fcn.00405720
add esp, 4
test eax, eax
jne 0x405c1b
push 0x40030
push 0x43b1ec
push 0x43b210
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00402270
jmp 0x405fae
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push 6
push 1
push 2
mov dword [ebp - 0x34], eax
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
mov dword [ebp - 0x21c], esi
cmp esi, 0xffffffff
jne 0x405c4f
push 0x40030
push 0x43b248
push 0x43b26c
jmp 0x405bf9
push 0x10
lea eax, [ebp - 0x38]
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x405c6d
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
call fcn.004057d0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 0
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
push esi
call dword [sym.imp.WS2_32.dll_send]
push 0
push 0x7dc6c0
push edi
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp esi, 0xffffffff
jne 0x405cc3
push 0x40030
push 0x43b28c
push str.File_not_received_from_server.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp - 0x21c]
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x405c01
push 0x43b2c4
push edi
call fcn.00431100
add esp, 8
test eax, eax
je 0x405cf4
push 0x40030
push 0x43b2c8
push str.404___File_not_found
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push edi
lea ecx, [ebp - 0x80]
call fcn.00402220
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x80]
push 0
push 0x43b33c
call fcn.00404830
mov dword [ebp - 0x220], eax
call fcn.00405780
mov dword [ebp - 0x214], eax
test eax, eax
je 0x405dc8
push str..tmp_
push eax
call fcn.00431100
add esp, 8
test eax, eax
je 0x405d58
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40030
push str.RC7___File_must_be_extracted
push str.Error:_Cannot_update_file_from_archive
push 0
call eax
or esi, 0xffffffff
jmp 0x405dc8
push 0x43b41c
push 0x43b424
call fcn.0041e217
push 0x43b42c
push dword [ebp - 0x214]
call fcn.00431100
add esp, 0x10
push dword [ebp - 0x214]
test eax, eax
je 0x405da1
call fcn.00405870
add esp, 4
test eax, eax
je 0x405dc8
push 0x40030
push 0x43b434
push 0x43b44c
jmp 0x405dbc
call fcn.00405940
add esp, 4
test eax, eax
jne 0x405dc8
push 0x40030
push 0x43b460
push str.Permission_denied.
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
or esi, 0xffffffff
push 0
call eax
push dword [ebp - 0x214]
call fcn.004057f0
add esp, 4
cmp esi, 0xffffffff
je 0x405f09
push 0
push 0x80
push 1
push 0
push 5
push 0x10000000
push 0x43b48c
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x214], eax
cmp eax, 0xffffffff
je 0x405eb4
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test esi, esi
jle 0x405edd
mov eax, dword [ebp - 0x220]
cmp esi, 0xffffffff
je 0x405edd
test eax, eax
jle 0x405e5f
sub esi, eax
add eax, 4
add esi, 0xfffffffc
add eax, edi
push esi
push eax
push dword [ebp - 0x218]
call fcn.00430930
add esp, 0xc
lea eax, [ebp - 0x224]
push 0
push eax
push esi
push dword [ebp - 0x218]
jmp 0x405e6a
push 0
lea eax, [ebp - 0x224]
push eax
push esi
push edi
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
push 0x7dc6c0
push edi
push dword [ebp - 0x21c]
mov dword [edi], 0
call dword [sym.imp.WS2_32.dll_recv]
push edi
lea ecx, [ebp - 0x80]
mov esi, eax
call fcn.00404710
push 0
push str._r_n_r_n
lea ecx, [ebp - 0x80]
call fcn.00404830
test esi, esi
jg 0x405e26
jmp 0x405edd
push 0x40030
push 0x43b49c
push 0x43b4b4
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x43b4d0
push str.rc7.tmp
call fcn.0041e217
add esp, 8
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 5
push 0
push 0
push str.rc7.exe
push 0x43b4e8
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push edi
call fcn.0042eb77
push dword [ebp - 0x218]
call fcn.0042eb77
add esp, 8
push 0x40030
push 0x43b4f0
push str.Error:_invalid_file_handle.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp - 0x21c]
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80]
call fcn.00402270
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00402270
jmp 0x405fae
push 0x40030
push 0x43b1a4
push 0x43b1bc
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x405f9c
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004029e0
mov byte [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042eb7c
mov esp, ebp
pop ebp
ret