Function at 0x1010eee0
Capabilities:
Get socket status

Disassembly:
sub esp, 0x324
mov eax, dword [0x1022d400]
xor eax, esp
mov dword [esp + 0x320], eax
push edi
mov edi, dword [esp + 0x32c]
mov dword [esp + 4], edi
test edi, edi
je 0x1010f131
mov ecx, dword [esp + 0x330]
test ecx, ecx
je 0x1010f162
mov dword [esp + 0x18], 0
mov dword [esp + 0x11c], 0
test ecx, 0x300
je 0x1010ef40
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 1
test cl, 0x10
je 0x1010ef59
mov eax, dword [edi]
mov dword [esp + 0x120], eax
mov dword [esp + 0x11c], 1
mov eax, dword [edi]
push ebx
push ebp
push esi
mov dword [esp + 0x230], eax
mov dword [esp + 0x22c], 1
call fcn.100d8300
mov ebp, dword [esp + 0x344]
mov esi, eax
mov ebx, dword [esp + 0x340]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
mov edi, dword [sym.imp.WS2_32.dll_select]
test ebp, ebp
jg 0x1010efa4
jl 0x1010ef9d
test ebx, ebx
jae 0x1010efa4
or esi, 0xffffffff
push 0
jmp 0x1010effb
mov eax, ebx
or eax, ebp
jne 0x1010efae
xor esi, esi
jmp 0x1010efcd
mov ecx, ebx
mov eax, ebp
sub ecx, esi
push 0
push 0x3e8
sbb eax, edx
push eax
push ecx
call fcn.1009fec0
mov esi, eax
xor eax, eax
test esi, esi
cmovs esi, eax
mov eax, 0x10624dd3
mov ecx, esi
imul esi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x230]
push eax
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x30]
push eax
push 0
call edi
mov edi, eax
cmp edi, 0xffffffff
jne 0x1010f033
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [esp + 0x10]
mov esi, eax
mov dword [edi + 4], esi
call fcn.100b18cb
mov dword [eax], esi
jmp 0x1010f065
lea eax, [esp + 0x22c]
push eax
mov eax, dword [esp + 0x14]
push dword [eax]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1010f057
call fcn.100b18cb
mov dword [eax], 0x2746
jmp 0x1010f061
test edi, edi
jg 0x1010f0ef
jns 0x1010f0d5
mov edi, dword [esp + 0x10]
call fcn.100b18cb
cmp dword [eax], 0xb
je 0x1010f089
call fcn.100b18cb
cmp dword [eax], 0x2733
je 0x1010f089
call fcn.100b18cb
cmp dword [eax], 0x2734
jne 0x1010f0bf
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ebp, ebp
jl 0x1010ef8d
jg 0x1010f0a3
test ebx, ebx
jb 0x1010ef8d
call fcn.100d8300
cmp ebp, edx
jl 0x1010f0bf
jg 0x1010f0b2
cmp ebx, eax
jb 0x1010f0bf
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x1010ef8d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov dword [edi + 4], esi
call fcn.100b18cb
mov dword [eax], esi
xor al, al
jmp 0x1010f118
mov ecx, 0x274c
test esi, esi
mov eax, 0xb
cmovne eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
xor al, al
jmp 0x1010f118
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
push dword [ebx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x1010f116
lea eax, [esp + 0x128]
push eax
push dword [ebx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1010f0eb
mov al, 1
mov ecx, dword [esp + 0x330]
pop esi
pop ebp
pop ebx
pop edi
xor ecx, esp
call fcn.1009f33b
add esp, 0x324
ret
push str.sock
push str._mongoc_socket_wait
push 0xa3
push str.C:Usersprocr_vcpkg_buildtreesmongo_c_driver_src1.26.1_690bc2849a.clean_srclibmongoc_srcmongocmongoc_socket.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
push str.events
push str._mongoc_socket_wait
push 0xa4
push str.C:Usersprocr_vcpkg_buildtreesmongo_c_driver_src1.26.1_690bc2849a.clean_srclibmongoc_srcmongocmongoc_socket.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.100a530f
add esp, 4
push eax
call fcn.100ccd10
add esp, 0x18
call fcn.100b1525
int3