// File: /workspace/github_cpp_makefile_star2_O3/dguglielmi[P]dlan-linux-software/common/dlanmonitor.cpp
// Function: CDlanMonitor::SendLocalDeviceBroadcasts(std::_Rb_tree_iterator<std::pair<CMACAddress const, CDlanMonitor::NetwAdapter>>)
void CDlanMonitor::SendLocalDeviceBroadcasts(
  std::map<CMACAddress,NetwAdapter>::iterator itNIC)
{
  if((m_eMode & eMonitorLocalThunderbolt) == eMonitorLocalThunderbolt)
  {
    itNIC->second.queuePendingPackets.push(
      new HomePlugAvMMEs::ThunderReadModuleData::CRequest(CMACAddress(HomePlugAvMMEs::cIntellonLocalBroadcastAddr), 
      itNIC->first, HomePlugAvMMEs::ThunderReadModuleData::ePib, 64, 36));

    itNIC->second.queuePendingPackets.push(
      new HomePlugAvMMEs::ThunderNetworkInfo::CRequest(CMACAddress::Broadcast(), itNIC->first));
      
    itNIC->second.bNetworkInfoV1Sent = false;

    itNIC->second.queuePendingPackets.push(
      new HomePlugAvMMEs::ThunderGetVersion::CRequest(CMACAddress::Broadcast(), itNIC->first));

    itNIC->second.queuePendingPackets.push(
      new HomePlugAvMMEs::ThunderReadModuleData::CRequest(CMACAddress::Broadcast(), 
      itNIC->first, HomePlugAvMMEs::ThunderReadModuleData::ePib, 208, 36));
  }

  if((m_eMode & eMonitorLocalTurbo) == eMonitorLocalTurbo)
  {
    itNIC->second.queuePendingPackets.push(
      new HomePlugMMEs::TurboDeviceDescription::CRequest(CMACAddress::Broadcast(), itNIC->first));
  }

  if((m_eMode & eMonitorLocalHP1) == eMonitorLocalHP1)
  {
    itNIC->second.queuePendingPackets.push(
      new HomePlugMMEs::Int51NetStat::CRequest(CMACAddress::Broadcast(), itNIC->first));
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movl 0x20(%rdi), %eax
testb $0x10, %al
je 0x8acc
movl $0x28, %edi
callq 0x4260
leaq 0x1500d(%rip), %rcx     # 0x1d940
movq %rcx, (%rax)
movl $0x52b000, 0x8(%rax)    # imm = 0x52B000
movw $0x100, 0xc(%rax)       # imm = 0x100
movl 0x20(%rbx), %ecx
movl %ecx, 0xe(%rax)
movzwl 0x24(%rbx), %ecx
movw %cx, 0x12(%rax)
movw $0xe188, %cx            # imm = 0xE188
movw %cx, 0x14(%rax)
movw $0xe188, %r13w          # imm = 0xE188
xorl %ebp, %ebp
movb %bpl, 0x16(%rax)
movw $0xa024, %cx            # imm = 0xA024
movw %cx, 0x17(%rax)
movl $0x252b000, %ecx        # imm = 0x252B000
movl %ecx, 0x19(%rax)
movb %bpl, 0x1d(%rax)
movw $0x40, 0x1e(%rax)
movl $0x24, %ecx
movl %ecx, 0x20(%rax)
leaq 0x1b8(%rbx), %r15
movq %rsp, %r12
movq %rax, (%r12)
movq %r15, %rdi
movq %r12, %rsi
callq 0xe242
movl $0x20, %edi
callq 0x4260
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x8(%rax)
movw $0xffff, %cx            # imm = 0xFFFF
movw %cx, 0xc(%rax)
leaq 0x14fb8(%rip), %rcx     # 0x1d978
movq %rcx, (%rax)
movl 0x20(%rbx), %ecx
movl %ecx, 0xe(%rax)
movzwl 0x24(%rbx), %ecx
movw %cx, 0x12(%rax)
movw %r13w, 0x14(%rax)
movb %bpl, 0x16(%rax)
movl $0xb000a038, 0x17(%rax) # imm = 0xB000A038
movb $0x52, %r13b
movb %r13b, 0x1b(%rax)
movq %rax, (%r12)
movq %rsp, %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0xe242
movb %bpl, 0x30(%rbx)
movl $0x20, %edi
callq 0x4260
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x8(%rax)
movw $0xffff, %cx            # imm = 0xFFFF
movw %cx, 0xc(%rax)
leaq 0x14f91(%rip), %rcx     # 0x1d9b0
movq %rcx, (%rax)
movl 0x20(%rbx), %ecx
movl %ecx, 0xe(%rax)
movzwl 0x24(%rbx), %ecx
movw %cx, 0x12(%rax)
movw $0xe188, %cx            # imm = 0xE188
movw %cx, 0x14(%rax)
movb %bpl, 0x16(%rax)
movl $0xb000a000, 0x17(%rax) # imm = 0xB000A000
movb %r13b, 0x1b(%rax)
movq %rax, (%r12)
movq %rsp, %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0xe242
movl $0x28, %edi
callq 0x4260
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x8(%rax)
movw $0xffff, %cx            # imm = 0xFFFF
movw %cx, 0xc(%rax)
leaq 0x14ec6(%rip), %rcx     # 0x1d940
movq %rcx, (%rax)
movl 0x20(%rbx), %ecx
movl %ecx, 0xe(%rax)
movzwl 0x24(%rbx), %ecx
movw %cx, 0x12(%rax)
movw $0xe188, %cx            # imm = 0xE188
movw %cx, 0x14(%rax)
movb %bpl, 0x16(%rax)
movw $0xa024, %cx            # imm = 0xA024
movw %cx, 0x17(%rax)
movl $0x252b000, %ecx        # imm = 0x252B000
movl %ecx, 0x19(%rax)
movb %bpl, 0x1d(%rax)
movw $0xd0, 0x1e(%rax)
movl $0x24, %ecx
movl %ecx, 0x20(%rax)
movq %rax, (%r12)
movq %rsp, %rsi
movq %r15, %rdi
callq 0xe242
movl 0x20(%r14), %eax
testb $0x4, %al
je 0x8b2f
leaq 0x1b8(%rbx), %r15
movl $0x20, %edi
callq 0x4260
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movw $0xffff, 0xc(%rax)      # imm = 0xFFFF
leaq 0x14ef3(%rip), %rcx     # 0x1d9e8
movq %rcx, (%rax)
movl 0x20(%rbx), %ecx
movl %ecx, 0xe(%rax)
movzwl 0x24(%rbx), %ecx
movw %cx, 0x12(%rax)
movw $0x7b88, 0x14(%rax)     # imm = 0x7B88
movb $0x10, 0x1c(%rax)
movl $0x40201, 0x16(%rax)    # imm = 0x40201
movw $0x8704, 0x1a(%rax)     # imm = 0x8704
movq %rsp, %rsi
movq %rax, (%rsi)
movq %r15, %rdi
callq 0xe242
movl 0x20(%r14), %eax
testb $0x1, %al
je 0x8b9b
leaq 0x1b8(%rbx), %r14
movl $0xd8, %edi
callq 0x4260
movq %rax, %r15
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movw $0xffff, 0xc(%rax)      # imm = 0xFFFF
leaq 0x14ec5(%rip), %rax     # 0x1da20
movq %rax, (%r15)
movl 0x20(%rbx), %eax
movl %eax, 0xe(%r15)
movzwl 0x24(%rbx), %eax
movw %ax, 0x12(%r15)
movw $0x7b88, 0x14(%r15)     # imm = 0x7B88
movl $0x80bb1a01, 0x16(%r15) # imm = 0x80BB1A01
leaq 0x1a(%r15), %rdi
movl $0xba, %edx
xorl %esi, %esi
callq 0x41b0
movq %rsp, %rsi
movq %r15, (%rsi)
movq %r14, %rdi
callq 0xe242
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq