Function at 0x10004600
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Delete file
Download and write a file
Initialize winsock library
Receive and write data from server to client
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x28ec
call fcn.100869b0
mov eax, dword [0x100ae8c8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28ec], eax
lea eax, [ebp - 0x28e8]
push eax
push 0x101
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x10004654
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086786
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x28e8]
cmp al, 1
jne 0x100048da
shr eax, 8
cmp al, 1
jne 0x100048da
push ebx
push esi
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ebx, eax
test ebx, ebx
je 0x100046ec
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx]
mov edx, dword [ebp + 0xc]
mov ecx, 2
push edx
mov dword [ebp - 0x2754], eax
mov word [ebp - 0x2758], cx
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x2756], ax
push 0x10
lea eax, [ebp - 0x2758]
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x100046ec
lea eax, [edi + 4]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100046d0
sub eax, edx
push 0
add eax, 4
push eax
push edi
push esi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x10004700
pop ebx
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086786
mov esp, ebp
pop ebp
ret
push 0x2710
xor ebx, ebx
lea ecx, [ebp - 0x2748]
push ebx
push ecx
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x28ec]
cmp eax, 0x3a980
jae 0x10004779
mov edi, dword [sym.imp.WS2_32.dll_recv]
jmp 0x10004740
push 0
push 0x1388
lea edx, [ebp + ebx - 0x2748]
push edx
push esi
call edi
mov cx, word [ebp - 0x2746]
movzx edx, cx
add ebx, eax
cmp edx, ebx
je 0x100047a3
test eax, eax
jle 0x10004786
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x28ec]
cmp eax, 0x3a980
jb 0x10004740
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
pop ebx
pop edi
mov byte [0x100aeb88], 0
mov eax, 0x14
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086786
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x28ec]
push eax
movzx ecx, cx
push 0x100aeb8c
sub ecx, 0x15
push ecx
lea edx, [ebp - 0x2744]
push edx
mov dword [ebp - 0x28ec], 0x2328
call fcn.10002e00
mov ax, word [ebp - 0x2748]
mov word [0x100aeb88], ax
mov eax, dword [ebp - 0x28ec]
lea ecx, [eax + 0x15]
mov word [0x100aeb8a], cx
movzx ecx, word [ebp - 0x2746]
mov edx, dword [ebp + ecx - 0x2759]
lea ecx, [ebp + ecx - 0x2759]
mov dword [eax + 0x100aeb8c], edx
mov edx, dword [ecx + 4]
mov dword [eax + 0x100aeb90], edx
mov edx, dword [ecx + 8]
mov dword [eax + 0x100aeb94], edx
mov edx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x10]
add esp, 0x10
mov dword [eax + 0x100aeb98], edx
push esi
mov byte [eax + 0x100aeb9c], cl
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x1f4
call sub.mfc100.dll_Ordinal_265
push 0x1011c4d0
mov esi, eax
push str._s__key.JPG
push esi
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x100936b4
push esi
call dword [sym.imp.MSVCR100.dll_fopen]
push 2
mov edi, eax
push 0
push edi
call dword [sym.imp.MSVCR100.dll_fseek]
movzx edx, word [0x100aeb8a]
push edi
push 1
sub edx, 0x15
push edx
push 0x100aeb8c
call dword [sym.imp.MSVCR100.dll_fwrite]
push edi
call dword [sym.imp.MSVCR100.dll_fflush]
push edi
call dword [sym.imp.MSVCR100.dll_fclose]
push esi
call sub.mfc100.dll_Ordinal_1296
add esp, 0x30
call fcn.100044d0
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x32
lea eax, [ebp - 0x38]
push eax
push ebx
call dword [sym.imp.MSVCR100D.dll__itoa]
add esp, 0xc
pop ebx
pop edi
mov eax, 0xa
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086786
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
mov eax, 0xfffffffe
pop esi
call fcn.10086786
mov esp, ebp
pop ebp
ret