// File: tdv[P]boss/boss/include/common/string.h
// Function: Boss::String::ConvertInternal(unsigned int)
virtual RetCode ConvertInternal(UInt type)
    {
      if (Type == UnknownStringType && type != UnknownStringType)
        return Status::InvalidArgument;
      if (Type == type)
        return Status::Ok;
      if (Type == AnsiString || type == AnsiString)
        return Status::NotImplemented;
      if (Type == Utf8String && type == UnicodeString)
      {
        void const *Buf = 0;
        if (Data->GetData(&Buf) != Status::Ok)
          return Status::Fail;
        SetStringInternal(FromUtf8(std::string(reinterpret_cast<std::string::value_type const *>(Buf), Length).c_str()));
        return Status::Ok;
      }
      if (Type == UnicodeString && type == Utf8String)
      {
        void const *Buf = 0;
        if (Data->GetData(&Buf) != Status::Ok)
          return Status::Fail;
        SetStringInternal(ToUtf8(std::wstring(reinterpret_cast<std::wstring::value_type const *>(Buf), Length).c_str()), true);
        return Status::Ok;
      }
      return Status::Fail;
    }

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0xf8(%rsp)
movl %esi, 0xf4(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x38(%rsp)
cmpl $0x0, 0x40(%rax)
jne 0x1ccb3
cmpl $0x0, 0xf4(%rsp)
je 0x1ccb3
movl $0x5, 0x104(%rsp)
jmp 0x1cfdc
movq 0x38(%rsp), %rax
movl 0x40(%rax), %eax
cmpl 0xf4(%rsp), %eax
jne 0x1ccd4
movl $0x0, 0x104(%rsp)
jmp 0x1cfdc
movq 0x38(%rsp), %rax
cmpl $0x1, 0x40(%rax)
je 0x1cce9
cmpl $0x1, 0xf4(%rsp)
jne 0x1ccf9
movl $0x6, 0x104(%rsp)
jmp 0x1cfdc
movq 0x38(%rsp), %rax
cmpl $0x2, 0x40(%rax)
jne 0x1ce76
cmpl $0x3, 0xf4(%rsp)
jne 0x1ce76
movq 0x38(%rsp), %rdi
movq $0x0, 0xe8(%rsp)
addq $0x48, %rdi
callq 0x1f4e0
movq %rax, %rdi
movq (%rdi), %rax
leaq 0xe8(%rsp), %rsi
callq *0x28(%rax)
cmpl $0x0, %eax
je 0x1cd56
movl $0x2, 0x104(%rsp)
jmp 0x1cfdc
movq 0x38(%rsp), %rax
movq 0xe8(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movl 0x44(%rax), %eax
movq %rax, 0x28(%rsp)
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x23190
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x30(%rsp), %rcx
leaq 0xa8(%rsp), %rdi
callq 0x96270
jmp 0x1cda0
leaq 0xa8(%rsp), %rdi
callq 0x952d0
movq %rax, %rsi
leaq 0xc8(%rsp), %rdi
callq 0x1f7d0
jmp 0x1cdbf
movq 0x38(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1f710
jmp 0x1cdd3
leaq 0xc8(%rsp), %rdi
callq 0xab310
leaq 0xa8(%rsp), %rdi
callq 0x93890
leaq 0xa7(%rsp), %rdi
callq 0x231b0
movl $0x0, 0x104(%rsp)
jmp 0x1cfdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x1ce64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x1ce57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0xc8(%rsp), %rdi
callq 0xab310
leaq 0xa8(%rsp), %rdi
callq 0x93890
leaq 0xa7(%rsp), %rdi
callq 0x231b0
jmp 0x1cfeb
movq 0x38(%rsp), %rax
cmpl $0x3, 0x40(%rax)
jne 0x1cfd1
cmpl $0x2, 0xf4(%rsp)
jne 0x1cfd1
movq 0x38(%rsp), %rdi
movq $0x0, 0x88(%rsp)
addq $0x48, %rdi
callq 0x1f4e0
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x88(%rsp), %rsi
callq *0x28(%rax)
cmpl $0x0, %eax
je 0x1ced3
movl $0x2, 0x104(%rsp)
jmp 0x1cfdc
movq 0x38(%rsp), %rax
movq 0x88(%rsp), %rcx
movq %rcx, 0x8(%rsp)
movl 0x44(%rax), %eax
movq %rax, 0x10(%rsp)
leaq 0x47(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x231c0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rcx
leaq 0x48(%rsp), %rdi
callq 0xade60
jmp 0x1cf17
leaq 0x48(%rsp), %rdi
callq 0xacec0
movq %rax, %rsi
leaq 0x68(%rsp), %rdi
callq 0x1f8d0
jmp 0x1cf30
movq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rsi
movl $0x1, %edx
callq 0x1f800
jmp 0x1cf46
leaq 0x68(%rsp), %rdi
callq 0x93890
leaq 0x48(%rsp), %rdi
callq 0xab310
leaq 0x47(%rsp), %rdi
callq 0x231e0
movl $0x0, 0x104(%rsp)
jmp 0x1cfdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x1cfc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x1cfbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x93890
leaq 0x48(%rsp), %rdi
callq 0xab310
leaq 0x47(%rsp), %rdi
callq 0x231e0
jmp 0x1cfeb
movl $0x2, 0x104(%rsp)
movl 0x104(%rsp), %eax
addq $0x108, %rsp            # imm = 0x108
retq
movq 0x98(%rsp), %rdi
callq 0xc24c0
nopl (%rax,%rax)