Function at 0x1400044e0
Capabilities:
Get socket status
Initialize winsock library
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb60]
sub rsp, 0xc60
mov rax, qword [0x14005a058]
xor rax, rsp
mov qword [rbp + 0xb50], rax
mov r15d, ecx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.libssl_3_x64.dll_OPENSSL_init_ssl]
xor edx, edx
lea ecx, [rdx + 0xc]
call qword [sym.imp.libcrypto_3_x64.dll_OPENSSL_init_crypto]
xor edx, edx
mov ecx, 0x200002
call qword [sym.imp.libssl_3_x64.dll_OPENSSL_init_ssl]
call qword [sym.imp.libssl_3_x64.dll_TLS_server_method]
mov rcx, rax
call qword [sym.imp.libssl_3_x64.dll_SSL_CTX_new]
mov r14, rax
test rax, rax
jne 0x1400045ab
lea rdx, str.Error_creating_SSL_context.
lea rcx, [0x14005b7c0]
call fcn.14000a5c0
mov rcx, rax
call fcn.14000a880
lea rcx, str.pause
call fcn.14001f434
mov rcx, qword [rbp + 0xb50]
xor rcx, rsp
call fcn.1400151d0
lea r11, [rsp + 0xc60]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
xor r13d, r13d
mov qword [rbp + 0xc0], r13
xor edx, edx
lea ecx, [rdx + 6]
call qword [sym.imp.libcrypto_3_x64.dll_EVP_PKEY_CTX_new_id]
mov rbx, rax
mov rcx, rax
call qword [sym.imp.libcrypto_3_x64.dll_EVP_PKEY_keygen_init]
mov edx, 0x800
mov rcx, rbx
call qword [sym.imp.libcrypto_3_x64.dll_EVP_PKEY_CTX_set_rsa_keygen_bits]
lea rdx, [rbp + 0xc0]
mov rcx, rbx
call qword [sym.imp.libcrypto_3_x64.dll_EVP_PKEY_keygen]
mov rsi, qword [rbp + 0xc0]
call qword [sym.imp.libcrypto_3_x64.dll_X509_new]
mov rdi, rax
mov r12d, 2
mov edx, r12d
mov rcx, rax
call qword [sym.imp.libcrypto_3_x64.dll_X509_set_version]
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_get_serialNumber]
mov rcx, rax
xor edx, edx
call qword [sym.imp.libcrypto_3_x64.dll_ASN1_INTEGER_set]
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_getm_notBefore]
mov rcx, rax
xor edx, edx
call qword [sym.imp.libcrypto_3_x64.dll_X509_gmtime_adj]
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_getm_notAfter]
mov rcx, rax
mov edx, 0x1e13380
call qword [sym.imp.libcrypto_3_x64.dll_X509_gmtime_adj]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_set_pubkey]
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_get_subject_name]
mov rbx, rax
mov dword [rsp + 0x30], r13d
mov rax, 0xffffffffffffffff
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
lea r9, [0x1400530c0]
mov r8d, 0x1001
lea rdx, [0x140053010]
mov rcx, rbx
call qword [sym.imp.libcrypto_3_x64.dll_X509_NAME_add_entry_by_txt]
mov dword [rsp + 0x30], r13d
mov rax, 0xffffffffffffffff
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
lea r9, [0x1400530c4]
mov r8d, 0x1001
lea rdx, [0x1400530c4]
mov rcx, rbx
call qword [sym.imp.libcrypto_3_x64.dll_X509_NAME_add_entry_by_txt]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_set_issuer_name]
call qword [sym.imp.libcrypto_3_x64.dll_EVP_md5]
mov r8, rax
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.libcrypto_3_x64.dll_X509_sign]
mov rdx, rdi
mov rcx, r14
call qword [sym.imp.libssl_3_x64.dll_SSL_CTX_use_certificate]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.libssl_3_x64.dll_SSL_CTX_use_PrivateKey]
mov ecx, 0x202
lea rdx, [rbp + 0x330]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x140004720
lea rdx, str.Error_initializing_Winsock
jmp 0x14000455b
mov dword [rbp + 0xd8], 1
lea rax, [fcn.140006c90]
mov qword [rsp + 0x20], rax
lea r9, [0x140006f60]
mov edx, 0x20
lea r8d, [rdx - 0xc]
lea rcx, [rbp + 0x4d0]
call fcn.140015330
nop
mov rbx, r13
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
nop dword [rax]
mov rcx, r14
call qword [sym.imp.libssl_3_x64.dll_SSL_new]
mov qword [rbp + rbx*8 + 0x20], rax
inc rbx
cmp rbx, 0x14
jl 0x140004770
xor r8d, r8d
lea edx, [r8 + 1]
mov ecx, r12d
call qword [sym.imp.WS2_32.dll_socket]
mov rdi, rax
mov qword [rbp - 0x78], rax
cmp eax, 0xffffffff
jne 0x1400047b6
lea r14, [0x14005b7c0]
lea rdx, str.Error_creating_socket.
jmp 0x140005063
movsxd rbx, eax
mov qword [rbp - 0x80], rbx
mov dword [rsp + 0x20], 4
lea r9, [rbp + 0xd8]
mov edx, 0xffff
mov r8d, 4
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x1400047f8
lea r14, [0x14005b7c0]
lea rdx, str.Error_setting_multiple_connections.
jmp 0x140005063
mov word [rbp + 0xc8], r12w
xor r12d, r12d
mov dword [rbp + 0xcc], r12d
movzx ecx, r15w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0xca], ax
lea r8d, [r12 + 0x10]
lea rdx, [rbp + 0xc8]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x140004848
lea r14, [0x14005b7c0]
lea rdx, str.Error_binding_socket.
jmp 0x140005063
mov edx, 5
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
jne 0x14000486e
lea r14, [0x14005b7c0]
lea rdx, str.Error_listening_for_connections.
jmp 0x140005063
lea rdx, str.Server_listening_on_port
lea rcx, [0x14005b640]
call fcn.14000a5c0
mov edx, r15d
mov rcx, rax
call fcn.140005e40
mov rcx, rax
call fcn.14000a880
mov dword [rbp + 0xdc], setsockopt
lea r14, [0x14005b7c0]
movabs r15, 0x7fffffffffffffff
nop
mov qword [rbp + 0x128], rbx
mov edx, 1
mov dword [rbp + 0x120], edx
mov r9d, edi
mov r11, r12
nop dword [rax + rax]
movsxd r10, dword [rbp + r11*4 - 0x60]
test r10d, r10d
jle 0x140004919
mov r8d, r12d
test edx, edx
je 0x1400048f6
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r10
je 0x1400048f6
inc r8d
cmp r8d, edx
jb 0x1400048e1
cmp r8d, edx
jne 0x140004919
cmp edx, 0x40
jae 0x140004919
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r10
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r10d, r9d
cmovle r10d, r9d
movsxd r9, dword [rbp + r11*4 - 0x5c]
test r9d, r9d
jle 0x140004969
mov r8d, r12d
test edx, edx
je 0x140004946
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r9
je 0x140004946
inc r8d
cmp r8d, edx
jb 0x140004931
cmp r8d, edx
jne 0x140004969
cmp edx, 0x40
jae 0x140004969
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r9
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r9d, r10d
cmovle r9d, r10d
movsxd r10, dword [rbp + r11*4 - 0x58]
test r10d, r10d
jle 0x1400049b9
mov r8d, r12d
test edx, edx
je 0x140004996
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r10
je 0x140004996
inc r8d
cmp r8d, edx
jb 0x140004981
cmp r8d, edx
jne 0x1400049b9
cmp edx, 0x40
jae 0x1400049b9
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r10
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r10d, r9d
cmovle r10d, r9d
movsxd r9, dword [rbp + r11*4 - 0x54]
test r9d, r9d
jle 0x140004a09
mov r8d, r12d
test edx, edx
je 0x1400049e6
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r9
je 0x1400049e6
inc r8d
cmp r8d, edx
jb 0x1400049d1
cmp r8d, edx
jne 0x140004a09
cmp edx, 0x40
jae 0x140004a09
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r9
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r9d, r10d
cmovle r9d, r10d
movsxd r10, dword [rbp + r11*4 - 0x50]
test r10d, r10d
jle 0x140004a59
mov r8d, r12d
test edx, edx
je 0x140004a36
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r10
je 0x140004a36
inc r8d
cmp r8d, edx
jb 0x140004a21
cmp r8d, edx
jne 0x140004a59
cmp edx, 0x40
jae 0x140004a59
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r10
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r10d, r9d
cmovle r10d, r9d
movsxd r9, dword [rbp + r11*4 - 0x4c]
test r9d, r9d
jle 0x140004aa9
mov r8d, r12d
test edx, edx
je 0x140004a86
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r9
je 0x140004a86
inc r8d
cmp r8d, edx
jb 0x140004a71
cmp r8d, edx
jne 0x140004aa9
cmp edx, 0x40
jae 0x140004aa9
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r9
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r9d, r10d
cmovle r9d, r10d
movsxd r10, dword [rbp + r11*4 - 0x48]
test r10d, r10d
jle 0x140004af9
mov r8d, r12d
test edx, edx
je 0x140004ad6
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r10
je 0x140004ad6
inc r8d
cmp r8d, edx
jb 0x140004ac1
cmp r8d, edx
jne 0x140004af9
cmp edx, 0x40
jae 0x140004af9
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r10
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r10d, r9d
cmovle r10d, r9d
movsxd r9, dword [rbp + r11*4 - 0x44]
test r9d, r9d
jle 0x140004b49
mov r8d, r12d
test edx, edx
je 0x140004b26
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r9
je 0x140004b26
inc r8d
cmp r8d, edx
jb 0x140004b11
cmp r8d, edx
jne 0x140004b49
cmp edx, 0x40
jae 0x140004b49
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r9
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r9d, r10d
cmovle r9d, r10d
movsxd r10, dword [rbp + r11*4 - 0x40]
test r10d, r10d
jle 0x140004b99
mov r8d, r12d
test edx, edx
je 0x140004b76
mov eax, r8d
cmp qword [rbp + rax*8 + 0x128], r10
je 0x140004b76
inc r8d
cmp r8d, edx
jb 0x140004b61
cmp r8d, edx
jne 0x140004b99
cmp edx, 0x40
jae 0x140004b99
mov eax, r8d
mov qword [rbp + rax*8 + 0x128], r10
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r10d, r9d
cmovle r10d, r9d
movsxd r9, dword [rbp + r11*4 - 0x3c]
test r9d, r9d
jle 0x140004be4
mov eax, r12d
test edx, edx
je 0x140004bc3
mov ecx, eax
cmp qword [rbp + rcx*8 + 0x128], r9
je 0x140004bc3
inc eax
cmp eax, edx
jb 0x140004bb1
cmp eax, edx
jne 0x140004be4
cmp edx, 0x40
jae 0x140004be4
mov ecx, eax
mov qword [rbp + rcx*8 + 0x128], r9
mov edx, dword [rbp + 0x120]
inc edx
mov dword [rbp + 0x120], edx
cmp r9d, r10d
cmovle r9d, r10d
add r11, 0xa
cmp r11, 0x14
jl 0x1400048d0
lea ecx, [r9 + 1]
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x120]
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jns 0x140004c2f
call fcn.14001fa98
cmp dword [rax], 4
je 0x140004c2f
lea rcx, str.select_error
call fcn.140001300
lea rdx, [rbp + 0x120]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x140004ce1
lea r8, [rbp + 0xdc]
lea rdx, [rbp + 0xc8]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_accept]
mov rsi, rax
cmp eax, 0xffffffff
je 0x14000505c
mov edi, r12d
mov rbx, r12
cmp dword [rbp + rbx*4 - 0x60], 0
je 0x140004c84
inc edi
inc rbx
cmp rbx, 0x14
jl 0x140004c70
jmp 0x140004ce1
mov dword [rbp + rbx*4 - 0x60], esi
mov ecx, dword [rbp + 0xcc]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov rdx, rax
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x140004ca0
movsxd rax, edi
shl rax, 5
lea rcx, [rbp + 0x4d0]
add rcx, rax
call fcn.14000a1c0
mov rbx, qword [rbp + rbx*8 + 0x20]
mov edx, esi
mov rcx, rbx
call qword [sym.imp.libssl_3_x64.dll_SSL_set_fd]
mov rcx, rbx
call qword [sym.imp.libssl_3_x64.dll_SSL_accept]
test eax, eax
jle 0x14000503a
mov esi, r12d
mov dword [rbp + 0xc0], r12d
mov r13, r12
nop
movsxd rdi, dword [rbp + r13*4 - 0x60]
lea rdx, [rbp + 0x120]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x140005018
mov rbx, qword [rbp + r13*8 + 0x20]
mov r8d, 0x400
lea rdx, [rbp + 0x750]
mov rcx, rbx
call qword [sym.imp.libssl_3_x64.dll_SSL_read]
test eax, eax
jg 0x140004d7f
lea rdx, str.Error_receiving_data_or_client_is_disconnected
mov rcx, r14
call fcn.14000a5c0
mov rcx, rax
call fcn.14000a880
mov rcx, rbx
call qword [sym.imp.libssl_3_x64.dll_SSL_free]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
mov dword [rbp + r13*4 - 0x60], r12d
movsxd rax, esi
shl rax, 5
lea rcx, [rbp + 0x4d0]
add rcx, rax
xor r8d, r8d
lea rdx, [0x140052fbb]
call fcn.14000a1c0
jmp 0x140005004
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
mov ecx, 0x400
call fcn.1400151f8
mov rsi, rax
mov qword [rbp + 0xe0], rax
lea rdi, [rax + 0x400]
mov qword [rbp + 0xf0], rdi
mov r8d, 0x400
lea rdx, [rbp + 0x750]
mov rcx, rax
call fcn.1400170e0
mov qword [rbp + 0xe8], rdi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r12
sub rdi, rsi
je 0x140004e1e
cmp rdi, r15
ja 0x1400050b3
cmp rdi, 0x1000
jae 0x1400050ad
mov rcx, rdi
call fcn.1400151f8
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
lea rbx, [rax + rdi]
mov qword [rsp + 0x78], rbx
mov r8, rdi
mov rdx, rsi
mov rcx, rax
call fcn.1400170e0
mov qword [rsp + 0x70], rbx
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0xf8]
call fcn.140002970
nop
lea rax, [rsp + 0x48]
mov qword [rbp - 0x70], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
lea r12, [rbp + 0xf8]
mov rbx, qword [rbp + 0x110]
cmp rbx, 0x10
setae byte [rsp + 0x40]
mov r15, qword [rbp + 0xf8]
cmovae r12, r15
mov r14, qword [rbp + 0x108]
movabs rax, 0x7fffffffffffffff
cmp r14, rax
ja 0x1400050a7
mov qword [rsp + 0x60], setsockopt
cmp r14, 0x10
jae 0x140004eb3
mov qword [rsp + 0x58], r14
mov r8d, setsockopt
mov rdx, r12
lea rcx, [rsp + 0x48]
call fcn.1400170e0
jmp 0x140004f4e
mov rbx, r14
or rbx, 0xf
cmp rbx, rax
jbe 0x140004ec4
mov rbx, rax
jmp 0x140004ed1
cmp rbx, 0x16
mov eax, socket
cmovb rbx, rax
mov rcx, rbx
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x140004f1b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400050bf
mov rcx, rax
call fcn.1400151f8
mov rcx, rax
test rax, rax
je 0x1400050b9
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140004f29
test rcx, rcx
je 0x140004f27
call fcn.1400151f8
jmp 0x140004f29
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rbx
lea r8, [r14 + 1]
mov rdx, r12
mov rcx, rax
call fcn.1400170e0
mov rbx, qword [rbp + 0x110]
movsxd rax, dword [rbp + 0xc0]
shl rax, 5
lea rdx, [rbp + 0x4d0]
add rdx, rax
lea rcx, [rbp - 8]
call fcn.140006e40
nop
lea rdx, [rsp + 0x48]
mov rcx, rax
call fcn.140003a40
nop
cmp byte [rsp + 0x40], 0
je 0x140004fb4
lea rdx, [rbx + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x140004fab
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400050c5
mov rcx, r15
call fcn.1400151f0
nop
test rsi, rsi
je 0x140004fea
cmp rdi, 0x1000
jb 0x140004fdf
mov edi, 0x427
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x1400050a1
mov rsi, rcx
mov rdx, rdi
mov rcx, rsi
call fcn.1400151f0
movabs r15, 0x7fffffffffffffff
xor r12d, r12d
lea r14, [0x14005b7c0]
mov esi, dword [rbp + 0xc0]
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x750]
call fcn.140017830
inc esi
mov dword [rbp + 0xc0], esi
inc r13
cmp r13, 0x14
jl 0x140004cf0
mov rbx, qword [rbp - 0x80]
mov rdi, qword [rbp - 0x78]
jmp 0x1400048b0
lea rdx, str.Error_accepting_SSL_handshake.
mov rcx, r14
call fcn.14000a5c0
mov rcx, rax
call fcn.14000a880
mov rcx, rbx
call qword [sym.imp.libssl_3_x64.dll_SSL_free]
jmp 0x140005073
lea rdx, str.Accept_error.
mov rcx, r14
call fcn.14000a5c0
mov rcx, rax
call fcn.14000a880
lea rcx, str.pause
call fcn.14001f434
nop
lea r9, [fcn.140006c90]
mov edx, 0x20
lea r8d, [rdx - 0xc]
lea rcx, [rbp + 0x4d0]
call fcn.140015234
jmp 0x14000457b
call fcn.140020a90
nop
call fcn.140001550
nop
call fcn.1400014b0
int3
call fcn.14000c070
nop
call fcn.140020a90
int3
call fcn.1400014b0
nop
call fcn.140020a90
int3