Function at 0x180129e00
Capabilities:
Get socket status

Disassembly:
mov r11, rsp
push rbp
push rsi
push r12
push r15
lea rbp, [r11 - 0x5a8]
sub rsp, 0x688
mov rax, qword [0x18020ce50]
xor rax, rsp
mov qword [rbp + 0x570], rax
mov r12d, r8d
mov rsi, rdx
mov r15, rcx
test rcx, rcx
je 0x18012a07f
mov qword [r11 + 0x10], rbx
xor ebx, ebx
mov qword [r11 + 0x20], rdi
mov r9d, ebx
mov dword [rsp + 0x40], ebx
mov r8d, ebx
mov dword [rbp + 0x150], ebx
mov edx, ebx
mov dword [rbp + 0x360], ebx
test rsi, rsi
je 0x180129f6f
mov qword [r11 - 0x28], r14
mov r10, rcx
mov r14, rsi
nop
mov edi, dword [r10 + 8]
test edi, 0x300
je 0x180129ec1
mov ecx, ebx
test r9d, r9d
je 0x180129e9e
mov rax, qword [r10]
mov r11, qword [rax]
nop dword [rax]
cmp qword [rsp + rcx*8 + 0x48], r11
je 0x180129e9e
inc ecx
cmp ecx, r9d
jb 0x180129e90
cmp ecx, r9d
jne 0x180129ec1
cmp r9d, 0x40
jae 0x180129ec1
mov rax, qword [r10]
mov rax, qword [rax]
mov qword [rsp + rcx*8 + 0x48], rax
mov r9d, dword [rsp + 0x40]
inc r9d
mov dword [rsp + 0x40], r9d
test dil, 0x10
je 0x180129f0f
mov ecx, ebx
test r8d, r8d
je 0x180129ee5
mov rax, qword [r10]
mov r11, qword [rax]
cmp qword [rbp + rcx*8 + 0x158], r11
je 0x180129ee5
inc ecx
cmp ecx, r8d
jb 0x180129ed4
cmp ecx, r8d
jne 0x180129f0f
cmp r8d, 0x40
jae 0x180129f0f
mov rax, qword [r10]
mov rax, qword [rax]
mov qword [rbp + rcx*8 + 0x158], rax
mov r8d, dword [rbp + 0x150]
inc r8d
mov dword [rbp + 0x150], r8d
mov eax, ebx
test edx, edx
je 0x180129f32
mov rcx, qword [r10]
mov r11, qword [rcx]
nop dword [rax + rax]
mov ecx, eax
cmp qword [rbp + rcx*8 + 0x368], r11
je 0x180129f32
inc eax
cmp eax, edx
jb 0x180129f20
cmp eax, edx
jne 0x180129f59
cmp edx, 0x40
jae 0x180129f59
mov rcx, qword [r10]
mov edx, eax
mov rax, qword [rcx]
mov qword [rbp + rdx*8 + 0x368], rax
mov edx, dword [rbp + 0x360]
inc edx
mov dword [rbp + 0x360], edx
add r10, 0x10
sub r14, 1
jne 0x180129e70
mov r14, qword [rsp + 0x680]
mov eax, 0x10624dd3
lea r9, [rbp + 0x360]
imul r12d
lea r8, [rbp + 0x150]
xor ecx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x3e8
mov dword [rsp + 0x30], edx
lea rdx, [rsp + 0x40]
sub r12d, eax
imul eax, r12d, 0x3e8
mov dword [rsp + 0x34], eax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_select]
movsxd rdi, eax
cmp edi, 0xffffffff
jne 0x180129fdf
call fcn.180175c18
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbx], eax
mov rax, 0xffffffffffffffff
jmp 0x18012a052
test rsi, rsi
je 0x18012a04f
mov rcx, qword [rbx + r15]
lea rdx, [rsp + 0x40]
mov rcx, qword [rcx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x18012a004
mov dword [rbx + r15 + 0xc], 0x300
jmp 0x18012a045
mov rcx, qword [rbx + r15]
lea rdx, [rbp + 0x150]
mov rcx, qword [rcx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x18012a026
mov dword [rbx + r15 + 0xc], reloc.WS2_32.dll_recv
jmp 0x18012a045
mov rcx, qword [rbx + r15]
lea rdx, [rbp + 0x360]
mov rcx, qword [rcx]
call sub.WS2_32.dll___WSAFDIsSet
neg eax
sbb ecx, ecx
and ecx, 2
mov dword [rbx + r15 + 0xc], ecx
add rbx, 0x10
sub rsi, 1
jne 0x180129fe4
mov rax, rdi
mov rbx, qword [rsp + 0x6b8]
mov rdi, qword [rsp + 0x6c8]
mov rcx, qword [rbp + 0x570]
xor rcx, rsp
call fcn.18015c050
add rsp, 0x688
pop r15
pop r12
pop rsi
pop rbp
ret
mov ecx, 2
call fcn.180167c6c
mov rcx, rax
lea r8, str.C:Usersprocr_vcpkg_buildtreesmongo_c_driver_src1.24.3_56c7a21808.clean_srclibmongoc_srcmongocmongoc_socket.c
lea rax, [0x1801c8ee4]
mov r9d, 0x12a
mov qword [rsp + 0x28], rax
lea rdx, str._s:_d__s__:_precondition_failed:__s_n
lea rax, str.mongoc_socket_poll
mov qword [rsp + 0x20], rax
call fcn.18007d3a0
call fcn.180177210
int3