Function at 0x47e900
Capabilities:
Get socket status

Disassembly:
sub esp, 0x324
mov eax, dword [0x522298]
xor eax, esp
mov dword [esp + 0x320], eax
push edi
mov edi, dword [esp + 0x32c]
mov dword [esp + 4], edi
test edi, edi
je 0x47eb4f
mov ecx, dword [esp + 0x330]
test ecx, ecx
je 0x47eb80
mov eax, dword [edi]
mov dword [esp + 0x18], 0
mov dword [esp + 0x11c], 0
test ecx, 0x300
je 0x47e960
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 1
test cl, 0x10
je 0x47e979
mov eax, dword [edi]
mov dword [esp + 0x120], eax
mov dword [esp + 0x11c], 1
push ebx
push ebp
push esi
mov dword [esp + 0x230], eax
mov dword [esp + 0x22c], 1
call fcn.0044e5b0
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 0x47e9c2
jl 0x47e9bb
test ebx, ebx
jae 0x47e9c2
or esi, 0xffffffff
push 0
jmp 0x47ea19
mov eax, ebx
or eax, ebp
jne 0x47e9cc
xor esi, esi
jmp 0x47e9eb
mov ecx, ebx
mov eax, ebp
sub ecx, esi
push 0
push 0x3e8
sbb eax, edx
push eax
push ecx
call fcn.004b48b0
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 0x47ea51
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [esp + 0x10]
mov esi, eax
mov dword [edi + 4], esi
call fcn.004c3d2b
mov dword [eax], esi
jmp 0x47ea83
lea eax, [esp + 0x22c]
push eax
mov eax, dword [esp + 0x14]
push dword [eax]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x47ea75
call fcn.004c3d2b
mov dword [eax], 0x2746
jmp 0x47ea7f
test edi, edi
jg 0x47eb0d
jns 0x47eaf3
mov edi, dword [esp + 0x10]
call fcn.004c3d2b
cmp dword [eax], 0xb
je 0x47eaa7
call fcn.004c3d2b
cmp dword [eax], 0x2733
je 0x47eaa7
call fcn.004c3d2b
cmp dword [eax], 0x2734
jne 0x47eadd
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ebp, ebp
jl 0x47e9ab
jg 0x47eac1
test ebx, ebx
jb 0x47e9ab
call fcn.0044e5b0
cmp ebp, edx
jl 0x47eadd
jg 0x47ead0
cmp ebx, eax
jb 0x47eadd
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x47e9ab
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov dword [edi + 4], esi
call fcn.004c3d2b
mov dword [eax], esi
xor al, al
jmp 0x47eb36
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 0x47eb36
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
push dword [ebx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x47eb34
lea eax, [esp + 0x128]
push eax
push dword [ebx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x47eb09
mov al, 1
mov ecx, dword [esp + 0x330]
pop esi
pop ebp
pop ebx
pop edi
xor ecx, esp
call fcn.004b3f14
add esp, 0x324
ret
push str.sock
push str._mongoc_socket_wait
push 0xa3
push str.C:Usersprocr_vcpkg_buildtreesmongo_c_driver_src1.24.3_56c7a21808.clean_srclibmongoc_srcmongocmongoc_socket.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
push str.events
push str._mongoc_socket_wait
push 0xa4
push str.C:Usersprocr_vcpkg_buildtreesmongo_c_driver_src1.24.3_56c7a21808.clean_srclibmongoc_srcmongocmongoc_socket.c
push str._s:_d__s__:_precondition_failed:__s_n
push 2
call fcn.004b9cc5
add esp, 4
push eax
call fcn.00443a60
add esp, 0x18
call fcn.004c3b6b
int3