// File: Joke-Shi[P]astrunc/sample/../include/astrunc.common.h
// Function: astrunc::common::chars(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
int astrunc::common::chars( std::vector< std::string> &__chars, const std::string &__s)
{
    int rc = 0;

    if ( !__s.empty()) {
        std::size_t i = 0;

        for( i = 0; i < __s.size(); ) {
            unsigned char c = (unsigned char )__s[ i];

            std::size_t c_size = 0;
            if ( (0x00 <= c) && (0xC0 > c)) {
                c_size = 1;

            } else if ( (0xC0 <= c) && (0xE0 > c)) {
                c_size = 2;

            } else if ( (0xe0 <= c) && (0xF0 > c)) {
                c_size = 3;

            } else if ( (0xF0 <= c) && (0xF8 > c)) {
                c_size = 4;

            } else if ( (0xF8 <= c) && (0xFC > c)) {
                c_size = 5;

            } else if ( (0xFE <= c) && (0xFE > c)) {
                c_size = 6;

            } else {
                c_size = 7;
            }

            std::string tmp_word;
            for ( std::size_t j = 0; j < c_size; j++) {
                tmp_word.push_back( __s[ i + j]);
            }

            try {
                __chars.push_back( tmp_word);
            } catch ( std::bad_alloc &__e) {
                rc = -1;

                break;
            }

            i += c_size;
        }
    }

    return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x2290
testb $0x1, %al
jne 0x49b4
movq $0x0, -0x20(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rdi
callq 0x20e0
movq %rax, %rcx
movq -0x80(%rbp), %rax
cmpq %rcx, %rax
jae 0x49b2
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x21e0
movb (%rax), %al
movb %al, -0x21(%rbp)
movq $0x0, -0x30(%rbp)
movzbl -0x21(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jg 0x480a
movzbl -0x21(%rbp), %ecx
movl $0xc0, %eax
cmpl %ecx, %eax
jle 0x480a
movq $0x1, -0x30(%rbp)
jmp 0x48d3
movzbl -0x21(%rbp), %ecx
movl $0xc0, %eax
cmpl %ecx, %eax
jg 0x4831
movzbl -0x21(%rbp), %ecx
movl $0xe0, %eax
cmpl %ecx, %eax
jle 0x4831
movq $0x2, -0x30(%rbp)
jmp 0x48d1
movzbl -0x21(%rbp), %ecx
movl $0xe0, %eax
cmpl %ecx, %eax
jg 0x4855
movzbl -0x21(%rbp), %ecx
movl $0xf0, %eax
cmpl %ecx, %eax
jle 0x4855
movq $0x3, -0x30(%rbp)
jmp 0x48cf
movzbl -0x21(%rbp), %ecx
movl $0xf0, %eax
cmpl %ecx, %eax
jg 0x4879
movzbl -0x21(%rbp), %ecx
movl $0xf8, %eax
cmpl %ecx, %eax
jle 0x4879
movq $0x4, -0x30(%rbp)
jmp 0x48cd
movzbl -0x21(%rbp), %ecx
movl $0xf8, %eax
cmpl %ecx, %eax
jg 0x489d
movzbl -0x21(%rbp), %ecx
movl $0xfc, %eax
cmpl %ecx, %eax
jle 0x489d
movq $0x5, -0x30(%rbp)
jmp 0x48cb
movzbl -0x21(%rbp), %ecx
movl $0xfe, %eax
cmpl %ecx, %eax
jg 0x48c1
movzbl -0x21(%rbp), %ecx
movl $0xfe, %eax
cmpl %ecx, %eax
jle 0x48c1
movq $0x6, -0x30(%rbp)
jmp 0x48c9
movq $0x7, -0x30(%rbp)
jmp 0x48cb
jmp 0x48cd
jmp 0x48cf
jmp 0x48d1
jmp 0x48d3
leaq -0x50(%rbp), %rdi
callq 0x2240
movq $0x0, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x492e
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x58(%rbp), %rax
addq %rax, %rsi
callq 0x21e0
movsbl (%rax), %esi
leaq -0x50(%rbp), %rdi
callq 0x2140
jmp 0x4910
jmp 0x4912
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x48e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x49a7
movq -0x8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9100
jmp 0x493d
jmp 0x497b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x49a7
movq -0x60(%rbp), %rdi
callq 0x2070
movq %rax, -0x70(%rbp)
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
movl $0x2, -0x74(%rbp)
callq 0x2280
jmp 0x4979
jmp 0x498e
movq -0x30(%rbp), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x74(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x22f8
movl -0x74(%rbp), %eax
testl %eax, %eax
je 0x49a2
jmp 0x49a0
jmp 0x49b2
jmp 0x47ab
leaq -0x50(%rbp), %rdi
callq 0x22f8
jmp 0x49c0
jmp 0x49b4
movl -0x14(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x22a0
nopl (%rax)