// File: acliusBackHome[P]kamaya/dist/ParseExpressionConstCalculate.cpp
// Function: ParseExpression::calculate_const_div(ConstValueType, ParseConstant const&, ParseConstant const&)
void ParseExpression::
calculate_const_div(ConstValueType cal_type,
                    const ParseConstant &const1, const ParseConstant &const2) {
    switch (cal_type) {
        case C_BOOL:
        case C_SIGNED: {
            auto divisor = const2.get_signed();
            if (divisor == 0) {
                string info = "ParseExpression::calculate_const() expr_id=" + to_string(get_id());
                throw ParseException(EX_EXPRESSION_DIVIDE_ZERO, info);
            }
            const_value = (size_t)
                    new ParseConstant(ParseConstant(const1.get_signed() / divisor));
            return;
        }
        case C_UNSIGNED: {
            auto divisor = const2.get_unsigned();
            if (divisor == 0) {
                string info = "ParseExpression::calculate_const() expr_id=" + to_string(get_id());
                throw ParseException(EX_EXPRESSION_DIVIDE_ZERO, info);
            }
            const_value = (size_t)
                    new ParseConstant(ParseConstant(const1.get_unsigned() / divisor));
            return;
        }
        case C_FLOAT: {
            auto divisor = const2.get_float();
            if (divisor == 0) {
                string info = "ParseExpression::calculate_const() expr_id=" + to_string(get_id());
                throw ParseException(EX_EXPRESSION_DIVIDE_ZERO, info);
            }
            const_value = (size_t)
                    new ParseConstant(ParseConstant(const1.get_float() / divisor));
            return;
        }
        case C_STRING:
        default:
            break;
    }
    const_value = (size_t) -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x120(%rbp)
movl -0xc(%rbp), %eax
movq %rax, -0x118(%rbp)
subq $0x4, %rax
ja 0x75c11
movq -0x118(%rbp), %rax
leaq 0x1bedd(%rip), %rcx     # 0x91684
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rdi
callq 0x69310
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x7589d
movq -0x120(%rbp), %rdi
callq 0x63810
movq %rax, %rsi
leaq -0x68(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x15db0
movq -0x128(%rbp), %rdx
leaq 0x1bfb7(%rip), %rsi     # 0x917ac
leaq -0x48(%rbp), %rdi
callq 0x15d60
jmp 0x75800
leaq -0x68(%rbp), %rdi
callq 0x4688
movl $0x28, %edi
callq 0x41c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x130(%rbp)
movl $0xe, %esi
leaq -0x48(%rbp), %rdx
callq 0x73a90
jmp 0x75830
movq -0x130(%rbp), %rdi
leaq 0x50512(%rip), %rsi     # 0xc5d50
leaq -0x5f9b5(%rip), %rdx    # 0x15e90
callq 0x45b0
jmp 0x75c34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x4688
jmp 0x75c2b
movq -0x130(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x4280
jmp 0x7588f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4688
jmp 0x75c2b
movl $0x10, %edi
callq 0x4310
movq %rax, -0x140(%rbp)
movq -0x18(%rbp), %rdi
callq 0x69310
movq %rax, -0x138(%rbp)
jmp 0x758c0
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rax
movq -0x28(%rbp), %rcx
cqto
idivq %rcx
movq %rax, %rsi
callq 0x69180
jmp 0x758e1
movq -0x120(%rbp), %rax
movq -0x140(%rbp), %rcx
movq %rcx, 0x18(%rax)
jmp 0x75c22
movq -0x140(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x42d0
jmp 0x75c2b
movq -0x20(%rbp), %rdi
callq 0x693d0
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
jne 0x75a14
movq -0x120(%rbp), %rdi
callq 0x63810
movq %rax, %rsi
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x15db0
movq -0x148(%rbp), %rdx
leaq 0x1be4f(%rip), %rsi     # 0x917ac
leaq -0xa0(%rbp), %rdi
callq 0x15d60
jmp 0x7596b
leaq -0xc0(%rbp), %rdi
callq 0x4688
movl $0x28, %edi
callq 0x41c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x150(%rbp)
movl $0xe, %esi
leaq -0xa0(%rbp), %rdx
callq 0x73a90
jmp 0x759a1
movq -0x150(%rbp), %rdi
leaq 0x503a1(%rip), %rsi     # 0xc5d50
leaq -0x5fb26(%rip), %rdx    # 0x15e90
callq 0x45b0
jmp 0x75c34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x4688
jmp 0x75c2b
movq -0x150(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x4280
jmp 0x75a03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x4688
jmp 0x75c2b
movl $0x10, %edi
callq 0x4310
movq %rax, -0x160(%rbp)
movq -0x18(%rbp), %rdi
callq 0x693d0
movq %rax, -0x158(%rbp)
jmp 0x75a37
movq -0x160(%rbp), %rdi
movq -0x158(%rbp), %rax
movq -0x80(%rbp), %rcx
xorl %edx, %edx
divq %rcx
movq %rax, %rsi
callq 0x691c0
jmp 0x75a58
movq -0x120(%rbp), %rax
movq -0x160(%rbp), %rcx
movq %rcx, 0x18(%rax)
jmp 0x75c22
movq -0x160(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x42d0
jmp 0x75c2b
movq -0x20(%rbp), %rdi
callq 0x694c0
fstpt -0xd0(%rbp)
fldt -0xd0(%rbp)
fldz
fxch %st(1)
fucompi %st(1), %st
fstp %st(0)
jne 0x75b9e
jp 0x75b9e
jmp 0x75ab7
movq -0x120(%rbp), %rdi
callq 0x63810
movq %rax, %rsi
leaq -0x110(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x15db0
movq -0x168(%rbp), %rdx
leaq 0x1bcc5(%rip), %rsi     # 0x917ac
leaq -0xf0(%rbp), %rdi
callq 0x15d60
jmp 0x75af5
leaq -0x110(%rbp), %rdi
callq 0x4688
movl $0x28, %edi
callq 0x41c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x170(%rbp)
movl $0xe, %esi
leaq -0xf0(%rbp), %rdx
callq 0x73a90
jmp 0x75b2b
movq -0x170(%rbp), %rdi
leaq 0x50217(%rip), %rsi     # 0xc5d50
leaq -0x5fcb0(%rip), %rdx    # 0x15e90
callq 0x45b0
jmp 0x75c34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x4688
jmp 0x75c2b
movq -0x170(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x4280
jmp 0x75b8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x4688
jmp 0x75c2b
movl $0x10, %edi
callq 0x4310
movq %rax, -0x188(%rbp)
movq -0x18(%rbp), %rdi
callq 0x694c0
fstpt -0x17c(%rbp)
jmp 0x75bc0
movq -0x188(%rbp), %rdi
fldt -0x17c(%rbp)
fldt -0xd0(%rbp)
fdivrp %st, %st(1)
movq %rsp, %rax
fstpt (%rax)
callq 0x69250
jmp 0x75be1
movq -0x120(%rbp), %rax
movq -0x188(%rbp), %rcx
movq %rcx, 0x18(%rax)
jmp 0x75c22
movq -0x188(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
callq 0x42d0
jmp 0x75c2b
jmp 0x75c11
jmp 0x75c13
movq -0x120(%rbp), %rax
movq $-0x1, 0x18(%rax)
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x45e0
nopw %cs:(%rax,%rax)