// File: /workspace/github_c_makefile_star2_O0/mijallen[P]SimpleHTTPServer/lib/libyaml/src/parser.c
// Function: yaml_parser_append_tag_directive
static int
yaml_parser_append_tag_directive(yaml_parser_t *parser,
        yaml_tag_directive_t value, int allow_duplicates, yaml_mark_t mark)
{
    yaml_tag_directive_t *tag_directive;
    yaml_tag_directive_t copy = { NULL, NULL };

    for (tag_directive = parser->tag_directives.start;
            tag_directive != parser->tag_directives.top; tag_directive ++) {
        if (strcmp((char *)value.handle, (char *)tag_directive->handle) == 0) {
            if (allow_duplicates)
                return 1;
            return yaml_parser_set_parser_error(parser,
                    "found duplicate %TAG directive", mark);
        }
    }

    copy.handle = yaml_strdup(value.handle);
    copy.prefix = yaml_strdup(value.prefix);
    if (!copy.handle || !copy.prefix) {
        parser->error = YAML_MEMORY_ERROR;
        goto error;
    }

    if (!PUSH(parser, parser->tag_directives, copy))
        goto error;

    return 1;

error:
    yaml_free(copy.handle);
    yaml_free(copy.prefix);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x10(%rbp)
movq %rdi, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
leaq -0x40(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x2120
movq -0x20(%rbp), %rax
movq 0x1a8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq 0x1b8(%rcx), %rax
je 0x1d1db
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rax
movq (%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
jne 0x1d1cb
cmpl $0x0, -0x24(%rbp)
je 0x1d196
movl $0x1, -0x4(%rbp)
jmp 0x1d2c1
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rdi
leaq 0xf762(%rip), %rsi      # 0x2c907
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x1cb50
movl %eax, -0x4(%rbp)
jmp 0x1d2c1
jmp 0x1d1cd
movq -0x30(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x30(%rbp)
jmp 0x1d15e
movq -0x18(%rbp), %rdi
callq 0x20c0
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
callq 0x20c0
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x1d203
cmpq $0x0, -0x38(%rbp)
jne 0x1d212
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
jmp 0x1d2a8
movq -0x20(%rbp), %rax
movq 0x1b8(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x1b0(%rcx), %rax
jne 0x1d25d
movq -0x20(%rbp), %rdi
addq $0x1a8, %rdi            # imm = 0x1A8
movq -0x20(%rbp), %rsi
addq $0x1a8, %rsi            # imm = 0x1A8
addq $0x10, %rsi
movq -0x20(%rbp), %rdx
addq $0x1a8, %rdx            # imm = 0x1A8
addq $0x8, %rdx
callq 0x20e0
cmpl $0x0, %eax
je 0x1d28d
movq -0x20(%rbp), %rcx
movq 0x1b8(%rcx), %rax
movq %rax, %rdx
addq $0x10, %rdx
movq %rdx, 0x1b8(%rcx)
movq -0x40(%rbp), %rcx
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x1d29f
jmp 0x1d29d
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
xorl %eax, %eax
testb $0x1, %al
jne 0x1d29f
jmp 0x1d2a8
movl $0x1, -0x4(%rbp)
jmp 0x1d2c1
movq -0x40(%rbp), %rdi
callq 0x2140
movq -0x38(%rbp), %rdi
callq 0x2140
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)