Function at 0x180044780
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.1800335d0
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 0x1800447df
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [rsp + 0x1308]
cmp dword [rcx + 0x24], eax
jae 0x1800447df
lea rcx, str.connect_timeout
call fcn.1800445e0
xor ecx, ecx
call fcn.1800719bc
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 0x1800448a1
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 0x180044c9f
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 0x180044901
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 0x18004491d
jmp 0x180044c9f
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 0x180044a78
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0x38], 0
jmp 0x1800449b3
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0x38], eax
jae 0x1800449d7
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
cmp qword [rsp + rax*8 + 0xc8], rcx
jne 0x1800449d5
jmp 0x1800449d7
jmp 0x1800449a9
mov eax, dword [rsp + 0xc0]
cmp dword [rsp + 0x38], eax
jne 0x180044a0f
cmp dword [rsp + 0xc0], 0x40
jae 0x180044a0f
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 0x18004499f
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 0x180044a73
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 0x180044a71
jmp 0x18004488c
jmp 0x180044a78
jmp 0x18004488c
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 0x180044ae9
jmp 0x18004488c
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 0x180044b38
jmp 0x18004488c
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 0x180044b87
jmp 0x18004488c
mov rax, qword [rsp + 0x50]
movzx eax, word [rax]
cmp eax, 0x1001
jne 0x180044c9a
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.180043f10
mov rax, qword [rsp + 0x1300]
add rax, 0x20
mov rcx, rax
call fcn.180043e90
mov qword [rsp + 0x58], rax
jmp 0x180044bfb
mov rax, qword [rsp + 0x1300]
add rax, 0x20
mov rdx, qword [rsp + 0x58]
mov rcx, rax
call fcn.180043ea0
cmp qword [rsp + 0x58], 0
je 0x180044c9a
mov edx, 8
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x180044c2b
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x180044c9f
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
add rax, 0x10
lea rdx, [rsp + 0xa0]
mov rcx, rax
call fcn.180043f50
test eax, eax
je 0x180044c95
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.180043350
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 0x180044c9f
jmp 0x180044be2
jmp 0x18004488c
mov rcx, qword [rsp + 0x12d0]
xor rcx, rsp
call fcn.180033630
add rsp, 0x12e8
pop rdi
pop rsi
ret