// File: /workspace/github_cpp_makefile_star2_O1/Mariotti94[P]BigFloat/Test.cpp
// Function: main
int main()
{
    //Test
    BigFloat a, b, c;

    //NaN test
    std::cout << a << std::endl;
    std::cout << a.ToDouble() << std::endl;
    std::cout << a.ToFloat() << std::endl;
    std::cout << a.ToString() << std::endl;
    std::cout << std::endl;

    //Error Codes test
    if(a.HasError())
        std::cout << a.GetError() << std::endl;
    a = 11.5;
    if(a.HasError())
        std::cout << a.GetError() << std::endl;
    b = a % 2;
    std::cout << b.GetError() << std::endl;
    b = 15;
    std::cout << b.GetError() << std::endl;
    b = a / 0;
    std::cout << b.GetError() << std::endl;
    std::cout << std::endl;

    //Assignation,SetPrecision,Trim test
    BigFloat d(a);
    std::cout << "d " << d << std::endl;
    d = -14.34434340000;
    std::cout << "d " << d << std::endl;
    d = "000.645343400000";
    std::cout << "d " << d << std::endl;
    std::cout << "d dec " << d.Decimals() << std::endl;
    d.TrailTrim();
    d.LeadTrim();
    std::cout << "d " << d << std::endl;
    d.SetPrecision(2);
    std::cout << "d set(2) " << d << std::endl;
    d.SetPrecision(0);
    std::cout << "d set(0) " << d << std::endl;
    d = "-1000.12323";
    std::cout << "d exp " << d.Exp() << std::endl;
    d = "-1.1223222";
    std::cout << "d exp " << d.Exp() << std::endl;
    d = "-1";
    std::cout << "d exp " << d.Exp() << std::endl;
    d = "-0.0000123453434";
    std::cout << "d exp " << d.Exp() << std::endl;
    d = "-0.0000000000000";
    std::cout << "d exp " << d.Exp() << std::endl;
    std::cout << std::endl;


    std::cout << "Inserisci 2 numeri:" << std::endl;
    std::cin >> a >> b;
    std::cout << std::endl;
    std::cout << "a " << a << "\tb " << b << std::endl;
    std::cout << std::endl;

    //Operations +,-,*,/ Test
    c = a + b;
    std::cout << "a+b " << c << std::endl;

    c = a - b;
    std::cout << "a-b " << c << std::endl;

    c = a * b;
    std::cout << "a*b " << c << std::endl;

    c = a / b;
    std::cout << "a/b " << c << std::endl;

    c = BigFloat::PrecDiv(a, b, 10);
    std::cout << "PrecDiv(a,b,10) " << c << std::endl;

    c = a % b;
    std::cout << "a%b " << c << std::endl;

    c = BigFloat::Power(a, b);
    std::cout << "Power(a,b) " << c << std::endl;

    c = BigFloat::Power(a, b, 10); //for negative exponents
    std::cout << "Power(a,b,10) " << c << std::endl;

    //Comparation Test
    std::cout << std::endl;
    std::cout << "a==b " << (a == b) << std::endl;
    std::cout << "a>b " << (a > b) << std::endl;
    std::cout << "a<b " << (a < b) << std::endl;
    std::cout << "a>=b " << (a >= b) << std::endl;
    std::cout << "a<=b " << (a <= b) << std::endl;

    //Transformation Test
    std::cout << std::endl;
    std::cout << "ToDouble " << a.ToDouble() << std::endl;
    std::cout << "ToFloat " << a.ToFloat() << std::endl;
    std::cout << "ToString " << a.ToString() << std::endl;

    std::cout << std::endl;
    std::cout << "(double) " << (double)a << std::endl;
    std::cout << "(float) " << (float)a << std::endl;
    std::cout << "(string) " << (std::string)a << std::endl;

    //++,-- Test
    std::cout << std::endl;
    std::cout << "a++ " << a++ << std::endl;
    std::cout << "++a " << ++a << std::endl;
    std::cout << "a-- " << a-- << std::endl;
    std::cout << "--a " << --a << std::endl;

    a += 666;
    a -= 123;
    a *= 3.14;
    a /= 2.71f;

    std::cout << "a after some manipulations: " << a << std::endl;

    //Miscellaneous test
    std::cout << std::endl;
    std::cout << "a ints " << a.Ints() << std::endl;
    std::cout << "a decimals " << a.Decimals() << std::endl;
    std::cout << "a memory size " << a.MemorySize() << std::endl;

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2a8, %rsp            # imm = 0x2A8
leaq 0x1a0(%rsp), %rdi
callq 0x4990
leaq 0x220(%rsp), %rdi
callq 0x4990
leaq 0xa0(%rsp), %rdi
callq 0x4990
movq 0x10bb5(%rip), %rdi     # 0x12fd0
leaq 0x1a0(%rsp), %rsi
callq 0xafab
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x1a0(%rsp), %rdi
callq 0xb19e
movq 0x10b6a(%rip), %rdi     # 0x12fd0
callq 0x21d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x1a0(%rsp), %rdi
callq 0xb298
cvtss2sd %xmm0, %xmm0
movq 0x10b23(%rip), %rdi     # 0x12fd0
callq 0x21d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x120(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xb3a2
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq 0x10ac8(%rip), %rbx     # 0x12fd0
movq %rbx, %rdi
callq 0x2150
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x130(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x2550
callq 0x2120
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x10a62(%rip), %rdi     # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
cmpb $0x1, 0x1fc(%rsp)
jne 0x2600
leaq 0x120(%rsp), %rdi
movq %r14, (%rdi)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
callq 0x4f2a
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq 0x10a11(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
je 0x2600
callq 0x2120
leaq 0x1a0(%rsp), %rdi
movsd 0xb9f8(%rip), %xmm0     # 0xe008
callq 0x6b04
cmpb $0x1, 0x1fc(%rsp)
jne 0x269a
leaq 0x120(%rsp), %rdi
movq %r14, (%rdi)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
callq 0x4f2a
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq 0x10977(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
je 0x269a
callq 0x2120
leaq 0x10(%rsp), %rdx
movl $0x2, (%rdx)
leaq 0x120(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x6644
leaq 0x128(%rsp), %r15
movb -0x8(%r15), %al
leaq 0x228(%rsp), %rdi
movb %al, -0x8(%rdi)
movups (%rdi), %xmm0
movaps %xmm0, 0x20(%rsp)
movq 0x10(%rdi), %rdx
movq 0x18(%rdi), %r14
movq 0x20(%rdi), %rbp
movq 0x28(%rdi), %rbx
movq 0x40(%rdi), %rax
movq 0x48(%rdi), %r12
movups 0x30(%rdi), %xmm0
movl $0xa, %ecx
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x20(%rsp), %xmm1
movups %xmm1, (%r15)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%r15)
movq %r14, 0x18(%r15)
movq %rbp, 0x20(%r15)
movq %rbx, 0x28(%r15)
movups %xmm0, 0x30(%r15)
movq %rax, 0x40(%r15)
movq %r12, 0x48(%r15)
cmpq %r12, %rbx
jae 0x2745
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r12, %r13
jb 0x2733
leaq 0x180(%rsp), %r12
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r12)
movq %r14, -0x20(%r12)
movq %rbp, -0x18(%r12)
movq %rbx, -0x10(%r12)
movl -0x8(%r12), %eax
leaq 0x280(%rsp), %rdi
movl %eax, -0x8(%rdi)
movb -0x4(%r12), %al
movb %al, -0x4(%rdi)
movq %r12, %rsi
callq 0x2170
movq (%r12), %rdi
leaq 0x190(%rsp), %rax
cmpq %rax, %rdi
je 0x279c
callq 0x2120
movabsq $0x726f727245206f4e, %rbx # imm = 0x726F727245206F4E
movq %r15, %rdi
callq 0x4ee6
movb 0x27c(%rsp), %al
leaq 0x130(%rsp), %r14
movq %r14, 0x120(%rsp)
cmpb $0x1, %al
jne 0x27eb
movq 0x280(%rsp), %rsi
movq 0x288(%rsp), %rdx
addq %rsi, %rdx
leaq 0x120(%rsp), %rdi
callq 0x4f2a
jmp 0x2807
movq %rbx, 0x130(%rsp)
movq $0x8, 0x128(%rsp)
movb $0x0, 0x138(%rsp)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq 0x107b2(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
je 0x285f
callq 0x2120
leaq 0x220(%rsp), %rdi
movl $0xf, %esi
callq 0x6a1a
movb 0x27c(%rsp), %al
movq %r14, 0x120(%rsp)
cmpb $0x1, %al
jne 0x28a6
movq 0x280(%rsp), %rsi
movq 0x288(%rsp), %rdx
addq %rsi, %rdx
leaq 0x120(%rsp), %rdi
callq 0x4f2a
jmp 0x28c2
movq %rbx, 0x130(%rsp)
movq $0x8, 0x128(%rsp)
movb $0x0, 0x138(%rsp)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq 0x106f7(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
je 0x291a
callq 0x2120
leaq 0x10(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0x120(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x67c6
leaq 0x278(%rsp), %rbp
leaq 0x128(%rsp), %r15
movb -0x8(%r15), %al
movb %al, -0x58(%rbp)
leaq 0x228(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x20(%rsp)
movq -0x40(%rbp), %r13
movq -0x38(%rbp), %rdx
movq -0x30(%rbp), %r8
movq -0x28(%rbp), %r14
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %r12
movups -0x20(%rbp), %xmm0
movl $0xa, %ecx
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x20(%rsp), %xmm1
movups %xmm1, (%r15)
movq %r13, 0x10(%r15)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x18(%r15)
movq %r8, 0x2a0(%rsp)
movq %r8, 0x20(%r15)
movq %r14, 0x28(%r15)
movups %xmm0, 0x30(%r15)
movq %rax, 0x40(%r15)
movq %r12, 0x48(%r15)
cmpq %r12, %r14
jae 0x29d5
movq %r14, %rbx
movq 0x8(%rbx), %rdi
addq $0x8, %rbx
callq 0x2120
cmpq %r12, %rbx
jb 0x29c3
leaq 0x180(%rsp), %r12
movq %r13, -0x28(%r12)
movq 0x8(%rsp), %rax
movq %rax, -0x20(%r12)
movq 0x2a0(%rsp), %rax
movq %rax, -0x18(%r12)
movq %r14, -0x10(%r12)
movb -0x4(%r12), %al
movb %al, 0x4(%rbp)
movl -0x8(%r12), %eax
movl %eax, (%rbp)
leaq 0x280(%rsp), %rdi
movq %r12, %rsi
callq 0x2170
movq (%r12), %rdi
leaq 0x190(%rsp), %rax
cmpq %rax, %rdi
je 0x2a34
callq 0x2120
movq %r15, %rdi
callq 0x4ee6
movb 0x27c(%rsp), %al
leaq 0x130(%rsp), %r12
movq %r12, 0x120(%rsp)
cmpb $0x1, %al
jne 0x2a79
movq 0x280(%rsp), %rsi
movq 0x288(%rsp), %rdx
addq %rsi, %rdx
leaq 0x120(%rsp), %rdi
callq 0x4f2a
jmp 0x2a9f
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
movq %rax, 0x130(%rsp)
movq $0x8, 0x128(%rsp)
movb $0x0, 0x138(%rsp)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq 0x1051a(%rip), %r14     # 0x12fd0
movq %r14, %rdi
callq 0x2150
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x120(%rsp), %rdi
cmpq %r12, %rdi
je 0x2afa
callq 0x2120
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x104b8(%rip), %rdi     # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x1a8(%rsp), %rsi
movb -0x8(%rsi), %al
leaq 0x128(%rsp), %rdi
movb %al, -0x8(%rdi)
callq 0x5070
movb 0x1fc(%rsp), %al
leaq 0x180(%rsp), %rdi
movb %al, -0x4(%rdi)
movl 0x1f8(%rsp), %eax
movl %eax, -0x8(%rdi)
leaq 0x190(%rsp), %rax
movq %rax, (%rdi)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
callq 0x4f2a
movq 0x1044a(%rip), %rdi     # 0x12fd0
leaq 0xb48b(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x10432(%rip), %rdi     # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xafab
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x120(%rsp), %rdi
movsd 0xb42b(%rip), %xmm0     # 0xe010
callq 0x6b04
movq 0x103df(%rip), %rdi     # 0x12fd0
leaq 0xb420(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x103c7(%rip), %rdi     # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xafab
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0xb3d4(%rip), %rsi      # 0xe01b
leaq 0x120(%rsp), %rdi
callq 0x684a
movq 0x10375(%rip), %rdi     # 0x12fd0
leaq 0xb3b6(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x1035d(%rip), %rdi     # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xafab
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x1031f(%rip), %rdi     # 0x12fd0
leaq 0xb374(%rip), %rsi      # 0xe02c
movl $0x6, %edx
callq 0x2150
movl 0x178(%rsp), %esi
movq 0x10300(%rip), %rdi     # 0x12fd0
callq 0x2210
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x120(%rsp), %rdi
callq 0xb878
leaq 0x120(%rsp), %rdi
callq 0x6956
movq 0x102b0(%rip), %rdi     # 0x12fd0
leaq 0xb2f1(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x10298(%rip), %rdi     # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xafab
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x120(%rsp), %rdi
movl $0x2, %esi
callq 0xb58a
movq 0x10248(%rip), %rdi     # 0x12fd0
leaq 0xb2a4(%rip), %rsi      # 0xe033
movl $0x9, %edx
callq 0x2150
movq 0x10230(%rip), %rdi     # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xafab
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x120(%rsp), %rdi
xorl %esi, %esi
callq 0xb58a
movq 0x101e3(%rip), %rdi     # 0x12fd0
leaq 0xb249(%rip), %rsi      # 0xe03d
movl $0x9, %edx
callq 0x2150
movq 0x101cb(%rip), %rdi     # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xafab
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0xb204(%rip), %rsi      # 0xe047
leaq 0x120(%rsp), %rdi
callq 0x684a
movq 0x10179(%rip), %rdi     # 0x12fd0
leaq 0xb1f5(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xb8ec
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x10145(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ecd
callq 0x2120
leaq 0xb186(%rip), %rsi      # 0xe05a
leaq 0x120(%rsp), %rdi
callq 0x684a
movq 0x100e8(%rip), %rdi     # 0x12fd0
leaq 0xb164(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xb8ec
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x100b4(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x2f5f
callq 0x2120
leaq 0xb0ff(%rip), %rsi      # 0xe065
leaq 0x120(%rsp), %rdi
callq 0x684a
movq 0x10056(%rip), %rdi     # 0x12fd0
leaq 0xb0d2(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xb8ec
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x10022(%rip), %rdi     # 0x12fd0
callq 0x2150
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x2ff1
callq 0x2120
leaq 0xb070(%rip), %rsi      # 0xe068
leaq 0x120(%rsp), %rdi
callq 0x684a
movq 0xffc4(%rip), %rdi      # 0x12fd0
leaq 0xb040(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xb8ec
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xff90(%rip), %rdi      # 0x12fd0
callq 0x2150
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x3083
callq 0x2120
leaq 0xafef(%rip), %rsi      # 0xe079
leaq 0x120(%rsp), %rdi
callq 0x684a
movq 0xff32(%rip), %rdi      # 0x12fd0
leaq 0xafae(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xb8ec
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xfefe(%rip), %r12      # 0x12fd0
movq %r12, %rdi
callq 0x2150
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x3118
callq 0x2120
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xfe99(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xfe85(%rip), %r12      # 0x12fd0
leaq 0xaf38(%rip), %rsi      # 0xe08a
movl $0x13, %edx
movq %r12, %rdi
callq 0x2150
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xfe52(%rip), %r12      # 0x12fd0
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xfe4b(%rip), %rdi      # 0x12fe0
leaq 0x1a0(%rsp), %rsi
callq 0xb0df
leaq 0x220(%rsp), %rsi
movq %rax, %rdi
callq 0xb0df
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xfdff(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xfdeb(%rip), %rdi      # 0x12fd0
leaq 0xaf58(%rip), %rsi      # 0xe144
movl $0x2, %edx
callq 0x2150
movq 0xfdd3(%rip), %r12      # 0x12fd0
leaq 0x1a0(%rsp), %rsi
movq %r12, %rdi
callq 0xafab
movq %rax, %r13
leaq 0xae87(%rip), %rsi      # 0xe09e
movl $0x3, %edx
movq %rax, %rdi
callq 0x2150
leaq 0x220(%rsp), %rsi
movq %r13, %rdi
callq 0xafab
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xfd53(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x6b77
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
leaq 0xa8(%rsp), %rdi
movb %al, -0x8(%rdi)
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x10(%rdi), %rdx
movq 0x18(%rdi), %r15
movq 0x20(%rdi), %r13
movq 0x28(%rdi), %rbx
movq 0x40(%rdi), %rax
movq 0x48(%rdi), %r14
movups 0x30(%rdi), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r13, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x332b
movq %rbx, %r12
movq 0x8(%r12), %rdi
addq $0x8, %r12
callq 0x2120
cmpq %r14, %r12
jb 0x3318
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r13, -0x18(%r14)
movq %rbx, -0x10(%r14)
movl -0x8(%r14), %eax
leaq 0x100(%rsp), %rdi
movl %eax, -0x8(%rdi)
movb -0x4(%r14), %al
movb %al, -0x4(%rdi)
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x337b
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xfc46(%rip), %rdi      # 0x12fd0
leaq 0xad11(%rip), %rsi      # 0xe0a2
movl $0x4, %edx
callq 0x2150
movq 0xfc2e(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x72ab
leaq 0xf8(%rsp), %rcx
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, -0x58(%rcx)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq -0x40(%rcx), %r12
movq -0x38(%rcx), %rdx
movq -0x30(%rcx), %r13
movq -0x28(%rcx), %rbx
movq -0x10(%rcx), %rax
movq -0x8(%rcx), %r14
movups -0x20(%rcx), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %r12, 0x10(%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x18(%rbp)
movq %r13, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x3481
movq %rbx, %r15
movq 0x8(%r15), %rdi
addq $0x8, %r15
callq 0x2120
cmpq %r14, %r15
jb 0x346f
leaq 0x80(%rsp), %r14
movq %r12, -0x28(%r14)
movq 0x8(%rsp), %rax
movq %rax, -0x20(%r14)
movq %r13, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x34d8
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xfae9(%rip), %rdi      # 0x12fd0
leaq 0xabb9(%rip), %rsi      # 0xe0a7
movl $0x4, %edx
callq 0x2150
movq 0xfad1(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x66c7
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xc0(%rsp), %r15
movq 0xc8(%rsp), %r12
movq 0xd0(%rsp), %rbx
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %r14
movups 0xd8(%rsp), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r12, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x35f6
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x35e4
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r12, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x364d
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xf974(%rip), %rdi      # 0x12fd0
leaq 0xaa49(%rip), %rsi      # 0xe0ac
movl $0x4, %edx
callq 0x2150
movq 0xf95c(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x7c0d
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xc0(%rsp), %r15
movq 0xc8(%rsp), %r12
movq 0xd0(%rsp), %rbx
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %r14
movups 0xd8(%rsp), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r12, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x376b
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3759
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r12, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x37c2
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xf7ff(%rip), %rdi      # 0x12fd0
leaq 0xa8d9(%rip), %rsi      # 0xe0b1
movl $0x4, %edx
callq 0x2150
movq 0xf7e7(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
movl $0xa, %ecx
callq 0x8be6
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xc0(%rsp), %r15
movq 0xc8(%rsp), %r12
movq 0xd0(%rsp), %rbx
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %r14
movups 0xd8(%rsp), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r12, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x38e5
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x38d3
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r12, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x393c
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xf685(%rip), %rdi      # 0x12fd0
leaq 0xa764(%rip), %rsi      # 0xe0b6
movl $0x10, %edx
callq 0x2150
movq 0xf66d(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x996b
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xc0(%rsp), %r15
movq 0xc8(%rsp), %r12
movq 0xd0(%rsp), %rbx
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %r14
movups 0xd8(%rsp), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r12, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x3a5a
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3a48
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r12, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3ab1
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xf510(%rip), %rdi      # 0x12fd0
leaq 0xa600(%rip), %rsi      # 0xe0c7
movl $0x4, %edx
callq 0x2150
movq 0xf4f8(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
xorl %ecx, %ecx
callq 0xa76e
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xc0(%rsp), %r15
movq 0xc8(%rsp), %r12
movq 0xd0(%rsp), %rbx
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %r14
movups 0xd8(%rsp), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r12, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x3bd1
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3bbf
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r12, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3c28
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xf399(%rip), %rdi      # 0x12fd0
leaq 0xa48e(%rip), %rsi      # 0xe0cc
movl $0xb, %edx
callq 0x2150
movq 0xf381(%rip), %rdi      # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
movl $0xa, %ecx
callq 0xa76e
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xc0(%rsp), %r15
movq 0xc8(%rsp), %r12
movq 0xd0(%rsp), %rbx
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %r14
movups 0xd8(%rsp), %xmm0
movl $0xa, %ecx
movq %rbp, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x10(%rsp), %xmm1
movups %xmm1, (%rbp)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%rbp)
movq %r15, 0x18(%rbp)
movq %r12, 0x20(%rbp)
movq %rbx, 0x28(%rbp)
movups %xmm0, 0x30(%rbp)
movq %rax, 0x40(%rbp)
movq %r14, 0x48(%rbp)
cmpq %r14, %rbx
jae 0x3d4b
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3d39
leaq 0x80(%rsp), %r14
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r14)
movq %r15, -0x20(%r14)
movq %r12, -0x18(%r14)
movq %rbx, -0x10(%r14)
movb -0x4(%r14), %al
leaq 0xf8(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3da2
callq 0x2120
movq %rbp, %rdi
callq 0x4ee6
movq 0xf21f(%rip), %rdi      # 0x12fd0
leaq 0xa320(%rip), %rsi      # 0xe0d8
movl $0xe, %edx
callq 0x2150
movq 0xf207(%rip), %r13      # 0x12fd0
leaq 0xa0(%rsp), %rsi
movq %r13, %rdi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xf1ae(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xf19a(%rip), %rdi      # 0x12fd0
leaq 0xa2aa(%rip), %rsi      # 0xe0e7
movl $0x5, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x8942
movzbl %al, %esi
movq 0xf16a(%rip), %rdi      # 0x12fd0
callq 0x2200
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xf134(%rip), %rdi      # 0x12fd0
leaq 0xa24a(%rip), %rsi      # 0xe0ed
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x897a
movzbl %al, %esi
movq 0xf104(%rip), %rdi      # 0x12fd0
callq 0x2200
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xf0ce(%rip), %rdi      # 0x12fd0
leaq 0xa1e9(%rip), %rsi      # 0xe0f2
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xaca8
movzbl %al, %esi
movq 0xf09e(%rip), %rdi      # 0x12fd0
callq 0x2200
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xf068(%rip), %rdi      # 0x12fd0
leaq 0xa188(%rip), %rsi      # 0xe0f7
movl $0x5, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x89c4
movzbl %al, %esi
movq 0xf038(%rip), %rdi      # 0x12fd0
callq 0x2200
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xf002(%rip), %rdi      # 0x12fd0
leaq 0xa128(%rip), %rsi      # 0xe0fd
movl $0x5, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xaeaa
movzbl %al, %esi
movq 0xefd2(%rip), %r13      # 0x12fd0
movq %r13, %rdi
callq 0x2200
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xef81(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xef6d(%rip), %rdi      # 0x12fd0
leaq 0xa099(%rip), %rsi      # 0xe103
movl $0x9, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb19e
movq 0xef48(%rip), %rdi      # 0x12fd0
callq 0x21d0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xef12(%rip), %rdi      # 0x12fd0
leaq 0xa048(%rip), %rsi      # 0xe10d
movl $0x8, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb298
cvtss2sd %xmm0, %xmm0
movq 0xeee9(%rip), %rdi      # 0x12fd0
callq 0x21d0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xeeb3(%rip), %rdi      # 0x12fd0
leaq 0x9ff2(%rip), %rsi      # 0xe116
movl $0x9, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xb3a2
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xee7f(%rip), %r13      # 0x12fd0
movq %r13, %rdi
callq 0x2150
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x4197
callq 0x2120
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xee1a(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xee06(%rip), %rdi      # 0x12fd0
leaq 0x9f4f(%rip), %rsi      # 0xe120
movl $0x9, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb198
movq 0xede1(%rip), %rdi      # 0x12fd0
callq 0x21d0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xedab(%rip), %rdi      # 0x12fd0
leaq 0x9efe(%rip), %rsi      # 0xe12a
movl $0x8, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb292
cvtss2sd %xmm0, %xmm0
movq 0xed82(%rip), %rdi      # 0x12fd0
callq 0x21d0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xed4c(%rip), %rdi      # 0x12fd0
leaq 0x9ea8(%rip), %rsi      # 0xe133
movl $0x9, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xb394
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xed18(%rip), %r13      # 0x12fd0
movq %r13, %rdi
callq 0x2150
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x42fe
callq 0x2120
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xecb3(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xec9f(%rip), %rdi      # 0x12fd0
leaq 0x9e05(%rip), %rsi      # 0xe13d
movl $0x4, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
xorl %edx, %edx
callq 0x4a54
movq 0xec73(%rip), %rdi      # 0x12fd0
leaq 0x20(%rsp), %rsi
callq 0xafab
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x43ab
callq 0x2120
leaq 0x28(%rsp), %rdi
callq 0x4ee6
movq 0xec14(%rip), %rdi      # 0x12fd0
leaq 0x9d7f(%rip), %rsi      # 0xe142
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0x4b56
movq 0xebef(%rip), %rdi      # 0x12fd0
movq %rax, %rsi
callq 0xafab
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xebb6(%rip), %rdi      # 0x12fd0
leaq 0x9d26(%rip), %rsi      # 0xe147
movl $0x4, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
xorl %edx, %edx
callq 0x4be2
movq 0xeb8a(%rip), %rdi      # 0x12fd0
leaq 0x20(%rsp), %rsi
callq 0xafab
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x4494
callq 0x2120
leaq 0x28(%rsp), %rdi
callq 0x4ee6
movq 0xeb2b(%rip), %rdi      # 0x12fd0
leaq 0x9ca0(%rip), %rsi      # 0xe14c
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0x4ce4
movq 0xeb06(%rip), %rdi      # 0x12fd0
movq %rax, %rsi
callq 0xafab
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rsi
movl $0x29a, (%rsi)          # imm = 0x29A
leaq 0x1a0(%rsp), %rdi
callq 0x71ac
leaq 0x20(%rsp), %rsi
movl $0x7b, (%rsi)
leaq 0x1a0(%rsp), %rdi
callq 0x7886
movabsq $0x40091eb851eb851f, %rax # imm = 0x40091EB851EB851F
leaq 0x20(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x1a0(%rsp), %rdi
callq 0x7b8e
movabsq $0x4005ae1480000000, %rax # imm = 0x4005AE1480000000
leaq 0x20(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x1a0(%rsp), %rdi
callq 0x8b66
movq 0xea5f(%rip), %rdi      # 0x12fd0
leaq 0x9bd9(%rip), %rsi      # 0xe151
movl $0x1c, %edx
callq 0x2150
movq 0xea47(%rip), %r13      # 0x12fd0
leaq 0x1a0(%rsp), %rsi
movq %r13, %rdi
callq 0xafab
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xe9ee(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xe9da(%rip), %rdi      # 0x12fd0
leaq 0x9b71(%rip), %rsi      # 0xe16e
movl $0x7, %edx
callq 0x2150
movq 0x1f0(%rsp), %rax
movl 0x1d0(%rsp), %ecx
movl %eax, %edx
subl %ecx, %edx
shrl $0x3, %edx
cmpq $0x1, %rax
adcl $-0x1, %edx
movl 0x1d8(%rsp), %esi
subl 0x1e0(%rsp), %esi
shll $0x9, %edx
addl 0x1c8(%rsp), %esi
addl %edx, %esi
subl 0x1b8(%rsp), %esi
subl 0x1f8(%rsp), %esi
movq 0xe97d(%rip), %rdi      # 0x12fd0
callq 0x2210
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xe947(%rip), %rdi      # 0x12fd0
leaq 0x9ae6(%rip), %rsi      # 0xe176
movl $0xb, %edx
callq 0x2150
movl 0x1f8(%rsp), %esi
movq 0xe928(%rip), %rdi      # 0x12fd0
callq 0x2210
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xe8f2(%rip), %rdi      # 0x12fd0
leaq 0x9a9d(%rip), %rsi      # 0xe182
movl $0xe, %edx
callq 0x2150
movq 0x1f0(%rsp), %rax
movl 0x1d0(%rsp), %ecx
movl %eax, %edx
subl %ecx, %edx
shrl $0x3, %edx
cmpq $0x1, %rax
adcl $-0x1, %edx
shll $0x9, %edx
movl 0x1d8(%rsp), %esi
subl 0x1e0(%rsp), %esi
addl 0x1c8(%rsp), %esi
addl %edx, %esi
subl 0x1b8(%rsp), %esi
subl $-0x80, %esi
movq 0xe899(%rip), %rdi      # 0x12fd0
callq 0x2210
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0x180(%rsp), %rdi
leaq 0x190(%rsp), %rax
cmpq %rax, %rdi
je 0x4780
callq 0x2120
leaq 0x128(%rsp), %rdi
callq 0x4ee6
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x47a3
callq 0x2120
leaq 0xa8(%rsp), %rdi
callq 0x4ee6
leaq 0x290(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x47c6
callq 0x2120
leaq 0x228(%rsp), %rdi
callq 0x4ee6
leaq 0x210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x47e9
callq 0x2120
leaq 0x1a8(%rsp), %rdi
callq 0x4ee6
xorl %eax, %eax
addq $0x2a8, %rsp            # imm = 0x2A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x494c
jmp 0x494c
jmp 0x494c
jmp 0x494c
jmp 0x494c
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
jmp 0x4951
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x4ee6
jmp 0x4961
jmp 0x494c
jmp 0x494c
jmp 0x494c
jmp 0x494c
movq %rax, %rbx
jmp 0x496e
movq %rax, %rbx
jmp 0x497b
jmp 0x491f
jmp 0x491f
jmp 0x48cb
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x4a30
jmp 0x4954
jmp 0x48e4
jmp 0x48e4
jmp 0x48e4
jmp 0x48e4
jmp 0x48e4
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x4954
callq 0x2120
jmp 0x4954
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x48f1
movq %rax, %rbx
movq 0x120(%rsp), %rdi
cmpq %r12, %rdi
jne 0x4945
jmp 0x4961
jmp 0x491f
movq %rax, %rbx
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
jne 0x4945
jmp 0x4961
movq %rax, %rbx
leaq 0x130(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4961
callq 0x2120
jmp 0x4961
movq %rax, %rbx
jmp 0x4961
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0x4a30
leaq 0xa0(%rsp), %rdi
callq 0x4a30
leaq 0x220(%rsp), %rdi
callq 0x4a30
leaq 0x1a0(%rsp), %rdi
callq 0x4a30
movq %rbx, %rdi
callq 0x2220