// File: /workspace/github_c_makefile_star2_O0/sasairc[P]clangsay/src/libbenly/src/typestring.c
// Function: new_string
STRING* new_string(char* const str)
{
    STRING* string  = NULL;

    if ((string = (STRING*)
                malloc(sizeof(STRING))) == NULL) {
#ifdef  LIBRARY_VERBOSE
        print_error();
/* LIBRARY_VERBOSE */
#endif
        status = EMEMORYALLOC; goto ERR;
    } else {
        string->alloc_size      = 0;
        string->length          = 0;
        string->string          = NULL;
        string->size            = size;
        string->mblen           = ts_mblen;
        string->reconf          = reconf;
        string->resize          = resize;
        string->reserve         = reserve;
        string->shrink_to_fit   = shrink_to_fit;
        string->capacity        = capacity;
        string->count           = count;
        string->assign          = assign;
        string->prepend         = prepend;
        string->append          = append;
        string->push_back       = push_back;
        string->pop_back        = pop_back;
        string->swap            = swap;
        string->insert          = insert;
        string->erase           = erase;
        string->replace         = replace;
        string->sub             = sub;
        string->gsub            = gsub;
        string->at              = at;
        string->empty           = empty;
        string->front           = front;
        string->back            = back;
        string->data            = c_str;
        string->c_str           = c_str;
        string->substr          = substr;
        string->c_substr        = c_substr;
        string->partition       = partition;
        string->c_partition     = c_partition;
        string->split           = split;
        string->c_split         = c_split;
        string->to_char_arr     = to_char_arr;
        string->copy            = copy;
        string->c_copy          = c_copy;
        string->compare         = compare;
        string->c_compare       = c_compare;
        string->casecmp         = casecmp;
        string->c_casecmp       = c_casecmp;
        string->concat          = concat;
        string->c_concat        = c_concat;
        string->chomp           = chomp;
        string->lstrip          = lstrip;
        string->rstrip          = rstrip;
        string->rjust           = rjust;
        string->ljust           = ljust;
        string->center          = center;
        string->mbrjust         = mbrjust;
        string->mbljust         = mbljust;
        string->mbcenter        = mbcenter;
        string->downcase        = downcase;
        string->swapcase        = swapcase;
        string->upcase          = upcase;
        string->capitalize      = capitalize;
        string->include         = include;
        string->index           = ts_index;
        string->rindex          = ts_rindex;
        string->mbindex         = mbindex;
        string->mbrindex        = mbrindex;
        string->slice           = slice;
        string->delete_prefix   = delete_prefix;
        string->delete_suffix   = delete_suffix;
        string->to_i            = to_i;
        string->to_l            = to_l;
        string->to_f            = to_f;
        string->reverse         = reverse;
        string->ascii_only      = ascii_only;
        string->digit_only      = digit_only;
        string->each_line       = each_line;
        string->each_byte       = each_byte;
        string->each_char       = each_char;
#ifdef  WITH_GLIB
        string->each_codepoint  = each_codepoint;
#else
        string->each_codepoint  = NULL;
/* WITH_GLIB */
#endif
        string->crypt           = ts_crypt;
        string->crypt2          = ts_crypt2;
        string->clear           = clear;
        string->release         = release;

        /*
         * おまけ
         */
        string->mbstrlen        = mbstrlen;
    }
    if (str != NULL) {
        if (string->assign(&string, str) < 0) {
            status = EMEMORYALLOC; goto ERR;
        }
    }

    return string;

ERR:
    switch (status) {
        case    EMEMORYALLOC:
            if (string != NULL) {
                free(string);
                string = NULL;
            }
        break;
    }

    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movl $0x278, %edi            # imm = 0x278
callq 0x20e0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x900a
leaq 0xe249(%rip), %rax      # 0x17248
movl $0xfffffffd, (%rax)     # imm = 0xFFFFFFFD
jmp 0x9597
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x18(%rbp), %rax
leaq 0x5a8(%rip), %rcx       # 0x95e0
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rax
leaq 0x5b9(%rip), %rcx       # 0x9600
movq %rcx, 0x20(%rax)
movq -0x18(%rbp), %rax
leaq 0x69a(%rip), %rcx       # 0x96f0
movq %rcx, 0x38(%rax)
movq -0x18(%rbp), %rax
leaq 0x6fb(%rip), %rcx       # 0x9760
movq %rcx, 0x50(%rax)
movq -0x18(%rbp), %rax
leaq 0x8ac(%rip), %rcx       # 0x9920
movq %rcx, 0x40(%rax)
movq -0x18(%rbp), %rax
leaq 0x99d(%rip), %rcx       # 0x9a20
movq %rcx, 0x48(%rax)
movq -0x18(%rbp), %rax
leaq 0xa5e(%rip), %rcx       # 0x9af0
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rax
leaq 0xa6f(%rip), %rcx       # 0x9b10
movq %rcx, 0x30(%rax)
movq -0x18(%rbp), %rax
leaq 0xb90(%rip), %rcx       # 0x9c40
movq %rcx, 0x58(%rax)
movq -0x18(%rbp), %rax
leaq 0xc91(%rip), %rcx       # 0x9d50
movq %rcx, 0x60(%rax)
movq -0x18(%rbp), %rax
leaq 0xd22(%rip), %rcx       # 0x9df0
movq %rcx, 0x68(%rax)
movq -0x18(%rbp), %rax
leaq 0xe23(%rip), %rcx       # 0x9f00
movq %rcx, 0x70(%rax)
movq -0x18(%rbp), %rax
leaq 0xee4(%rip), %rcx       # 0x9fd0
movq %rcx, 0x78(%rax)
movq -0x18(%rbp), %rax
leaq 0xf45(%rip), %rcx       # 0xa040
movq %rcx, 0x80(%rax)
movq -0x18(%rbp), %rax
leaq 0xf73(%rip), %rcx       # 0xa080
movq %rcx, 0x88(%rax)
movq -0x18(%rbp), %rax
leaq 0x1101(%rip), %rcx      # 0xa220
movq %rcx, 0x90(%rax)
movq -0x18(%rbp), %rax
leaq 0x123f(%rip), %rcx      # 0xa370
movq %rcx, 0x98(%rax)
movq -0x18(%rbp), %rax
leaq 0x12dd(%rip), %rcx      # 0xa420
movq %rcx, 0x1f0(%rax)
movq -0x18(%rbp), %rax
leaq 0x142b(%rip), %rcx      # 0xa580
movq %rcx, 0x1f8(%rax)
movq -0x18(%rbp), %rax
leaq 0x14a9(%rip), %rcx      # 0xa610
movq %rcx, 0xa8(%rax)
movq -0x18(%rbp), %rax
leaq 0x14f7(%rip), %rcx      # 0xa670
movq %rcx, 0xa0(%rax)
movq -0x18(%rbp), %rax
leaq 0x1515(%rip), %rcx      # 0xa6a0
movq %rcx, 0xb0(%rax)
movq -0x18(%rbp), %rax
leaq 0x1563(%rip), %rcx      # 0xa700
movq %rcx, 0xb8(%rax)
movq -0x18(%rbp), %rax
leaq 0x15d1(%rip), %rcx      # 0xa780
movq %rcx, 0xc0(%rax)
movq -0x18(%rbp), %rax
leaq 0x15bf(%rip), %rcx      # 0xa780
movq %rcx, 0xc8(%rax)
movq -0x18(%rbp), %rax
leaq 0x15cd(%rip), %rcx      # 0xa7a0
movq %rcx, 0xe0(%rax)
movq -0x18(%rbp), %rax
leaq 0x17ab(%rip), %rcx      # 0xa990
movq %rcx, 0xe8(%rax)
movq -0x18(%rbp), %rax
leaq 0x18b9(%rip), %rcx      # 0xaab0
movq %rcx, 0xf0(%rax)
movq -0x18(%rbp), %rax
leaq 0x1cc7(%rip), %rcx      # 0xaed0
movq %rcx, 0xf8(%rax)
movq -0x18(%rbp), %rax
leaq 0x1fa5(%rip), %rcx      # 0xb1c0
movq %rcx, 0x100(%rax)
movq -0x18(%rbp), %rax
leaq 0x2223(%rip), %rcx      # 0xb450
movq %rcx, 0x108(%rax)
movq -0x18(%rbp), %rax
leaq 0x24b1(%rip), %rcx      # 0xb6f0
movq %rcx, 0x110(%rax)
movq -0x18(%rbp), %rax
leaq 0x271f(%rip), %rcx      # 0xb970
movq %rcx, 0xd0(%rax)
movq -0x18(%rbp), %rax
leaq 0x282d(%rip), %rcx      # 0xba90
movq %rcx, 0xd8(%rax)
movq -0x18(%rbp), %rax
leaq 0x293b(%rip), %rcx      # 0xbbb0
movq %rcx, 0x118(%rax)
movq -0x18(%rbp), %rax
leaq 0x29f9(%rip), %rcx      # 0xbc80
movq %rcx, 0x120(%rax)
movq -0x18(%rbp), %rax
leaq 0x2a97(%rip), %rcx      # 0xbd30
movq %rcx, 0x128(%rax)
movq -0x18(%rbp), %rax
leaq 0x2ba5(%rip), %rcx      # 0xbe50
movq %rcx, 0x130(%rax)
movq -0x18(%rbp), %rax
leaq 0x2cb3(%rip), %rcx      # 0xbf70
movq %rcx, 0x138(%rax)
movq -0x18(%rbp), %rax
leaq 0x2e21(%rip), %rcx      # 0xc0f0
movq %rcx, 0x140(%rax)
movq -0x18(%rbp), %rax
leaq 0x2f5f(%rip), %rcx      # 0xc240
movq %rcx, 0x148(%rax)
movq -0x18(%rbp), %rax
leaq 0x307d(%rip), %rcx      # 0xc370
movq %rcx, 0x150(%rax)
movq -0x18(%rbp), %rax
leaq 0x323b(%rip), %rcx      # 0xc540
movq %rcx, 0x158(%rax)
movq -0x18(%rbp), %rax
leaq 0x33a9(%rip), %rcx      # 0xc6c0
movq %rcx, 0x160(%rax)
movq -0x18(%rbp), %rax
leaq 0x3567(%rip), %rcx      # 0xc890
movq %rcx, 0x168(%rax)
movq -0x18(%rbp), %rax
leaq 0x36c5(%rip), %rcx      # 0xca00
movq %rcx, 0x170(%rax)
movq -0x18(%rbp), %rax
leaq 0x38f3(%rip), %rcx      # 0xcc40
movq %rcx, 0x178(%rax)
movq -0x18(%rbp), %rax
leaq 0x3aa1(%rip), %rcx      # 0xce00
movq %rcx, 0x180(%rax)
movq -0x18(%rbp), %rax
leaq 0x3c1f(%rip), %rcx      # 0xcf90
movq %rcx, 0x188(%rax)
movq -0x18(%rbp), %rax
leaq 0x3e6d(%rip), %rcx      # 0xd1f0
movq %rcx, 0x190(%rax)
movq -0x18(%rbp), %rax
leaq 0x3f1b(%rip), %rcx      # 0xd2b0
movq %rcx, 0x1a0(%rax)
movq -0x18(%rbp), %rax
leaq 0x4009(%rip), %rcx      # 0xd3b0
movq %rcx, 0x198(%rax)
movq -0x18(%rbp), %rax
leaq 0x40b7(%rip), %rcx      # 0xd470
movq %rcx, 0x1a8(%rax)
movq -0x18(%rbp), %rax
leaq 0x4185(%rip), %rcx      # 0xd550
movq %rcx, 0x1b0(%rax)
movq -0x18(%rbp), %rax
leaq 0x42c3(%rip), %rcx      # 0xd6a0
movq %rcx, 0x1b8(%rax)
movq -0x18(%rbp), %rax
leaq 0x4461(%rip), %rcx      # 0xd850
movq %rcx, 0x1c0(%rax)
movq -0x18(%rbp), %rax
leaq 0x45df(%rip), %rcx      # 0xd9e0
movq %rcx, 0x1c8(%rax)
movq -0x18(%rbp), %rax
leaq 0x477d(%rip), %rcx      # 0xdb90
movq %rcx, 0x1d0(%rax)
movq -0x18(%rbp), %rax
leaq 0x49db(%rip), %rcx      # 0xde00
movq %rcx, 0x1d8(%rax)
movq -0x18(%rbp), %rax
leaq 0x4bd9(%rip), %rcx      # 0xe010
movq %rcx, 0x1e0(%rax)
movq -0x18(%rbp), %rax
leaq 0x4d47(%rip), %rcx      # 0xe190
movq %rcx, 0x1e8(%rax)
movq -0x18(%rbp), %rax
leaq 0x4e75(%rip), %rcx      # 0xe2d0
movq %rcx, 0x200(%rax)
movq -0x18(%rbp), %rax
leaq 0x4ee3(%rip), %rcx      # 0xe350
movq %rcx, 0x208(%rax)
movq -0x18(%rbp), %rax
leaq 0x4f61(%rip), %rcx      # 0xe3e0
movq %rcx, 0x210(%rax)
movq -0x18(%rbp), %rax
leaq 0x4fbf(%rip), %rcx      # 0xe450
movq %rcx, 0x218(%rax)
movq -0x18(%rbp), %rax
leaq 0x519d(%rip), %rcx      # 0xe640
movq %rcx, 0x220(%rax)
movq -0x18(%rbp), %rax
leaq 0x522b(%rip), %rcx      # 0xe6e0
movq %rcx, 0x228(%rax)
movq -0x18(%rbp), %rax
leaq 0x52c9(%rip), %rcx      # 0xe790
movq %rcx, 0x230(%rax)
movq -0x18(%rbp), %rax
leaq 0x53b7(%rip), %rcx      # 0xe890
movq %rcx, 0x238(%rax)
movq -0x18(%rbp), %rax
leaq 0x5455(%rip), %rcx      # 0xe940
movq %rcx, 0x240(%rax)
movq -0x18(%rbp), %rax
leaq 0x5553(%rip), %rcx      # 0xea50
movq %rcx, 0x248(%rax)
movq -0x18(%rbp), %rax
leaq 0x5671(%rip), %rcx      # 0xeb80
movq %rcx, 0x250(%rax)
movq -0x18(%rbp), %rax
leaq 0x56ef(%rip), %rcx      # 0xec10
movq %rcx, 0x258(%rax)
movq -0x18(%rbp), %rax
leaq 0x578d(%rip), %rcx      # 0xecc0
movq %rcx, 0x260(%rax)
movq -0x18(%rbp), %rax
leaq 0x57db(%rip), %rcx      # 0xed20
movq %rcx, 0x268(%rax)
movq -0x18(%rbp), %rax
leaq 0x5819(%rip), %rcx      # 0xed70
movq %rcx, 0x270(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x958d
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x10(%rbp), %rsi
leaq -0x18(%rbp), %rdi
callq *%rax
cmpl $0x0, %eax
jge 0x958b
leaq 0xdcc5(%rip), %rax      # 0x17248
movl $0xfffffffd, (%rax)     # imm = 0xFFFFFFFD
jmp 0x9597
jmp 0x958d
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x95c9
leaq 0xdcaa(%rip), %rax      # 0x17248
movl (%rax), %eax
subl $-0x3, %eax
jne 0x95c1
jmp 0x95a7
cmpq $0x0, -0x18(%rbp)
je 0x95bf
movq -0x18(%rbp), %rdi
callq 0x2180
movq $0x0, -0x18(%rbp)
jmp 0x95c1
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)