// File: /workspace/github_c_makefile_star2_O0/ryvnf[P]czc/eval.c
// Function: eval_expr_
static struct expr eval_expr_(struct type *t, struct ast *ast, bool global_init)
{
    switch (ast->tag) {
        case COMMA_EXPR:
            return eval_comma_expr(t, ast);

        case COND_EXPR:
            return eval_cond_expr(t, ast);

        case ASGN_EXPR:
            return eval_asgn_expr(ast);
        case ADD_ASGN_EXPR:
            return eval_binop_expr(ast, addasgn_binop_rope);
        case SUB_ASGN_EXPR:
            return eval_binop_expr(ast, subasgn_binop_rope);
        case MUL_ASGN_EXPR:
            return eval_binop_expr(ast, mulasgn_binop_rope);
        case DIV_ASGN_EXPR:
            return eval_binop_expr(ast, divasgn_binop_rope);
        case REM_ASGN_EXPR:
            return eval_binop_expr(ast, remasgn_binop_rope);
        case OR_ASGN_EXPR:
            return eval_binop_expr(ast, orasgn_binop_rope);
        case XOR_ASGN_EXPR:
            return eval_binop_expr(ast, xorasgn_binop_rope);
        case AND_ASGN_EXPR:
            return eval_binop_expr(ast, andasgn_binop_rope);
        case SHL_ASGN_EXPR:
            return eval_binop_expr(ast, shlasgn_binop_rope);
        case SHR_ASGN_EXPR:
            return eval_binop_expr(ast, shrasgn_binop_rope);

        case LOR_EXPR:
            return eval_binop_expr(ast, lor_binop_rope);
        case LAND_EXPR:
            return eval_binop_expr(ast, land_binop_rope);

        case EQ_EXPR:
            return eval_binop_expr(ast, eq_binop_rope);
        case NE_EXPR:
            return eval_binop_expr(ast, ne_binop_rope);

        case LT_EXPR:
            return eval_binop_expr(ast, lt_binop_rope);
        case GT_EXPR:
            return eval_binop_expr(ast, gt_binop_rope);
        case LE_EXPR:
            return eval_binop_expr(ast, le_binop_rope);
        case GE_EXPR:
            return eval_binop_expr(ast, ge_binop_rope);

        case OR_EXPR:
            return eval_binop_expr(ast, or_binop_rope);
        case XOR_EXPR:
            return eval_binop_expr(ast, xor_binop_rope);
        case AND_EXPR:
            return eval_binop_expr(ast, and_binop_rope);
        case SHL_EXPR:
            return eval_binop_expr(ast, shl_binop_rope);
        case SHR_EXPR:
            return eval_binop_expr(ast, shr_binop_rope);

        case ADD_EXPR:
            return eval_binop_expr(ast, add_binop_rope);

        case SUB_EXPR:
            return eval_binop_expr(ast, sub_binop_rope);

        case MUL_EXPR:
            return eval_binop_expr(ast, mul_binop_rope);
        case DIV_EXPR:
            return eval_binop_expr(ast, div_binop_rope);
        case REM_EXPR:
            return eval_binop_expr(ast, rem_binop_rope);

        case NOT_EXPR:
            return eval_preop_expr(ast, not_rope);

        case COMPL_EXPR:
            return eval_preop_expr(ast, compl_rope);

        case UPLUS_EXPR:
            return eval_preop_expr(ast, plus_rope);
        case NEG_EXPR:
            return eval_preop_expr(ast, minus_rope);

        case REF_EXPR:
            return eval_preop_expr(ast, amp_rope);

        case PRE_INC_EXPR:
            return eval_preop_expr(ast, inc_rope);
        case PRE_DEC_EXPR:
            return eval_preop_expr(ast, dec_rope);

        case SIZEOF_EXPR:
            return eval_sizeof_expr(ast);

        case CAST_EXPR:
            return eval_cast_expr(ast);

        case DEREF_EXPR:
            return eval_preop_expr(ast, star_rope);

        case SUBSCR_EXPR:
            return eval_subscr_expr(ast);

        case CALL_EXPR:
            return eval_call_expr(ast);

        case POST_INC_EXPR:
            return eval_postop_expr(ast, inc_rope);
        case POST_DEC_EXPR:
            return eval_postop_expr(ast, dec_rope);

        case MEMBER_EXPR:
            return eval_member_expr(ast);

        case INT_CONST:
            return eval_int_const_expr(ast);

        case FLOAT_CONST:
            return eval_float_const_expr(ast);

        case STR_LIT:
            return eval_str_lit_expr(ast);

        case TRUE_CONST:
            return (struct expr) { .rope = one_rope, .type = eval_type(NULL, ast) };

        case FALSE_CONST:
            return (struct expr) { .rope = zero_rope, .type = eval_type(NULL, ast) };

        case NULL_CONST:
            return (struct expr) { .rope = zero_rope, .type = eval_type(NULL, ast) };

        case NAME:
            return eval_name_expr(t, ast);

        case DECL:
            return eval_decl_expr(ast);

        case INIT_EXPR:
            return eval_init_expr(t, ast, global_init);
    }
    return (struct expr){ 0 };
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x28(%rbp)
testl %eax, %eax
je 0xabb0
jmp 0xa2ca
movl -0x28(%rbp), %eax
subl $0x1, %eax
je 0xab92
jmp 0xa2d8
movl -0x28(%rbp), %eax
subl $0x2, %eax
je 0xab71
jmp 0xa2e6
movl -0x28(%rbp), %eax
subl $0x1000, %eax           # imm = 0x1000
je 0xabce
jmp 0xa2f6
movl -0x28(%rbp), %eax
subl $0x2000, %eax           # imm = 0x2000
je 0xab2f
jmp 0xa306
movl -0x28(%rbp), %eax
subl $0x3000, %eax           # imm = 0x3000
je 0xab45
jmp 0xa316
movl -0x28(%rbp), %eax
subl $0x4000, %eax           # imm = 0x4000
je 0xabe5
jmp 0xa326
movl -0x28(%rbp), %eax
subl $0x4200, %eax           # imm = 0x4200
je 0xa629
jmp 0xa336
movl -0x28(%rbp), %eax
subl $0x4210, %eax           # imm = 0x4210
je 0xa643
jmp 0xa346
movl -0x28(%rbp), %eax
subl $0x4220, %eax           # imm = 0x4220
je 0xa65d
jmp 0xa356
movl -0x28(%rbp), %eax
subl $0x4221, %eax           # imm = 0x4221
je 0xa673
jmp 0xa366
movl -0x28(%rbp), %eax
subl $0x4222, %eax           # imm = 0x4222
je 0xa690
jmp 0xa376
movl -0x28(%rbp), %eax
subl $0x4223, %eax           # imm = 0x4223
je 0xa6ad
jmp 0xa386
movl -0x28(%rbp), %eax
subl $0x4224, %eax           # imm = 0x4224
je 0xa6ca
jmp 0xa396
movl -0x28(%rbp), %eax
subl $0x4225, %eax           # imm = 0x4225
je 0xa6e7
jmp 0xa3a6
movl -0x28(%rbp), %eax
subl $0x4226, %eax           # imm = 0x4226
je 0xa704
jmp 0xa3b6
movl -0x28(%rbp), %eax
subl $0x4227, %eax           # imm = 0x4227
je 0xa721
jmp 0xa3c6
movl -0x28(%rbp), %eax
subl $0x4228, %eax           # imm = 0x4228
je 0xa73e
jmp 0xa3d6
movl -0x28(%rbp), %eax
subl $0x4229, %eax           # imm = 0x4229
je 0xa75b
jmp 0xa3e6
movl -0x28(%rbp), %eax
subl $0x422a, %eax           # imm = 0x422A
je 0xa778
jmp 0xa3f6
movl -0x28(%rbp), %eax
subl $0x4230, %eax           # imm = 0x4230
je 0xa795
jmp 0xa406
movl -0x28(%rbp), %eax
subl $0x4240, %eax           # imm = 0x4240
je 0xa7b2
jmp 0xa416
movl -0x28(%rbp), %eax
subl $0x4250, %eax           # imm = 0x4250
je 0xa7cf
jmp 0xa426
movl -0x28(%rbp), %eax
subl $0x4251, %eax           # imm = 0x4251
je 0xa7ec
jmp 0xa436
movl -0x28(%rbp), %eax
subl $0x4260, %eax           # imm = 0x4260
je 0xa809
jmp 0xa446
movl -0x28(%rbp), %eax
subl $0x4261, %eax           # imm = 0x4261
je 0xa826
jmp 0xa456
movl -0x28(%rbp), %eax
subl $0x4262, %eax           # imm = 0x4262
je 0xa843
jmp 0xa466
movl -0x28(%rbp), %eax
subl $0x4263, %eax           # imm = 0x4263
je 0xa860
jmp 0xa476
movl -0x28(%rbp), %eax
subl $0x4270, %eax           # imm = 0x4270
je 0xa87d
jmp 0xa486
movl -0x28(%rbp), %eax
subl $0x4280, %eax           # imm = 0x4280
je 0xa89a
jmp 0xa496
movl -0x28(%rbp), %eax
subl $0x4290, %eax           # imm = 0x4290
je 0xa8b7
jmp 0xa4a6
movl -0x28(%rbp), %eax
subl $0x42a0, %eax           # imm = 0x42A0
je 0xa8d4
jmp 0xa4b6
movl -0x28(%rbp), %eax
subl $0x42a1, %eax           # imm = 0x42A1
je 0xa8f1
jmp 0xa4c6
movl -0x28(%rbp), %eax
subl $0x42b0, %eax           # imm = 0x42B0
je 0xa90e
jmp 0xa4d6
movl -0x28(%rbp), %eax
subl $0x42b1, %eax           # imm = 0x42B1
je 0xa92b
jmp 0xa4e6
movl -0x28(%rbp), %eax
subl $0x42c0, %eax           # imm = 0x42C0
je 0xa948
jmp 0xa4f6
movl -0x28(%rbp), %eax
subl $0x42c1, %eax           # imm = 0x42C1
je 0xa965
jmp 0xa506
movl -0x28(%rbp), %eax
subl $0x42c2, %eax           # imm = 0x42C2
je 0xa982
jmp 0xa516
movl -0x28(%rbp), %eax
subl $0x42d0, %eax           # imm = 0x42D0
je 0xa99f
jmp 0xa526
movl -0x28(%rbp), %eax
subl $0x42d1, %eax           # imm = 0x42D1
je 0xa9bc
jmp 0xa536
movl -0x28(%rbp), %eax
subl $0x42d2, %eax           # imm = 0x42D2
je 0xa9d9
jmp 0xa546
movl -0x28(%rbp), %eax
subl $0x42d3, %eax           # imm = 0x42D3
je 0xa9f6
jmp 0xa556
movl -0x28(%rbp), %eax
subl $0x42d4, %eax           # imm = 0x42D4
je 0xaa13
jmp 0xa566
movl -0x28(%rbp), %eax
subl $0x42d5, %eax           # imm = 0x42D5
je 0xaa30
jmp 0xa576
movl -0x28(%rbp), %eax
subl $0x42d6, %eax           # imm = 0x42D6
je 0xaa4d
jmp 0xa586
movl -0x28(%rbp), %eax
subl $0x42d7, %eax           # imm = 0x42D7
je 0xaa6a
jmp 0xa596
movl -0x28(%rbp), %eax
subl $0x42e0, %eax           # imm = 0x42E0
je 0xaa80
jmp 0xa5a6
movl -0x28(%rbp), %eax
subl $0x42f0, %eax           # imm = 0x42F0
je 0xaa96
jmp 0xa5b6
movl -0x28(%rbp), %eax
subl $0x42f1, %eax           # imm = 0x42F1
je 0xaab3
jmp 0xa5c6
movl -0x28(%rbp), %eax
subl $0x42f2, %eax           # imm = 0x42F2
je 0xaac9
jmp 0xa5d6
movl -0x28(%rbp), %eax
subl $0x42f3, %eax           # imm = 0x42F3
je 0xaadf
jmp 0xa5e6
movl -0x28(%rbp), %eax
subl $0x42f4, %eax           # imm = 0x42F4
je 0xaafc
jmp 0xa5f6
movl -0x28(%rbp), %eax
subl $0x42f5, %eax           # imm = 0x42F5
je 0xab19
jmp 0xa606
movl -0x28(%rbp), %eax
subl $0x42f6, %eax           # imm = 0x42F6
je 0xabf8
jmp 0xa616
movl -0x28(%rbp), %eax
subl $0x5000, %eax           # imm = 0x5000
je 0xab5b
jmp 0xac17
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x90e0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x94a0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x8eb0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1d2(%rip), %rsi      # 0x19850
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1d5(%rip), %rsi      # 0x19870
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf138(%rip), %rsi      # 0x197f0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf13b(%rip), %rsi      # 0x19810
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf13e(%rip), %rsi      # 0x19830
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf201(%rip), %rsi      # 0x19910
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1c4(%rip), %rsi      # 0x198f0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf187(%rip), %rsi      # 0x198d0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf12a(%rip), %rsi      # 0x19890
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf12d(%rip), %rsi      # 0x198b0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1b0(%rip), %rsi      # 0x19950
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf173(%rip), %rsi      # 0x19930
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf196(%rip), %rsi      # 0x19970
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf199(%rip), %rsi      # 0x19990
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf19c(%rip), %rsi      # 0x199b0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf19f(%rip), %rsi      # 0x199d0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1a2(%rip), %rsi      # 0x199f0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1a5(%rip), %rsi      # 0x19a10
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1a8(%rip), %rsi      # 0x19a30
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1ab(%rip), %rsi      # 0x19a50
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1ae(%rip), %rsi      # 0x19a70
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1b1(%rip), %rsi      # 0x19a90
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1b4(%rip), %rsi      # 0x19ab0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1b7(%rip), %rsi      # 0x19ad0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1ba(%rip), %rsi      # 0x19af0
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1bd(%rip), %rsi      # 0x19b10
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1c0(%rip), %rsi      # 0x19b30
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1c3(%rip), %rsi      # 0x19b50
callq 0x9220
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1c6(%rip), %rsi      # 0x19b70
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1c9(%rip), %rsi      # 0x19b90
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1cc(%rip), %rsi      # 0x19bb0
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1cf(%rip), %rsi      # 0x19bd0
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1d2(%rip), %rsi      # 0x19bf0
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1d5(%rip), %rsi      # 0x19c10
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf1d8(%rip), %rsi      # 0x19c30
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9650
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x96c0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xebaf(%rip), %rsi      # 0x19650
callq 0x9360
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9a10
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x97b0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf126(%rip), %rsi      # 0x19c10
callq 0x9400
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
leaq 0xf129(%rip), %rsi      # 0x19c30
callq 0x9400
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9b00
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9cc0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9d10
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9d60
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x7130
movq %rax, -0x10(%rbp)
leaq 0xeba7(%rip), %rax      # 0x19730
movq %rax, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x7130
movq %rax, -0x10(%rbp)
leaq 0xeba6(%rip), %rax      # 0x19750
movq %rax, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x7130
movq %rax, -0x10(%rbp)
leaq 0xeb88(%rip), %rax      # 0x19750
movq %rax, -0x8(%rbp)
jmp 0xac27
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x9c00
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x20(%rbp), %rdi
callq 0x9fc0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0xa020
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
jmp 0xac27
movq $0x0, -0x10(%rbp)
movq $0x0, -0x8(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdx
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)