// File: /workspace/github_c_makefile_star2_O0/lengjingzju[P]json/json.c
// Function: json_string_strdup
int json_string_strdup(json_string_t *src, json_string_t *dst)
{
    json_string_info_update(src);
    json_string_info_update(dst);
    if (src->len) {
        if (dst->len < src->len) {
            char *new_str = (char *)json_realloc(dst->str, src->len + 1);
            if (new_str) {
                dst->str = new_str;
            } else {
                JsonErr("malloc failed!\n");
                json_free(dst->str);
                dst->str = NULL;
                dst->len = 0;
                return -1;
            }
        }
        dst->escaped = src->escaped;
        dst->len = src->len;
        memcpy(dst->str, src->str, src->len);
        dst->str[src->len] = '\0';
    } else {
        dst->escaped = 0;
        dst->len = 0;
        if (dst->str) {
            json_free(dst->str);
            dst->str = NULL;
        }
    }

    return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x18(%rsp), %rdi
callq 0x20a0
movq 0x10(%rsp), %rdi
callq 0x20a0
movq 0x18(%rsp), %rax
movl (%rax), %eax
shrl $0x8, %eax
cmpl $0x0, %eax
je 0x2e37
movq 0x10(%rsp), %rax
movl (%rax), %eax
shrl $0x8, %eax
movq 0x18(%rsp), %rcx
movl (%rcx), %ecx
shrl $0x8, %ecx
cmpl %ecx, %eax
jge 0x2db2
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x18(%rsp), %rax
movl (%rax), %eax
shrl $0x8, %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x2230
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x2d4c
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x2db0
jmp 0x2d4e
leaq 0x10ae3(%rip), %rdi     # 0x13838
leaq 0x10be4(%rip), %rsi     # 0x13940
movl $0x1c4, %edx            # imm = 0x1C4
movb $0x0, %al
callq 0x2100
leaq 0x10adb(%rip), %rdi     # 0x1384a
movb $0x0, %al
callq 0x2100
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x2050
movq 0x10(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x10(%rsp), %rax
movl (%rax), %ecx
andl $0xff, %ecx
orl $0x0, %ecx
movl %ecx, (%rax)
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x2e89
jmp 0x2db2
movq 0x18(%rsp), %rax
movl (%rax), %edx
shrl $0x4, %edx
andl $0x1, %edx
movq 0x10(%rsp), %rax
movl (%rax), %ecx
andl $0x1, %edx
shll $0x4, %edx
andl $-0x11, %ecx
orl %edx, %ecx
movl %ecx, (%rax)
movq 0x18(%rsp), %rax
movl (%rax), %edx
shrl $0x8, %edx
movq 0x10(%rsp), %rax
movl (%rax), %ecx
andl $0xffffff, %edx         # imm = 0xFFFFFF
shll $0x8, %edx
andl $0xff, %ecx
orl %edx, %ecx
movl %ecx, (%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x18(%rsp), %rax
movl (%rax), %eax
shrl $0x8, %eax
movl %eax, %eax
movl %eax, %edx
callq 0x21c0
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rsp), %rcx
movl (%rcx), %ecx
shrl $0x8, %ecx
movl %ecx, %ecx
movb $0x0, (%rax,%rcx)
jmp 0x2e81
movq 0x10(%rsp), %rax
movl (%rax), %ecx
andl $-0x11, %ecx
orl $0x0, %ecx
movl %ecx, (%rax)
movq 0x10(%rsp), %rax
movl (%rax), %ecx
andl $0xff, %ecx
orl $0x0, %ecx
movl %ecx, (%rax)
movq 0x10(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x2e7f
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x2050
movq 0x10(%rsp), %rax
movq $0x0, 0x8(%rax)
jmp 0x2e81
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)