Function at 0x140037bc0
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov rbx, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
movzx ebp, word [rdx]
test bp, bp
mov eax, 2
mov ecx, 0x17
cmove ecx, eax
mov eax, dword [0x140154190]
cmp eax, 3
jne 0x1400382aa
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov edx, 1
mov r8d, 6
xor r9d, r9d
call qword [sym.imp.ws2_32.dll_WSASocketW]
cmp rax, 0xffffffffffffffff
je 0x140037ccb
mov rdi, rax
mov dword [rsp + 0x58], 1
lea r8, [rsp + 0x58]
mov rcx, rax
mov edx, 0x8004667e
call qword [sym.imp.ws2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
je 0x140037d5b
mov qword [rsp + 0xe8], rbx
mov r13, qword [r15 + 0x28]
mov r12d, dword [r15 + 0x30]
mov rax, qword [r15 + 0x38]
mov ebx, dword [r15 + 0x40]
cmp ebx, 0x3b9aca00
jne 0x140037dab
cmp r12d, 0x3b9aca00
je 0x140037ed9
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov rcx, rdi
mov edx, 0xffff
mov r8d, 8
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x140037ed3
mov ebx, 0x3b9aca00
jmp 0x140037dfc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
movzx eax, byte [0x1401542b0]
mov edx, 0xe
xor ecx, ecx
call fcn.1400de8b0
test rax, rax
je 0x1400382fa
mov rbx, rax
movabs rax, 0x726f727265206e65
mov qword [rbx + 6], rax
movabs rax, 0x6e65706f20706374
mov qword [rbx], rax
movzx eax, byte [0x1401542b0]
mov edx, 8
xor ecx, ecx
call fcn.1400de8b0
test rax, rax
je 0x1400382eb
shl rdi, 0x20
or rdi, 2
mov qword [rax], rdi
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], 0xe
mov qword [rsi + 0x18], rax
lea rax, [0x140118140]
mov qword [rsi + 0x20], rax
mov qword [rsi], 1
jmp 0x140038295
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
movzx eax, byte [0x1401542b0]
mov r14d, 0x19
mov edx, 0x19
xor ecx, ecx
call fcn.1400de8b0
test rax, rax
je 0x140038326
mov rbx, rax
shl r12, 0x20
or r12, 2
movups xmm0, xmmword [0x140117c81]
movups xmmword [rax + 9], xmm0
movups xmm0, xmmword [str.tcp_set_nonblocking_errortcp_bind_local_error]
movups xmmword [rax], xmm0
jmp 0x14003824f
cmp ebx, 0x3b9aca01
je 0x140037ed9
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov rcx, rdi
mov edx, 0xffff
mov r8d, 8
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x140037ed3
xor ecx, ecx
cmp r12d, 0x3b9aca00
je 0x140037e3f
mov ecx, 0x3e8
mov rax, r13
mul rcx
mov ecx, r12d
imul r8, rcx, 0x431bde83
shr r8, 0x32
add r8, rax
adc rdx, 0
mov eax, 0xffffffff
cmp r8, rax
cmovae r8, rax
xor eax, eax
neg rdx
mov ecx, 0
sbb ecx, ecx
or ecx, r8d
cmp ebx, 0x3b9aca00
je 0x140037e7a
mov edx, 0x3e8
mov rax, qword [rsp + 0xe0]
mul rdx
mov r8d, ebx
imul r8, r8, 0x431bde83
shr r8, 0x32
add r8, rax
adc rdx, 0
mov eax, 0xffffffff
cmp r8, rax
cmovae r8, rax
xor eax, eax
neg rdx
sbb eax, eax
or eax, r8d
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x5c], ecx
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x54], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x58]
mov rcx, rdi
mov edx, 0x98000004
mov r9d, 0xc
call qword [sym.imp.ws2_32.dll_WSAIoctl]
cmp eax, 0xffffffff
jne 0x140037ed9
call qword [sym.imp.KERNEL32.dll_GetLastError]
test bp, bp
je 0x1400380d8
cmp byte [r15 + 0x6e], 0
je 0x140038160
movups xmm0, xmmword [r15 + 0x6f]
movups xmmword [rsp + 0x60], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0x58], 0x17
mov dword [rsp + 0xd8], 0x1c
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov r8d, 0x1c
call qword [sym.imp.ws2_32.dll_bind]
test eax, eax
jne 0x1400381ff
xor r12d, r12d
test r12, r12
jne 0x140038219
cmp byte [r15 + 0x80], 0
je 0x140037fba
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov rcx, rdi
mov edx, 0xffff
mov r8d, 4
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x140037fba
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
lea rcx, [rax + 2]
call fcn.140038340
test byte [r15], 1
je 0x140038011
mov rax, qword [r15 + 8]
mov rcx, rax
shr rcx, 0x20
xor edx, edx
neg rcx
sbb edx, edx
or edx, eax
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov rcx, rdi
mov edx, 0xffff
mov r8d, 0x1001
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x140038011
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
lea rcx, [rax + 2]
call fcn.140038340
mov ebx, dword [rsp + 0x180]
cmp dword [r15 + 0x10], 1
jne 0x140038070
mov rax, qword [r15 + 0x18]
mov rcx, rax
shr rcx, 0x20
xor edx, edx
neg rcx
sbb edx, edx
or edx, eax
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x58]
mov rcx, rdi
mov edx, 0xffff
mov r8d, 0x1002
call qword [sym.imp.ws2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x140038070
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
lea rcx, [rax + 2]
call fcn.140038340
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rsp + 0x108], xmm1
movups xmmword [rsp + 0xf8], xmm0
mov qword [rsi], 0
mov rax, qword [rsp + 0xe8]
mov qword [rsi + 8], rax
mov dword [rsi + 0x10], ebx
movups xmm0, xmmword [rsp + 0xf4]
movups xmm1, xmmword [rsp + 0x104]
movups xmmword [rsi + 0x14], xmm0
movups xmmword [rsi + 0x24], xmm1
mov eax, dword [rsp + 0x114]
mov dword [rsi + 0x34], eax
mov qword [rsi + 0x38], rdi
mov byte [rsi + 0x88], 0
mov byte [rsi + 0x90], 0
jmp 0x140038295
test byte [r15 + 0x69], 1
je 0x140038182
mov eax, dword [r15 + 0x6a]
xorps xmm0, xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0xd0], 0
mov dword [rsp + 0x58], 2
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0xd8], 0x10
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov r8d, 0x10
call qword [sym.imp.ws2_32.dll_bind]
test eax, eax
jne 0x1400381ff
jmp 0x140037f63
test bpl, 1
mov ecx, 0x17
mov eax, 2
cmovne eax, ecx
mov ecx, 0x1c
mov r8d, 0x10
cmovne r8d, ecx
jmp 0x14003818c
mov r8d, 0x10
mov ax, 2
xorps xmm0, xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0xd0], 0
mov word [rsp + 0x58], ax
mov word [rsp + 0x5a], 0
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0xd8], r8d
lea rdx, [rsp + 0x58]
mov rcx, rdi
call qword [sym.imp.ws2_32.dll_bind]
test eax, eax
je 0x140037f63
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
shl r12, 0x20
or r12, 2
test r12, r12
je 0x140037f6f
movzx eax, byte [0x1401542b0]
mov r14d, 0x14
mov edx, 0x14
xor ecx, ecx
call fcn.1400de8b0
test rax, rax
je 0x140038310
mov rbx, rax
movups xmm0, xmmword [0x140117c91]
movups xmmword [rax], xmm0
mov dword [rax + 0x10], 0x726f7272
movzx eax, byte [0x1401542b0]
mov edx, 8
xor ecx, ecx
call fcn.1400de8b0
test rax, rax
je 0x1400382eb
mov qword [rax], r12
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], rax
lea rax, [0x140118140]
mov qword [rsi + 0x20], rax
mov qword [rsi], 1
mov rcx, rdi
call qword [sym.imp.ws2_32.dll_closesocket]
nop
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rsp + 0x54], 1
lea rax, [rsp + 0x54]
mov qword [rsp + 0x58], rax
lea rax, str..cargo_registry_srcindex.crates.io_6f17d22bba15001f_socket2_0.5.8_src_syswindows.rs
mov qword [rsp + 0x20], rax
lea rax, [0x140154190]
lea r9, [0x14013ffe0]
lea r8, [rsp + 0x58]
mov edi, ecx
mov rcx, rax
xor edx, edx
call fcn.1400fd1c0
mov ecx, edi
jmp 0x140037c01
mov ecx, 8
mov edx, 8
call fcn.1400f7b90
lea r8, str..rustup_toolchains_nightly_x86_64_pc_windows_msvclib_rustlib_src_rustlibrary_alloc_src_boxedconvert.rs
mov ecx, 1
mov edx, 0xe
call fcn.1400f7b73
lea r8, str..rustup_toolchains_nightly_x86_64_pc_windows_msvclib_rustlib_src_rustlibrary_alloc_src_boxedconvert.rs
mov ecx, 1
mov edx, 0x14
call fcn.1400f7b73
lea r8, str..rustup_toolchains_nightly_x86_64_pc_windows_msvclib_rustlib_src_rustlibrary_alloc_src_boxedconvert.rs
mov ecx, 1
mov edx, 0x19
call fcn.1400f7b73
int3