// File: romkatv[P]hcproxy/src/list.cc
// Function: hcproxy::List::AddTail(hcproxy::Node*)
void List::AddTail(Node* node) {
  CHECK(node);
  CHECK(!node->prev_);
  CHECK(!node->next_);
  if (tail_) {
    CHECK(head_);
    CHECK(!tail_->next_);
    tail_->next_ = node;
  } else {
    CHECK(!head_);
    head_ = node;
  }
  node->prev_ = tail_;
  node->next_ = nullptr;
  tail_ = node;
  CHECK(head_ && tail_);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x10(%rbp), %rax
movb $0x0, -0x31(%rbp)
cmpq $0x0, %rax
je 0x18591
jmp 0x18617
leaq 0xcba6c(%rip), %rsi     # 0xe4004
leaq -0x30(%rbp), %rdi
movq %rdi, -0x150(%rbp)
movl $0x16, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x150(%rbp), %rdi
movb $0x1, -0x31(%rbp)
callq 0x194e0
movq %rax, -0x148(%rbp)
jmp 0x185cb
movq -0x148(%rbp), %rdi
leaq 0xcba7e(%rip), %rsi     # 0xe4057
callq 0x19480
movq %rax, -0x158(%rbp)
jmp 0x185e7
movq -0x158(%rbp), %rdi
leaq 0xd0d96(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x160(%rbp)
jmp 0x18603
movq -0x160(%rbp), %rsi
leaq -0x45(%rbp), %rdi
callq 0x194f0
jmp 0x18615
jmp 0x18617
testb $0x1, -0x31(%rbp)
jne 0x1861f
jmp 0x18643
leaq -0x30(%rbp), %rdi
callq 0x19500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x31(%rbp)
jne 0x186f0
jmp 0x186f9
movq -0x10(%rbp), %rax
movq (%rax), %rax
movb $0x0, -0x69(%rbp)
cmpq $0x0, %rax
jne 0x18659
jmp 0x186df
leaq 0xcb9a4(%rip), %rsi     # 0xe4004
leaq -0x68(%rbp), %rdi
movq %rdi, -0x170(%rbp)
movl $0x17, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x170(%rbp), %rdi
movb $0x1, -0x69(%rbp)
callq 0x194e0
movq %rax, -0x168(%rbp)
jmp 0x18693
movq -0x168(%rbp), %rdi
leaq 0xcb96f(%rip), %rsi     # 0xe4010
callq 0x19530
movq %rax, -0x178(%rbp)
jmp 0x186af
movq -0x178(%rbp), %rdi
leaq 0xd0cce(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x180(%rbp)
jmp 0x186cb
movq -0x180(%rbp), %rsi
leaq -0x6a(%rbp), %rdi
callq 0x194f0
jmp 0x186dd
jmp 0x186df
testb $0x1, -0x69(%rbp)
jne 0x186e7
jmp 0x18719
leaq -0x68(%rbp), %rdi
callq 0x19500
leaq -0x30(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x69(%rbp)
jne 0x187d9
jmp 0x187e2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movb $0x0, -0x91(%rbp)
cmpq $0x0, %rax
jne 0x18733
jmp 0x187c2
leaq 0xcb8ca(%rip), %rsi     # 0xe4004
leaq -0x90(%rbp), %rdi
movq %rdi, -0x190(%rbp)
movl $0x18, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x190(%rbp), %rdi
movb $0x1, -0x91(%rbp)
callq 0x194e0
movq %rax, -0x188(%rbp)
jmp 0x18773
movq -0x188(%rbp), %rdi
leaq 0xcb89c(%rip), %rsi     # 0xe401d
callq 0x19530
movq %rax, -0x198(%rbp)
jmp 0x1878f
movq -0x198(%rbp), %rdi
leaq 0xd0bee(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x1a0(%rbp)
jmp 0x187ab
movq -0x1a0(%rbp), %rsi
leaq -0x92(%rbp), %rdi
callq 0x194f0
jmp 0x187c0
jmp 0x187c2
testb $0x1, -0x91(%rbp)
jne 0x187cd
jmp 0x18805
leaq -0x90(%rbp), %rdi
callq 0x19500
leaq -0x68(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x91(%rbp)
jne 0x188d9
jmp 0x188e5
movq -0x140(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x18a20
movq -0x140(%rbp), %rax
movq (%rax), %rax
movb $0x0, -0xb9(%rbp)
cmpq $0x0, %rax
je 0x18833
jmp 0x188c2
leaq 0xcb7ca(%rip), %rsi     # 0xe4004
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
movl $0x1a, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x1b0(%rbp), %rdi
movb $0x1, -0xb9(%rbp)
callq 0x194e0
movq %rax, -0x1a8(%rbp)
jmp 0x18873
movq -0x1a8(%rbp), %rdi
leaq 0xcb7b8(%rip), %rsi     # 0xe4039
callq 0x19560
movq %rax, -0x1b8(%rbp)
jmp 0x1888f
movq -0x1b8(%rbp), %rdi
leaq 0xd0aee(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x1c0(%rbp)
jmp 0x188ab
movq -0x1c0(%rbp), %rsi
leaq -0xba(%rbp), %rdi
callq 0x194f0
jmp 0x188c0
jmp 0x188c2
testb $0x1, -0xb9(%rbp)
jne 0x188cd
jmp 0x18908
leaq -0xb8(%rbp), %rdi
callq 0x19500
leaq -0x90(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0xb9(%rbp)
jne 0x189cf
jmp 0x189db
movq -0x140(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movb $0x0, -0xe1(%rbp)
cmpq $0x0, %rax
jne 0x18929
jmp 0x189b8
leaq 0xcb6d4(%rip), %rsi     # 0xe4004
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
movl $0x1b, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x1d0(%rbp), %rdi
movb $0x1, -0xe1(%rbp)
callq 0x194e0
movq %rax, -0x1c8(%rbp)
jmp 0x18969
movq -0x1c8(%rbp), %rdi
leaq 0xcb6b3(%rip), %rsi     # 0xe402a
callq 0x19590
movq %rax, -0x1d8(%rbp)
jmp 0x18985
movq -0x1d8(%rbp), %rdi
leaq 0xd09f8(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x1e0(%rbp)
jmp 0x189a1
movq -0x1e0(%rbp), %rsi
leaq -0xe2(%rbp), %rdi
callq 0x194f0
jmp 0x189b6
jmp 0x189b8
testb $0x1, -0xe1(%rbp)
jne 0x189c3
jmp 0x189f7
leaq -0xe0(%rbp), %rdi
callq 0x19500
leaq -0xb8(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0xe1(%rbp)
jne 0x18a0f
jmp 0x18a1b
movq -0x140(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x18b1a
leaq -0xe0(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq -0x140(%rbp), %rax
movq (%rax), %rax
movb $0x0, -0x109(%rbp)
cmpq $0x0, %rax
jne 0x18a3c
jmp 0x18acb
leaq 0xcb5c1(%rip), %rsi     # 0xe4004
leaq -0x108(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
movl $0x1e, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x1f0(%rbp), %rdi
movb $0x1, -0x109(%rbp)
callq 0x194e0
movq %rax, -0x1e8(%rbp)
jmp 0x18a7c
movq -0x1e8(%rbp), %rdi
leaq 0xcb5ae(%rip), %rsi     # 0xe4038
callq 0x195c0
movq %rax, -0x1f8(%rbp)
jmp 0x18a98
movq -0x1f8(%rbp), %rdi
leaq 0xd08e5(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x200(%rbp)
jmp 0x18ab4
movq -0x200(%rbp), %rsi
leaq -0x10a(%rbp), %rdi
callq 0x194f0
jmp 0x18ac9
jmp 0x18acb
testb $0x1, -0x109(%rbp)
jne 0x18ad6
jmp 0x18af9
leaq -0x108(%rbp), %rdi
callq 0x19500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x109(%rbp)
jne 0x18b09
jmp 0x18b15
movq -0x140(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
jmp 0x18b1a
leaq -0x108(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq -0x140(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x10(%rbp), %rcx
movq %rdx, (%rcx)
movq -0x10(%rbp), %rcx
movq $0x0, 0x8(%rcx)
movq -0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq (%rax), %rax
movb $0x0, -0x131(%rbp)
cmpq $0x0, %rax
je 0x18b63
movq -0x140(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x18b63
jmp 0x18bf2
leaq 0xcb49a(%rip), %rsi     # 0xe4004
leaq -0x130(%rbp), %rdi
movq %rdi, -0x210(%rbp)
movl $0x24, %edx
movl $0x3, %ecx
callq 0x194b0
movq -0x210(%rbp), %rdi
movb $0x1, -0x131(%rbp)
callq 0x194e0
movq %rax, -0x208(%rbp)
jmp 0x18ba3
movq -0x208(%rbp), %rdi
leaq 0xcb48e(%rip), %rsi     # 0xe403f
callq 0x195f0
movq %rax, -0x218(%rbp)
jmp 0x18bbf
movq -0x218(%rbp), %rdi
leaq 0xd07be(%rip), %rsi     # 0xe938b
callq 0x19450
movq %rax, -0x220(%rbp)
jmp 0x18bdb
movq -0x220(%rbp), %rsi
leaq -0x132(%rbp), %rdi
callq 0x194f0
jmp 0x18bf0
jmp 0x18bf2
testb $0x1, -0x131(%rbp)
jne 0x18bfd
jmp 0x18c20
leaq -0x130(%rbp), %rdi
callq 0x19500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x131(%rbp)
jne 0x18c29
jmp 0x18c35
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
leaq -0x130(%rbp), %rdi
callq 0x19500
jmp 0x18c37
movq -0x40(%rbp), %rdi
callq 0xe1080