// File: tdv[P]boss/boss/include/common/xml_property_bag.h
// Function: Boss::XmlPropertyBag::SerializeItem(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Boss::IBase*, rapidxml::xml_document<char>*, rapidxml::xml_node<char>*) const
void SerializeItem(std::string const &name, IBase *prop,
                       rapidxml::xml_document<> *doc,
                       rapidxml::xml_node<> *node) const
    {
      {
        RefObjQIPtr<IEntityId> Id(prop);
        if (Id.Get())
        {
          UInt EntityId = 0;
          if (Id->GetId(&EntityId) != Status::Ok)
            throw std::runtime_error("Failed to get EntityId.");
          auto *StrVal = doc->allocate_string(ToString(EntityId).c_str());
          auto *StrName = doc->allocate_string(name.c_str());
          auto *NewNode = doc->allocate_node(rapidxml::node_element, StrName, StrVal);
          node->append_node(NewNode);
          auto *TypeAttr = doc->allocate_attribute(Tags::TypeTag, Tags::EntityIdTag);
          NewNode->append_attribute(TypeAttr);
          return;
        }
      }
      {
        RefObjQIPtr<IString> String(prop);
        if (String.Get())
        {
          auto *StrVal = doc->allocate_string(GetString(String.Get()).c_str());
          auto *StrName = doc->allocate_string(name.c_str());
          auto *NewNode = doc->allocate_node(rapidxml::node_element, StrName, StrVal);
          node->append_node(NewNode);
          auto *TypeAttr = doc->allocate_attribute(Tags::TypeTag, Tags::StringTag);
          NewNode->append_attribute(TypeAttr);
          return;
        }
      }
      {
        RefObjQIPtr<IEnum> Enum(prop);
        if (Enum.Get())
        {
          auto *StrName = doc->allocate_string(name.c_str());
          auto *NewNode = doc->allocate_node(rapidxml::node_element, StrName);
          node->append_node(NewNode);
          auto *TypeAttr = doc->allocate_attribute(Tags::TypeTag, Tags::EnumTag);
          NewNode->append_attribute(TypeAttr);
          if (Enum->Reset() != Status::Ok)
            throw std::runtime_error("Failed to reset enum position.");
          for (RefObjPtr<IBase> i ; Enum->Next(i.GetPPtr()) == Status::Ok ; i.Release())
            SerializeItem(Tags::ItemTag, i.Get(), doc, NewNode);
          return;
        }
      }
      {
        RefObjQIPtr<IPropertyBag> PropBag(prop);
        if (PropBag.Get())
        {
          auto *StrName = doc->allocate_string(name.c_str());
          auto *NewNode = doc->allocate_node(rapidxml::node_element, StrName);
          node->append_node(NewNode);
          auto *TypeAttr = doc->allocate_attribute(Tags::TypeTag, Tags::PropertyBagTag);
          NewNode->append_attribute(TypeAttr);
          RefObjPtr<IEnum> Enum;
          if (PropBag->EnumProperties(Enum.GetPPtr()) != Status::Ok)
            throw std::runtime_error("Failed to get PropertyBag.");
          if (Enum->Reset() != Status::Ok)
            throw std::runtime_error("Failed to reset enum position.");
          for (RefObjPtr<IBase> i ; Enum->Next(i.GetPPtr()) == Status::Ok ; i.Release())
          {
            RefObjQIPtr<INamedValue> Prop(i);
            if (!Prop.Get())
              throw std::runtime_error("Failed to get PropertyItem.");
            RefObjPtr<IString> Name;
            if (Prop->GetName(Name.GetPPtr()) != Status::Ok)
              throw std::runtime_error("Failed to get property name.");
            RefObjPtr<IBase> Value;
            if (Prop->GetValue(Value.GetPPtr()) != Status::Ok)
              throw std::runtime_error("Failed to get property value.");
            SerializeItem(GetString(Name.Get()), Value.Get(), doc, NewNode);
          }
          return;
        }
      }
    }

// Assembly:
subq $0x2f8, %rsp            # imm = 0x2F8
movq %rdi, 0x2f0(%rsp)
movq %rsi, 0x2e8(%rsp)
movq %rdx, 0x2e0(%rsp)
movq %rcx, 0x2d8(%rsp)
movq %r8, 0x2d0(%rsp)
movq 0x2f0(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0x2e0(%rsp), %rsi
leaq 0x2c8(%rsp), %rdi
callq 0x39780
leaq 0x2c8(%rsp), %rdi
callq 0x23010
cmpq $0x0, %rax
je 0x389e0
movl $0x0, 0x2c4(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0x23020
movq %rax, %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0x2c4(%rsp), %rsi
callq *%rax
movl %eax, 0x15c(%rsp)
jmp 0x387a0
movl 0x15c(%rsp), %eax
cmpl $0x0, %eax
je 0x38835
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x150(%rsp)
leaq 0xbe2a3(%rip), %rsi     # 0xf6a72
callq 0x5b7e0
jmp 0x387d6
movq 0x150(%rsp), %rdi
leaq 0x10a88b(%rip), %rsi    # 0x143070
leaq 0x19674(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x38bcc
movq 0x150(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x38bcc
movq 0x2d8(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x148(%rsp)
movl 0x2c4(%rsp), %esi
leaq 0x288(%rsp), %rdi
callq 0x398b0
jmp 0x3885f
leaq 0x288(%rsp), %rdi
callq 0xc6400
movq 0x148(%rsp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x397c0
movq %rax, 0x140(%rsp)
jmp 0x3888a
leaq 0x288(%rsp), %rdi
callq 0xc49c0
movq 0x140(%rsp), %rax
movq %rax, 0x2a8(%rsp)
movq 0x2d8(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x130(%rsp)
movq 0x2e8(%rsp), %rdi
callq 0xc6400
movq 0x130(%rsp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x397c0
movq %rax, 0x138(%rsp)
jmp 0x388e6
movq 0x138(%rsp), %rax
movq %rax, 0x280(%rsp)
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
movq 0x280(%rsp), %rdx
movq 0x2a8(%rsp), %rcx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %esi
movq %r9, %r8
callq 0x35870
movq %rax, 0x128(%rsp)
jmp 0x3892e
movq 0x128(%rsp), %rax
movq %rax, 0x278(%rsp)
movq 0x2d0(%rsp), %rdi
movq 0x278(%rsp), %rsi
callq 0x34a20
jmp 0x38955
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
leaq 0xbf522(%rip), %rsi     # 0xf7e8a
leaq 0xbf501(%rip), %rdx     # 0xf7e70
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x36360
movq %rax, 0x120(%rsp)
jmp 0x38986
movq 0x120(%rsp), %rax
movq %rax, 0x270(%rsp)
movq 0x278(%rsp), %rdi
movq 0x270(%rsp), %rsi
callq 0x36430
jmp 0x389ad
movl $0x1, 0x26c(%rsp)
jmp 0x389eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
leaq 0x288(%rsp), %rdi
callq 0xc49c0
jmp 0x38bcc
movl $0x0, 0x26c(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0x23840
movl 0x26c(%rsp), %eax
testl %eax, %eax
je 0x38a0a
jmp 0x38a05
jmp 0x396da
movq 0x2e0(%rsp), %rsi
leaq 0x260(%rsp), %rdi
callq 0x39940
leaq 0x260(%rsp), %rdi
callq 0x23090
cmpq $0x0, %rax
je 0x38c1d
movq 0x2d8(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x118(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x23090
movq 0x160(%rsp), %rsi
movq %rax, %rdx
leaq 0x238(%rsp), %rdi
callq 0x39980
jmp 0x38a71
leaq 0x238(%rsp), %rdi
callq 0xc6400
movq 0x118(%rsp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x397c0
movq %rax, 0x110(%rsp)
jmp 0x38a9c
leaq 0x238(%rsp), %rdi
callq 0xc49c0
movq 0x110(%rsp), %rax
movq %rax, 0x258(%rsp)
movq 0x2d8(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x100(%rsp)
movq 0x2e8(%rsp), %rdi
callq 0xc6400
movq 0x100(%rsp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x397c0
movq %rax, 0x108(%rsp)
jmp 0x38af8
movq 0x108(%rsp), %rax
movq %rax, 0x230(%rsp)
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
movq 0x230(%rsp), %rdx
movq 0x258(%rsp), %rcx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %esi
movq %r9, %r8
callq 0x35870
movq %rax, 0xf8(%rsp)
jmp 0x38b40
movq 0xf8(%rsp), %rax
movq %rax, 0x228(%rsp)
movq 0x2d0(%rsp), %rdi
movq 0x228(%rsp), %rsi
callq 0x34a20
jmp 0x38b67
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
leaq 0xbf310(%rip), %rsi     # 0xf7e8a
leaq 0xbf2f2(%rip), %rdx     # 0xf7e73
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x36360
movq %rax, 0xf0(%rsp)
jmp 0x38b98
movq 0xf0(%rsp), %rax
movq %rax, 0x220(%rsp)
movq 0x228(%rsp), %rdi
movq 0x220(%rsp), %rsi
callq 0x36430
jmp 0x38bbf
movl $0x1, 0x26c(%rsp)
jmp 0x38c28
leaq 0x2c8(%rsp), %rdi
callq 0x23840
jmp 0x396ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x38dec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
leaq 0x238(%rsp), %rdi
callq 0xc49c0
jmp 0x38dec
movl $0x0, 0x26c(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x23540
movl 0x26c(%rsp), %eax
testl %eax, %eax
je 0x38c47
jmp 0x38c42
jmp 0x396da
movq 0x2e0(%rsp), %rsi
leaq 0x218(%rsp), %rdi
callq 0x39c80
leaq 0x218(%rsp), %rdi
callq 0x23030
cmpq $0x0, %rax
je 0x38fce
movq 0x2d8(%rsp), %rax
addq $0x60, %rax
movq %rax, 0xe0(%rsp)
movq 0x2e8(%rsp), %rdi
callq 0xc6400
movq 0xe0(%rsp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x397c0
movq %rax, 0xe8(%rsp)
jmp 0x38cb2
movq 0xe8(%rsp), %rax
movq %rax, 0x210(%rsp)
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
movq 0x210(%rsp), %rdx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %esi
movq %r9, %rcx
movq %r9, %r8
callq 0x35870
movq %rax, 0xd8(%rsp)
jmp 0x38cf5
movq 0xd8(%rsp), %rax
movq %rax, 0x208(%rsp)
movq 0x2d0(%rsp), %rdi
movq 0x208(%rsp), %rsi
callq 0x34a20
jmp 0x38d1c
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
leaq 0xbf15b(%rip), %rsi     # 0xf7e8a
leaq 0xbf144(%rip), %rdx     # 0xf7e7a
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x36360
movq %rax, 0xd0(%rsp)
jmp 0x38d4d
movq 0xd0(%rsp), %rax
movq %rax, 0x200(%rsp)
movq 0x208(%rsp), %rdi
movq 0x200(%rsp), %rsi
callq 0x36430
jmp 0x38d74
leaq 0x218(%rsp), %rdi
callq 0x27eb0
movq %rax, %rdi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movl %eax, 0xcc(%rsp)
jmp 0x38d96
movl 0xcc(%rsp), %eax
cmpl $0x0, %eax
je 0x38e3d
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0xc0(%rsp)
leaq 0xbdcc5(%rip), %rsi     # 0xf6a8a
callq 0x5b7e0
jmp 0x38dcc
movq 0xc0(%rsp), %rdi
leaq 0x10a295(%rip), %rsi    # 0x143070
leaq 0x1907e(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
leaq 0x260(%rsp), %rdi
callq 0x23540
jmp 0x396ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x391d1
movq 0xc0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x391d1
xorl %eax, %eax
movl %eax, %esi
leaq 0x1f8(%rsp), %rdi
callq 0x22dc0
jmp 0x38e50
jmp 0x38e52
leaq 0x218(%rsp), %rdi
callq 0x27eb0
movq %rax, 0xb0(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0x22e00
movq 0xb0(%rsp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, 0xbc(%rsp)
jmp 0x38e91
movl 0xbc(%rsp), %eax
cmpl $0x0, %eax
je 0x38ed3
movl $0x2, 0x26c(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0x23860
jmp 0x38fc1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x38faf
leaq 0x1d7(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x4a200
movq 0xa8(%rsp), %rdx
leaq 0xbef88(%rip), %rsi     # 0xf7e7f
leaq 0x1d8(%rsp), %rdi
callq 0xc7340
jmp 0x38f06
leaq 0x1f8(%rsp), %rdi
callq 0x280f0
movq 0x160(%rsp), %rdi
movq %rax, %rdx
movq 0x2d8(%rsp), %rcx
movq 0x208(%rsp), %r8
leaq 0x1d8(%rsp), %rsi
callq 0x38700
jmp 0x38f3d
leaq 0x1d8(%rsp), %rdi
callq 0xc49c0
leaq 0x1d7(%rsp), %rdi
callq 0x4a220
leaq 0x1f8(%rsp), %rdi
callq 0x25370
jmp 0x38f66
jmp 0x38e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x38fa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0xc49c0
leaq 0x1d7(%rsp), %rdi
callq 0x4a220
leaq 0x1f8(%rsp), %rdi
callq 0x23860
jmp 0x391d1
movl $0x1, 0x26c(%rsp)
jmp 0x38fd9
movl $0x0, 0x26c(%rsp)
leaq 0x218(%rsp), %rdi
callq 0x22610
movl 0x26c(%rsp), %eax
testl %eax, %eax
je 0x38ff8
jmp 0x38ff3
jmp 0x396da
movq 0x2e0(%rsp), %rsi
leaq 0x1c8(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x39cc0
movq 0x98(%rsp), %rdi
callq 0x39d00
movq %rax, 0xa0(%rsp)
jmp 0x3902c
movq 0xa0(%rsp), %rax
cmpq $0x0, %rax
je 0x396c2
movq 0x2d8(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x88(%rsp)
movq 0x2e8(%rsp), %rdi
callq 0xc6400
movq 0x88(%rsp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x397c0
movq %rax, 0x90(%rsp)
jmp 0x3907d
movq 0x90(%rsp), %rax
movq %rax, 0x1c0(%rsp)
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
movq 0x1c0(%rsp), %rdx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %esi
movq %r9, %rcx
movq %r9, %r8
callq 0x35870
movq %rax, 0x80(%rsp)
jmp 0x390c0
movq 0x80(%rsp), %rax
movq %rax, 0x1b8(%rsp)
movq 0x2d0(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0x34a20
jmp 0x390e7
movq 0x2d8(%rsp), %rdi
addq $0x60, %rdi
leaq 0xbed90(%rip), %rsi     # 0xf7e8a
leaq 0xbed83(%rip), %rdx     # 0xf7e84
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x36360
movq %rax, 0x78(%rsp)
jmp 0x39115
movq 0x78(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1b8(%rsp), %rdi
movq 0x1b0(%rsp), %rsi
callq 0x36430
jmp 0x39139
xorl %eax, %eax
movl %eax, %esi
leaq 0x1a8(%rsp), %rdi
callq 0x224d0
jmp 0x3914c
leaq 0x1c8(%rsp), %rdi
callq 0x39d10
movq %rax, 0x70(%rsp)
jmp 0x39160
leaq 0x1a8(%rsp), %rdi
callq 0x22510
movq 0x70(%rsp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movl %eax, 0x6c(%rsp)
jmp 0x39184
movl 0x6c(%rsp), %eax
cmpl $0x0, %eax
je 0x39238
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x60(%rsp)
leaq 0xbd8fc(%rip), %rsi     # 0xf6aa9
callq 0x5b7e0
jmp 0x391b4
movq 0x60(%rsp), %rdi
leaq 0x109eb0(%rip), %rsi    # 0x143070
leaq 0x18c99(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
leaq 0x218(%rsp), %rdi
callq 0x22610
jmp 0x396ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x396e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x396b3
movq 0x60(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x396b3
leaq 0x1a8(%rsp), %rdi
callq 0x22640
movq %rax, %rdi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movl %eax, 0x5c(%rsp)
jmp 0x39257
movl 0x5c(%rsp), %eax
cmpl $0x0, %eax
je 0x392c3
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x50(%rsp)
leaq 0xbd80e(%rip), %rsi     # 0xf6a8a
callq 0x5b7e0
jmp 0x39283
movq 0x50(%rsp), %rdi
leaq 0x109de1(%rip), %rsi    # 0x143070
leaq 0x18bca(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
movq 0x50(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x396b3
xorl %eax, %eax
movl %eax, %esi
leaq 0x1a0(%rsp), %rdi
callq 0x22dc0
jmp 0x392d6
jmp 0x392d8
leaq 0x1a8(%rsp), %rdi
callq 0x22640
movq %rax, 0x40(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x22e00
movq 0x40(%rsp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, 0x4c(%rsp)
jmp 0x3930e
movl 0x4c(%rsp), %eax
cmpl $0x0, %eax
je 0x3934d
movl $0x5, 0x26c(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x23860
jmp 0x39699
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x3968a
leaq 0x198(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x39d20
jmp 0x39364
leaq 0x198(%rsp), %rdi
callq 0x39d70
movq %rax, 0x38(%rsp)
jmp 0x39378
movq 0x38(%rsp), %rax
cmpq $0x0, %rax
jne 0x393ff
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x30(%rsp)
leaq 0xbd725(%rip), %rsi     # 0xf6ac4
callq 0x5b7e0
jmp 0x393a6
movq 0x30(%rsp), %rdi
leaq 0x109cbe(%rip), %rsi    # 0x143070
leaq 0x18aa7(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x3967d
movq 0x30(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x3967d
xorl %eax, %eax
movl %eax, %esi
leaq 0x190(%rsp), %rdi
callq 0x241d0
jmp 0x39412
leaq 0x198(%rsp), %rdi
callq 0x39d80
movq %rax, 0x28(%rsp)
jmp 0x39426
leaq 0x190(%rsp), %rdi
callq 0x24220
movq 0x28(%rsp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, 0x24(%rsp)
jmp 0x3944a
movl 0x24(%rsp), %eax
cmpl $0x0, %eax
je 0x394cf
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x18(%rsp)
leaq 0xbd671(%rip), %rsi     # 0xf6ae0
callq 0x5b7e0
jmp 0x39476
movq 0x18(%rsp), %rdi
leaq 0x109bee(%rip), %rsi    # 0x143070
leaq 0x189d7(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x39670
movq 0x18(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x39670
xorl %eax, %eax
movl %eax, %esi
leaq 0x188(%rsp), %rdi
callq 0x22dc0
jmp 0x394e2
leaq 0x198(%rsp), %rdi
callq 0x39d80
movq %rax, 0x10(%rsp)
jmp 0x394f6
leaq 0x188(%rsp), %rdi
callq 0x22e00
movq 0x10(%rsp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movl %eax, 0xc(%rsp)
jmp 0x3951a
movl 0xc(%rsp), %eax
cmpl $0x0, %eax
je 0x3959c
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, (%rsp)
leaq 0xbd5bf(%rip), %rsi     # 0xf6afd
callq 0x5b7e0
jmp 0x39545
movq (%rsp), %rdi
leaq 0x109b20(%rip), %rsi    # 0x143070
leaq 0x18909(%rip), %rdx     # 0x51e60
callq 0x48fd0
jmp 0x396fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
jmp 0x39663
movq (%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
callq 0x47fe0
jmp 0x39663
leaq 0x190(%rsp), %rdi
callq 0x24230
movq 0x160(%rsp), %rsi
movq %rax, %rdx
leaq 0x168(%rsp), %rdi
callq 0x39980
jmp 0x395c3
leaq 0x188(%rsp), %rdi
callq 0x280f0
movq 0x160(%rsp), %rdi
movq %rax, %rdx
movq 0x2d8(%rsp), %rcx
movq 0x1b8(%rsp), %r8
leaq 0x168(%rsp), %rsi
callq 0x38700
jmp 0x395fa
leaq 0x168(%rsp), %rdi
callq 0xc49c0
leaq 0x188(%rsp), %rdi
callq 0x23860
leaq 0x190(%rsp), %rdi
callq 0x23490
leaq 0x198(%rsp), %rdi
callq 0x39d90
leaq 0x1a0(%rsp), %rdi
callq 0x25370
jmp 0x3963d
jmp 0x392d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2b8(%rsp)
movl %eax, 0x2b4(%rsp)
leaq 0x168(%rsp), %rdi
callq 0xc49c0
leaq 0x188(%rsp), %rdi
callq 0x23860
leaq 0x190(%rsp), %rdi
callq 0x23490
leaq 0x198(%rsp), %rdi
callq 0x39d90
leaq 0x1a0(%rsp), %rdi
callq 0x23860
jmp 0x396b3
movl $0x1, 0x26c(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x22c30
jmp 0x396cd
leaq 0x1a8(%rsp), %rdi
callq 0x22c30
jmp 0x396e2
movl $0x0, 0x26c(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x39db0
addq $0x2f8, %rsp            # imm = 0x2F8
retq
leaq 0x1c8(%rsp), %rdi
callq 0x39db0
movq 0x2b8(%rsp), %rdi
callq 0xf31f0
nopl (%rax)