// File: /workspace/github_c_makefile_star2_O0/lengjingzju[P]json/json.c
// Function: print_str_ptr_realloc
static int _print_str_ptr_realloc(json_print_t *print_ptr, size_t slen)
{
    size_t used = GET_BUF_USED_SIZE(print_ptr);
    size_t len = used + slen + 1;

    while (print_ptr->item_total < print_ptr->item_count) {
        print_ptr->item_total += JSON_PRINT_NUM_PLUS_DEF;
        print_ptr->size += print_ptr->plus_size >> 2;
    }
    if (print_ptr->item_total - print_ptr->item_count > print_ptr->item_count) {
        print_ptr->size += print_ptr->size;
    } else {
        print_ptr->size += (uint64_t)print_ptr->size *
            (print_ptr->item_total - print_ptr->item_count) / print_ptr->item_count;
    }

    while (print_ptr->size < len)
        print_ptr->size += print_ptr->plus_size;

    char *new_str = (char *)json_realloc(print_ptr->ptr, print_ptr->size);
    if (new_str) {
        print_ptr->ptr = new_str;
        print_ptr->cur = print_ptr->ptr + used;
    } else {
        JsonErr("malloc failed!\n");
        json_free(print_ptr->ptr);
        print_ptr->ptr = NULL;
        print_ptr->cur = print_ptr->ptr;
        return -1;
    }

    return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
movq 0x8(%rcx), %rcx
subq %rcx, %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
addq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movl 0x38(%rax), %eax
movq 0x28(%rsp), %rcx
cmpl 0x3c(%rcx), %eax
jge 0xaa57
movq 0x28(%rsp), %rax
movl 0x38(%rax), %ecx
addl $0x40, %ecx
movl %ecx, 0x38(%rax)
movq 0x28(%rsp), %rax
movq 0x28(%rax), %rcx
shrq $0x2, %rcx
movq 0x28(%rsp), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
jmp 0xaa1b
movq 0x28(%rsp), %rax
movl 0x38(%rax), %eax
movq 0x28(%rsp), %rcx
subl 0x3c(%rcx), %eax
movq 0x28(%rsp), %rcx
cmpl 0x3c(%rcx), %eax
jle 0xaa89
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x28(%rsp), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
jmp 0xaac7
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rcx
movl 0x38(%rcx), %ecx
movq 0x28(%rsp), %rdx
subl 0x3c(%rdx), %ecx
movslq %ecx, %rcx
imulq %rcx, %rax
movq 0x28(%rsp), %rcx
movslq 0x3c(%rcx), %rcx
xorl %edx, %edx
divq %rcx
movq %rax, %rcx
movq 0x28(%rsp), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
jmp 0xaac9
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rax
cmpq 0x10(%rsp), %rax
jae 0xaaf1
movq 0x28(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x28(%rsp), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
jmp 0xaac9
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rsi
callq 0x1180
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0xab3c
movq 0x8(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
addq 0x18(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0xab9d
jmp 0xab3e
leaq 0x5eaf(%rip), %rdi      # 0x109f4
leaq 0x618e(%rip), %rsi      # 0x10cda
movl $0x5b9, %edx            # imm = 0x5B9
movb $0x0, %al
callq 0x10c0
leaq 0x5ea7(%rip), %rdi      # 0x10a06
movb $0x0, %al
callq 0x10c0
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x1030
movq 0x28(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0xaba5
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nop