// File: tdv[P]boss/boss/src/service_registry/service_registry.cpp
// Function: Boss::ServiceRegistry::Save(Boss::IOStream*)
RetCode BOSS_CALL ServiceRegistry::Save(IOStream *stream)
  {
    if (!stream)
      return Status::InvalidArgument;
    try
    {
      std::list<IServiceInfoPtr> ServiceInfoSet;
      {
        std::lock_guard<std::recursive_mutex> Lock(Mtx);
        for (auto const &service : Services)
        {
          bool Continue = false;
          for (auto Info : ServiceInfoSet)
          {
            if (Info.Get() == service.second.Get())
            {
              Continue = true;
              break;
            }
          }
          if (Continue)
            continue;
          ServiceInfoSet.push_back(service.second);
        }
      }
      auto ServiceEnum = Base<Enum>::Create();
      for (auto const &service : ServiceInfoSet)
      {
        RetCode Code = Status::Ok;
        auto ServiceItem = PropertyBagType::Create(ServiceTag);
        ServiceEnum->AddItem(ServiceItem);
        {
          ServiceId SrvId = 0;
          Code = service->GetServiceId(&SrvId);
          if (Code != Status::Ok)
            return Code;
          if ((Code = ServiceItem->SetProperty(ServiceIdTag, Base<EntityId>::Create(SrvId).Get())) != Status::Ok)
            return Code;
        }
        {
          RefObjPtr<IEnum> ClassIds;
          if ((service->GetClassIds(ClassIds.GetPPtr())) != Status::Ok)
            return Code;
          if ((Code = ServiceItem->SetProperty(ClassIdsTag, ClassIds.Get())) != Status::Ok)
            return Code;
        }
        {
          RefObjQIPtr<IRemoteServiceInfo> RemoteService(service);
          if (RemoteService.Get())
          {
            {
              ClassId SerializerId = 0;
              if ((Code = RemoteService->GetSerializerId(&SerializerId)) != Status::Ok ||
                  (Code = ServiceItem->SetProperty(SerializerIdTag, Base<EntityId>::Create(SerializerId).Get())) != Status::Ok)
              {
                return Code;
              }
            }
            {
              ClassId RemotingId = 0;
              if ((Code = RemoteService->GetRemotingId(&RemotingId)) != Status::Ok ||
                  (Code = ServiceItem->SetProperty(RemotingIdTag, Base<EntityId>::Create(RemotingId).Get())) != Status::Ok)
              {
                return Code;
              }
            }
            {
              ClassId TransportId = 0;
              if ((Code = RemoteService->GetTransportId(&TransportId)) != Status::Ok ||
                  (Code = ServiceItem->SetProperty(TransportIdTag, Base<EntityId>::Create(TransportId).Get())) != Status::Ok)
              {
                return Code;
              }
            }
            RefObjPtr<IPropertyBag> TransportProps;
            if ((Code = RemoteService->GetTransportProperties(TransportProps.GetPPtr())) != Status::Ok ||
                (Code = ServiceItem->SetProperty(TransportPropertiesTag, TransportProps.Get())) != Status::Ok)
            {
              return Code;
            }
            continue;
          }
        }
        {
          RefObjQIPtr<ILocalServiceInfo> LocalService(service);
          if (LocalService.Get())
          {
            RefObjPtr<IString> ModulePath;
            if ((Code = LocalService->GetModulePath(ModulePath.GetPPtr())) != Status::Ok ||
                (Code = ServiceItem->SetProperty(ModulePathTag, ModulePath.Get())) != Status::Ok)
            {
              return Code;
            }
            continue;
          }
        }
      }
      auto Registry = PropertyBagType::Create(RegistryTag);
      RetCode Code = Registry->SetProperty(ServicesTag, ServiceEnum.Get());
      if (Code != Status::Ok)
        return Code;
      RefObjQIPtr<ISerializable> Serializable(Registry);
      if (!Serializable.Get())
        return Status::Fail;
      if ((Code = Serializable->Save(stream)) != Status::Ok)
        return Code;
    }
    catch (std::exception const &)
    {
      return Status::Fail;
    }
    return Status::Ok;
  }

// Assembly:
subq $0x328, %rsp            # imm = 0x328
movq %rdi, 0x318(%rsp)
movq %rsi, 0x310(%rsp)
movq 0x318(%rsp), %rax
movq %rax, 0x1b8(%rsp)
cmpq $0x0, 0x310(%rsp)
jne 0x20ff2
movl $0x5, 0x324(%rsp)
jmp 0x221a7
leaq 0x2f8(%rsp), %rdi
callq 0x23b10
movq 0x1b8(%rsp), %rsi
addq $0x28, %rsi
leaq 0x2f0(%rsp), %rdi
callq 0x22340
jmp 0x2101a
movq 0x1b8(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x2d8(%rsp)
movq 0x2d8(%rsp), %rdi
callq 0x22940
movq %rax, 0x2d0(%rsp)
movq 0x2d8(%rsp), %rdi
callq 0x22970
movq %rax, 0x2c8(%rsp)
leaq 0x2d0(%rsp), %rdi
leaq 0x2c8(%rsp), %rsi
callq 0x223a0
testb $0x1, %al
jne 0x21076
jmp 0x21234
leaq 0x2d0(%rsp), %rdi
callq 0x229a0
movq %rax, 0x2c0(%rsp)
movb $0x0, 0x2bf(%rsp)
leaq 0x2f8(%rsp), %rax
movq %rax, 0x2b0(%rsp)
movq 0x2b0(%rsp), %rdi
callq 0x23b20
movq %rax, 0x2a8(%rsp)
movq 0x2b0(%rsp), %rdi
callq 0x23b50
movq %rax, 0x2a0(%rsp)
leaq 0x2a8(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x23b80
testb $0x1, %al
jne 0x210eb
jmp 0x211f9
leaq 0x2a8(%rsp), %rdi
callq 0x23ba0
movq %rax, %rsi
leaq 0x298(%rsp), %rdi
callq 0x23bc0
jmp 0x2110a
leaq 0x298(%rsp), %rdi
callq 0x23c00
movq %rax, 0x1b0(%rsp)
jmp 0x21121
movq 0x2c0(%rsp), %rdi
addq $0x8, %rdi
callq 0x23c10
movq %rax, 0x1a8(%rsp)
jmp 0x2113c
movq 0x1b0(%rsp), %rax
movq 0x1a8(%rsp), %rcx
cmpq %rcx, %rax
jne 0x211be
movb $0x1, 0x2bf(%rsp)
movl $0x4, 0x294(%rsp)
jmp 0x211c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x2214d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x213ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x22c50
jmp 0x213ae
movl $0x0, 0x294(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x22c50
movl 0x294(%rsp), %eax
testl %eax, %eax
je 0x211e5
jmp 0x211e3
jmp 0x211f9
jmp 0x211e7
leaq 0x2a8(%rsp), %rdi
callq 0x23c20
jmp 0x210cd
testb $0x1, 0x2bf(%rsp)
je 0x21205
jmp 0x21222
movq 0x2c0(%rsp), %rsi
addq $0x8, %rsi
leaq 0x2f8(%rsp), %rdi
callq 0x23c40
jmp 0x21220
jmp 0x21222
leaq 0x2d0(%rsp), %rdi
callq 0x22a20
jmp 0x21058
leaq 0x2f0(%rsp), %rdi
callq 0x22460
leaq 0x288(%rsp), %rdi
callq 0x23c80
jmp 0x21250
leaq 0x2f8(%rsp), %rax
movq %rax, 0x280(%rsp)
movq 0x280(%rsp), %rdi
callq 0x23b20
movq %rax, 0x278(%rsp)
movq 0x280(%rsp), %rdi
callq 0x23b50
movq %rax, 0x270(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x23b80
testb $0x1, %al
jne 0x212a8
jmp 0x21f47
leaq 0x278(%rsp), %rdi
callq 0x23ba0
movq %rax, 0x268(%rsp)
movl $0x0, 0x264(%rsp)
leaq 0xd4fba(%rip), %rsi     # 0xf6289
leaq 0x258(%rsp), %rdi
callq 0x23d70
jmp 0x212de
leaq 0x288(%rsp), %rdi
callq 0x23e60
movq %rax, 0x1a0(%rsp)
jmp 0x212f5
leaq 0x250(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x23f10
jmp 0x2130c
movq 0x1a0(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x23e70
jmp 0x21323
leaq 0x250(%rsp), %rdi
callq 0x23af0
movl $0x0, 0x24c(%rsp)
movq 0x268(%rsp), %rdi
callq 0x22c70
movq %rax, 0x198(%rsp)
jmp 0x21352
movq 0x198(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0x24c(%rsp), %rsi
callq *%rax
movl %eax, 0x194(%rsp)
jmp 0x21374
movl 0x194(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, 0x264(%rsp)
je 0x21418
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21ee8
leaq 0x2f0(%rsp), %rdi
callq 0x22460
jmp 0x2214d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x22140
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x21f35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x250(%rsp), %rdi
callq 0x23af0
jmp 0x21f35
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0x188(%rsp)
jmp 0x2142f
leaq 0x240(%rsp), %rdi
leaq 0x24c(%rsp), %rsi
callq 0x23f50
jmp 0x21446
leaq 0x240(%rsp), %rdi
callq 0x24050
movq %rax, 0x180(%rsp)
jmp 0x2145d
movq 0x180(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, 0x178(%rsp)
je 0x21489
movq 0x180(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x178(%rsp)
movq 0x188(%rsp), %rdi
movq 0x178(%rsp), %rdx
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd4dea(%rip), %rsi     # 0xf6291
callq *%rax
movl %eax, 0x174(%rsp)
jmp 0x214b2
movl 0x174(%rsp), %eax
movl %eax, 0x264(%rsp)
leaq 0x240(%rsp), %rdi
callq 0x24060
movl 0x174(%rsp), %eax
cmpl $0x0, %eax
je 0x2151d
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21ee8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x240(%rsp), %rdi
callq 0x24060
jmp 0x21f35
xorl %eax, %eax
movl %eax, %esi
leaq 0x238(%rsp), %rdi
callq 0x224d0
jmp 0x21530
movq 0x268(%rsp), %rdi
callq 0x22c70
movq %rax, 0x168(%rsp)
jmp 0x21547
leaq 0x238(%rsp), %rdi
callq 0x22510
movq %rax, 0x160(%rsp)
jmp 0x2155e
movq 0x160(%rsp), %rsi
movq 0x168(%rsp), %rdi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movl %eax, 0x15c(%rsp)
jmp 0x21580
movl 0x15c(%rsp), %eax
cmpl $0x0, %eax
je 0x215d0
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21660
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x22c30
jmp 0x21f35
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0x150(%rsp)
jmp 0x215e7
leaq 0x238(%rsp), %rdi
callq 0x24080
movq %rax, 0x148(%rsp)
jmp 0x215fe
movq 0x148(%rsp), %rdx
movq 0x150(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd4c7f(%rip), %rsi     # 0xf629b
callq *%rax
movl %eax, 0x144(%rsp)
jmp 0x21627
movl 0x144(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
je 0x21655
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21660
movl $0x0, 0x294(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x22c30
movl 0x294(%rsp), %eax
testl %eax, %eax
jne 0x21ee8
jmp 0x2167e
movq 0x268(%rsp), %rsi
leaq 0x230(%rsp), %rdi
callq 0x24090
jmp 0x21695
leaq 0x230(%rsp), %rdi
callq 0x240e0
movq %rax, 0x138(%rsp)
jmp 0x216ac
movq 0x138(%rsp), %rax
cmpq $0x0, %rax
je 0x21d13
movl $0x0, 0x22c(%rsp)
movb $0x0, 0x21f(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x240f0
movq %rax, 0x130(%rsp)
jmp 0x216e8
movq 0x130(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0x22c(%rsp), %rsi
callq *%rax
movl %eax, 0x12c(%rsp)
jmp 0x2170a
movl 0x12c(%rsp), %ecx
movl %ecx, 0x264(%rsp)
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x12b(%rsp)
jne 0x217e7
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0x120(%rsp)
jmp 0x21741
leaq 0x220(%rsp), %rdi
leaq 0x22c(%rsp), %rsi
callq 0x23f50
jmp 0x21758
movb $0x1, 0x21f(%rsp)
leaq 0x220(%rsp), %rdi
callq 0x24050
movq %rax, 0x118(%rsp)
jmp 0x21777
movq 0x118(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, 0x110(%rsp)
je 0x217a3
movq 0x118(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x110(%rsp)
movq 0x120(%rsp), %rdi
movq 0x110(%rsp), %rdx
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd4ae3(%rip), %rsi     # 0xf62a4
callq *%rax
movl %eax, 0x10c(%rsp)
jmp 0x217cc
movl 0x10c(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
setne %al
movb %al, 0x12b(%rsp)
movb 0x12b(%rsp), %al
movb %al, 0x10b(%rsp)
testb $0x1, 0x21f(%rsp)
jne 0x21801
jmp 0x2180e
leaq 0x220(%rsp), %rdi
callq 0x24060
movb 0x10b(%rsp), %al
testb $0x1, %al
jne 0x2181b
jmp 0x21884
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21d1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x21e4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
testb $0x1, 0x21f(%rsp)
jne 0x21872
jmp 0x2187f
leaq 0x220(%rsp), %rdi
callq 0x24060
jmp 0x21e4d
movl $0x0, 0x218(%rsp)
movb $0x0, 0x20f(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x240f0
movq %rax, 0x100(%rsp)
jmp 0x218ae
movq 0x100(%rsp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
leaq 0x218(%rsp), %rsi
callq *%rax
movl %eax, 0xfc(%rsp)
jmp 0x218d0
movl 0xfc(%rsp), %ecx
movl %ecx, 0x264(%rsp)
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xfb(%rsp)
jne 0x219ad
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0xf0(%rsp)
jmp 0x21907
leaq 0x210(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0x23f50
jmp 0x2191e
movb $0x1, 0x20f(%rsp)
leaq 0x210(%rsp), %rdi
callq 0x24050
movq %rax, 0xe8(%rsp)
jmp 0x2193d
movq 0xe8(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, 0xe0(%rsp)
je 0x21969
movq 0xe8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xe0(%rsp)
movq 0xf0(%rsp), %rdi
movq 0xe0(%rsp), %rdx
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd492a(%rip), %rsi     # 0xf62b1
callq *%rax
movl %eax, 0xdc(%rsp)
jmp 0x21992
movl 0xdc(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
setne %al
movb %al, 0xfb(%rsp)
movb 0xfb(%rsp), %al
movb %al, 0xdb(%rsp)
testb $0x1, 0x20f(%rsp)
jne 0x219c7
jmp 0x219d4
leaq 0x210(%rsp), %rdi
callq 0x24060
movb 0xdb(%rsp), %al
testb $0x1, %al
jne 0x219e1
jmp 0x21a31
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21d1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
testb $0x1, 0x20f(%rsp)
jne 0x21a1f
jmp 0x21a2c
leaq 0x210(%rsp), %rdi
callq 0x24060
jmp 0x21e4d
movl $0x0, 0x208(%rsp)
movb $0x0, 0x1ff(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x240f0
movq %rax, 0xd0(%rsp)
jmp 0x21a5b
movq 0xd0(%rsp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
leaq 0x208(%rsp), %rsi
callq *%rax
movl %eax, 0xcc(%rsp)
jmp 0x21a7d
movl 0xcc(%rsp), %ecx
movl %ecx, 0x264(%rsp)
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xcb(%rsp)
jne 0x21b5a
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0xc0(%rsp)
jmp 0x21ab4
leaq 0x200(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x23f50
jmp 0x21acb
movb $0x1, 0x1ff(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x24050
movq %rax, 0xb8(%rsp)
jmp 0x21aea
movq 0xb8(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, 0xb0(%rsp)
je 0x21b16
movq 0xb8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xb0(%rsp)
movq 0xc0(%rsp), %rdi
movq 0xb0(%rsp), %rdx
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd4788(%rip), %rsi     # 0xf62bc
callq *%rax
movl %eax, 0xac(%rsp)
jmp 0x21b3f
movl 0xac(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
setne %al
movb %al, 0xcb(%rsp)
movb 0xcb(%rsp), %al
movb %al, 0xab(%rsp)
testb $0x1, 0x1ff(%rsp)
jne 0x21b74
jmp 0x21b81
leaq 0x200(%rsp), %rdi
callq 0x24060
movb 0xab(%rsp), %al
testb $0x1, %al
jne 0x21b8e
jmp 0x21bde
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21d1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
testb $0x1, 0x1ff(%rsp)
jne 0x21bcc
jmp 0x21bd9
leaq 0x200(%rsp), %rdi
callq 0x24060
jmp 0x21e4d
xorl %eax, %eax
movl %eax, %esi
leaq 0x1f0(%rsp), %rdi
callq 0x24100
jmp 0x21bf1
leaq 0x230(%rsp), %rdi
callq 0x240f0
movq %rax, 0xa0(%rsp)
jmp 0x21c08
leaq 0x1f0(%rsp), %rdi
callq 0x24140
movq %rax, 0x98(%rsp)
jmp 0x21c1f
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movl %eax, 0x94(%rsp)
jmp 0x21c41
movl 0x94(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
jne 0x21cb8
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0x88(%rsp)
jmp 0x21c6b
leaq 0x1f0(%rsp), %rdi
callq 0x22fa0
movq %rax, 0x80(%rsp)
jmp 0x21c82
movq 0x80(%rsp), %rdx
movq 0x88(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd4630(%rip), %rsi     # 0xf62d0
callq *%rax
movl %eax, 0x7c(%rsp)
jmp 0x21ca8
movl 0x7c(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
je 0x21cf9
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21d04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x1f0(%rsp), %rdi
callq 0x23a90
jmp 0x21e4d
movl $0x7, 0x294(%rsp)
leaq 0x1f0(%rsp), %rdi
callq 0x23a90
jmp 0x21d1e
movl $0x0, 0x294(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x24150
movl 0x294(%rsp), %eax
testl %eax, %eax
jne 0x21ee8
jmp 0x21d3c
movq 0x268(%rsp), %rsi
leaq 0x1e8(%rsp), %rdi
callq 0x24170
jmp 0x21d53
leaq 0x1e8(%rsp), %rdi
callq 0x241c0
movq %rax, 0x70(%rsp)
jmp 0x21d67
movq 0x70(%rsp), %rax
cmpq $0x0, %rax
je 0x21eb8
xorl %eax, %eax
movl %eax, %esi
leaq 0x1e0(%rsp), %rdi
callq 0x241d0
jmp 0x21d89
leaq 0x1e8(%rsp), %rdi
callq 0x24210
movq %rax, 0x68(%rsp)
jmp 0x21d9d
leaq 0x1e0(%rsp), %rdi
callq 0x24220
movq %rax, 0x60(%rsp)
jmp 0x21db1
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movl %eax, 0x5c(%rsp)
jmp 0x21dca
movl 0x5c(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
jne 0x21e32
leaq 0x258(%rsp), %rdi
callq 0x22db0
movq %rax, 0x50(%rsp)
jmp 0x21dee
leaq 0x1e0(%rsp), %rdi
callq 0x24230
movq %rax, 0x48(%rsp)
jmp 0x21e02
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd44ca(%rip), %rsi     # 0xf62e4
callq *%rax
movl %eax, 0x44(%rsp)
jmp 0x21e22
movl 0x44(%rsp), %eax
movl %eax, 0x264(%rsp)
cmpl $0x0, %eax
je 0x21e9e
movl 0x264(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x21ea9
leaq 0x230(%rsp), %rdi
callq 0x24150
jmp 0x21f35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x21f28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x1e0(%rsp), %rdi
callq 0x23490
jmp 0x21f28
movl $0x7, 0x294(%rsp)
leaq 0x1e0(%rsp), %rdi
callq 0x23490
jmp 0x21ec3
movl $0x0, 0x294(%rsp)
leaq 0x1e8(%rsp), %rdi
callq 0x24240
movl 0x294(%rsp), %eax
testl %eax, %eax
jne 0x21ee8
jmp 0x21edd
movl $0x0, 0x294(%rsp)
leaq 0x258(%rsp), %rdi
callq 0x23af0
movl 0x294(%rsp), %eax
movl %eax, 0x40(%rsp)
testl %eax, %eax
je 0x21f14
jmp 0x21f06
movl 0x40(%rsp), %eax
subl $0x7, %eax
je 0x21f16
jmp 0x22108
jmp 0x21f16
leaq 0x278(%rsp), %rdi
callq 0x23c20
jmp 0x2128a
leaq 0x1e8(%rsp), %rdi
callq 0x24240
leaq 0x258(%rsp), %rdi
callq 0x23af0
jmp 0x22140
leaq 0xd4332(%rip), %rsi     # 0xf6280
leaq 0x1d8(%rsp), %rdi
callq 0x22cb0
jmp 0x21f5d
leaq 0x1d8(%rsp), %rdi
callq 0x22db0
movq %rax, 0x38(%rsp)
jmp 0x21f71
leaq 0x288(%rsp), %rdi
callq 0x24260
movq %rax, 0x30(%rsp)
jmp 0x21f85
movq 0x30(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, 0x28(%rsp)
je 0x21fa5
movq 0x30(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rdx
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0xd4332(%rip), %rsi     # 0xf62ef
callq *%rax
movl %eax, 0x24(%rsp)
jmp 0x21fc5
movl 0x24(%rsp), %eax
movl %eax, 0x1d4(%rsp)
cmpl $0x0, 0x1d4(%rsp)
je 0x22011
movl 0x1d4(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x220fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
jmp 0x22133
leaq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x24270
jmp 0x22028
leaq 0x1c8(%rsp), %rdi
callq 0x242c0
movq %rax, 0x18(%rsp)
jmp 0x2203c
movq 0x18(%rsp), %rax
cmpq $0x0, %rax
jne 0x22088
movl $0x2, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x220ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2e8(%rsp)
movl %eax, 0x2e4(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x242e0
jmp 0x22133
leaq 0x1c8(%rsp), %rdi
callq 0x242d0
movq %rax, 0x10(%rsp)
jmp 0x2209c
movq 0x10(%rsp), %rdi
movq 0x310(%rsp), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movl %eax, 0xc(%rsp)
jmp 0x220b8
movl 0xc(%rsp), %eax
movl %eax, 0x1d4(%rsp)
cmpl $0x0, %eax
je 0x220e3
movl 0x1d4(%rsp), %eax
movl %eax, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
jmp 0x220ee
movl $0x0, 0x294(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x242e0
leaq 0x1d8(%rsp), %rdi
callq 0x23af0
leaq 0x288(%rsp), %rdi
callq 0x24300
leaq 0x2f8(%rsp), %rdi
callq 0x24320
movl 0x294(%rsp), %eax
testl %eax, %eax
je 0x22131
jmp 0x2212f
jmp 0x221a7
jmp 0x2219c
leaq 0x1d8(%rsp), %rdi
callq 0x23af0
leaq 0x288(%rsp), %rdi
callq 0x24300
leaq 0x2f8(%rsp), %rdi
callq 0x24320
movl 0x2e4(%rsp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x221b6
movq 0x2e8(%rsp), %rdi
callq 0x480e0
movq %rax, 0x1c0(%rsp)
movl $0x2, 0x324(%rsp)
movl $0x1, 0x294(%rsp)
callq 0x48150
jmp 0x221a7
movl $0x0, 0x324(%rsp)
movl 0x324(%rsp), %eax
addq $0x328, %rsp            # imm = 0x328
retq
movq 0x2e8(%rsp), %rdi
callq 0xf31f0
nopw %cs:(%rax,%rax)