HdlspPutString

VOID __stdcall HdlspPutString(UINT8 *String){
  UINT8 *v1; 
  UINT8 **v2; 
  char *v3; 
  char *v4; 
  char v5; 
  __int64 v6; 
  __int64 v7; 
  __int16 *p_UTF8Encoding; 
  __int16 UTF8Encoding; 
  char v10; 

  v1 = String;
  v2 = (UINT8 **)(*(&stru_140CF2E80 + 920) + 24i64);
  v3 = *(char **)(*(&stru_140CF2E80 + 920) + 24i64);
  if( *String )
  {
    while( 1 )
    {
      v4 = (char *)(*v2 + 79);
      if( v3 < v4 )
        break;
      *v4 = 0;
      HdlspSendStringAtBaud(*v2);
      v2 = (UINT8 **)(*(&stru_140CF2E80 + 920) + 24i64);
      v3 = *(char **)(*(&stru_140CF2E80 + 920) + 24i64);
LABEL_19:
      if( !*v1 )
        goto LABEL_20;
    }
    v5 = *v1;
    if( (*v1 & 0x80u) == 0 )
      goto LABEL_17;
    if( (unsigned __int8)v5 > 0xC0u )
    {
      if( v5 == -60 )
      {
        v5 = 45;
        goto LABEL_34;
      }
      if( (unsigned __int8)v5 <= 0xC7u )
        goto LABEL_34;
      if( (unsigned __int8)v5 > 0xC9u )
      {
        if( v5 == -51 )
        {
          v5 = 61;
          goto LABEL_17;
        }
        if( (unsigned __int8)v5 <= 0xD8u )
          goto LABEL_34;
        if( (unsigned __int8)v5 > 0xDAu )
        {
          if( v5 == -37 )
            goto LABEL_31;
          if( (unsigned __int8)v5 > 0xDFu )
            goto LABEL_34;
          goto LABEL_30;
        }
      }
    }
    else if( (unsigned __int8)v5 < 0xBFu )
    {
      if( (unsigned __int8)v5 < 0xA9u )
        goto LABEL_34;
      if( (unsigned __int8)v5 > 0xAAu )
      {
        if( v5 == -80 )
          goto LABEL_21;
        if( v5 != -79 )
        {
          if( v5 != -78 )
          {
            if( v5 != -77 && v5 != -70 )
            {
              if( (unsigned __int8)v5 > 0xBAu && (unsigned __int8)v5 <= 0xBCu )
                goto LABEL_16;
LABEL_34:
              if( v5 < 0 )
              {
                UTF8Encoding = 0;
                v10 = 0;
                HdlspUTF8Encode(*((unsigned __int16 *)HdlpsPcAnsiToUnicode + (v5 & 0x7F)), &UTF8Encoding);
                v7 = 3i64;
                p_UTF8Encoding = &UTF8Encoding;
                do
                {
                  if( *(_BYTE *)p_UTF8Encoding )
                    *v3++ = *(_BYTE *)p_UTF8Encoding;
                  p_UTF8Encoding = (__int16 *)((char *)p_UTF8Encoding + 1);
                  --v7;
                }
                while( v7 );
                goto LABEL_18;
              }
LABEL_17:
              *v3++ = v5;
LABEL_18:
              ++v1;
              goto LABEL_19;
            }
LABEL_21:
            v5 = 124;
            goto LABEL_17;
          }
LABEL_31:
          v5 = 35;
          goto LABEL_17;
        }
LABEL_30:
        v5 = 37;
        goto LABEL_17;
      }
    }
LABEL_16:
    v5 = 43;
    goto LABEL_17;
  }
LABEL_20:
  v6 = *(&stru_140CF2E80 + 920);
  *v3 = 0;
  HdlspSendStringAtBaud(*(UINT8 **)(v6 + 24));
}

Referenced by:

HdlspDispatch
HdlspProcessDumpCommand
HdlspPutMore