// File: tdv[P]boss/boss/include/plugin/module_holder.h
// Function: Boss::ModuleHolder::GetClassIds() const
ClassIdPool const GetClassIds() const
    {
      typedef RetCode (*PFNBossGetClassCount)(UInt *);
      UInt Count = 0;
      auto *BossGetClassCount = Dll.GetProc<PFNBossGetClassCount>("BossGetClassCount");
      if (BossGetClassCount(&Count) != Status::Ok)
        throw ModuleHolderException("Failed to call BossGetClassCount.");
      typedef RetCode (*PFNBossGetClassId)(UInt, ClassId *);
      auto *BossGetClassId = Dll.GetProc<PFNBossGetClassId>("BossGetClassId");
      ClassIdPool Ids;
      for (UInt i = 0 ; i < Count ; ++i)
      {
        ClassId Id = 0;
        if (BossGetClassId(i, &Id) != Status::Ok)
          throw ModuleHolderException("Failed to call BossGetClassId.");
        Ids.push_back(Id);
      }
      return std::move(Ids);
    }

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0x38(%rsp)
movq %rdi, %rax
movq %rax, 0x40(%rsp)
movq %rdi, 0x100(%rsp)
movq %rsi, 0xf8(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movl $0x0, 0xf4(%rsp)
leaq 0xc7(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x4a200
movq 0x58(%rsp), %rdx
leaq 0xb6a3a(%rip), %rsi     # 0xf8559
leaq 0xc8(%rsp), %rdi
callq 0xc7340
jmp 0x41b2e
movq 0x48(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x42510
movq %rax, 0x30(%rsp)
jmp 0x41b47
leaq 0xc8(%rsp), %rdi
callq 0xc49c0
leaq 0xc7(%rsp), %rdi
callq 0x4a220
movq 0x30(%rsp), %rax
movq %rax, 0xe8(%rsp)
leaq 0xf4(%rsp), %rdi
callq *0xe8(%rsp)
cmpl $0x0, %eax
je 0x41c2d
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x28(%rsp)
leaq 0xb69c9(%rip), %rsi     # 0xf856b
callq 0x42780
jmp 0x41ba9
movq 0x28(%rsp), %rdi
leaq 0x10038b(%rip), %rsi    # 0x141f40
leaq 0xb44(%rip), %rdx       # 0x42700
callq 0x48fd0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x41bf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0xc8(%rsp), %rdi
callq 0xc49c0
leaq 0xc7(%rsp), %rdi
callq 0x4a220
jmp 0x41e04
movq 0x28(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
callq 0x47fe0
jmp 0x41e04
movq 0x50(%rsp), %rax
movq %rax, 0x18(%rsp)
leaq 0x87(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x4a200
movq 0x20(%rsp), %rdx
leaq 0xb6938(%rip), %rsi     # 0xf858d
leaq 0x88(%rsp), %rdi
callq 0xc7340
jmp 0x41c64
movq 0x18(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x427c0
movq %rax, 0x10(%rsp)
jmp 0x41c7d
leaq 0x88(%rsp), %rdi
callq 0xc49c0
leaq 0x87(%rsp), %rdi
callq 0x4a220
movq 0x10(%rsp), %rax
movq %rax, 0xa8(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x22630
movl $0x0, 0x64(%rsp)
movl 0x64(%rsp), %eax
cmpl 0xf4(%rsp), %eax
jae 0x41dd4
movl $0x0, 0x60(%rsp)
movq 0xa8(%rsp), %rax
movl 0x64(%rsp), %edi
leaq 0x60(%rsp), %rsi
callq *%rax
movl %eax, 0xc(%rsp)
jmp 0x41ce8
movl 0xc(%rsp), %eax
cmpl $0x0, %eax
je 0x41db1
movl $0x10, %edi
callq 0x47f80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, (%rsp)
leaq 0xb688c(%rip), %rsi     # 0xf859c
callq 0x42970
jmp 0x41d17
movq (%rsp), %rdi
leaq 0x10021e(%rip), %rsi    # 0x141f40
leaq 0x9d7(%rip), %rdx       # 0x42700
callq 0x48fd0
jmp 0x41e11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x41d6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x88(%rsp), %rdi
callq 0xc49c0
leaq 0x87(%rsp), %rdi
callq 0x4a220
jmp 0x41e04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x41dfa
movq (%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
callq 0x47fe0
jmp 0x41dfa
leaq 0x68(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x22700
jmp 0x41dc2
jmp 0x41dc4
movl 0x64(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x64(%rsp)
jmp 0x41cb6
movq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x429b0
leaq 0x68(%rsp), %rdi
callq 0x22bc0
movq 0x40(%rsp), %rax
addq $0x108, %rsp            # imm = 0x108
retq
leaq 0x68(%rsp), %rdi
callq 0x22bc0
movq 0xb8(%rsp), %rdi
callq 0xf31f0
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)