// File: Pyboon[P]sage/isi_sage.cpp
// Function: IsiSage::InitAoD(Eigen::Matrix<std::complex<double>, 1, -1, 1, 1, -1>, int)
void IsiSage::InitAoD(const RowVectorXcd tau_data, const int iL){
    Util::log("init AOD");
    // X_l 
    MatrixXcd X(config.Rx, config.Tx);
    complex<double> cycle_data = 0;
    complex<double> temp = 0;
    for(int i_tx = 0; i_tx < config.Tx; ++i_tx){
        for(int i_rx = 0; i_rx < config.Rx; ++i_rx){
            cycle_data = 0;
            temp = 0;
            for(int i_cyc = 0; i_cyc < config.cycle_num; ++i_cyc){
                double t = (i_cyc * config.Tcy + i_tx * config.Tt + i_rx * config.Tr) * config.T; 
                temp.real(cos(2*PI* result.doppler(iL) * t));
                temp.imag(sin(-2*PI* result.doppler(iL) * t));
                cycle_data += temp * tau_data(i_cyc * config.subchannel_num + i_tx * config.Rx + i_rx);
            }
            X(i_rx, i_tx) = cycle_data;
        }
    }
    // c_2_p
    MatrixX2cd C2 = getAntennaResponse(result.theta_rx(iL), result.phi_rx(iL), 2);
    VectorXcd c_2_1 = C2.col(0);
    VectorXcd c_2_2 = C2.col(1);
    Vector4cd f;
    Matrix2Xcd f_temp(2, config.Tx);
    f_temp.row(0) = c_2_1.adjoint() * X;
    f_temp.row(1) = c_2_2.adjoint() * X;
    double min_theta_tx = config.min_theta_tx;
    double max_theta_tx = config.max_theta_tx;
    double min_phi_tx = config.min_phi_tx;
    double max_phi_tx = config.max_phi_tx;
    double step = config.angle_step;
    int theta_size = (max_theta_tx - min_theta_tx)/step;
    int phi_size = (max_phi_tx - min_phi_tx)/step;
    MatrixXd aod_data(theta_size, phi_size);
    for(int i_theta = 0; i_theta < theta_size; ++i_theta){
        for(int i_phi = 0; i_phi < phi_size; ++i_phi){
            MatrixX2cd C1 = getAntennaResponse(i_theta * step + min_theta_tx, i_phi * step + min_phi_tx, 1);
            VectorXcd c_1_1_conj = C1.col(0).conjugate();
            VectorXcd c_1_2_conj = C1.col(1).conjugate();
            f(0) = f_temp.row(0) * c_1_1_conj;
            f(1) = f_temp.row(0) * c_1_2_conj;
            f(2) = f_temp.row(1) * c_1_1_conj;
            f(3) = f_temp.row(1) * c_1_2_conj;
            Matrix2cd part1 = C2.adjoint() * C2;
            Matrix2cd part2 = C1.adjoint() * C1;
            MatrixXcd D = kroneckerProduct(part1, part2);
            complex<double> z = f.adjoint() * D.inverse() * f;
            aod_data(i_theta, i_phi) = norm(z);
        }
    }
    int i,j;
    aod_data.maxCoeff(&i, &j);
    result.theta_tx(iL) = i * config.angle_step + min_theta_tx;
    result.phi_tx(iL) = j * config.angle_step + min_phi_tx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x880, %rsp            # imm = 0x880
movq %rsi, -0x780(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x778(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x770(%rbp)
callq 0x9dd0
movq -0x770(%rbp), %rdx
leaq 0x55048(%rip), %rsi     # 0x6fbbe
leaq -0x38(%rbp), %rdi
callq 0xb320
jmp 0x1ab81
leaq -0x38(%rbp), %rdi
callq 0x13b80
jmp 0x1ab8c
leaq -0x38(%rbp), %rdi
callq 0x9470
leaq -0x39(%rbp), %rdi
callq 0x9840
movq -0x778(%rbp), %rdx
movq %rdx, %rsi
addq $0x8, %rsi
addq $0xc, %rdx
leaq -0x68(%rbp), %rdi
callq 0x20450
leaq -0x78(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x14330
jmp 0x1abca
leaq -0x88(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x14330
jmp 0x1abde
movl $0x0, -0x8c(%rbp)
movq -0x778(%rbp), %rcx
movl -0x8c(%rbp), %eax
cmpl 0xc(%rcx), %eax
jge 0x1aea5
movl $0x0, -0x90(%rbp)
movq -0x778(%rbp), %rcx
movl -0x90(%rbp), %eax
cmpl 0x8(%rcx), %eax
jge 0x1ae8f
leaq -0x78(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x202e0
jmp 0x1ac2c
leaq -0x88(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x202e0
jmp 0x1ac3d
movl $0x0, -0x94(%rbp)
movq -0x778(%rbp), %rcx
movl -0x94(%rbp), %eax
cmpl 0x10(%rcx), %eax
jge 0x1ae45
movq -0x778(%rbp), %rdi
movl -0x94(%rbp), %eax
movl 0xbc(%rdi), %ecx
imull %ecx, %eax
movl -0x8c(%rbp), %ecx
movl 0xb4(%rdi), %edx
imull %edx, %ecx
addl %ecx, %eax
movl -0x90(%rbp), %ecx
movl 0xb8(%rdi), %edx
imull %edx, %ecx
addl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xa8(%rdi), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
addq $0x1d0, %rdi            # imm = 0x1D0
movslq -0x14(%rbp), %rsi
callq 0x14140
movq %rax, -0x788(%rbp)
jmp 0x1acc6
movq -0x788(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x54b97(%rip), %xmm1    # 0x6f870
mulsd %xmm1, %xmm0
movsd -0xa0(%rbp), %xmm1
mulsd %xmm1, %xmm0
callq 0x9e90
leaq -0x88(%rbp), %rdi
callq 0x13d00
jmp 0x1acfc
movq -0x778(%rbp), %rdi
addq $0x1d0, %rdi            # imm = 0x1D0
movslq -0x14(%rbp), %rsi
callq 0x14140
movq %rax, -0x790(%rbp)
jmp 0x1ad1c
movq -0x790(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x54b49(%rip), %xmm1    # 0x6f878
mulsd %xmm1, %xmm0
movsd -0xa0(%rbp), %xmm1
mulsd %xmm1, %xmm0
callq 0x9180
leaq -0x88(%rbp), %rdi
callq 0x13d20
jmp 0x1ad52
movq -0x780(%rbp), %rdi
movq -0x778(%rbp), %rcx
movl -0x94(%rbp), %eax
movl 0x8(%rcx), %edx
movl 0xa0(%rcx), %ecx
imull %ecx, %eax
movl -0x8c(%rbp), %ecx
imull %edx, %ecx
addl %ecx, %eax
movl -0x90(%rbp), %ecx
addl %ecx, %eax
movslq %eax, %rsi
callq 0x20350
movq %rax, -0x798(%rbp)
jmp 0x1ad96
movq -0x798(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x20310
movsd %xmm1, -0x7a8(%rbp)
movsd %xmm0, -0x7a0(%rbp)
jmp 0x1adbb
movsd -0x7a8(%rbp), %xmm0
movsd -0x7a0(%rbp), %xmm1
movsd %xmm1, -0xb0(%rbp)
movsd %xmm0, -0xa8(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x203e0
jmp 0x1aded
jmp 0x1adef
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x1ac47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1ae26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9470
leaq -0x39(%rbp), %rdi
callq 0x9840
jmp 0x1b925
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b91c
movslq -0x90(%rbp), %rsi
movslq -0x8c(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x13c40
movq %rax, -0x7b0(%rbp)
jmp 0x1ae65
movq -0x7b0(%rbp), %rax
movq -0x78(%rbp), %rcx
movq %rcx, (%rax)
movq -0x70(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x1ac08
jmp 0x1ae91
movl -0x8c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x1abe8
movq -0x778(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
movslq -0x14(%rbp), %rsi
callq 0x14140
movq %rax, -0x7b8(%rbp)
jmp 0x1aec5
movq -0x778(%rbp), %rdi
movq -0x7b8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x7c8(%rbp)
addq $0x210, %rdi            # imm = 0x210
movslq -0x14(%rbp), %rsi
callq 0x14140
movq %rax, -0x7c0(%rbp)
jmp 0x1aef8
movsd -0x7c8(%rbp), %xmm0
movq -0x778(%rbp), %rsi
movq -0x7c0(%rbp), %rax
movsd (%rax), %xmm1
movq (%rsi), %rax
movq 0x20(%rax), %rax
leaq -0xc0(%rbp), %rdi
movl $0x2, %edx
callq *%rax
jmp 0x1af29
xorl %eax, %eax
movl %eax, %edx
leaq -0x108(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x20580
jmp 0x1af42
leaq -0xd0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x20cb0
jmp 0x1af57
leaq -0x150(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
movl $0x1, %edx
callq 0x20580
jmp 0x1af71
leaq -0x118(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x20cb0
jmp 0x1af86
leaq -0x190(%rbp), %rdi
callq 0x20cf0
jmp 0x1af94
movq -0x778(%rbp), %rdx
movl $0x2, -0x1a4(%rbp)
addq $0xc, %rdx
leaq -0x1a0(%rbp), %rdi
leaq -0x1a4(%rbp), %rsi
callq 0x20d10
jmp 0x1afbe
leaq -0x1d0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x20720
jmp 0x1afd3
leaq -0x1c0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x20d80
jmp 0x1afec
xorl %eax, %eax
movl %eax, %edx
leaq -0x208(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x20dd0
jmp 0x1b005
leaq -0x208(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x20e20
jmp 0x1b01a
leaq -0x230(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x20720
jmp 0x1b02f
leaq -0x220(%rbp), %rdi
leaq -0x230(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x20d80
jmp 0x1b048
leaq -0x268(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
movl $0x1, %edx
callq 0x20dd0
jmp 0x1b062
leaq -0x268(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x20e20
jmp 0x1b077
movq -0x778(%rbp), %rax
movsd 0xe0(%rax), %xmm0
movsd %xmm0, -0x270(%rbp)
movsd 0xe8(%rax), %xmm0
movsd %xmm0, -0x278(%rbp)
movsd 0xf0(%rax), %xmm0
movsd %xmm0, -0x280(%rbp)
movsd 0xf8(%rax), %xmm0
movsd %xmm0, -0x288(%rbp)
movsd 0x128(%rax), %xmm0
movsd %xmm0, -0x290(%rbp)
movsd -0x278(%rbp), %xmm0
movsd -0x270(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd -0x290(%rbp), %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x294(%rbp)
movsd -0x288(%rbp), %xmm0
movsd -0x280(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd -0x290(%rbp), %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x298(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x294(%rbp), %rsi
leaq -0x298(%rbp), %rdx
callq 0x204c0
jmp 0x1b13e
movl $0x0, -0x2b4(%rbp)
movl -0x2b4(%rbp), %eax
cmpl -0x294(%rbp), %eax
jge 0x1b7c0
movl $0x0, -0x2b8(%rbp)
movl -0x2b8(%rbp), %eax
cmpl -0x298(%rbp), %eax
jge 0x1b7aa
movq -0x778(%rbp), %rsi
cvtsi2sdl -0x2b4(%rbp), %xmm0
movsd -0x290(%rbp), %xmm3
movsd -0x270(%rbp), %xmm1
mulsd %xmm3, %xmm0
addsd %xmm1, %xmm0
cvtsi2sdl -0x2b8(%rbp), %xmm1
movsd -0x280(%rbp), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movq (%rsi), %rax
movq 0x20(%rax), %rax
leaq -0x2c8(%rbp), %rdi
movl $0x1, %edx
callq *%rax
jmp 0x1b1cc
xorl %eax, %eax
movl %eax, %edx
leaq -0x350(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x20580
jmp 0x1b1e5
leaq -0x318(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x20e60
jmp 0x1b1fa
leaq -0x2d8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x20eb0
jmp 0x1b20f
leaq -0x3d8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
movl $0x1, %edx
callq 0x20580
jmp 0x1b229
leaq -0x3a0(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x20e60
jmp 0x1b23e
leaq -0x360(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x20eb0
jmp 0x1b253
xorl %eax, %eax
movl %eax, %edx
leaq -0x460(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x20dd0
jmp 0x1b26c
leaq -0x428(%rbp), %rdi
leaq -0x460(%rbp), %rsi
leaq -0x2d8(%rbp), %rdx
callq 0x20ef0
jmp 0x1b288
leaq -0x428(%rbp), %rdi
callq 0x20f40
movsd %xmm1, -0x7d8(%rbp)
movsd %xmm0, -0x7d0(%rbp)
jmp 0x1b2a6
movsd -0x7d8(%rbp), %xmm0
movsd -0x7d0(%rbp), %xmm1
movsd %xmm1, -0x3e8(%rbp)
movsd %xmm0, -0x3e0(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x190(%rbp), %rdi
callq 0x20fa0
movq %rax, -0x7e0(%rbp)
jmp 0x1b2df
movq -0x7e0(%rbp), %rax
movups -0x3e8(%rbp), %xmm0
movups %xmm0, (%rax)
xorl %eax, %eax
movl %eax, %edx
leaq -0x4e8(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x20dd0
jmp 0x1b309
leaq -0x4b0(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
leaq -0x360(%rbp), %rdx
callq 0x20ef0
jmp 0x1b325
leaq -0x4b0(%rbp), %rdi
callq 0x20f40
movsd %xmm1, -0x7f0(%rbp)
movsd %xmm0, -0x7e8(%rbp)
jmp 0x1b343
movsd -0x7f0(%rbp), %xmm0
movsd -0x7e8(%rbp), %xmm1
movsd %xmm1, -0x470(%rbp)
movsd %xmm0, -0x468(%rbp)
leaq -0x190(%rbp), %rdi
movl $0x1, %esi
callq 0x20fa0
movq %rax, -0x7f8(%rbp)
jmp 0x1b37d
movq -0x7f8(%rbp), %rax
movups -0x470(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x570(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
movl $0x1, %edx
callq 0x20dd0
jmp 0x1b3a8
leaq -0x538(%rbp), %rdi
leaq -0x570(%rbp), %rsi
leaq -0x2d8(%rbp), %rdx
callq 0x20ef0
jmp 0x1b3c4
leaq -0x538(%rbp), %rdi
callq 0x20f40
movsd %xmm1, -0x808(%rbp)
movsd %xmm0, -0x800(%rbp)
jmp 0x1b3e2
movsd -0x808(%rbp), %xmm0
movsd -0x800(%rbp), %xmm1
movsd %xmm1, -0x4f8(%rbp)
movsd %xmm0, -0x4f0(%rbp)
leaq -0x190(%rbp), %rdi
movl $0x2, %esi
callq 0x20fa0
movq %rax, -0x810(%rbp)
jmp 0x1b41c
movq -0x810(%rbp), %rax
movups -0x4f8(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x5f8(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
movl $0x1, %edx
callq 0x20dd0
jmp 0x1b447
leaq -0x5c0(%rbp), %rdi
leaq -0x5f8(%rbp), %rsi
leaq -0x360(%rbp), %rdx
callq 0x20ef0
jmp 0x1b463
leaq -0x5c0(%rbp), %rdi
callq 0x20f40
movsd %xmm1, -0x820(%rbp)
movsd %xmm0, -0x818(%rbp)
jmp 0x1b481
movsd -0x820(%rbp), %xmm0
movsd -0x818(%rbp), %xmm1
movsd %xmm1, -0x580(%rbp)
movsd %xmm0, -0x578(%rbp)
leaq -0x190(%rbp), %rdi
movl $0x3, %esi
callq 0x20fa0
movq %rax, -0x828(%rbp)
jmp 0x1b4bb
movq -0x828(%rbp), %rax
movups -0x580(%rbp), %xmm0
movups %xmm0, (%rax)
leaq -0x668(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x21030
jmp 0x1b4e1
leaq -0x658(%rbp), %rdi
leaq -0x668(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x21080
jmp 0x1b4fd
leaq -0x640(%rbp), %rdi
leaq -0x658(%rbp), %rsi
callq 0x210d0
jmp 0x1b512
leaq -0x6d8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x21030
jmp 0x1b527
leaq -0x6c8(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
leaq -0x2c8(%rbp), %rdx
callq 0x21080
jmp 0x1b543
leaq -0x6b0(%rbp), %rdi
leaq -0x6c8(%rbp), %rsi
callq 0x210d0
jmp 0x1b558
leaq -0x640(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
callq 0x21110
movq %rdx, -0x838(%rbp)
movq %rax, -0x830(%rbp)
jmp 0x1b57b
movq -0x838(%rbp), %rax
movq -0x830(%rbp), %rcx
movq %rcx, -0x700(%rbp)
movq %rax, -0x6f8(%rbp)
leaq -0x6f0(%rbp), %rdi
leaq -0x700(%rbp), %rsi
callq 0x21160
jmp 0x1b5ac
leaq -0x758(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x211a0
jmp 0x1b5c1
leaq -0x6f0(%rbp), %rdi
callq 0x21240
movq %rax, -0x840(%rbp)
jmp 0x1b5d6
movq -0x840(%rbp), %rax
movq %rax, -0x760(%rbp)
leaq -0x748(%rbp), %rdi
leaq -0x758(%rbp), %rsi
leaq -0x760(%rbp), %rdx
callq 0x211f0
jmp 0x1b600
leaq -0x730(%rbp), %rdi
leaq -0x748(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x212c0
jmp 0x1b61c
leaq -0x730(%rbp), %rdi
callq 0x21310
movsd %xmm1, -0x850(%rbp)
movsd %xmm0, -0x848(%rbp)
jmp 0x1b63a
movsd -0x850(%rbp), %xmm0
movsd -0x848(%rbp), %xmm1
movsd %xmm1, -0x710(%rbp)
movsd %xmm0, -0x708(%rbp)
leaq -0x710(%rbp), %rdi
callq 0x20430
movsd %xmm0, -0x858(%rbp)
jmp 0x1b670
movslq -0x2b4(%rbp), %rsi
movslq -0x2b8(%rbp), %rdx
leaq -0x2b0(%rbp), %rdi
callq 0x20b60
movq %rax, -0x860(%rbp)
jmp 0x1b693
movq -0x860(%rbp), %rax
movsd -0x858(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x6f0(%rbp), %rdi
callq 0xfac0
leaq -0x360(%rbp), %rdi
callq 0x20c20
leaq -0x2d8(%rbp), %rdi
callq 0x20c20
leaq -0x2c8(%rbp), %rdi
callq 0x13f10
movl -0x2b8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b8(%rbp)
jmp 0x1b164
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b910
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b904
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b8f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b8ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b8e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b799
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b78d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1b781
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x6f0(%rbp), %rdi
callq 0xfac0
leaq -0x360(%rbp), %rdi
callq 0x20c20
leaq -0x2d8(%rbp), %rdi
callq 0x20c20
leaq -0x2c8(%rbp), %rdi
callq 0x13f10
jmp 0x1b8e0
jmp 0x1b7ac
movl -0x2b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b4(%rbp)
jmp 0x1b148
leaq -0x2b0(%rbp), %rdi
leaq -0x764(%rbp), %rsi
leaq -0x768(%rbp), %rdx
callq 0x20c40
jmp 0x1b7dc
movq -0x778(%rbp), %rdi
cvtsi2sdl -0x764(%rbp), %xmm0
movsd 0x128(%rdi), %xmm2
movsd -0x270(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x870(%rbp)
addq $0x1e0, %rdi            # imm = 0x1E0
movslq -0x14(%rbp), %rsi
callq 0x14140
movq %rax, -0x868(%rbp)
jmp 0x1b824
movq -0x778(%rbp), %rdi
movq -0x868(%rbp), %rax
movsd -0x870(%rbp), %xmm0
movsd %xmm0, (%rax)
cvtsi2sdl -0x768(%rbp), %xmm0
movsd 0x128(%rdi), %xmm2
movsd -0x280(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x880(%rbp)
addq $0x1f0, %rdi            # imm = 0x1F0
movslq -0x14(%rbp), %rsi
callq 0x14140
movq %rax, -0x878(%rbp)
jmp 0x1b87f
movq -0x878(%rbp), %rax
movsd -0x880(%rbp), %xmm0
movsd %xmm0, (%rax)
leaq -0x2b0(%rbp), %rdi
callq 0x20c90
leaq -0x1a0(%rbp), %rdi
callq 0x21370
leaq -0x118(%rbp), %rdi
callq 0x20c20
leaq -0xd0(%rbp), %rdi
callq 0x20c20
leaq -0xc0(%rbp), %rdi
callq 0x13f10
leaq -0x68(%rbp), %rdi
callq 0xfac0
addq $0x880, %rsp            # imm = 0x880
popq %rbp
retq
leaq -0x2b0(%rbp), %rdi
callq 0x20c90
leaq -0x1a0(%rbp), %rdi
callq 0x21370
leaq -0x118(%rbp), %rdi
callq 0x20c20
leaq -0xd0(%rbp), %rdi
callq 0x20c20
leaq -0xc0(%rbp), %rdi
callq 0x13f10
leaq -0x68(%rbp), %rdi
callq 0xfac0
movq -0x48(%rbp), %rdi
callq 0x9dc0
nop