// File: tdv[P]boss/boss/src/service_registry/service_registry.cpp
// Function: Boss::ServiceRegistry::Load(Boss::IIStream*)
RetCode BOSS_CALL ServiceRegistry::Load(IIStream *stream)
  {
    if (!stream)
      return Status::InvalidArgument;
    std::lock_guard<std::recursive_mutex> Lock(Mtx);
    try
    {
      auto Registry = PropertyBagType::Create(RegistryTag);
      RetCode Code = Registry->Load(stream);
      if (Code != Status::Ok)
        return Code;
      RefObjPtr<IBase> ServiceEnumProp;
      if ((Code = Registry->GetProperty(ServicesTag, ServiceEnumProp.GetPPtr())) != Status::Ok)
        return Code;
      EnumHelper<IPropertyBag> ServiceEnum(ServiceEnumProp);
      ServicePool NewServices;
      for (auto i =ServiceEnum.First() ; i.Get() ; i = ServiceEnum.Next())
      {
        RefObjPtr<IBase> EntId;
        if ((Code = i->GetProperty(ServiceIdTag, EntId.GetPPtr())) != Status::Ok)
          return Code;
        RefObjQIPtr<IEntityId> EntSrvId(EntId);
        if (!EntSrvId.Get())
          return Status::Fail;
        ServiceId SrvId = 0;
        if ((Code = EntSrvId->GetId(&SrvId)) != Status::Ok)
          return Code;
        RefObjPtr<IBase> ClassIdsEnumProp;
        if ((Code = i->GetProperty(ClassIdsTag, ClassIdsEnumProp.GetPPtr())) != Status::Ok)
          return Code;
        RefObjQIPtr<IEnum> ClassIdsEnum(ClassIdsEnumProp);
        if (!ClassIdsEnum.Get())
          return Status::Fail;
        RefObjPtr<IBase> ModulePathProp;
        RefObjPtr<IServiceInfo> ServiceInfo;
        if (i->GetProperty(ModulePathTag, ModulePathProp.GetPPtr()) == Status::Ok)
        {
          RefObjQIPtr<IString> ModulePath(ModulePathProp);
          if (!ModulePath.Get())
            return Status::Fail;
          auto LocalSrvInfo = Base<LocalServiceInfo>::Create();
          LocalSrvInfo->SetServiceId(SrvId);
          LocalSrvInfo->AddCoClassIds(ClassIdsEnum);
          LocalSrvInfo->SetModulePath(ModulePath);
          ServiceInfo = LocalSrvInfo;
        }
        else
        {
          auto RemoteSrvInfo = Base<RemoteServiceInfo>::Create();
          RemoteSrvInfo->SetServiceId(SrvId);
          RemoteSrvInfo->AddCoClassIds(ClassIdsEnum);
          {
            RefObjPtr<IBase> EntId;
            if (i->GetProperty(SerializerIdTag, EntId.GetPPtr()) == Status::Ok)
            {
              RefObjQIPtr<IEntityId> SerializerId(EntId);
              if (!SerializerId.Get())
                return Status::Fail;
              ClassId Id;
              if (SerializerId->GetId(&Id) != Status::Ok)
                return Status::Fail;
              RemoteSrvInfo->SetSerializerId(Id);
            }
            return Status::Fail;
          }
          {
            RefObjPtr<IBase> EntId;
            if (i->GetProperty(RemotingIdTag, EntId.GetPPtr()) == Status::Ok)
            {
              RefObjQIPtr<IEntityId> RemotingId(EntId);
              if (!RemotingId.Get())
                return Status::Fail;
              ClassId Id;
              if (RemotingId->GetId(&Id) != Status::Ok)
                return Status::Fail;
              RemoteSrvInfo->SetRemotingId(Id);
            }
            return Status::Fail;
          }
          {
            RefObjPtr<IBase> EntId;
            if (i->GetProperty(TransportIdTag, EntId.GetPPtr()) == Status::Ok)
            {
              RefObjQIPtr<IEntityId> TransportId(EntId);
              if (!TransportId.Get())
                return Status::Fail;
              ClassId Id;
              if (TransportId->GetId(&Id) != Status::Ok)
                return Status::Fail;
              RemoteSrvInfo->SetTransportId(Id);
            }
            return Status::Fail;
          }
          RefObjPtr<IBase> TransportPropertiesProp;
          if (i->GetProperty(TransportPropertiesTag, TransportPropertiesProp.GetPPtr()) == Status::Ok)
          {
            RefObjQIPtr<IPropertyBag> TransportProperties(TransportPropertiesProp);
            if (!TransportProperties.Get())
              return Status::Fail;
            RemoteSrvInfo->SetProps(TransportProperties);
            ServiceInfo = RemoteSrvInfo;
          }
          else
            return Status::Fail;
        }
        EnumHelper<IEntityId> ClassIdsEnumHelper(ClassIdsEnum);
        for (auto j = ClassIdsEnumHelper.First() ; j.Get() ; j = ClassIdsEnumHelper.Next())
        {
          ClassId Id = 0;
          if ((Code = j->GetId(&Id)) != Status::Ok)
            return Code;
          NewServices[Id] = ServiceInfo;
        }
      }
      std::swap(Services, NewServices);
      return Status::Ok;
    }
    catch (...)
    {
      return Status::Fail;
    }
    return Status::Ok;
  }

// Assembly:
subq $0x298, %rsp            # imm = 0x298
movq %rdi, 0x288(%rsp)
movq %rsi, 0x280(%rsp)
movq 0x288(%rsp), %rax
movq %rax, 0x130(%rsp)
cmpq $0x0, 0x280(%rsp)
jne 0x20032
movl $0x5, 0x294(%rsp)
jmp 0x20f6d
movq 0x130(%rsp), %rsi
addq $0x28, %rsi
leaq 0x278(%rsp), %rdi
callq 0x22340
leaq 0xd622e(%rip), %rsi     # 0xf6280
leaq 0x270(%rsp), %rdi
callq 0x22cb0
jmp 0x20061
leaq 0x270(%rsp), %rdi
callq 0x22db0
movq %rax, 0x128(%rsp)
jmp 0x20078
movq 0x128(%rsp), %rdi
movq 0x280(%rsp), %rsi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movl %eax, 0x124(%rsp)
jmp 0x2009a
movl 0x124(%rsp), %eax
movl %eax, 0x260(%rsp)
cmpl $0x0, 0x260(%rsp)
je 0x20102
movl 0x260(%rsp), %eax
movl %eax, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20ef5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20f11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20f04
xorl %eax, %eax
movl %eax, %esi
leaq 0x250(%rsp), %rdi
callq 0x22dc0
jmp 0x20115
leaq 0x270(%rsp), %rdi
callq 0x22db0
movq %rax, 0x118(%rsp)
jmp 0x2012c
leaq 0x250(%rsp), %rdi
callq 0x22e00
movq %rax, 0x110(%rsp)
jmp 0x20143
movq 0x110(%rsp), %rdx
movq 0x118(%rsp), %rdi
movq (%rdi), %rax
movq 0x30(%rax), %rax
leaq 0xd618e(%rip), %rsi     # 0xf62ef
callq *%rax
movl %eax, 0x10c(%rsp)
jmp 0x2016c
movl 0x10c(%rsp), %eax
movl %eax, 0x260(%rsp)
cmpl $0x0, %eax
je 0x201b6
movl 0x260(%rsp), %eax
movl %eax, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20ed7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20ee6
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x22e10
jmp 0x201cd
leaq 0x248(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x22e60
jmp 0x201e4
leaq 0x240(%rsp), %rdi
callq 0x22610
leaq 0x208(%rsp), %rdi
callq 0x22320
leaq 0x200(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x22f10
jmp 0x20215
jmp 0x20217
leaq 0x200(%rsp), %rdi
callq 0x22fa0
movq %rax, 0x100(%rsp)
jmp 0x2022e
movq 0x100(%rsp), %rax
cmpq $0x0, %rax
jne 0x202a4
movl $0x2, 0x25c(%rsp)
jmp 0x20e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x240(%rsp), %rdi
callq 0x22610
jmp 0x20ee6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20ebb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20e61
xorl %eax, %eax
movl %eax, %esi
leaq 0x1f8(%rsp), %rdi
callq 0x22dc0
jmp 0x202b7
leaq 0x200(%rsp), %rdi
callq 0x22fb0
movq %rax, 0xf8(%rsp)
jmp 0x202ce
leaq 0x1f8(%rsp), %rdi
callq 0x22e00
movq %rax, 0xf0(%rsp)
jmp 0x202e5
movq 0xf0(%rsp), %rdx
movq 0xf8(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0xd5f8e(%rip), %rsi     # 0xf6291
callq *%rax
movl %eax, 0xec(%rsp)
jmp 0x2030e
movl 0xec(%rsp), %eax
movl %eax, 0x260(%rsp)
cmpl $0x0, %eax
je 0x20358
movl 0x260(%rsp), %eax
movl %eax, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20d66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20e14
leaq 0x1f0(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x22fc0
jmp 0x2036f
leaq 0x1f0(%rsp), %rdi
callq 0x23010
movq %rax, 0xe0(%rsp)
jmp 0x20386
movq 0xe0(%rsp), %rax
cmpq $0x0, %rax
jne 0x203c8
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20d59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20e07
movl $0x0, 0x1ec(%rsp)
leaq 0x1f0(%rsp), %rdi
callq 0x23020
movq %rax, 0xd8(%rsp)
jmp 0x203ea
movq 0xd8(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0x1ec(%rsp), %rsi
callq *%rax
movl %eax, 0xd4(%rsp)
jmp 0x2040c
movl 0xd4(%rsp), %eax
movl %eax, 0x260(%rsp)
cmpl $0x0, %eax
je 0x2043d
movl 0x260(%rsp), %eax
movl %eax, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20d59
xorl %eax, %eax
movl %eax, %esi
leaq 0x1e0(%rsp), %rdi
callq 0x22dc0
jmp 0x20450
leaq 0x200(%rsp), %rdi
callq 0x22fb0
movq %rax, 0xc8(%rsp)
jmp 0x20467
leaq 0x1e0(%rsp), %rdi
callq 0x22e00
movq %rax, 0xc0(%rsp)
jmp 0x2047e
movq 0xc0(%rsp), %rdx
movq 0xc8(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0xd5dff(%rip), %rsi     # 0xf629b
callq *%rax
movl %eax, 0xbc(%rsp)
jmp 0x204a7
movl 0xbc(%rsp), %eax
movl %eax, 0x260(%rsp)
cmpl $0x0, %eax
je 0x204f1
movl 0x260(%rsp), %eax
movl %eax, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20d4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20dfa
leaq 0x1d8(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x22e10
jmp 0x20508
leaq 0x1d8(%rsp), %rdi
callq 0x23030
movq %rax, 0xb0(%rsp)
jmp 0x2051f
movq 0xb0(%rsp), %rax
cmpq $0x0, %rax
jne 0x20561
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20d3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20ded
xorl %eax, %eax
movl %eax, %esi
leaq 0x1d0(%rsp), %rdi
callq 0x22dc0
jmp 0x20574
xorl %eax, %eax
movl %eax, %esi
leaq 0x1c8(%rsp), %rdi
callq 0x22480
jmp 0x20587
leaq 0x200(%rsp), %rdi
callq 0x22fb0
movq %rax, 0xa8(%rsp)
jmp 0x2059e
leaq 0x1d0(%rsp), %rdi
callq 0x22e00
movq %rax, 0xa0(%rsp)
jmp 0x205b5
movq 0xa0(%rsp), %rdx
movq 0xa8(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0xd5d11(%rip), %rsi     # 0xf62e4
callq *%rax
movl %eax, 0x9c(%rsp)
jmp 0x205de
movl 0x9c(%rsp), %eax
cmpl $0x0, %eax
jne 0x20847
leaq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x23040
jmp 0x20605
leaq 0x1c0(%rsp), %rdi
callq 0x23090
movq %rax, 0x90(%rsp)
jmp 0x2061c
movq 0x90(%rsp), %rax
cmpq $0x0, %rax
jne 0x20690
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x207ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20de0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20dd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20835
leaq 0x1b8(%rsp), %rdi
callq 0x230a0
jmp 0x2069f
leaq 0x1b8(%rsp), %rdi
callq 0x23190
movq %rax, 0x88(%rsp)
jmp 0x206b6
movq 0x88(%rsp), %rdi
addq $0x8, %rdi
movl 0x1ec(%rsp), %esi
callq 0x231a0
jmp 0x206d0
leaq 0x1b8(%rsp), %rdi
callq 0x23190
movq %rax, 0x80(%rsp)
jmp 0x206e7
movq 0x80(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x78(%rsp)
leaq 0x1b0(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x23360
jmp 0x2070f
movq 0x78(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x231c0
jmp 0x20723
leaq 0x1b0(%rsp), %rdi
callq 0x22c30
leaq 0x1b8(%rsp), %rdi
callq 0x23190
movq %rax, 0x70(%rsp)
jmp 0x20744
leaq 0x1a8(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x23410
jmp 0x2075b
movq 0x70(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x233e0
jmp 0x2076f
leaq 0x1a8(%rsp), %rdi
callq 0x23490
leaq 0x1c8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x234b0
jmp 0x20793
leaq 0x1b8(%rsp), %rdi
callq 0x23520
movl $0x0, 0x25c(%rsp)
leaq 0x1c0(%rsp), %rdi
callq 0x23540
movl 0x25c(%rsp), %eax
testl %eax, %eax
jne 0x20d25
jmp 0x207c9
jmp 0x20b09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20828
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0x22c30
jmp 0x20828
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x23490
leaq 0x1b8(%rsp), %rdi
callq 0x23520
leaq 0x1c0(%rsp), %rdi
callq 0x23540
jmp 0x20dd3
leaq 0x1a0(%rsp), %rdi
callq 0x23560
jmp 0x20856
leaq 0x1a0(%rsp), %rdi
callq 0x23650
movq %rax, 0x68(%rsp)
jmp 0x2086a
movq 0x68(%rsp), %rdi
addq $0x8, %rdi
movl 0x1ec(%rsp), %esi
callq 0x23660
jmp 0x20881
leaq 0x1a0(%rsp), %rdi
callq 0x23650
movq %rax, 0x60(%rsp)
jmp 0x20895
movq 0x60(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x58(%rsp)
leaq 0x198(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x23360
jmp 0x208ba
movq 0x58(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x23680
jmp 0x208ce
leaq 0x198(%rsp), %rdi
callq 0x22c30
xorl %eax, %eax
movl %eax, %esi
leaq 0x190(%rsp), %rdi
callq 0x22dc0
jmp 0x208ee
leaq 0x200(%rsp), %rdi
callq 0x22fb0
movq %rax, 0x50(%rsp)
jmp 0x20902
leaq 0x190(%rsp), %rdi
callq 0x22e00
movq %rax, 0x48(%rsp)
jmp 0x20916
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0xd5976(%rip), %rsi     # 0xf62a4
callq *%rax
movl %eax, 0x44(%rsp)
jmp 0x20936
movl 0x44(%rsp), %eax
cmpl $0x0, %eax
jne 0x20ab5
leaq 0x188(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x22fc0
jmp 0x2095a
leaq 0x188(%rsp), %rdi
callq 0x23010
movq %rax, 0x38(%rsp)
jmp 0x2096e
movq 0x38(%rsp), %rax
cmpq $0x0, %rax
jne 0x20a16
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20a99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20af7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x22c30
jmp 0x20af7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20aea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x23840
jmp 0x20aea
leaq 0x188(%rsp), %rdi
callq 0x23020
movq %rax, 0x30(%rsp)
jmp 0x20a2a
movq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0x184(%rsp), %rsi
callq *%rax
movl %eax, 0x2c(%rsp)
jmp 0x20a46
movl 0x2c(%rsp), %eax
cmpl $0x0, %eax
je 0x20a67
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20a99
leaq 0x1a0(%rsp), %rdi
callq 0x23650
movq %rax, 0x20(%rsp)
jmp 0x20a7b
movq 0x20(%rsp), %rdi
movl 0x184(%rsp), %esi
callq 0x23820
jmp 0x20a8e
movl $0x0, 0x25c(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x23840
movl 0x25c(%rsp), %eax
testl %eax, %eax
jne 0x20acb
jmp 0x20ab3
jmp 0x20ab5
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
leaq 0x190(%rsp), %rdi
callq 0x23860
leaq 0x1a0(%rsp), %rdi
callq 0x23880
jmp 0x20d25
leaq 0x190(%rsp), %rdi
callq 0x23860
leaq 0x1a0(%rsp), %rdi
callq 0x23880
jmp 0x20dd3
leaq 0x158(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x238a0
jmp 0x20b20
leaq 0x160(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x22560
jmp 0x20b37
leaq 0x158(%rsp), %rdi
callq 0x22610
leaq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x22650
jmp 0x20b5b
jmp 0x20b5d
leaq 0x150(%rsp), %rdi
callq 0x226e0
movq %rax, 0x18(%rsp)
jmp 0x20b71
movq 0x18(%rsp), %rax
cmpq $0x0, %rax
jne 0x20be4
movl $0x5, 0x25c(%rsp)
jmp 0x20ce0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x22610
jmp 0x20dd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20dc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x20cfb
movl $0x0, 0x14c(%rsp)
leaq 0x150(%rsp), %rdi
callq 0x226f0
movq %rax, 0x10(%rsp)
jmp 0x20c03
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0x14c(%rsp), %rsi
callq *%rax
movl %eax, 0xc(%rsp)
jmp 0x20c1f
movl 0xc(%rsp), %eax
movl %eax, 0x260(%rsp)
cmpl $0x0, %eax
je 0x20c4d
movl 0x260(%rsp), %eax
movl %eax, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
jmp 0x20ce0
leaq 0x208(%rsp), %rdi
leaq 0x14c(%rsp), %rsi
callq 0x22b00
movq %rax, (%rsp)
jmp 0x20c68
movq (%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x22b30
jmp 0x20c7b
jmp 0x20c7d
leaq 0x140(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x22770
jmp 0x20c94
leaq 0x150(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x228e0
jmp 0x20cab
leaq 0x140(%rsp), %rdi
callq 0x22920
jmp 0x20b5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x22920
jmp 0x20cfb
leaq 0x150(%rsp), %rdi
callq 0x22920
movl 0x25c(%rsp), %eax
subl $0x5, %eax
je 0x20d0d
jmp 0x20d18
leaq 0x150(%rsp), %rdi
callq 0x22920
jmp 0x20dc6
movl $0x0, 0x25c(%rsp)
leaq 0x160(%rsp), %rdi
callq 0x22c20
leaq 0x1c8(%rsp), %rdi
callq 0x22c50
leaq 0x1d0(%rsp), %rdi
callq 0x23860
leaq 0x1d8(%rsp), %rdi
callq 0x22610
leaq 0x1e0(%rsp), %rdi
callq 0x23860
leaq 0x1f0(%rsp), %rdi
callq 0x23840
leaq 0x1f8(%rsp), %rdi
callq 0x23860
movl 0x25c(%rsp), %eax
testl %eax, %eax
jne 0x20e46
jmp 0x20d84
jmp 0x20d86
leaq 0x138(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x238e0
jmp 0x20d9d
leaq 0x200(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x23a50
jmp 0x20db4
leaq 0x138(%rsp), %rdi
callq 0x23a90
jmp 0x20217
leaq 0x160(%rsp), %rdi
callq 0x22c20
leaq 0x1c8(%rsp), %rdi
callq 0x22c50
leaq 0x1d0(%rsp), %rdi
callq 0x23860
leaq 0x1d8(%rsp), %rdi
callq 0x22610
leaq 0x1e0(%rsp), %rdi
callq 0x23860
leaq 0x1f0(%rsp), %rdi
callq 0x23840
leaq 0x1f8(%rsp), %rdi
callq 0x23860
jmp 0x20e61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x138(%rsp), %rdi
callq 0x23a90
jmp 0x20e61
leaq 0x200(%rsp), %rdi
callq 0x23a90
movl 0x25c(%rsp), %eax
subl $0x2, %eax
je 0x20e70
jmp 0x20e9f
leaq 0x200(%rsp), %rdi
callq 0x23a90
jmp 0x20ebb
movq 0x130(%rsp), %rdi
addq $0x50, %rdi
leaq 0x208(%rsp), %rsi
callq 0x23ab0
movl $0x0, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x22330
leaq 0x248(%rsp), %rdi
callq 0x23ae0
jmp 0x20ed7
leaq 0x208(%rsp), %rdi
callq 0x22330
leaq 0x248(%rsp), %rdi
callq 0x23ae0
jmp 0x20ee6
leaq 0x250(%rsp), %rdi
callq 0x23860
jmp 0x20ef5
leaq 0x250(%rsp), %rdi
callq 0x23860
jmp 0x20f04
leaq 0x270(%rsp), %rdi
callq 0x23af0
jmp 0x20f60
leaq 0x270(%rsp), %rdi
callq 0x23af0
movq 0x268(%rsp), %rdi
callq 0x480e0
movl $0x2, 0x294(%rsp)
movl $0x1, 0x25c(%rsp)
callq 0x48150
jmp 0x20f3b
jmp 0x20f60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x278(%rsp), %rdi
callq 0x22460
jmp 0x20f7c
leaq 0x278(%rsp), %rdi
callq 0x22460
movl 0x294(%rsp), %eax
addq $0x298, %rsp            # imm = 0x298
retq
movq 0x268(%rsp), %rdi
callq 0xf31f0
nopl (%rax)