// File: /workspace/github_cpp_makefile_star2_O3/philpoore[P]Math/./src/Parser.cpp
// Function: Parser::parseFunctionCall()
AstFunctionCall* Parser::parseFunctionCall() {
    Token t = expect(TOKEN_IDENT);
    AstFunctionCall* a = new AstFunctionCall(t.source);
    consumeWhiteSpace();

    expect(TOKEN_LPAREN);
    AstExpr* left = parseExpr();
    expect(TOKEN_RPAREN, "Unmatched parentheses");

    a->arg = left;
    return a;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
movq %rdi, %r14
leaq -0x90(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x38a8(%rip), %rdx      # 0xd4ad
leaq -0xa0(%rbp), %rbx
movq %rbx, %rdi
movq %rdx, %rsi
callq 0xb494
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
movl $0x101, %edx            # imm = 0x101
movq %rbx, %rcx
callq 0x839c
movq -0xa0(%rbp), %rdi
cmpq %r15, %rdi
je 0x9c49
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x3240
movl $0x30, %edi
callq 0x3230
movq %rax, %rbx
leaq -0x30(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x40(%rbp), %rdi
callq 0xb26a
movl $0x7, (%rbx)
leaq 0x8(%rbx), %rdi
movq %rbx, %rax
addq $0x18, %rax
movq %rax, 0x8(%rbx)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
callq 0xb26a
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0x9cb2
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x3240
movq %r14, %rdi
callq 0x88a6
leaq -0x70(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x37e4(%rip), %rdx      # 0xd4ad
leaq -0x80(%rbp), %rdi
movq %rdx, %rsi
callq 0xb494
leaq -0x130(%rbp), %rdi
leaq -0x80(%rbp), %rcx
movq %r14, %rsi
movl $0x10a, %edx            # imm = 0x10A
callq 0x839c
leaq -0x118(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d0c
movq -0x118(%rbp), %rsi
incq %rsi
callq 0x3240
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x9d21
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3240
movq %r14, %rdi
movl $0xffffd8f1, %esi       # imm = 0xFFFFD8F1
callq 0x9552
movq %rax, %r15
leaq -0x50(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x3679(%rip), %rsi      # 0xd3ba
leaq 0x3687(%rip), %rdx      # 0xd3cf
leaq -0x60(%rbp), %rdi
callq 0xb494
leaq -0x100(%rbp), %rdi
leaq -0x60(%rbp), %rcx
movq %r14, %rsi
movl $0x10b, %edx            # imm = 0x10B
callq 0x839c
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d88
movq -0xe8(%rbp), %rsi
incq %rsi
callq 0x3240
movq -0x60(%rbp), %rdi
cmpq %r12, %rdi
je 0x9d9d
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x3240
movq %r15, 0x28(%rbx)
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dc0
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x3240
movq %rbx, %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq -0x60(%rbp), %rdi
cmpq %r12, %rdi
je 0x9e3b
movq -0x50(%rbp), %rsi
jmp 0x9df9
jmp 0x9e38
jmp 0x9e38
movq %rax, %r14
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x9e3b
movq -0x70(%rbp), %rsi
incq %rsi
jmp 0x9e25
jmp 0x9e38
movq %rax, %r14
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0x9e1d
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x3240
jmp 0x9e1d
movq %rax, %r14
movl $0x30, %esi
movq %rbx, %rdi
callq 0x3240
jmp 0x9e3b
movq %rax, %r14
movq -0xa0(%rbp), %rdi
jmp 0x9e46
movq %rax, %r14
leaq -0xb8(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x9e56
movq (%r15), %rsi
incq %rsi
callq 0x3240
movq %r14, %rdi
callq 0x3370