Function at 0x140055030
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2c8
mov edi, dword [rsp + 0x330]
mov ebx, dword [rsp + 0x350]
mov r13, rcx
mov r12, rdx
mov rsi, r8
mov ebp, r9d
mov qword [rsp + 0x60], 0
call sub.libcrypto_1_1_x64.dll_BIO_sock_init
cmp eax, 1
je 0x140055090
xor r15d, r15d
mov eax, r15d
add rsp, 0x2c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x60]
mov dword [rsp + 0x20], edi
mov r9d, ebp
mov rdx, rsi
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x338]
mov r8d, 1
mov rcx, r12
mov dword [rsp + 0x28], eax
call sub.libcrypto_1_1_x64.dll_BIO_lookup_ex
test eax, eax
je 0x1400552e0
mov rcx, qword [rsp + 0x60]
test ebp, ebp
jne 0x1400551e8
test edi, edi
jne 0x140055200
mov eax, dword [rsp + 0x338]
test eax, eax
je 0x1400550fc
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_protocol
cmp eax, dword [rsp + 0x338]
jne 0x140055719
mov rcx, qword [rsp + 0x60]
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_family
mov rcx, qword [rsp + 0x60]
xor r14d, r14d
mov esi, eax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_socktype
mov rcx, qword [rsp + 0x60]
mov r15d, eax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_protocol
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x58], eax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_address
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_next
cmp esi, 0x17
sete r14b
mov rcx, rax
lea r14d, [r14 + r14 + 1]
test rax, rax
je 0x140055166
mov qword [rsp + 0x48], rax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_socktype
mov rcx, qword [rsp + 0x48]
cmp eax, r15d
je 0x140055580
mov r8d, dword [rsp + 0x58]
mov ecx, esi
xor r9d, r9d
mov edx, r15d
call sub.libcrypto_1_1_x64.dll_BIO_socket
mov esi, eax
cmp esi, 0xffffffff
je 0x1400552f8
mov rdx, qword [rsp + 0x40]
mov r8d, r14d
mov ecx, esi
call sub.libcrypto_1_1_x64.dll_BIO_listen
test eax, eax
jne 0x140055220
mov rcx, qword [rsp + 0x60]
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_free
mov rax, qword [0x14009a8a0]
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_ERR_print_errors
mov ecx, esi
call sub.libcrypto_1_1_x64.dll_BIO_closesocket
xor r15d, r15d
nop dword [rax]
cmp ebp, 1
je 0x140055320
mov rcx, qword [0x1400a1640]
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_free
mov qword [0x1400a1640], 0
jmp 0x140055073
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_family
cmp eax, ebp
jne 0x140055719
mov rcx, qword [rsp + 0x60]
jmp 0x1400550d2
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_socktype
cmp eax, edi
jne 0x140055719
mov rcx, qword [rsp + 0x60]
jmp 0x1400550da
mov rcx, qword [rsp + 0x40]
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_rawport
mov rcx, qword [rsp + 0x60]
mov r14d, eax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_free
mov qword [rsp + 0x60], 0
test r14w, r14w
jne 0x140055330
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_new
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x140055275
xor edx, edx
lea r8, [rsp + 0xb0]
mov ecx, esi
call sub.libcrypto_1_1_x64.dll_BIO_sock_info
test eax, eax
jne 0x1400555cb
xor r14d, r14d
mov rcx, qword [rsp + 0x358]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xb
lea rbx, str..._openssl_1.1.1s_apps_s_socket.c
call sub.libcrypto_1_1_x64.dll_BIO_ctrl
mov r8d, 0x13e
mov rdx, rbx
mov rcx, r14
call sub.libcrypto_1_1_x64.dll_CRYPTO_free
xor ecx, ecx
mov r8d, 0x13f
mov rdx, rbx
call sub.libcrypto_1_1_x64.dll_CRYPTO_free
mov rcx, qword [rsp + 0xb0]
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_free
mov ecx, esi
call sub.libcrypto_1_1_x64.dll_BIO_closesocket
mov rax, qword [0x14009a8a0]
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_ERR_print_errors
jmp 0x1400551ba
mov rax, qword [0x14009a8a0]
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_ERR_print_errors
jmp 0x140055070
mov rcx, qword [rsp + 0x60]
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_free
mov rax, qword [0x14009a8a0]
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_ERR_print_errors
jmp 0x1400551ba
mov rcx, r12
call sub.msvcrt.dll__unlink
jmp 0x1400551c9
mov rcx, qword [rsp + 0x358]
lea rdx, str.ACCEPT_n
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor r9d, r9d
xor r8d, r8d
mov edx, 0xb
mov rcx, qword [rsp + 0x358]
call sub.libcrypto_1_1_x64.dll_BIO_ctrl
test r13, r13
je 0x140055365
mov dword [r13], esi
mov r13d, ebx
nop dword [rax + rax]
cmp edi, 1
je 0x1400553c9
mov r8d, dword [rsp + 0x338]
mov r9, qword [rsp + 0x348]
mov edx, edi
mov ecx, esi
call qword [rsp + 0x340]
mov r8d, eax
cmp r13d, 0xffffffff
je 0x1400553c0
sub r13d, 1
test r8d, r8d
js 0x1400553a7
test r13d, r13d
jne 0x140055370
mov r15d, r8d
mov ecx, esi
call sub.libcrypto_1_1_x64.dll_BIO_closesocket
jmp 0x1400551c0
test eax, eax
js 0x1400553a7
cmp edi, 1
jne 0x140055375
mov qword [rsp + 0x318], r12
mov dword [rsp + 0x328], ebp
mov dword [rsp + 0x330], edi
mov dword [rsp + 0x350], r13d
mov rcx, qword [0x1400a1640]
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_free
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_new
mov qword [0x1400a1640], rax
mov rdx, rax
test rax, rax
jne 0x140055424
jmp 0x1400556a8
call sub.libcrypto_1_1_x64.dll_BIO_sock_should_retry
test eax, eax
je 0x140055530
mov rdx, qword [0x1400a1640]
mov ecx, esi
xor r8d, r8d
call sub.libcrypto_1_1_x64.dll_BIO_accept_ex
mov ecx, eax
test eax, eax
js 0x140055410
mov edx, 1
mov dword [rsp + 0x40], eax
lea r12, [rsp + 0x68]
lea r13, [rsp + 0xb0]
call sub.libcrypto_1_1_x64.dll_BIO_set_tcp_ndelay
mov ecx, dword [rsp + 0x40]
mov edx, 1
mov r9, qword [rsp + 0x348]
mov r8d, dword [rsp + 0x338]
lea r15, [rsp + 0x70]
call qword [rsp + 0x340]
movsxd rbx, dword [rsp + 0x40]
mov edx, 1
mov ebp, eax
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_shutdown]
mov rax, qword [0x1400999c8]
mov r10d, dword [rsp + 0x40]
mov rdi, qword [sym.imp.WS2_32.dll_select]
mov qword [rsp + 0x68], rax
lea r14d, [r10 + 1]
jmp 0x1400554c9
xor r9d, r9d
mov r8d, 0x40
mov rdx, r15
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x1400554f3
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r12
mov rdx, r13
mov qword [rsp + 0xb8], rbx
mov ecx, r14d
mov dword [rsp + 0xb0], 1
call rdi
test eax, eax
jg 0x1400554b0
mov ecx, dword [rsp + 0x40]
call sub.libcrypto_1_1_x64.dll_BIO_closesocket
cmp dword [rsp + 0x350], 0xffffffff
je 0x140055560
mov r8d, ebp
mov r12, qword [rsp + 0x318]
mov ebp, dword [rsp + 0x328]
mov edi, dword [rsp + 0x330]
mov r13d, dword [rsp + 0x350]
jmp 0x140055399
mov r15d, eax
mov rax, qword [0x14009a8a0]
mov r12, qword [rsp + 0x318]
mov ebp, dword [rsp + 0x328]
mov rcx, qword [rax]
call sub.libcrypto_1_1_x64.dll_ERR_print_errors
mov ecx, esi
call sub.libcrypto_1_1_x64.dll_BIO_closesocket
jmp 0x1400551c0
test ebp, ebp
jns 0x1400553e7
mov r15d, ebp
mov r12, qword [rsp + 0x318]
mov ebp, dword [rsp + 0x328]
jmp 0x1400553aa
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x5c], eax
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_protocol
mov edx, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x48], eax
cmp eax, edx
jne 0x140055166
cmp esi, 2
je 0x1400556bc
cmp esi, 0x17
jne 0x140055166
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_family
cmp eax, 2
mov eax, 1
cmove r14d, eax
jmp 0x140055166
mov rcx, qword [rsp + 0xb0]
mov edx, 1
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_hostname_string
mov r14, rax
test rax, rax
je 0x140055275
mov rcx, qword [rsp + 0xb0]
mov edx, 1
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_service_string
mov r15, rax
test rax, rax
je 0x140055278
mov edx, 0x3a
mov rcx, r14
call sub.msvcrt.dll_strchr
lea rdx, str.ACCEPT___s_:_s_n
mov r9, r15
mov r8, r14
test rax, rax
lea rax, str.ACCEPT__s:_s_n
mov rcx, qword [rsp + 0x358]
cmove rdx, rax
call sub.libcrypto_1_1_x64.dll_BIO_printf
xor r9d, r9d
xor r8d, r8d
mov edx, 0xb
mov rcx, qword [rsp + 0x358]
mov dword [rsp + 0x40], eax
call sub.libcrypto_1_1_x64.dll_BIO_ctrl
mov r8d, 0x13e
lea rdx, str..._openssl_1.1.1s_apps_s_socket.c
mov rcx, r14
call sub.libcrypto_1_1_x64.dll_CRYPTO_free
mov r8d, 0x13f
lea rdx, str..._openssl_1.1.1s_apps_s_socket.c
mov rcx, r15
call sub.libcrypto_1_1_x64.dll_CRYPTO_free
mov rcx, qword [rsp + 0xb0]
call sub.libcrypto_1_1_x64.dll_BIO_ADDR_free
mov r10d, dword [rsp + 0x40]
test r10d, r10d
jg 0x14005535c
jmp 0x1400552c5
mov r12, qword [rsp + 0x318]
mov ebp, dword [rsp + 0x328]
jmp 0x1400552c5
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_family
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x5c]
cmp eax, 0x17
jne 0x140055166
mov dword [rsp + 0x58], edx
call sub.libcrypto_1_1_x64.dll_BIO_ADDRINFO_address
mov edx, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x48]
xor r9d, r9d
mov ecx, 0x17
mov r15, rax
call sub.libcrypto_1_1_x64.dll_BIO_socket
mov edx, dword [rsp + 0x58]
cmp eax, 0xffffffff
mov esi, eax
jne 0x140055732
mov r8d, dword [rsp + 0x48]
xor r9d, r9d
mov ecx, 2
call sub.libcrypto_1_1_x64.dll_BIO_socket
mov esi, eax
jmp 0x14005517a
mov r8d, 0xe9
lea rdx, str..._openssl_1.1.1s_apps_s_socket.c
lea rcx, str.assertion_failed:__family__AF_UNSPEC__family__BIO_ADDRINFO_family_res_____type__0__type__BIO_ADDRINFO_socktype_res_____protocol__0__protocol__BIO_ADDRINFO_protocol_res__
call sub.libcrypto_1_1_x64.dll_OPENSSL_die
mov qword [rsp + 0x40], r15
jmp 0x140055183