// File: /workspace/github_c_makefile_star2_O3/Cotix[P]cReddit/libreddit/link.c
// Function: redditGetLink
RedditLink *redditGetLink(TokenParser *parser)
{
    RedditLink *link = redditLinkNew();

    TokenIdent ids[] = {
        ADD_TOKEN_IDENT_STRPARSE("selftext",      link->selftext, link->selftextEsc, link->wselftextEsc),
        ADD_TOKEN_IDENT_STRPARSE("title",         link->title,    link->titleEsc,    link->wtitleEsc),
        ADD_TOKEN_IDENT_STRING  ("id",            link->id),
        ADD_TOKEN_IDENT_STRING  ("permalink",     link->permalink),
        ADD_TOKEN_IDENT_STRING  ("author",        link->author),
        ADD_TOKEN_IDENT_STRING  ("url",           link->url),
        ADD_TOKEN_IDENT_INT     ("score",         link->score),
        ADD_TOKEN_IDENT_INT     ("downs",         link->downs),
        ADD_TOKEN_IDENT_INT     ("ups",           link->ups),
        ADD_TOKEN_IDENT_INT     ("num_comments",  link->numComments),
        ADD_TOKEN_IDENT_INT     ("num_reports",   link->numReports),
        ADD_TOKEN_IDENT_BOOL    ("is_self",       link->flags, REDDIT_LINK_IS_SELF),
        ADD_TOKEN_IDENT_BOOL    ("over_18",       link->flags, REDDIT_LINK_OVER_18),
        ADD_TOKEN_IDENT_BOOL    ("clicked",       link->flags, REDDIT_LINK_CLICKED),
        ADD_TOKEN_IDENT_BOOL    ("stickied",      link->flags, REDDIT_LINK_STICKIED),
        ADD_TOKEN_IDENT_BOOL    ("edited",        link->flags, REDDIT_LINK_EDITED),
        ADD_TOKEN_IDENT_BOOL    ("hidden",        link->flags, REDDIT_LINK_HIDDEN),
        ADD_TOKEN_IDENT_BOOL    ("distinguished", link->flags, REDDIT_LINK_DISTINGUISHED),
        ADD_TOKEN_IDENT_DATE    ("created_utc",   link->created_utc),
        {0}
    };

    parseTokens(parser, ids, link);

    return link;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x468, %rsp            # imm = 0x468
movq %rdi, %r14
movl $0x80, %edi
callq 0x3520
movq %rax, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x40(%rax)
movups %xmm0, 0x50(%rax)
movups %xmm0, 0x60(%rax)
movups %xmm0, 0x70(%rax)
leaq 0x70(%rax), %rax
leaq 0x60(%rbx), %rdx
leaq 0x20(%rbx), %rdi
leaq 0x10(%rbx), %r9
leaq 0x50(%rbx), %rcx
leaq 0x40(%rbx), %r8
leaq 0x30(%rbx), %r10
leaq 0x263a(%rip), %r11      # 0x6193
movq %rsp, %rsi
movq %r11, (%rsi)
movabsq $0x100000002, %r11      # imm = 0x100000002
movq %r11, 0x8(%rsi)
movq %r10, 0x10(%rsi)
movq %r8, 0x18(%rsi)
movq %rcx, 0x20(%rsi)
xorl %ecx, %ecx
movl %ecx, 0x28(%rsi)
movb $0x1, %r8b
movb %r8b, 0x2c(%rsi)
movq %rcx, 0x30(%rsi)
leaq 0x260c(%rip), %r10      # 0x619c
movq %r10, 0x38(%rsi)
movq %r11, 0x40(%rsi)
leaq 0x28(%rbx), %r10
movq %r10, 0x48(%rsi)
leaq 0x38(%rbx), %r10
movq %r10, 0x50(%rsi)
leaq 0x48(%rbx), %r10
movq %r10, 0x58(%rsi)
movl %ecx, 0x60(%rsi)
movb %r8b, 0x64(%rsi)
movq %rcx, 0x68(%rsi)
leaq 0x24f3(%rip), %r10      # 0x60b5
movq %r10, 0x70(%rsi)
movl $0x2, %r10d
movq %r10, 0x78(%rsi)
leaq 0x8(%rbx), %r11
movq %r11, 0x80(%rsi)
movl %ecx, 0x98(%rsi)
movups %xmm0, 0x88(%rsi)
movb %r8b, 0x9c(%rsi)
movq %rcx, 0xa0(%rsi)
leaq 0x25a5(%rip), %r11      # 0x61a2
movq %r11, 0xa8(%rsi)
movq %r10, 0xb0(%rsi)
movq %r9, 0xb8(%rsi)
movl %ecx, 0xd0(%rsi)
movaps %xmm0, 0xc0(%rsi)
movb %r8b, 0xd4(%rsi)
movq %rcx, 0xd8(%rsi)
leaq 0x2464(%rip), %r9       # 0x6098
movq %r9, 0xe0(%rsi)
movq %r10, 0xe8(%rsi)
leaq 0x18(%rbx), %r9
movq %r9, 0xf0(%rsi)
movl %ecx, 0x108(%rsi)
movups %xmm0, 0xf8(%rsi)
movb %r8b, 0x10c(%rsi)
movq %rcx, 0x110(%rsi)
leaq 0x253d(%rip), %r9       # 0x61ac
movq %r9, 0x118(%rsi)
movq %r10, 0x120(%rsi)
movq %rdi, 0x128(%rsi)
movl %ecx, 0x140(%rsi)
movaps %xmm0, 0x130(%rsi)
movb %r8b, 0x144(%rsi)
movq %rcx, 0x148(%rsi)
leaq 0x250a(%rip), %rdi      # 0x61b0
movq %rdi, 0x150(%rsi)
movl $0x1, %edi
movq %rdi, 0x158(%rsi)
leaq 0x58(%rbx), %r8
movq %r8, 0x160(%rsi)
movq %rcx, 0x180(%rsi)
movq %rcx, 0x175(%rsi)
movups %xmm0, 0x168(%rsi)
leaq 0x23e6(%rip), %r8       # 0x60c6
movq %r8, 0x188(%rsi)
movq %rdi, 0x190(%rsi)
leaq 0x5c(%rbx), %r8
movq %r8, 0x198(%rsi)
movq %rcx, 0x1b8(%rsi)
movq %rcx, 0x1ad(%rsi)
movaps %xmm0, 0x1a0(%rsi)
leaq 0x23ad(%rip), %r8       # 0x60c2
movq %r8, 0x1c0(%rsi)
movq %rdi, 0x1c8(%rsi)
movq %rdx, 0x1d0(%rsi)
movq %rcx, 0x1f0(%rsi)
movq %rcx, 0x1e5(%rsi)
movups %xmm0, 0x1d8(%rsi)
leaq 0x2470(%rip), %rdx      # 0x61b6
movq %rdx, 0x1f8(%rsi)
movq %rdi, 0x200(%rsi)
leaq 0x64(%rbx), %rdx
movq %rdx, 0x208(%rsi)
movq %rcx, 0x228(%rsi)
movq %rcx, 0x21d(%rsi)
movaps %xmm0, 0x210(%rsi)
leaq 0x2351(%rip), %rdx      # 0x60cc
movq %rdx, 0x230(%rsi)
movq %rdi, 0x238(%rsi)
leaq 0x68(%rbx), %rdx
movq %rdx, 0x240(%rsi)
movq %rcx, 0x260(%rsi)
movq %rcx, 0x255(%rsi)
movups %xmm0, 0x248(%rsi)
leaq 0x2413(%rip), %rdx      # 0x61c3
movq %rdx, 0x268(%rsi)
movq %rcx, 0x270(%rsi)
leaq 0x78(%rbx), %rdx
movq %rdx, 0x278(%rsi)
movaps %xmm0, 0x280(%rsi)
movl $0x1, 0x290(%rsi)
movb %cl, 0x294(%rsi)
movq %rcx, 0x298(%rsi)
leaq 0x23dd(%rip), %rdi      # 0x61cb
movq %rdi, 0x2a0(%rsi)
movq %rcx, 0x2a8(%rsi)
movq %rdx, 0x2b0(%rsi)
movups %xmm0, 0x2b8(%rsi)
movl $0x2, 0x2c8(%rsi)
movb %cl, 0x2cc(%rsi)
movq %rcx, 0x2d0(%rsi)
leaq 0x23ab(%rip), %rdi      # 0x61d3
movq %rdi, 0x2d8(%rsi)
movq %rcx, 0x2e0(%rsi)
movq %rdx, 0x2e8(%rsi)
movaps %xmm0, 0x2f0(%rsi)
movl $0x4, 0x300(%rsi)
movb %cl, 0x304(%rsi)
movq %rcx, 0x308(%rsi)
leaq 0x2379(%rip), %rdi      # 0x61db
movq %rdi, 0x310(%rsi)
movq %rcx, 0x318(%rsi)
movq %rdx, 0x320(%rsi)
movups %xmm0, 0x328(%rsi)
movl $0x8, 0x338(%rsi)
movb %cl, 0x33c(%rsi)
movq %rcx, 0x340(%rsi)
leaq 0x223c(%rip), %rdi      # 0x60d8
movq %rdi, 0x348(%rsi)
movq %rcx, 0x350(%rsi)
movq %rdx, 0x358(%rsi)
movaps %xmm0, 0x360(%rsi)
movl $0x10, 0x370(%rsi)
movb %cl, 0x374(%rsi)
movq %rcx, 0x378(%rsi)
leaq 0x220f(%rip), %rdi      # 0x60e5
movq %rdi, 0x380(%rsi)
movq %rcx, 0x388(%rsi)
movq %rdx, 0x390(%rsi)
movups %xmm0, 0x398(%rsi)
movl $0x20, 0x3a8(%rsi)
movb %cl, 0x3ac(%rsi)
movq %rcx, 0x3b0(%rsi)
leaq 0x21dc(%rip), %rdi      # 0x60ec
movq %rdi, 0x3b8(%rsi)
movq %rcx, 0x3c0(%rsi)
movq %rdx, 0x3c8(%rsi)
movaps %xmm0, 0x3d0(%rsi)
movl $0x40, 0x3e0(%rsi)
movb %cl, 0x3e4(%rsi)
movq %rcx, 0x3e8(%rsi)
leaq 0x21b0(%rip), %rdx      # 0x60fa
movq %rdx, 0x3f0(%rsi)
movq $0x4, 0x3f8(%rsi)
movq %rax, 0x400(%rsi)
movq %rcx, 0x415(%rsi)
movups %xmm0, 0x408(%rsi)
movaps %xmm0, 0x450(%rsi)
movaps %xmm0, 0x440(%rsi)
movaps %xmm0, 0x430(%rsi)
movaps %xmm0, 0x420(%rsi)
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x495b
movq %rbx, %rax
addq $0x468, %rsp            # imm = 0x468
popq %rbx
popq %r14
retq