Function at 0x101238c0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
sub esp, 0xcec
mov eax, dword [0x10189710]
xor eax, esp
mov dword [esp + 0xce4], eax
mov eax, dword [esp + 0xcf8]
push ebx
mov ebx, dword [esp + 0xd00]
push ebp
mov ebp, dword [esp + 0xcf8]
push esi
mov esi, edx
push edi
mov edi, dword [esp + 0xd04]
mov dword [esp + 0x28], eax
or eax, 0xffffffff
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
test esi, esi
je 0x10123ce1
cmp byte [esi], 0
je 0x10123ce1
push 0x103
lea edx, [esp + 0x2e5]
push 0
push edx
mov byte [esp + 0x2ec], 0
call fcn.1012e060
add esp, 0xc
test edi, edi
je 0x1012394c
mov byte [edi], 0
push esi
lea eax, [esp + 0x2e4]
push str._s_r_n
push eax
call fcn.10127dc0
add esp, 0xc
push str.whois.completewhois.com
lea ecx, [esp + 0x3ec]
push 0x1014d8cc
push ecx
call fcn.10127dc0
add esp, 0xc
lea edx, [esp + 0x48]
push edx
push 0x101
call sub.WS2_32.dll_WSAStartup
test eax, eax
je 0x101239ad
push str._nError:_WSAStartup_Failed._n
call fcn.10128a81
add esp, 4
mov esi, ebx
mov edi, ebp
call fcn.10124480
or eax, 0xffffffff
jmp 0x10123ce1
mov eax, dword [esp + 0x48]
mov ecx, eax
shr ecx, 8
movzx edx, cl
mov dword [esp + 0x10], edx
movzx eax, al
fild dword [esp + 0x10]
fdiv qword [0x1017f108]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fcomp qword [0x1017f260]
fnstsw ax
test ah, 5
jp 0x10123a0c
push str._nError:_Socket_Library_must_Support_1.1_or_Greater._n
call fcn.10128a81
add esp, 4
mov esi, ebx
mov edi, ebp
call fcn.10124480
jmp 0x10123cd8
lea ecx, [esp + 0x30]
push ecx
call fcn.101290ae
add esp, 4
lea edx, [esp + 0x30]
push esi
push edx
call fcn.1012bad6
add esp, 4
push eax
lea eax, [esp + 0x1e0]
push str.Whois_Session_Started_on__.24s._for_domain_:__s_n
push eax
call fcn.10127dc0
lea ecx, [esp + 0x1e8]
push ecx
push 0x1014d8cc
call fcn.10128a81
add esp, 0x18
push 0
push 1
push 2
call sub.WS2_32.dll_socket
mov ebp, eax
mov dword [esp + 0x10], ebp
cmp ebp, 0xffffffff
jne 0x10123a75
mov edi, dword [esp + 0x14]
mov esi, ebx
call fcn.10124480
jmp 0x10123cca
mov edx, 2
push 0x2b
mov word [esp + 0x3c], dx
call sub.WS2_32.dll_htons
mov word [esp + 0x3a], ax
lea eax, [esp + 0x3e8]
push eax
lea ecx, [esp + 0x1dc]
push str.Connecting_to__s_n
push ecx
call fcn.10127dc0
add esp, 0xc
lea edx, [esp + 0x1d8]
push edx
push 0x1014d8cc
call fcn.10128a81
add esp, 8
lea eax, [esp + 0x3e8]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x10123adf
mov edi, dword [esp + 0x14]
mov esi, ebx
call fcn.10124480
jmp 0x10123cca
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
push 0x10
lea ecx, [esp + 0x3c]
push ecx
push ebp
mov dword [esp + 0x48], eax
call sub.WS2_32.dll_connect
test eax, eax
je 0x10123b0b
mov edi, dword [esp + 0x14]
mov esi, ebx
call fcn.10124480
jmp 0x10123cca
lea edx, [esp + 0x2e0]
push edx
lea eax, [esp + 0x1dc]
push 0x1014d8cc
push eax
call fcn.10127dc0
lea eax, [esp + 0x1e4]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10123b32
push 0
sub eax, edx
push eax
lea ecx, [esp + 0x1e0]
push ecx
push ebp
call sub.WS2_32.dll_send
cmp eax, 0xffffffff
jne 0x10123b61
mov edi, dword [esp + 0x14]
mov esi, ebx
call fcn.10124480
jmp 0x10123cca
push 0x800
lea edx, [esp + 0x4f4]
push 0
push edx
call fcn.1012e060
add esp, 0xc
push 0
push 0x800
lea eax, [esp + 0x4f8]
push eax
push ebp
call sub.WS2_32.dll_recv
mov edi, eax
test edi, edi
jle 0x10123c9b
lea ebx, [edi + 1]
push ebx
call fcn.10128320
mov esi, eax
add esp, 4
test esi, esi
je 0x10123c97
push ebx
push 0
push esi
call fcn.1012e060
add esp, 0xc
push edi
lea ecx, [esp + 0x4f4]
push ecx
push esi
call fcn.101287f0
add esp, 0xc
lea ebp, [ebx - 1]
mov edi, edi
push 0x800
lea edx, [esp + 0x4f4]
push 0
push edx
call fcn.1012e060
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push 0
push 0x800
lea eax, [esp + 0x4f8]
push eax
push ecx
call sub.WS2_32.dll_recv
mov edi, eax
test edi, edi
jle 0x10123c30
add ebx, edi
push ebx
push esi
call fcn.10129841
mov esi, eax
add esp, 8
test esi, esi
je 0x10123c30
push edi
lea edx, [esp + 0x4f4]
push edx
add ebp, esi
push ebp
call fcn.101287f0
add esp, 0xc
mov byte [edi + ebp], 0
lea ebp, [ebx - 1]
test edi, edi
jg 0x10123bd0
test esi, esi
je 0x10123c93
cmp byte [esi], 0
je 0x10123c93
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
push ecx
push edx
mov dword [eax], esi
call fcn.10124c20
add esp, 8
test eax, eax
jne 0x10123c81
mov edi, dword [esp + 0x20]
mov ecx, esi
call fcn.10123d00
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
setne cl
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x10123cb1
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], 0xffffffff
jmp 0x10123cb1
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
push str.Error:_Whois_Response_Buffer_in_NULL__
push ebx
mov dword [esp + 0x24], 0xffffffff
call fcn.10127dc0
add esp, 8
cmp byte [ebx], 0
je 0x10123cca
mov edx, dword [esp + 0x14]
push 0x1014d8cc
push edx
mov ecx, ebx
call fcn.10067bb0
add esp, 8
cmp ebp, 0xffffffff
je 0x10123cd8
push ebp
call fcn.1013567b
add esp, 4
call sub.WS2_32.dll_WSACleanup
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcf4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10127db1
add esp, 0xcec
ret 0x10