Function at 0x480680
Capabilities:
Get socket status

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov byte [rcx], 0
movzx eax, byte [rdx]
mov rbx, rcx
mov rsi, rdx
mov qword [rcx + 8], 0
mov byte [rcx], al
mov rcx, rdx
call fcn.00402e50
cmp byte [rbx], 8
ja case.0x4806c6.0
movzx eax, byte [rbx]
lea rdx, [0x00516b20]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov ecx, 0x28
mov rbp, qword [rsi + 8]
call sym.operator_new_unsigned_long_long_
mov rdi, qword [rbp + 8]
pxor xmm0, xmm0
mov rsi, rax
sub rdi, qword [rbp]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
je 0x480940
mov rcx, rdi
call sym.operator_new_unsigned_long_long_
mov r9, rax
add rdi, r9
movq xmm0, r9
mov qword [rsi + 0x10], rdi
punpcklqdq xmm0, xmm0
xor edi, edi
movups xmmword [rsi], xmm0
mov rdx, qword [rbp]
mov rax, qword [rbp + 8]
sub rax, rdx
jne 0x480950
mov rax, qword [rbp + 0x18]
add r9, rdi
mov qword [rsi + 8], r9
mov qword [rsi + 0x18], rax
movzx eax, byte [rbp + 0x20]
mov byte [rsi + 0x20], al
mov qword [rbx + 8], rsi
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp fcn.00402e50
mov rax, qword [rsi + 8]
mov qword [rbx + 8], rax
jmp case.0x4806c6.0
movsd xmm0, qword [rsi + 8]
movsd qword [rbx + 8], xmm0
jmp case.0x4806c6.0
mov ecx, 0x20
mov rdi, qword [rsi + 8]
call sym.operator_new_unsigned_long_long_
mov rsi, qword [rdi + 8]
mov r13, rax
xor r14d, r14d
pxor xmm0, xmm0
movabs rdx, 0xaaaaaaaaaaaaaaab
sub rsi, qword [rdi]
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], 0
mov rax, rsi
sar rax, 4
imul rax, rdx
test rax, rax
je 0x4807e4
movabs rdx, 0x555555555555555
cmp rax, rdx
ja 0x48096b
mov rcx, rsi
call sym.operator_new_unsigned_long_long_
mov r14, rax
add rsi, r14
movq xmm0, r14
mov qword [r13 + 0x10], rsi
punpcklqdq xmm0, xmm0
movups xmmword [r13], xmm0
mov r12, qword [rdi + 8]
mov rsi, qword [rdi]
mov rdi, r14
cmp r12, rsi
je 0x480843
nop dword [rax + rax]
lea rbp, [rdi + 0x10]
mov rcx, rdi
mov qword [rdi], rbp
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3713_
lea rdx, [rsi + 0x20]
lea rcx, [rdi + 0x20]
call fcn.00480680
add rsi, 0x30
add rdi, 0x30
cmp r12, rsi
jne 0x480810
mov qword [r13 + 8], rdi
mov qword [rbx + 8], r13
jmp case.0x4806c6.0
mov ecx, 0x18
mov rdi, qword [rsi + 8]
call sym.operator_new_unsigned_long_long_
mov rsi, qword [rdi + 8]
mov r12, rax
xor r13d, r13d
pxor xmm0, xmm0
sub rsi, qword [rdi]
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], 0
mov rax, rsi
sar rax, 4
test rax, rax
je 0x4808a7
movabs rdx, 0xfffffffffffffff
cmp rax, rdx
ja 0x480966
mov rcx, rsi
call sym.operator_new_unsigned_long_long_
mov r13, rax
add rsi, r13
movq xmm0, r13
mov qword [r12 + 0x10], rsi
punpcklqdq xmm0, xmm0
movups xmmword [r12], xmm0
mov rbp, qword [rdi + 8]
mov rsi, qword [rdi]
mov rdi, r13
cmp rbp, rsi
je 0x4808e8
nop dword [rax]
mov rdx, rsi
mov rcx, rdi
call fcn.00480680
add rsi, 0x10
add rdi, 0x10
cmp rbp, rsi
jne 0x4808d0
mov qword [r12 + 8], rdi
mov qword [rbx + 8], r12
jmp case.0x4806c6.0
mov ecx, 0x20
mov rdi, qword [rsi + 8]
call sym.operator_new_unsigned_long_long_
mov rsi, rax
lea rax, [rax + 0x10]
mov rcx, rsi
mov qword [rsi], rax
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3713_
jmp 0x480745
movzx eax, byte [rsi + 8]
mov byte [rbx + 8], al
jmp case.0x4806c6.0
xor r9d, r9d
jmp 0x480709
mov rcx, r9
mov r8, rax
mov rdi, rax
call sym.memmove
mov r9, rax
jmp 0x48072f
call sym.std::__throw_bad_alloc__
call sym.std::__throw_bad_alloc__
mov rsi, rax
mov rcx, r12
call sym.operator_delete_void_
movzx edx, byte [rbx]
lea rcx, [rbx + 8]
call fcn.0047c980
mov rcx, rsi
call sym._Unwind_Resume
mov rsi, rax
mov rcx, r13
call sym.operator_delete_void_
jmp 0x48097b