Function at 0x10004499
Capabilities:
Get socket status
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a8
mov dword [ebp - 0x4a8], ecx
mov dword [ebp - 0x384], 3
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x270], 0xffffffff
mov byte [ebp - 0x14], 5
mov byte [ebp - 0x13], 2
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x11], 2
push 0
push 4
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ecx + 0xa8]
push edx
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x274], eax
push 0x258
push 0
lea ecx, [ebp - 0x26c]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x388], 0
jmp 0x10004538
mov edx, dword [ebp - 0x388]
add edx, 1
mov dword [ebp - 0x388], edx
mov eax, dword [ebp - 0x388]
cmp eax, dword [ebp - 0x378]
jae 0x10004565
mov ecx, dword [ebp - 0x388]
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + ecx*4 - 0x374]
cmp eax, dword [edx + 0xa8]
jne 0x10004563
jmp 0x10004565
jmp 0x10004529
mov ecx, dword [ebp - 0x388]
cmp ecx, dword [ebp - 0x378]
jne 0x100045a4
cmp dword [ebp - 0x378], 0x40
jae 0x100045a4
mov edx, dword [ebp - 0x388]
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
mov dword [ebp + edx*4 - 0x374], ecx
mov edx, dword [ebp - 0x378]
add edx, 1
mov dword [ebp - 0x378], edx
xor eax, eax
test eax, eax
jne 0x1000451d
lea ecx, [ebp - 0x384]
push ecx
push 0
push 0
lea edx, [ebp - 0x378]
push edx
push 0
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
jg 0x100045f1
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x10004a5c
push 0
push 0x258
lea edx, [ebp - 0x26c]
push edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov edx, dword [ebp - 0x274]
movsx eax, byte [edx]
cmp eax, 5
jne 0x1000463d
mov ecx, dword [ebp - 0x274]
movsx edx, byte [ecx + 1]
test edx, edx
je 0x10004657
mov eax, dword [ebp - 0x274]
movsx ecx, byte [eax + 1]
cmp ecx, 2
je 0x10004657
mov edx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0xa8]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x10004a5c
mov ecx, dword [ebp - 0x274]
movsx edx, byte [ecx + 1]
cmp edx, 2
jne 0x100048a8
push 0x10094e40
call sub.MSVCRT.dll_strlen
add esp, 4
test eax, eax
jbe 0x100048a8
push 0x10094e40
call sub.MSVCRT.dll_strlen
add esp, 4
mov dword [ebp - 0x494], eax
push 0x10094f40
call sub.MSVCRT.dll_strlen
add esp, 4
mov dword [ebp - 0x498], eax
push 0x102
push 0
lea eax, [ebp - 0x48c]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov byte [ebp - 0x48c], 5
mov cl, byte [ebp - 0x494]
mov byte [ebp - 0x48b], cl
push 0x10094e40
lea edx, [ebp - 0x48a]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 4
lea eax, [ebp - 0x498]
push eax
mov ecx, dword [ebp - 0x494]
lea edx, [ebp + ecx - 0x48a]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 0x10094f40
mov eax, dword [ebp - 0x494]
lea ecx, [ebp + eax - 0x489]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [ebp - 0x498]
mov eax, dword [ebp - 0x494]
lea ecx, [eax + edx + 3]
mov dword [ebp - 0x49c], ecx
push 0
mov edx, dword [ebp - 0x49c]
push edx
lea eax, [ebp - 0x48c]
push eax
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ecx + 0xa8]
push edx
call dword [sym.imp.WS2_32.dll_send]
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x490], eax
push 0x258
push 0
lea ecx, [ebp - 0x26c]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x4a0], 0
jmp 0x10004798
mov edx, dword [ebp - 0x4a0]
add edx, 1
mov dword [ebp - 0x4a0], edx
mov eax, dword [ebp - 0x4a0]
cmp eax, dword [ebp - 0x378]
jae 0x100047c5
mov ecx, dword [ebp - 0x4a0]
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + ecx*4 - 0x374]
cmp eax, dword [edx + 0xa8]
jne 0x100047c3
jmp 0x100047c5
jmp 0x10004789
mov ecx, dword [ebp - 0x4a0]
cmp ecx, dword [ebp - 0x378]
jne 0x10004804
cmp dword [ebp - 0x378], 0x40
jae 0x10004804
mov edx, dword [ebp - 0x4a0]
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
mov dword [ebp + edx*4 - 0x374], ecx
mov edx, dword [ebp - 0x378]
add edx, 1
mov dword [ebp - 0x378], edx
xor eax, eax
test eax, eax
jne 0x1000477d
lea ecx, [ebp - 0x384]
push ecx
push 0
push 0
lea edx, [ebp - 0x378]
push edx
push 0
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
jg 0x10004851
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x10004a5c
push 0
push 0x258
lea edx, [ebp - 0x26c]
push edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov edx, dword [ebp - 0x490]
movsx eax, byte [edx]
cmp eax, 5
jne 0x1000488e
mov ecx, dword [ebp - 0x490]
movsx edx, byte [ecx + 1]
test edx, edx
je 0x100048a8
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x10004a5c
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov dword [ebp - 0x37c], eax
cmp dword [ebp - 0x37c], 0
jne 0x100048c8
xor al, al
jmp 0x10004a5c
mov byte [ebp - 0x10], 5
mov byte [ebp - 0xf], 1
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0xc], eax
mov cx, word [ebp + 0xc]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [ebp - 8], ax
push 0
push 0xa
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_send]
lea edx, [ebp - 0x26c]
mov dword [ebp - 4], edx
push 0x258
push 0
lea eax, [ebp - 0x26c]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x4a4], 0
jmp 0x10004956
mov ecx, dword [ebp - 0x4a4]
add ecx, 1
mov dword [ebp - 0x4a4], ecx
mov edx, dword [ebp - 0x4a4]
cmp edx, dword [ebp - 0x378]
jae 0x10004983
mov eax, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ebp + eax*4 - 0x374]
cmp edx, dword [ecx + 0xa8]
jne 0x10004981
jmp 0x10004983
jmp 0x10004947
mov eax, dword [ebp - 0x4a4]
cmp eax, dword [ebp - 0x378]
jne 0x100049c2
cmp dword [ebp - 0x378], 0x40
jae 0x100049c2
mov ecx, dword [ebp - 0x4a4]
mov edx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0xa8]
mov dword [ebp + ecx*4 - 0x374], eax
mov ecx, dword [ebp - 0x378]
add ecx, 1
mov dword [ebp - 0x378], ecx
xor edx, edx
test edx, edx
jne 0x1000493b
lea eax, [ebp - 0x384]
push eax
push 0
push 0
lea ecx, [ebp - 0x378]
push ecx
push 0
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x270], 0
jg 0x10004a0c
mov edx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0xa8]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x10004a5c
push 0
push 0x258
lea ecx, [ebp - 0x26c]
push ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0xa8]
push eax
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
cmp edx, 5
jne 0x10004a43
mov eax, dword [ebp - 4]
movsx ecx, byte [eax + 1]
test ecx, ecx
je 0x10004a5a
mov edx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0xa8]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x10004a5c
mov al, 1
mov esp, ebp
pop ebp
ret 8