Function at 0x14001ff40
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get socket status
Initialize winsock library
Resolve dns
Send data
Send data on socket
Send http request
Set socket configuration

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x688
mov rax, qword [0x1401ad1c0]
xor rax, rsp
mov qword [rsp + 0x670], rax
mov dword [rsp + 0x200], 1
cmp qword [0x1401d0888], 0
je 0x14001ff98
cmp dword [0x1401d0890], 0
je 0x14001ff98
mov dword [rsp + 0x654], 1
jmp 0x14001ffa3
mov dword [rsp + 0x654], 0
mov eax, dword [rsp + 0x654]
mov dword [rsp + 0x214], eax
cmp dword [rsp + 0x214], 0
je 0x14001ffca
mov eax, dword [0x1401d0890]
mov dword [rsp + 0x658], eax
jmp 0x14001ffd7
mov eax, dword [0x1401be610]
mov dword [rsp + 0x658], eax
mov eax, dword [rsp + 0x658]
mov dword [rsp + 0x40], eax
cmp qword [rsp + 0x6c0], 0
je 0x14001fffb
mov rax, qword [rsp + 0x6c0]
mov dword [rax], 0xffffffff
lea rdx, [rsp + 0x50]
mov cx, 0x202
call qword [sym.imp.WSOCK32.dll_WSAStartup]
mov dword [rsp + 0x20c], eax
cmp dword [rsp + 0x20c], 0
je 0x140020025
mov eax, 0xfffffff2
jmp 0x140020567
cmp dword [rsp + 0x214], 0
je 0x140020040
mov rax, qword [0x1401d0888]
mov qword [rsp + 0x660], rax
jmp 0x14002007a
cmp qword [0x1401d0880], 0
je 0x14002005b
mov rax, qword [0x1401d0880]
mov qword [rsp + 0x668], rax
jmp 0x14002006a
lea rax, str.adonis
mov qword [rsp + 0x668], rax
mov rax, qword [rsp + 0x668]
mov qword [rsp + 0x660], rax
mov rcx, qword [rsp + 0x660]
call qword [sym.imp.WSOCK32.dll_gethostbyname]
mov qword [rsp + 0x218], rax
cmp qword [rsp + 0x218], 0
je 0x140020105
mov r8d, reloc.WSOCK32.dll_recv
xor edx, edx
lea rcx, [rsp + 0x1f0]
call sub.MSVCR110.dll_memset
mov rax, qword [rsp + 0x218]
movsx rax, word [rax + 0x12]
mov rcx, qword [rsp + 0x218]
mov rcx, qword [rcx + 0x18]
mov r8, rax
mov rdx, qword [rcx]
lea rcx, [rsp + 0x1f4]
call sub.MSVCR110.dll_memmove
mov rax, qword [rsp + 0x218]
movzx eax, word [rax + 0x10]
mov word [rsp + 0x1f0], ax
movzx ecx, word [rsp + 0x40]
call qword [sym.imp.WSOCK32.dll_htons]
mov word [rsp + 0x1f2], ax
jmp 0x14002010f
mov eax, 0xffffffff
jmp 0x140020567
lea rdx, str.CHECK
mov rcx, qword [rsp + 0x690]
call sub.MSVCR110.dll_strcmp
test eax, eax
jne 0x1400202f0
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WSOCK32.dll_socket]
mov dword [rsp + 0x220], eax
cmp dword [rsp + 0x220], 0
jge 0x140020159
mov eax, 0xfffffffe
jmp 0x140020567
movsxd rax, dword [rsp + 0x220]
lea r8, [rsp + 0x200]
mov edx, 0x8004667e
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_ioctlsocket]
test eax, eax
jge 0x14002019c
movsxd rax, dword [rsp + 0x220]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_closesocket]
call qword [sym.imp.WSOCK32.dll_WSACleanup]
mov eax, 0xfffffffe
jmp 0x140020567
movsxd rax, dword [rsp + 0x220]
mov r8d, reloc.WSOCK32.dll_recv
lea rdx, [rsp + 0x1f0]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_connect]
test eax, eax
jge 0x1400202d2
mov dword [rsp + 0x440], 0
mov dword [rsp + 0x650], 0
jmp 0x1400201ec
mov eax, dword [rsp + 0x650]
add eax, 1
mov dword [rsp + 0x650], eax
mov eax, dword [rsp + 0x440]
cmp dword [rsp + 0x650], eax
jae 0x140020219
mov eax, dword [rsp + 0x650]
movsxd rcx, dword [rsp + 0x220]
cmp qword [rsp + rax*8 + 0x448], rcx
jne 0x140020217
jmp 0x140020219
jmp 0x1400201db
mov eax, dword [rsp + 0x440]
cmp dword [rsp + 0x650], eax
jne 0x14002025b
cmp dword [rsp + 0x440], 0x40
jae 0x14002025b
mov eax, dword [rsp + 0x650]
movsxd rcx, dword [rsp + 0x220]
mov qword [rsp + rax*8 + 0x448], rcx
mov eax, dword [rsp + 0x440]
add eax, 1
mov dword [rsp + 0x440], eax
xor eax, eax
test eax, eax
jne 0x1400201ce
mov dword [rsp + 0x228], 2
mov dword [rsp + 0x22c], 0
lea rax, [rsp + 0x228]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x440]
xor edx, edx
mov ecx, 0x40
call qword [sym.imp.WSOCK32.dll_select]
mov dword [rsp + 0x204], eax
cmp dword [rsp + 0x204], 1
je 0x1400202d2
movsxd rax, dword [rsp + 0x220]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_closesocket]
call qword [sym.imp.WSOCK32.dll_WSACleanup]
mov eax, 0xfffffff1
jmp 0x140020567
movsxd rax, dword [rsp + 0x220]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_closesocket]
call qword [sym.imp.WSOCK32.dll_WSACleanup]
xor eax, eax
jmp 0x140020567
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WSOCK32.dll_socket]
mov dword [rsp + 0x208], eax
cmp dword [rsp + 0x208], 0
jge 0x14002031e
mov eax, 0xfffffffe
jmp 0x140020567
movsxd rax, dword [rsp + 0x208]
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, 8
mov edx, 0xffff
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_setsockopt]
movsxd rax, dword [rsp + 0x208]
mov r8d, reloc.WSOCK32.dll_recv
lea rdx, [rsp + 0x1f0]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_connect]
test eax, eax
jge 0x140020378
mov dword [rsp + 0x210], 0xfffffffd
jmp 0x140020549
cmp qword [rsp + 0x6c0], 0
je 0x140020394
mov rax, qword [rsp + 0x6c0]
mov ecx, dword [rsp + 0x208]
mov dword [rax], ecx
cmp dword [rsp + 0x214], 0
je 0x1400203f3
mov rax, qword [rsp + 0x6a0]
mov qword [rsp + 0x38], rax
mov rax, qword [str.adlib_3___Date:_1998_09_23_06:19:15___]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x698]
mov qword [rsp + 0x28], rax
mov eax, dword [0x1401be610]
mov dword [rsp + 0x20], eax
mov r9, qword [0x1401d0880]
mov r8, qword [rsp + 0x690]
lea rdx, str._s_http:___.128s:_d__.256s_HTTP_1.0_r_nUser_Agent:__s_r_n_s_r_n
lea rcx, [rsp + 0x240]
call sub.MSVCR110.dll_sprintf
jmp 0x140020430
mov rax, qword [rsp + 0x6a0]
mov qword [rsp + 0x28], rax
mov rax, qword [str.adlib_3___Date:_1998_09_23_06:19:15___]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x698]
mov r8, qword [rsp + 0x690]
lea rdx, str._s___.256s_HTTP_1.0_r_nUser_Agent:__s_r_n_s_r_n
lea rcx, [rsp + 0x240]
call sub.MSVCR110.dll_sprintf
lea rcx, [rsp + 0x240]
call sub.MSVCR110.dll_strlen
mov dword [rsp + 0x230], eax
movsxd rax, dword [rsp + 0x208]
xor r9d, r9d
mov r8d, dword [rsp + 0x230]
lea rdx, [rsp + 0x240]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_send]
cmp eax, dword [rsp + 0x230]
je 0x140020481
mov dword [rsp + 0x210], 0xfffffffc
jmp 0x140020549
cmp dword [rsp + 0x6b8], 0
je 0x1400204d0
cmp qword [rsp + 0x6b0], 0
je 0x1400204d0
movsxd rax, dword [rsp + 0x208]
xor r9d, r9d
mov r8d, dword [rsp + 0x6b8]
mov rdx, qword [rsp + 0x6b0]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_send]
cmp eax, dword [rsp + 0x6b8]
je 0x1400204d0
mov dword [rsp + 0x210], 0xfffffffb
jmp 0x140020549
mov r8d, 0x1ff
lea rdx, [rsp + 0x240]
mov ecx, dword [rsp + 0x208]
call fcn.140020590
mov dword [rsp + 0x210], eax
cmp dword [rsp + 0x210], 0
jg 0x140020508
mov dword [rsp + 0x210], 0xfffffffa
jmp 0x140020549
lea r8, [rsp + 0x210]
lea rdx, str.HTTP_1._d__03d
lea rcx, [rsp + 0x240]
call sub.MSVCR110.dll_sscanf
cmp eax, 1
je 0x140020536
mov dword [rsp + 0x210], 0xfffffff9
jmp 0x140020549
cmp dword [rsp + 0x6a8], 1
jne 0x140020549
mov eax, dword [rsp + 0x210]
jmp 0x140020567
movsxd rax, dword [rsp + 0x208]
mov rcx, rax
call qword [sym.imp.WSOCK32.dll_closesocket]
call qword [sym.imp.WSOCK32.dll_WSACleanup]
mov eax, dword [rsp + 0x210]
mov rcx, qword [rsp + 0x670]
xor rcx, rsp
call fcn.14006b6a0
add rsp, 0x688
ret