Function at 0x40379b
Capabilities:
Create tcp socket
Create udp socket
Execute command
Initialize winsock library
Receive data
Receive data on socket
Start tcp server

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
sub rsp, 0x8f0
lea rbp, [rsp + 0x80]
call dbg.__main
lea rcx, str.title_WMWebServer
call sym.system
lea rdx, [0x0048e13d]
lea rcx, str.WMWebServer__s_nMinGW_ISO_C_11_Edition_nWMProject1217_Studios_2023_n
call sym.printf
mov qword [rbp + 0x868], 0
lea rax, [rbp + 0x7bf]
mov rcx, rax
call fcn.00449570
lea rax, [rbp + 0x7df]
mov rcx, rax
call fcn.00449570
lea rdx, [rbp + 0x7df]
lea rax, [rbp + 0x7d0]
mov r8, rdx
lea rdx, str.1217
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x7ef]
mov rcx, rax
call fcn.00449570
lea rdx, [rbp + 0x7ef]
lea rax, [rbp + 0x7e0]
mov r8, rdx
lea rdx, str.port
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x7ff]
mov rcx, rax
call fcn.00449570
lea rdx, [rbp + 0x7ff]
lea rax, [rbp + 0x7f0]
mov r8, rdx
lea rdx, str.._config.wmst
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x7c0]
lea r8, [rbp + 0x7d0]
lea rcx, [rbp + 0x7e0]
lea rdx, [rbp + 0x7f0]
mov r9, r8
mov r8, rcx
mov rcx, rax
call sym.WMSTConfigRead_std::string__std::string__std::string_
lea rax, [rbp + 0x7c0]
mov rcx, rax
call method.std::string.c_str___const
mov rcx, rax
lea rdx, [rbp + 0x7bf]
lea rax, [rbp + 0x780]
mov r8, rdx
mov rdx, rcx
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x7c0]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x7f0]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x7ff]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x7e0]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x7ef]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x7d0]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x7df]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x7bf]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rdx, [rbp + 0x780]
lea rax, [rbp + 0x800]
mov rcx, rax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::string_const_
lea rax, [rbp + 0x81f]
mov rcx, rax
call fcn.00449570
lea rdx, [rbp + 0x81f]
lea rax, [rbp + 0x810]
mov r8, rdx
lea rdx, str.port
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x82f]
mov rcx, rax
call fcn.00449570
lea rdx, [rbp + 0x82f]
lea rax, [rbp + 0x820]
mov r8, rdx
lea rdx, str.._config.wmst
mov rcx, rax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rcx, [rbp + 0x800]
lea rdx, [rbp + 0x810]
lea rax, [rbp + 0x820]
mov r8, rcx
mov rcx, rax
call sym.WMSTConfigWrite_std::string__std::string__std::string_
lea rax, [rbp + 0x820]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x82f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x810]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x81f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x800]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x780]
mov rcx, rax
call method.std::string.c_str___const
mov rcx, rax
call sym.atoi
mov word [rbp + 0x866], ax
mov eax, 0x10
mov dword [rbp + 0x77c], eax
mov dword [rbp + 0x860], 0
mov dword [rbp + 0x85c], 0
lea rax, [rbp - 0x50]
mov rdx, rax
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x868], rax
cmp qword [rbp + 0x868], 0xffffffffffffffff
jne 0x403ad3
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
lea rcx, str._WebService__socket___Fails__error__d_n
call sym.printf
lea rcx, str.pause
call sym.system
mov ebx, 0
jmp 0x403d8f
mov word [rbp + 0x7a0], 2
movzx eax, word [rbp + 0x866]
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x7a2], ax
mov ecx, 0
mov rax, qword [sym.imp.WS2_32.dll_htonl]
call rax
mov dword [rbp + 0x7a4], eax
mov ecx, 0x10
lea rdx, [rbp + 0x7a0]
mov rax, qword [rbp + 0x868]
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_bind]
call rax
mov dword [rbp + 0x860], eax
cmp dword [rbp + 0x860], 0xffffffff
jne 0x403b86
mov rax, qword [rbp + 0x868]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
lea rcx, str.bind:
call sym.perror
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
lea rcx, str._WebService__FAIL__Fail_to_bind__error__d_n
call sym.printf
lea rcx, str.pause
call sym.system
mov ebx, 0
jmp 0x403d8f
mov rax, qword [rbp + 0x868]
mov edx, 0x7fffffff
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_listen]
call rax
mov dword [rbp + 0x860], eax
lea rcx, str._WebService__The_server_is_running......
call sym.puts
lea rcx, [rbp + 0x77c]
lea rdx, [rbp + 0x790]
mov rax, qword [rbp + 0x868]
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_accept]
call rax
mov qword [rbp + 0x7b0], rax
mov rax, qword [rbp + 0x7b0]
cmp rax, 0xffffffffffffffff
jne 0x403c04
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
lea rcx, str._WebService__FAIL__Fail_to_accept__error__d_n
call sym.printf
jmp 0x403d8a
movzx eax, word [rbp + 0x792]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_ntohs]
call rax
movzx edi, ax
mov eax, dword [rbp + 0x794]
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_inet_ntoa]
call rax
mov r8d, edi
mov rdx, rax
lea rcx, str._WebService__Accepted_address:__s___port:__d__n
call sym.printf
lea rax, [rbp + 0x150]
mov rcx, rax
call fcn.0040279e
mov rax, qword [rbp + 0x7b0]
lea rdx, [rbp + 0x150]
mov r9d, 0
mov r8d, 0x400
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x85c], eax
cmp dword [rbp + 0x85c], 0xffffffff
jne 0x403cb7
mov rax, qword [rbp + 0x7b0]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
lea rcx, str._WebService__FAIL__Fail_to_recv__error__d_n
call sym.printf
mov edi, 0
jmp 0x403d75
mov eax, dword [rbp + 0x85c]
cdqe
mov byte [rbp + rax + 0x150], 0
mov rax, qword [rbp + 0x7b0]
mov qword [rbp + 0x550], rax
lea rax, [rbp + 0x830]
lea rdx, [rbp + 0x150]
mov rcx, rax
call method.HttpService.AnalyRecvBuffer__
lea rax, [rbp + 0x150]
mov qword [rbp + 0x838], rax
lea rbx, [method.HttpService.HttpResponsePRO_unsigned_long_long__std::string_]
mov esi, 0
mov qword [rbp + 0x840], rbx
mov qword [rbp + 0x848], rsi
lea r9, [rbp + 0x7b0]
lea r8, [rbp + 0x838]
lea rdx, [rbp + 0x840]
lea rax, [rbp + 0x770]
lea rcx, [rbp + 0x830]
mov qword [rsp + 0x20], rcx
mov rcx, rax
call method.std::thread.thread_void__HttpService::__unsigned_long_long__std::string___HttpService__unsigned_long_long__std::string__void__HttpService::__unsigned_long_long__std::string___HttpService__unsigned_long_long__std::string_
lea rax, [rbp + 0x830]
mov rcx, rax
call fcn.00452c00
lea rax, [rbp + 0x770]
mov rcx, rax
call method.std::thread.detach__
lea rax, [rbp + 0x770]
mov rcx, rax
call method.std::thread.thread__
mov edi, 1
lea rax, [rbp + 0x150]
mov rcx, rax
call method.HttpService.HttpService__
cmp edi, 1
jne 0x403d8a
nop
jmp 0x403bb0
lea rax, [rbp + 0x780]
mov rcx, rax
call fcn.00452c00
mov eax, ebx
jmp 0x403f66
add rsp, 0x8f0
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret