Function at 0x180044840
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Get socket status
Receive data
Receive data on socket
Resolve function by parsing pe exports
Send data
Send data on socket
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
mov eax, 0x12e8
call fcn.180033690
sub rsp, rax
mov rax, qword [0x1800b7480]
xor rax, rsp
mov qword [rsp + 0x12d0], rax
mov rax, qword [rsp + 0x1308]
cmp dword [rax + 0x24], 0
je 0x18004489f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [rsp + 0x1308]
cmp dword [rcx + 0x24], eax
jae 0x18004489f
lea rcx, str.connect_timeout
call fcn.1800446a0
xor ecx, ecx
call fcn.180071a7c
mov cx, 0x209
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x88], ax
mov cx, 0x18
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x8a], ax
lea rax, [rsp + 0x8c]
mov rcx, qword [rsp + 0x1308]
mov rdi, rax
lea rsi, [rcx + 0x10]
mov ecx, reloc.WS2_32.dll_recv
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x1308]
movzx eax, word [rax + 0x20]
mov word [rsp + 0x9c], ax
mov eax, 2
mov word [rsp + 0x78], ax
mov cx, 0x3039
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x7a], ax
mov byte [rsp + 0x2d0], 0
lea rax, [rsp + 0x2d1]
mov rdi, rax
xor eax, eax
mov ecx, 0xfff
rep stosb byte [rdi], al
mov dword [rsp + 0x70], 2
mov dword [rsp + 0x74], 0
mov dword [rsp + 0x60], 0xffffffff
mov dword [rsp + 0x40], 0
jmp 0x180044961
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
mov rax, qword [rsp + 0x1300]
movzx eax, byte [rax + 0x82]
cmp dword [rsp + 0x40], eax
jge 0x180044d5f
mov rax, qword [rsp + 0x1300]
movzx eax, byte [rax + 0x81]
add eax, dword [rsp + 0x40]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x1300]
movzx eax, byte [rax + 0x82]
cmp eax, dword [rsp + 0x3c]
jg 0x1800449c1
mov rax, qword [rsp + 0x1300]
movzx eax, byte [rax + 0x82]
mov ecx, dword [rsp + 0x3c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
movsxd rax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x1300]
mov rcx, qword [rcx + 0x18]
cmp dword [rcx + rax*4], 0
jne 0x1800449dd
jmp 0x180044d5f
movsxd rax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x1300]
mov rcx, qword [rcx + 0x18]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x7c], eax
mov r8d, 6
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x48], 1
lea r8, [rsp + 0x48]
mov edx, 0x8004667e
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [rsp + 0x44], 4
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x180044b38
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0x38], 0
jmp 0x180044a73
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0x38], eax
jae 0x180044a97
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
cmp qword [rsp + rax*8 + 0xc8], rcx
jne 0x180044a95
jmp 0x180044a97
jmp 0x180044a69
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0x38], eax
jne 0x180044acf
cmp dword [rsp + 0xc0], 0x40
jae 0x180044acf
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov qword [rsp + rax*8 + 0xc8], rcx
mov eax, dword [rsp + 0xc0]
inc eax
mov dword [rsp + 0xc0], eax
xor eax, eax
test eax, eax
jne 0x180044a5f
mov rax, qword [rsp + 0x30]
inc rax
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
lea r8, [rsp + 0xc0]
xor edx, edx
mov ecx, eax
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x180044b33
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
mov r8d, 0x1007
mov edx, 0xffff
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_getsockopt]
cmp dword [rsp + 0x60], 0
je 0x180044b31
jmp 0x18004494c
jmp 0x180044b38
jmp 0x18004494c
mov dword [rsp + 0x48], 0
lea r8, [rsp + 0x48]
mov edx, 0x8004667e
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [rsp + 0x64], 0x7d0
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x64]
mov r8d, 0x1005
mov edx, 0xffff
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_setsockopt]
xor r9d, r9d
mov r8d, 0x18
lea rdx, [rsp + 0x88]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_send]
cdqe
cmp rax, 0x18
je 0x180044ba9
jmp 0x18004494c
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x64]
mov r8d, 0x1006
mov edx, 0xffff
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_setsockopt]
xor r9d, r9d
mov r8d, 0x1000
lea rdx, [rsp + 0x2d0]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
mov dword [rsp + 0x44], eax
cmp dword [rsp + 0x44], 0
jg 0x180044bf8
jmp 0x18004494c
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
movzx ecx, word [rax]
call qword [sym.imp.WS2_32.dll_htons]
mov rcx, qword [rsp + 0x50]
mov word [rcx], ax
mov rax, qword [rsp + 0x50]
movzx ecx, word [rax + 2]
call qword [sym.imp.WS2_32.dll_htons]
mov rcx, qword [rsp + 0x50]
mov word [rcx + 2], ax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 2]
cmp eax, dword [rsp + 0x44]
je 0x180044c47
jmp 0x18004494c
mov rax, qword [rsp + 0x50]
movzx eax, word [rax]
cmp eax, 0x1001
jne 0x180044d5a
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
add rax, 8
mov rcx, qword [rsp + 0x68]
movzx r8d, word [rcx + 0x1e]
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.180043fd0
mov rax, qword [rsp + 0x1300]
add rax, 0x20
mov rcx, rax
call fcn.180043f50
mov qword [rsp + 0x58], rax
jmp 0x180044cbb
mov rax, qword [rsp + 0x1300]
add rax, 0x20
mov rdx, qword [rsp + 0x58]
mov rcx, rax
call fcn.180043f60
cmp qword [rsp + 0x58], 0
je 0x180044d5a
mov edx, 8
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180044ceb
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x180044d5f
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
add rax, 0x10
lea rdx, [rsp + 0xa0]
mov rcx, rax
call fcn.180044010
test eax, eax
je 0x180044d55
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x1300]
call fcn.180043410
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
mov rax, qword [rax]
mov rdx, qword [rsp + 0x68]
movzx r8d, word [rdx + 0x1c]
mov rdx, qword [rsp + 0x68]
mov edx, dword [rdx + 0x18]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x180044d5f
jmp 0x180044ca2
jmp 0x18004494c
mov rcx, qword [rsp + 0x12d0]
xor rcx, rsp
call fcn.1800336f0
add rsp, 0x12e8
pop rdi
pop rsi
ret