Function at 0x140090c00
Capabilities:
Create tcp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Set socket configuration
Start tcp server

Disassembly:
mov qword [rsp + 8], rcx
mov eax, 0x1318
call fcn.140092d30
sub rsp, rax
mov rax, qword [0x1400b3040]
xor rax, rsp
mov qword [rsp + 0x1300], rax
mov dword [rsp + 0x28], 0
lea rdx, [rsp + 0x160]
mov cx, 0x202
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x140090c50
xor al, al
jmp 0x140091166
mov r8d, 6
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0xffffffffffffffff
jne 0x140090c80
call qword [sym.imp.WS2_32.dll_WSACleanup]
xor al, al
jmp 0x140091166
mov dword [rsp + 0x100], 1
lea r8, [rsp + 0x100]
mov edx, 0x8004667e
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov eax, 2
mov word [rsp + 0x128], ax
mov cx, 0xf822
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x12a], ax
mov ecx, 0x7f000001
call qword [sym.imp.WS2_32.dll_htonl]
mov dword [rsp + 0x12c], eax
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x128]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_bind]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0xffffffff
jne 0x140090d10
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
xor al, al
jmp 0x140091166
mov edx, 0x7fffffff
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_listen]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0xffffffff
jne 0x140090d43
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
xor al, al
jmp 0x140091166
mov qword [rsp + 0x48], 0xffffffffffffffff
mov rax, qword [rsp + 0x1320]
mov rcx, rax
call fcn.14005fde0
cmp dword [rax], 1
je 0x140090da4
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_accept]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0xffffffffffffffff
je 0x140090d80
jmp 0x140090da4
mov dword [rsp + 0x58], 0x32
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0xb8]
call fcn.1400659c0
mov rcx, rax
call fcn.1400659d0
jmp 0x140090d4c
mov rax, qword [rsp + 0x1320]
mov rcx, rax
call fcn.14005fde0
cmp dword [rax], 1
jne 0x140090dc0
xor al, al
jmp 0x140091166
lea rcx, [rsp + 0x108]
call fcn.140053d30
nop
mov rax, qword [rsp + 0x1320]
mov rcx, rax
call fcn.14005fde0
cmp dword [rax], 1
je 0x140090f85
mov r8d, 0x1000
xor edx, edx
lea rcx, [rsp + 0x300]
call sub.VCRUNTIME140.dll_memset
xor r9d, r9d
mov r8d, 0x1000
lea rdx, [rsp + 0x300]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.WS2_32.dll_recv]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0xffffffff
jne 0x140090e76
lea rdx, str.Error_in_recv__:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140060f10
mov qword [rsp + 0x78], rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0x5c], eax
mov edx, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov qword [rsp + 0x80], rax
lea rdx, [0x140090ba0]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140090f80
cmp dword [rsp + 0x38], 0
jne 0x140090eb2
lea rdx, str.Client_disconnected
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140060f10
mov qword [rsp + 0x88], rax
lea rdx, [0x140090ba0]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140090f80
lea rdx, [rsp + 0x300]
lea rcx, [rsp + 0x108]
call fcn.14006a7e0
lea rcx, [rsp + 0x108]
call fcn.14005fe10
cmp rax, 4
jbe 0x140090f42
lea rcx, [rsp + 0x108]
call fcn.14005fe10
sub rax, 4
mov r9, 0xffffffffffffffff
mov r8, rax
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x108]
call fcn.14007db90
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x28]
or eax, 1
mov dword [rsp + 0x28], eax
lea rdx, str._r_n_r_n
mov rcx, qword [rsp + 0x90]
call fcn.140060ec0
movzx eax, al
test eax, eax
je 0x140090f42
mov dword [rsp + 0x3c], 1
jmp 0x140090f4a
mov dword [rsp + 0x3c], 0
movzx eax, byte [rsp + 0x3c]
mov byte [rsp + 0x21], al
mov eax, dword [rsp + 0x28]
and eax, 1
test eax, eax
je 0x140090f70
and dword [rsp + 0x28], 0xfffffffe
lea rcx, [rsp + 0xc0]
call fcn.140054250
movzx eax, byte [rsp + 0x21]
test eax, eax
je 0x140090f7b
jmp 0x140090f85
jmp 0x140090dce
jmp 0x140090dce
mov byte [rsp + 0x20], 0
xor r8d, r8d
lea rdx, [0x140098ae8]
lea rcx, [rsp + 0x108]
call fcn.14007dbf0
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0xffffffffffffffff
je 0x140091057
mov r8, qword [rsp + 0x50]
lea rdx, [0x140098af0]
lea rcx, [rsp + 0x108]
call fcn.14007dbf0
mov qword [rsp + 0x70], rax
cmp qword [rsp + 0x70], 0xffffffffffffffff
je 0x140091057
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
sub rax, 5
mov rcx, qword [rsp + 0x50]
add rcx, 5
mov r9, rax
mov r8, rcx
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x108]
call fcn.14007db90
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x1320]
add rax, 0x10
mov rdx, qword [rsp + 0xa0]
mov rcx, rax
call fcn.140086e80
nop
lea rcx, [rsp + 0xe0]
call fcn.140054250
mov byte [rsp + 0x20], 1
movzx eax, byte [rsp + 0x20]
test eax, eax
je 0x140091075
mov rax, qword [rsp + 0x1320]
add rax, 0x1b8
mov qword [rsp + 0x68], rax
jmp 0x140091088
mov rax, qword [rsp + 0x1320]
add rax, 0x1d8
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xa8], rax
mov r8, qword [rsp + 0xa8]
lea rdx, str.HTTP_1.1_200_OK_r_nContent_Type:_text_html_r_n_r_n
lea rcx, [rsp + 0x138]
call fcn.1400610e0
lea rcx, [rsp + 0x138]
call fcn.14005fe10
inc rax
mov dword [rsp + 0x60], eax
lea rcx, [rsp + 0x138]
call fcn.14005fe20
mov qword [rsp + 0xb0], rax
xor r9d, r9d
mov r8d, dword [rsp + 0x60]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
lea rcx, [rsp + 0x138]
call fcn.140054250
mov rax, qword [rsp + 0x1320]
add rax, 0x10
mov rcx, rax
call fcn.140086f70
movzx eax, al
test eax, eax
jne 0x140091143
mov dword [rsp + 0x40], 1
jmp 0x14009114b
mov dword [rsp + 0x40], 0
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x22], al
lea rcx, [rsp + 0x108]
call fcn.140054250
movzx eax, byte [rsp + 0x22]
mov rcx, qword [rsp + 0x1300]
xor rcx, rsp
call fcn.140092450
add rsp, 0x1318
ret