// File: /workspace/github_cpp_makefile_star2_O3/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 0x49be
leaq 0x220(%rsp), %rdi
callq 0x49be
leaq 0x120(%rsp), %rdi
callq 0x49be
movq 0x10bb5(%rip), %rdi     # 0x12fd0
leaq 0x1a0(%rsp), %rsi
callq 0xaf03
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 0xb0ea
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 0xb1dc
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 0xa0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xb2e0
movq 0xa0(%rsp), %rsi
movq 0xa8(%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 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %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 0x260d
leaq 0xb0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa0(%rsp), %rdi
callq 0x4f5e
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movq 0x10a04(%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 0xa0(%rsp), %rdi
cmpq %r15, %rdi
je 0x260d
callq 0x2120
leaq 0x1a0(%rsp), %rdi
movsd 0xb9eb(%rip), %xmm0     # 0xe008
callq 0x6aea
cmpb $0x1, 0x1fc(%rsp)
jne 0x26b4
leaq 0xb0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa0(%rsp), %rdi
callq 0x4f5e
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movq 0x1095d(%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 0xa0(%rsp), %rdi
cmpq %r15, %rdi
je 0x26b4
callq 0x2120
leaq 0x10(%rsp), %rdx
movl $0x2, (%rdx)
leaq 0xa0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x6646
leaq 0xa8(%rsp), %r12
movb -0x8(%r12), %al
leaq 0x228(%rsp), %rdi
movb %al, -0x8(%rdi)
movups (%rdi), %xmm0
movaps %xmm0, 0x20(%rsp)
movq 0x10(%rdi), %rdx
movq 0x18(%rdi), %r15
movq 0x20(%rdi), %rbp
movq 0x28(%rdi), %rbx
movq 0x40(%rdi), %rax
movq 0x48(%rdi), %r13
movups 0x30(%rdi), %xmm0
movl $0xa, %ecx
movq %r12, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x20(%rsp), %xmm1
movups %xmm1, (%r12)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%r12)
movq %r15, 0x18(%r12)
movq %rbp, 0x20(%r12)
movq %rbx, 0x28(%r12)
movups %xmm0, 0x30(%r12)
movq %rax, 0x40(%r12)
movq %r13, 0x48(%r12)
cmpq %r13, %rbx
jae 0x2768
movq %rbx, %r14
movq 0x8(%r14), %rdi
addq $0x8, %r14
callq 0x2120
cmpq %r13, %r14
jb 0x2756
leaq 0x100(%rsp), %r13
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r13)
movq %r15, -0x20(%r13)
movq %rbp, -0x18(%r13)
movq %rbx, -0x10(%r13)
movl -0x8(%r13), %eax
leaq 0x280(%rsp), %rdi
movl %eax, -0x8(%rdi)
movb -0x4(%r13), %al
movb %al, -0x4(%rdi)
movq %r13, %rsi
callq 0x2170
movq (%r13), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x27b9
callq 0x2120
movabsq $0x726f727245206f4e, %rbx # imm = 0x726F727245206F4E
movq %r12, %rdi
callq 0x4f14
movb 0x27c(%rsp), %al
leaq 0xb0(%rsp), %rsi
movq %rsi, 0xa0(%rsp)
cmpb $0x1, %al
jne 0x2818
movq 0x280(%rsp), %rsi
movq 0x288(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa0(%rsp), %rdi
callq 0x4f5e
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
jmp 0x2839
movq %rbx, 0xb0(%rsp)
movq $0x8, 0xa8(%rsp)
movb $0x0, 0xb8(%rsp)
movl $0x8, %edx
movq 0x10790(%rip), %rdi     # 0x12fd0
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 0xb0(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x2885
callq 0x2120
leaq 0x220(%rsp), %rdi
movl $0xf, %esi
callq 0x6a00
movb 0x27c(%rsp), %al
movq %r14, 0xa0(%rsp)
cmpb $0x1, %al
jne 0x28dc
movq 0x280(%rsp), %rsi
movq 0x288(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa0(%rsp), %rdi
callq 0x4f5e
movq 0xa0(%rsp), %r14
movq 0xa8(%rsp), %rdx
jmp 0x28fd
movq %rbx, 0xb0(%rsp)
movq $0x8, 0xa8(%rsp)
movb $0x0, 0xb8(%rsp)
movl $0x8, %edx
movq 0x106cc(%rip), %rdi     # 0x12fd0
movq %r14, %rsi
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 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x294c
callq 0x2120
leaq 0x10(%rsp), %rdx
movl $0x0, (%rdx)
leaq 0xa0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x67c8
leaq 0x278(%rsp), %rbp
leaq 0xa8(%rsp), %r12
movb -0x8(%r12), %al
movb %al, -0x58(%rbp)
leaq 0x228(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x20(%rsp)
movq -0x40(%rbp), %rdx
movq -0x38(%rbp), %r15
movq -0x30(%rbp), %r8
movq -0x28(%rbp), %r14
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %r13
movups -0x20(%rbp), %xmm0
movl $0xa, %ecx
movq %r12, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x20(%rsp), %xmm1
movups %xmm1, (%r12)
movq %rdx, 0x8(%rsp)
movq %rdx, 0x10(%r12)
movq %r15, 0x18(%r12)
movq %r8, 0x2a0(%rsp)
movq %r8, 0x20(%r12)
movq %r14, 0x28(%r12)
movups %xmm0, 0x30(%r12)
movq %rax, 0x40(%r12)
movq %r13, 0x48(%r12)
cmpq %r13, %r14
jae 0x2a10
movq %r14, %rbx
movq 0x8(%rbx), %rdi
addq $0x8, %rbx
callq 0x2120
cmpq %r13, %rbx
jb 0x29fe
leaq 0x100(%rsp), %r13
movq 0x8(%rsp), %rax
movq %rax, -0x28(%r13)
movq %r15, -0x20(%r13)
movq 0x2a0(%rsp), %rax
movq %rax, -0x18(%r13)
movq %r14, -0x10(%r13)
movb -0x4(%r13), %al
movb %al, 0x4(%rbp)
movl -0x8(%r13), %eax
movl %eax, (%rbp)
leaq 0x280(%rsp), %rdi
movq %r13, %rsi
callq 0x2170
movq (%r13), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x2a69
callq 0x2120
movq %r12, %rdi
callq 0x4f14
movb 0x27c(%rsp), %al
leaq 0xb0(%rsp), %rsi
movq %rsi, 0xa0(%rsp)
cmpb $0x1, %al
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
jne 0x2ac8
movq 0x280(%rsp), %rsi
movq 0x288(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa0(%rsp), %rdi
callq 0x4f5e
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
jmp 0x2ae9
movq %rax, 0xb0(%rsp)
movq $0x8, 0xa8(%rsp)
movb $0x0, 0xb8(%rsp)
movl $0x8, %edx
movq 0x104e0(%rip), %r15     # 0x12fd0
movq %r15, %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 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b38
callq 0x2120
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0x1047a(%rip), %rdi     # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x1a8(%rsp), %rsi
movb -0x8(%rsi), %al
leaq 0xa8(%rsp), %rdi
movb %al, -0x8(%rdi)
callq 0x50aa
movb 0x1fc(%rsp), %al
leaq 0x100(%rsp), %rdi
movb %al, -0x4(%rdi)
movl 0x1f8(%rsp), %eax
movl %eax, -0x8(%rdi)
leaq 0x110(%rsp), %rax
movq %rax, (%rdi)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
callq 0x4f5e
movq 0x1040c(%rip), %rdi     # 0x12fd0
leaq 0xb44d(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x103f4(%rip), %rdi     # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xaf03
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 0xa0(%rsp), %rdi
movsd 0xb3ed(%rip), %xmm0     # 0xe010
callq 0x6aea
movq 0x103a1(%rip), %rdi     # 0x12fd0
leaq 0xb3e2(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x10389(%rip), %rdi     # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xaf03
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 0xb396(%rip), %rsi      # 0xe01b
leaq 0xa0(%rsp), %rdi
callq 0x684c
movq 0x10337(%rip), %rdi     # 0x12fd0
leaq 0xb378(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x1031f(%rip), %rdi     # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xaf03
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 0x102e1(%rip), %rdi     # 0x12fd0
leaq 0xb336(%rip), %rsi      # 0xe02c
movl $0x6, %edx
callq 0x2150
movl 0xf8(%rsp), %esi
movq 0x102c2(%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 0xa0(%rsp), %rdi
callq 0xb788
leaq 0xa0(%rsp), %rdi
callq 0x6958
movq 0x10272(%rip), %rdi     # 0x12fd0
leaq 0xb2b3(%rip), %rsi      # 0xe018
movl $0x2, %edx
callq 0x2150
movq 0x1025a(%rip), %rdi     # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xaf03
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 0xa0(%rsp), %rdi
movl $0x2, %esi
callq 0xb4ba
movq 0x1020a(%rip), %rdi     # 0x12fd0
leaq 0xb266(%rip), %rsi      # 0xe033
movl $0x9, %edx
callq 0x2150
movq 0x101f2(%rip), %rdi     # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xaf03
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 0xa0(%rsp), %rdi
xorl %esi, %esi
callq 0xb4ba
movq 0x101a5(%rip), %rdi     # 0x12fd0
leaq 0xb20b(%rip), %rsi      # 0xe03d
movl $0x9, %edx
callq 0x2150
movq 0x1018d(%rip), %rdi     # 0x12fd0
leaq 0xa0(%rsp), %rsi
callq 0xaf03
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 0xb1c6(%rip), %rsi      # 0xe047
leaq 0xa0(%rsp), %rdi
callq 0x684c
movq 0x1013b(%rip), %rdi     # 0x12fd0
leaq 0xb1b7(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xb7f4
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x10107(%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 0x2f0b
callq 0x2120
leaq 0xb148(%rip), %rsi      # 0xe05a
leaq 0xa0(%rsp), %rdi
callq 0x684c
movq 0x100aa(%rip), %rdi     # 0x12fd0
leaq 0xb126(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xb7f4
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x10076(%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 0x2f9d
callq 0x2120
leaq 0xb0c1(%rip), %rsi      # 0xe065
leaq 0xa0(%rsp), %rdi
callq 0x684c
movq 0x10018(%rip), %rdi     # 0x12fd0
leaq 0xb094(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xb7f4
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xffe4(%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 0x302f
callq 0x2120
leaq 0xb032(%rip), %rsi      # 0xe068
leaq 0xa0(%rsp), %rdi
callq 0x684c
movq 0xff86(%rip), %rdi      # 0x12fd0
leaq 0xb002(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xb7f4
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xff52(%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 0x30c1
callq 0x2120
leaq 0xafb1(%rip), %rsi      # 0xe079
leaq 0xa0(%rsp), %rdi
callq 0x684c
movq 0xfef4(%rip), %rdi      # 0x12fd0
leaq 0xaf70(%rip), %rsi      # 0xe053
movl $0x6, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xb7f4
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xfec0(%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 0x3156
callq 0x2120
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xfe5b(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xfe47(%rip), %r12      # 0x12fd0
leaq 0xaefa(%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 0xfe14(%rip), %r12      # 0x12fd0
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xfe0d(%rip), %rdi      # 0x12fe0
leaq 0x1a0(%rsp), %rsi
callq 0xb02a
leaq 0x220(%rsp), %rsi
movq %rax, %rdi
callq 0xb02a
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xfdc1(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xfdad(%rip), %rdi      # 0x12fd0
leaq 0xaf1a(%rip), %rsi      # 0xe144
movl $0x2, %edx
callq 0x2150
movq 0xfd95(%rip), %r12      # 0x12fd0
leaq 0x1a0(%rsp), %rsi
movq %r12, %rdi
callq 0xaf03
movq %rax, %r13
leaq 0xae49(%rip), %rsi      # 0xe09e
movl $0x3, %edx
movq %rax, %rdi
callq 0x2150
leaq 0x220(%rsp), %rsi
movq %r13, %rdi
callq 0xaf03
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 0xfd15(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x6b5d
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
leaq 0x128(%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 0x3369
movq %rbx, %r12
movq 0x8(%r12), %rdi
addq $0x8, %r12
callq 0x2120
cmpq %r14, %r12
jb 0x3356
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 0x180(%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 0x33b9
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xfc08(%rip), %rdi      # 0x12fd0
leaq 0xacd3(%rip), %rsi      # 0xe0a2
movl $0x4, %edx
callq 0x2150
movq 0xfbf0(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0x7275
leaq 0x178(%rsp), %rcx
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, -0x58(%rcx)
leaq 0x128(%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 0x34bf
movq %rbx, %r15
movq 0x8(%r15), %rdi
addq $0x8, %r15
callq 0x2120
cmpq %r14, %r15
jb 0x34ad
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3516
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xfaab(%rip), %rdi      # 0x12fd0
leaq 0xab7b(%rip), %rsi      # 0xe0a7
movl $0x4, %edx
callq 0x2150
movq 0xfa93(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0x66c9
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %r15
movq 0x148(%rsp), %r12
movq 0x150(%rsp), %rbx
movq 0x168(%rsp), %rax
movq 0x170(%rsp), %r14
movups 0x158(%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 0x3634
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3622
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x368b
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xf936(%rip), %rdi      # 0x12fd0
leaq 0xaa0b(%rip), %rsi      # 0xe0ac
movl $0x4, %edx
callq 0x2150
movq 0xf91e(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0x7bbb
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %r15
movq 0x148(%rsp), %r12
movq 0x150(%rsp), %rbx
movq 0x168(%rsp), %rax
movq 0x170(%rsp), %r14
movups 0x158(%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 0x37a9
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3797
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3800
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xf7c1(%rip), %rdi      # 0x12fd0
leaq 0xa89b(%rip), %rsi      # 0xe0b1
movl $0x4, %edx
callq 0x2150
movq 0xf7a9(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0x8b5a
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %r15
movq 0x148(%rsp), %r12
movq 0x150(%rsp), %rbx
movq 0x168(%rsp), %rax
movq 0x170(%rsp), %r14
movups 0x158(%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 0x3923
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3911
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x397a
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xf647(%rip), %rdi      # 0x12fd0
leaq 0xa726(%rip), %rsi      # 0xe0b6
movl $0x10, %edx
callq 0x2150
movq 0xf62f(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0x98ad
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %r15
movq 0x148(%rsp), %r12
movq 0x150(%rsp), %rbx
movq 0x168(%rsp), %rax
movq 0x170(%rsp), %r14
movups 0x158(%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 0x3a98
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3a86
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3aef
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xf4d2(%rip), %rdi      # 0x12fd0
leaq 0xa5c2(%rip), %rsi      # 0xe0c7
movl $0x4, %edx
callq 0x2150
movq 0xf4ba(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0xa6c6
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %r15
movq 0x148(%rsp), %r12
movq 0x150(%rsp), %rbx
movq 0x168(%rsp), %rax
movq 0x170(%rsp), %r14
movups 0x158(%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 0x3c0f
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3bfd
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3c66
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xf35b(%rip), %rdi      # 0x12fd0
leaq 0xa450(%rip), %rsi      # 0xe0cc
movl $0xb, %edx
callq 0x2150
movq 0xf343(%rip), %rdi      # 0x12fd0
leaq 0x120(%rsp), %rsi
callq 0xaf03
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 0xa6c6
leaq 0x28(%rsp), %rbp
movb -0x8(%rbp), %al
movb %al, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
movups (%rdi), %xmm0
movaps %xmm0, 0x10(%rsp)
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %r15
movq 0x148(%rsp), %r12
movq 0x150(%rsp), %rbx
movq 0x168(%rsp), %rax
movq 0x170(%rsp), %r14
movups 0x158(%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 0x3d89
movq %rbx, %r13
movq 0x8(%r13), %rdi
addq $0x8, %r13
callq 0x2120
cmpq %r14, %r13
jb 0x3d77
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 0x178(%rsp), %rcx
movb %al, 0x4(%rcx)
movl -0x8(%r14), %eax
movl %eax, (%rcx)
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0x2170
movq (%r14), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x3de0
callq 0x2120
movq %rbp, %rdi
callq 0x4f14
movq 0xf1e1(%rip), %rdi      # 0x12fd0
leaq 0xa2e2(%rip), %rsi      # 0xe0d8
movl $0xe, %edx
callq 0x2150
movq 0xf1c9(%rip), %r13      # 0x12fd0
leaq 0x120(%rsp), %rsi
movq %r13, %rdi
callq 0xaf03
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 0xf170(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xf15c(%rip), %rdi      # 0x12fd0
leaq 0xa26c(%rip), %rsi      # 0xe0e7
movl $0x5, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x88b6
movzbl %al, %esi
movq 0xf12c(%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 0xf0f6(%rip), %rdi      # 0x12fd0
leaq 0xa20c(%rip), %rsi      # 0xe0ed
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x88ee
movzbl %al, %esi
movq 0xf0c6(%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 0xf090(%rip), %rdi      # 0x12fd0
leaq 0xa1ab(%rip), %rsi      # 0xe0f2
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xac00
movzbl %al, %esi
movq 0xf060(%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 0xf02a(%rip), %rdi      # 0x12fd0
leaq 0xa14a(%rip), %rsi      # 0xe0f7
movl $0x5, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x8938
movzbl %al, %esi
movq 0xeffa(%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 0xefc4(%rip), %rdi      # 0x12fd0
leaq 0xa0ea(%rip), %rsi      # 0xe0fd
movl $0x5, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xae02
movzbl %al, %esi
movq 0xef94(%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 0xef43(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xef2f(%rip), %rdi      # 0x12fd0
leaq 0xa05b(%rip), %rsi      # 0xe103
movl $0x9, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb0ea
movq 0xef0a(%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 0xeed4(%rip), %rdi      # 0x12fd0
leaq 0xa00a(%rip), %rsi      # 0xe10d
movl $0x8, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb1dc
cvtss2sd %xmm0, %xmm0
movq 0xeeab(%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 0xee75(%rip), %rdi      # 0x12fd0
leaq 0x9fb4(%rip), %rsi      # 0xe116
movl $0x9, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xb2e0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xee41(%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 0x41d5
callq 0x2120
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xeddc(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xedc8(%rip), %rdi      # 0x12fd0
leaq 0x9f11(%rip), %rsi      # 0xe120
movl $0x9, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb0e4
movq 0xeda3(%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 0xed6d(%rip), %rdi      # 0x12fd0
leaq 0x9ec0(%rip), %rsi      # 0xe12a
movl $0x8, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0xb1d6
cvtss2sd %xmm0, %xmm0
movq 0xed44(%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 0xed0e(%rip), %rdi      # 0x12fd0
leaq 0x9e6a(%rip), %rsi      # 0xe133
movl $0x9, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xb2d2
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xecda(%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 0x433c
callq 0x2120
movq (%r13), %rax
addq -0x18(%rax), %r13
movq %r13, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq 0xec75(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xec61(%rip), %rdi      # 0x12fd0
leaq 0x9dc7(%rip), %rsi      # 0xe13d
movl $0x4, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
xorl %edx, %edx
callq 0x4a82
movq 0xec35(%rip), %rdi      # 0x12fd0
leaq 0x20(%rsp), %rsi
callq 0xaf03
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 0x43e9
callq 0x2120
leaq 0x28(%rsp), %rdi
callq 0x4f14
movq 0xebd6(%rip), %rdi      # 0x12fd0
leaq 0x9d41(%rip), %rsi      # 0xe142
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0x4b84
movq 0xebb1(%rip), %rdi      # 0x12fd0
movq %rax, %rsi
callq 0xaf03
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 0xeb78(%rip), %rdi      # 0x12fd0
leaq 0x9ce8(%rip), %rsi      # 0xe147
movl $0x4, %edx
callq 0x2150
leaq 0x20(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
xorl %edx, %edx
callq 0x4c10
movq 0xeb4c(%rip), %rdi      # 0x12fd0
leaq 0x20(%rsp), %rsi
callq 0xaf03
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 0x44d2
callq 0x2120
leaq 0x28(%rsp), %rdi
callq 0x4f14
movq 0xeaed(%rip), %rdi      # 0x12fd0
leaq 0x9c62(%rip), %rsi      # 0xe14c
movl $0x4, %edx
callq 0x2150
leaq 0x1a0(%rsp), %rdi
callq 0x4d12
movq 0xeac8(%rip), %rdi      # 0x12fd0
movq %rax, %rsi
callq 0xaf03
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 0x7176
leaq 0x20(%rsp), %rsi
movl $0x7b, (%rsi)
leaq 0x1a0(%rsp), %rdi
callq 0x7834
movabsq $0x40091eb851eb851f, %rax # imm = 0x40091EB851EB851F
leaq 0x20(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x1a0(%rsp), %rdi
callq 0x7b3c
movabsq $0x4005ae1480000000, %rax # imm = 0x4005AE1480000000
leaq 0x20(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x1a0(%rsp), %rdi
callq 0x8ada
movq 0xea21(%rip), %rdi      # 0x12fd0
leaq 0x9b9b(%rip), %rsi      # 0xe151
movl $0x1c, %edx
callq 0x2150
movq 0xea09(%rip), %r13      # 0x12fd0
leaq 0x1a0(%rsp), %rsi
movq %r13, %rdi
callq 0xaf03
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 0xe9b0(%rip), %rdi      # 0x12fd0
callq 0x2030
movq %rax, %rdi
callq 0x20b0
movq 0xe99c(%rip), %rdi      # 0x12fd0
leaq 0x9b33(%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 0xe93f(%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 0xe909(%rip), %rdi      # 0x12fd0
leaq 0x9aa8(%rip), %rsi      # 0xe176
movl $0xb, %edx
callq 0x2150
movl 0x1f8(%rsp), %esi
movq 0xe8ea(%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 0xe8b4(%rip), %rdi      # 0x12fd0
leaq 0x9a5f(%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 0xe85b(%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 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x47be
callq 0x2120
leaq 0xa8(%rsp), %rdi
callq 0x4f14
leaq 0x190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x47e1
callq 0x2120
leaq 0x128(%rsp), %rdi
callq 0x4f14
leaq 0x290(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4804
callq 0x2120
leaq 0x228(%rsp), %rdi
callq 0x4f14
leaq 0x210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4827
callq 0x2120
leaq 0x1a8(%rsp), %rdi
callq 0x4f14
xorl %eax, %eax
addq $0x2a8, %rsp            # imm = 0x2A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x497a
jmp 0x497a
jmp 0x497a
jmp 0x497a
jmp 0x497a
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
jmp 0x497f
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x4f14
jmp 0x498f
jmp 0x497a
jmp 0x497a
jmp 0x497a
jmp 0x497a
movq %rax, %rbx
jmp 0x499c
movq %rax, %rbx
jmp 0x49a9
jmp 0x4905
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
cmpq %r15, %rdi
jne 0x4973
jmp 0x498f
jmp 0x4919
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x4a5e
jmp 0x4982
jmp 0x4932
jmp 0x4932
jmp 0x4932
jmp 0x4932
jmp 0x4932
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x4982
callq 0x2120
jmp 0x4982
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x493f
jmp 0x495f
jmp 0x495f
jmp 0x495f
movq %rax, %rbx
leaq 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x498f
callq 0x2120
jmp 0x498f
movq %rax, %rbx
jmp 0x498f
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x4a5e
leaq 0x120(%rsp), %rdi
callq 0x4a5e
leaq 0x220(%rsp), %rdi
callq 0x4a5e
leaq 0x1a0(%rsp), %rdi
callq 0x4a5e
movq %rbx, %rdi
callq 0x2220