// File: /workspace/github_cpp_makefile_star2_O3/aronszanto[P]strassen/main.cpp
// Function: testStrasMult()
void testStrasMult(){
    convThreshold = 2;
    //First test
    Matrix* A = new Matrix();
    initMatrix(A,2);
    Matrix* B = new Matrix();
    initMatrix(B,2);
    Matrix* C = new Matrix();
    initMatrix(C,2);
    Matrix* D = new Matrix();
    initMatrix(D,2);
    
    A->matrix = {{1,2},{3,1}};
    B->matrix = {{2,1},{3,1}};
    C->matrix = {{8,3},{9,4}};
    
    multiply(A, B, D, 0, 0, 0, 0, 0, 0, 2);
    assert(isEqual(D, C));
    free(A);
    free(B);
    free(C);


    //second test powers of 2
    Matrix* E = new Matrix();
    initMatrix(E,8);
    Matrix* F = new Matrix();
    initMatrix(F,8);
    Matrix* G = new Matrix();
    initMatrix(G,8);
    Matrix* H = new Matrix();
    initMatrix(H,8);
    
    E->matrix = {{9, 3, 5, 7, 5, 7, 13, 18}, {1, 9, 0, 4, 17, 2, 5, 8}, {4, 8, 6, 7,5, 12, 3, 2},
                    {11, 2, 4, 11, 19, 13, 3, 4}, {17, 17, 16, 1, 1, 6, 3,1}, {15, 11, 5, 20, 17, 3, 7, 16},
                    {10, 7, 2, 6, 18, 15, 17,15}, {17, 4, 16, 19, 2, 15, 11, 0}};
    F->matrix = {{3, 9, 0, 1, 11, 12, 19, 11}, {5, 10, 8, 14, 12, 10, 14, 12}, {13,
        11, 12, 4, 4, 13, 5, 7}, {8, 0, 18, 8, 0, 2, 8, 16}, {6, 0, 7, 18,
            2, 5, 20, 6}, {17, 17, 0, 17, 5, 4, 9, 1}, {12, 8, 3, 9, 10, 3, 6,
                3}, {15, 3, 18, 12, 7, 14, 17, 16}};
    
    G->matrix = {{738, 443, 608, 669, 456, 561, 841, 646}, {396, 197, 422, 640, 269,
        330, 701, 430}, {486, 416, 342, 541, 278, 330, 534, 377}, {614, 420,
            476, 781, 322, 438, 928, 549}, {511, 628, 380, 486, 524, 636, 758,
                556}, {802, 455, 936, 961, 548, 737, 1305, 1034}, {931, 618, 635,
                    1076, 588, 639, 1198, 718}, {830, 712, 613, 679, 488, 593, 852,
                        711}};
    
    multiply(E,F,H,0,0,0,0,0,0,8);
    assert(isEqual(H,G));
    free(E);
    free(F);
    free(G);
    free(H);
    
    Matrix* I = new Matrix();
    initMatrix(I,4);
    Matrix* J = new Matrix();
    initMatrix(J,4);
    Matrix* K = new Matrix();
    initMatrix(K,4);
    Matrix* L = new Matrix();
    initMatrix(L,4);
    
    I->matrix = {{16, 9, 0, 5}, {19, 6, 9, 4}, {12, 11, 16, 12}, {20, 6, 16, 2}};
    J->matrix = {{7, 12, 11, 13}, {8, 5, 13, 20}, {18, 13, 7, 4}, {6, 1, 19, 11}};
    
    K->matrix = {{214, 242, 388, 443}, {367, 379, 426, 447}, {532, 419, 615,
        572}, {488, 480, 448, 466}};
    
    multiply(I,J,L,0,0,0,0,0,0,4);
    
    assert(isEqual(K, L));
    free(I);
    free(J);
    free(K);
    free(L);


    //third test non powers of 2, positive and negative
    Matrix* M = new Matrix();
    initMatrix(M,14);
    Matrix* N = new Matrix();
    initMatrix(N,14);
    Matrix* O = new Matrix();
    initMatrix(O,14);
    
    M->matrix = {{-12, -2, -18, 12, 6, -13, -15, 12, -17, -18, 
  5, -19, -13, -7}, {14, -11, 20, 9, 2, -4, 11, -5, 12, 11, 1, 15, 0, 
  11}, {7, 18, 6, 12, 13, -14, 4, 9, 3, 13, -1, -12, 11, 
  18}, {17, -12, 19, 1, -16, 10, 20, -15, 1, 
  13, -15, -12, -13, -4}, {-4, -12, -9, 7, 14, 4, 6, 15, 4, 11, 
  19, -8, 11, -20}, {0, -3, 9, -4, 0, 19, -9, 15, 20, 0, -3, 8, -13, 
  17}, {2, 19, 15, -2, 16, -7, -11, 17, 8, -20, 17, -13, 9, 3}, {-15, 
  13, 10, 14, -1, 19, 19, -6, 1, -3, -6, -10, -19, 
  11}, {-13, -18, -12, -6, -5, -5, 14, -8, 5, 6, 10, 19, -15, 
  13}, {9, -18, 6, 10, 8, -3, -18, -5, 18, 17, 16, 
  6, -18, -12}, {-13, -15, -2, -13, 0, 20, -1, -16, 1, 3, 15, 13, 6, 
  10}, {4, -9, 5, 11, -17, -4, -1, 10, 17, 8, 17, 1, -7, 18}, {1, -18,
   1, -2, 7, -7, -1, 2, -20, 7, 7, -13, -16, 9}, {10, -1, 
  16, -20, -4, -1, -17, -1, -15, 16, 1, 9, 16, 13}};
    
    N->matrix = {{-10, 6, 4, -16, 9, 12, 0, -2, 4, -15, 18, 10, -3, -6}, {12, 14, 
  0, -3, 2, -17, 8, -19, 20, -14, -20, -6, 7, 17}, {7, -15, -14, 
  13, -12, 18, 3, 6, -18, -12, -10, -6, 19, -13}, {7, 19, 12, 4, -1, 
  5, -16, 13, 4, 12, -18, -4, 16, 8}, {-18, 8, -15, -4, 7, 0, -3, 
  6, -14, -18, 8, 10, 14, 6}, {-11, 17, 4, -11, -5, -3, 6, -20, 4, 
  18, -5, -16, 2, 8}, {6, 6, -9, 18, -4, 5, -9, 18, -19, 4, -5, 15, 3,
   16}, {-11, -7, -10, 1, 12, -9, -8, -1, -20, 6, 
  14, -13, -18, -15}, {-19, 8, -15, -8, -6, 13, -20, -17, 3, 
  11, -4, -15, 2, -7}, {-7, -9, -5, 2, -15, 17, -19, 5, -15, -5, 11, 
  17, 12, -15}, {16, 14, 12, -12, -13, 0, -16, -12, 20, -20, -8, 16, 
  16, 4}, {3, 7, 13, 11, 6, -1, -17, -10, -14, -5, -14, 15, 
  11, -12}, {4, 16, -2, -9, -6, 7, 6, 17, 13, -9, 10, -16, 
  0, -19}, {18, -17, -12, 2, 7, -15, 9, -7, 10, 17, 14, 10, 20, 3}};
    
    O->matrix = {{161, -75, 489, -193, 625, -1012, 465, 281, 539, 134, 12, -279, -850,
   743}, {14, -221, -371, 435, -298, 1035, -882, 325, -850, -113, 30, 
  722, 1105, -620}, {285, -62, -805, -38, 56, 6, -120, 464, 119, -446,
   439, 159, 789, -54}, {-221, -608, -278, 489, -550, 1175, 56, 
  555, -859, 510, 91, 253, 74, 101}, {-732, 846, 23, -431, -415, 
  536, -998, 536, -378, -436, 
  299, -36, -223, -310}, {-579, -412, -577, -131, 
  175, -138, -271, -1222, -402, 928, 142, -504, 247, -367}, {146, 
  323, -604, -596, 193, -431, 352, -458, 720, -973, -76, -787, 216, 
  15}, {461, 69, -348, 659, -245, -385, 192, -273, -144, 
  1045, -1049, -193, 719, 1361}, {359, -451, 189, 
  623, -120, -91, -831, -163, -482, 613, -111, 1260, 406, 165}, {-833,
   15, 247, -398, -465, 1107, -1383, -416, -393, -414, -64, 578, 
  585, -630}, {238, 149, 256, -152, -532, 20, -73, -552, 305, 
  280, -72, 372, 634, -103}, {390, -357, -54, -38, -297, 
  300, -938, -422, 177, 599, 85, 229, 540, -450}, {192, -1007, -74, 
  185, 80, -51, 182, 568, -490, -76, 777, 943, 96, 
  149}, {366, -870, -119, -188, -165, 237, 567, -60, -6, -821, 888, 
  346, 393, -1238}};
    
    Matrix* P = multiply(M,N);
    
    assert(isEqual(O, P));
    
    free(M);
    free(N);
    free(O);
    free(P);


    
    cout << "all Strassen tests pass" << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4f8, %rsp            # imm = 0x4F8
movl $0x2, 0x9e52(%rip)      # 0xe1a0
movl $0x20, %edi
callq 0x21b0
movq %rax, %r15
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x2, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r14
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x2, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x2, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r13
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x2, %esi
callq 0x245c
movabsq $0x200000001, %rax      # imm = 0x200000001
leaq 0x240(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x28(%rsp), %rdi
leaq 0x1c0(%rsp), %rcx
movl $0x2, %edx
callq 0x796c
leaq 0x40(%rsp), %rdi
movabsq $0x100000003, %rax      # imm = 0x100000003
leaq 0x200(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x180(%rsp), %rcx
movl $0x2, %edx
callq 0x796c
movq %r15, 0x8(%rsp)
leaq 0x8(%r15), %rdi
leaq 0x58(%rsp), %rdx
leaq 0x28(%rsp), %rsi
callq 0x80d6
movq %r14, %r12
addq $0x8, %r12
movq %rbx, %r15
addq $0x8, %r15
movl $0x18, %ebp
movq 0x28(%rsp,%rbp), %rdi
testq %rdi, %rdi
je 0x4470
callq 0x2190
addq $-0x18, %rbp
cmpq $-0x18, %rbp
jne 0x4461
movabsq $0x100000002, %rax      # imm = 0x100000002
leaq 0x240(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x28(%rsp), %rdi
leaq 0x1c0(%rsp), %rcx
movl $0x2, %edx
callq 0x796c
leaq 0x40(%rsp), %rdi
leaq 0x200(%rsp), %rsi
movabsq $0x100000003, %rax      # imm = 0x100000003
movq %rax, (%rsi)
leaq 0x180(%rsp), %rcx
movl $0x2, %edx
callq 0x796c
leaq 0x58(%rsp), %rdx
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0x80d6
movl $0x18, %r12d
movq 0x28(%rsp,%r12), %rdi
testq %rdi, %rdi
je 0x44f9
callq 0x2190
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x44ea
movabsq $0x300000008, %rax      # imm = 0x300000008
leaq 0x240(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x28(%rsp), %rdi
leaq 0x1c0(%rsp), %rcx
movl $0x2, %edx
callq 0x796c
leaq 0x40(%rsp), %r12
movabsq $0x400000009, %rax      # imm = 0x400000009
leaq 0x200(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x180(%rsp), %rcx
movl $0x2, %edx
movq %r12, %rdi
callq 0x796c
leaq 0x58(%rsp), %rbp
leaq 0x28(%rsp), %rsi
movq %r15, %rdi
movq %rbp, %rdx
callq 0x80d6
movl $0x18, %r15d
movq 0x28(%rsp,%r15), %rdi
testq %rdi, %rdi
je 0x4588
callq 0x2190
addq $-0x18, %r15
cmpq $-0x18, %r15
jne 0x4579
xorl %eax, %eax
movq 0x8(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x2
pushq %rax
pushq %rax
pushq %rax
callq 0x2e76
addq $0x20, %rsp
movq %r13, %rdi
movq %rbx, %rsi
callq 0x257a
testb %al, %al
je 0x5f09
movq %r15, %rdi
callq 0x21d0
movq %r14, %rdi
callq 0x21d0
movq %rbx, %rdi
callq 0x21d0
movl $0x20, %edi
callq 0x21b0
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x8, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r14
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x8, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r15
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x8, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r13
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x8, %esi
callq 0x245c
movups 0x55da(%rip), %xmm0     # 0x9c54
leaq 0x240(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x55b7(%rip), %xmm0     # 0x9c44
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %rdi
leaq 0x4c0(%rsp), %rcx
movl $0x8, %edx
callq 0x796c
movups 0x55c6(%rip), %xmm0     # 0x9c74
leaq 0x200(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x55a3(%rip), %xmm0     # 0x9c64
movaps %xmm0, (%rsi)
leaq 0x480(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
movups 0x55b4(%rip), %xmm0     # 0x9c94
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5591(%rip), %xmm0     # 0x9c84
movaps %xmm0, (%rsi)
leaq 0x440(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x70(%rsp), %rbp
movups 0x559d(%rip), %xmm0     # 0x9cb4
leaq 0x180(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x557a(%rip), %xmm0     # 0x9ca4
movaps %xmm0, (%rsi)
leaq 0x400(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x88(%rsp), %rbp
movups 0x5583(%rip), %xmm0     # 0x9cd4
leaq 0x340(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5560(%rip), %xmm0     # 0x9cc4
movaps %xmm0, (%rsi)
leaq 0x3c0(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xa0(%rsp), %rbp
movups 0x5569(%rip), %xmm0     # 0x9cf4
leaq 0x300(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5546(%rip), %xmm0     # 0x9ce4
movaps %xmm0, (%rsi)
leaq 0x380(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xb8(%rsp), %rbp
movups 0x554f(%rip), %xmm0     # 0x9d14
leaq 0x2c0(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x552c(%rip), %xmm0     # 0x9d04
movaps %xmm0, (%rsi)
leaq 0x13(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xd0(%rsp), %rbp
movups 0x5738(%rip), %xmm0     # 0x9f34
leaq 0x280(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5715(%rip), %xmm0     # 0x9f24
movaps %xmm0, (%rsi)
leaq 0x12(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x8(%rbx), %rdi
leaq 0xe8(%rsp), %rdx
leaq 0x28(%rsp), %rsi
callq 0x80d6
movq %r14, %rbp
addq $0x8, %rbp
movq %r15, %rax
addq $0x8, %rax
movq %rax, 0x8(%rsp)
movl $0xa8, %r12d
movq 0x28(%rsp,%r12), %rdi
testq %rdi, %rdi
je 0x4862
callq 0x2190
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x4853
movups 0x54c1(%rip), %xmm0     # 0x9d34
leaq 0x240(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x549e(%rip), %xmm0     # 0x9d24
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %rdi
leaq 0x4c0(%rsp), %rcx
movl $0x8, %edx
callq 0x796c
leaq 0x40(%rsp), %r12
movups 0x54a8(%rip), %xmm0     # 0x9d54
leaq 0x200(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5485(%rip), %xmm0     # 0x9d44
movaps %xmm0, (%rsi)
leaq 0x480(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0x58(%rsp), %r12
movups 0x5491(%rip), %xmm0     # 0x9d74
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x546e(%rip), %xmm0     # 0x9d64
movaps %xmm0, (%rsi)
leaq 0x440(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0x70(%rsp), %r12
movups 0x547a(%rip), %xmm0     # 0x9d94
leaq 0x180(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5457(%rip), %xmm0     # 0x9d84
movaps %xmm0, (%rsi)
leaq 0x400(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0x88(%rsp), %r12
movups 0x5460(%rip), %xmm0     # 0x9db4
leaq 0x340(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x543d(%rip), %xmm0     # 0x9da4
movaps %xmm0, (%rsi)
leaq 0x3c0(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0xa0(%rsp), %r12
movups 0x5446(%rip), %xmm0     # 0x9dd4
leaq 0x300(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5423(%rip), %xmm0     # 0x9dc4
movaps %xmm0, (%rsi)
leaq 0x380(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0xb8(%rsp), %r12
movups 0x542c(%rip), %xmm0     # 0x9df4
leaq 0x2c0(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5409(%rip), %xmm0     # 0x9de4
movaps %xmm0, (%rsi)
leaq 0x13(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0xd0(%rsp), %r12
movups 0x5415(%rip), %xmm0     # 0x9e14
leaq 0x280(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x53f2(%rip), %xmm0     # 0x9e04
movaps %xmm0, (%rsi)
leaq 0x12(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0xe8(%rsp), %rdx
leaq 0x28(%rsp), %rsi
movq %rbp, %rdi
callq 0x80d6
movl $0xa8, %r12d
movq 0x28(%rsp,%r12), %rdi
testq %rdi, %rdi
je 0x4a51
callq 0x2190
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x4a42
movups 0x53d2(%rip), %xmm0     # 0x9e34
leaq 0x240(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x53af(%rip), %xmm0     # 0x9e24
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %r12
leaq 0x4c0(%rsp), %rcx
movl $0x8, %edx
movq %r12, %rdi
callq 0x796c
leaq 0x40(%rsp), %rbp
movups 0x53b6(%rip), %xmm0     # 0x9e54
leaq 0x200(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5393(%rip), %xmm0     # 0x9e44
movaps %xmm0, (%rsi)
leaq 0x480(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x58(%rsp), %rbp
movups 0x539f(%rip), %xmm0     # 0x9e74
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x537c(%rip), %xmm0     # 0x9e64
movaps %xmm0, (%rsi)
leaq 0x440(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x70(%rsp), %rbp
movups 0x5388(%rip), %xmm0     # 0x9e94
leaq 0x180(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5365(%rip), %xmm0     # 0x9e84
movaps %xmm0, (%rsi)
leaq 0x400(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x88(%rsp), %rbp
movups 0x536e(%rip), %xmm0     # 0x9eb4
leaq 0x340(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x534b(%rip), %xmm0     # 0x9ea4
movaps %xmm0, (%rsi)
leaq 0x3c0(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xa0(%rsp), %rbp
movups 0x5354(%rip), %xmm0     # 0x9ed4
leaq 0x300(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5331(%rip), %xmm0     # 0x9ec4
movaps %xmm0, (%rsi)
leaq 0x380(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xb8(%rsp), %rbp
movups 0x533a(%rip), %xmm0     # 0x9ef4
leaq 0x2c0(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5317(%rip), %xmm0     # 0x9ee4
movaps %xmm0, (%rsi)
leaq 0x13(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xd0(%rsp), %rbp
movups 0x5323(%rip), %xmm0     # 0x9f14
leaq 0x280(%rsp), %rsi
movaps %xmm0, 0x10(%rsi)
movups 0x5300(%rip), %xmm0     # 0x9f04
movaps %xmm0, (%rsi)
leaq 0x12(%rsp), %rcx
movl $0x8, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xe8(%rsp), %rdx
leaq 0x28(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %rdx, 0x20(%rsp)
callq 0x80d6
movl $0xa8, %r12d
movq 0x28(%rsp,%r12), %rdi
testq %rdi, %rdi
je 0x4c4a
callq 0x2190
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x4c3b
xorl %eax, %eax
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x8
pushq %rax
pushq %rax
pushq %rax
callq 0x2e76
addq $0x20, %rsp
movq %r13, %rdi
movq %r15, %rsi
callq 0x257a
testb %al, %al
je 0x5f28
movq %rbx, %rdi
callq 0x21d0
movq %r14, %rdi
callq 0x21d0
movq %r15, %rdi
callq 0x21d0
movq %r13, %rdi
callq 0x21d0
movl $0x20, %edi
callq 0x21b0
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x4, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %rbp
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x4, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r12
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x4, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r13
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x4, %esi
callq 0x245c
movaps 0x42e1(%rip), %xmm0     # 0x9020
leaq 0x240(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %r15
leaq 0x340(%rsp), %rcx
movl $0x4, %edx
movq %r15, %rdi
callq 0x796c
leaq 0x40(%rsp), %r14
movaps 0x42c0(%rip), %xmm0     # 0x9030
leaq 0x200(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x300(%rsp), %rcx
movl $0x4, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x58(%rsp), %r14
movaps 0x42a4(%rip), %xmm0     # 0x9040
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x2c0(%rsp), %rcx
movl $0x4, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x70(%rsp), %r14
movaps 0x4288(%rip), %xmm0     # 0x9050
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x280(%rsp), %rcx
movl $0x4, %edx
movq %r14, %rdi
callq 0x796c
movq %rbx, 0x8(%rsp)
leaq 0x8(%rbx), %rdi
leaq 0x88(%rsp), %rdx
leaq 0x28(%rsp), %rsi
callq 0x80d6
movq %rbp, %r14
addq $0x8, %r14
movq %r12, %r15
addq $0x8, %r15
movl $0x48, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x4e25
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x4e16
movq %rbp, 0x178(%rsp)
movaps 0x4222(%rip), %xmm0     # 0x9060
leaq 0x240(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %rbp
leaq 0x340(%rsp), %rcx
movl $0x4, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x40(%rsp), %rbx
movaps 0x4201(%rip), %xmm0     # 0x9070
leaq 0x200(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x300(%rsp), %rcx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x796c
leaq 0x58(%rsp), %rbx
movaps 0x41e5(%rip), %xmm0     # 0x9080
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x2c0(%rsp), %rcx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x796c
leaq 0x70(%rsp), %rbx
movaps 0x41c9(%rip), %xmm0     # 0x9090
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x280(%rsp), %rcx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x796c
leaq 0x88(%rsp), %rdx
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x80d6
movl $0x48, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x4f10
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x4f01
movaps 0x417f(%rip), %xmm0     # 0x90a0
leaq 0x240(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %rbp
leaq 0x340(%rsp), %rcx
movl $0x4, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x40(%rsp), %rbx
movaps 0x415e(%rip), %xmm0     # 0x90b0
leaq 0x200(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x300(%rsp), %rcx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x796c
leaq 0x58(%rsp), %rbx
movaps 0x4142(%rip), %xmm0     # 0x90c0
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x2c0(%rsp), %rcx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x796c
leaq 0x70(%rsp), %rbx
movaps 0x4126(%rip), %xmm0     # 0x90d0
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x280(%rsp), %rcx
movl $0x4, %edx
movq %rbx, %rdi
callq 0x796c
leaq 0x88(%rsp), %rbp
leaq 0x28(%rsp), %rsi
movq %r15, %rdi
movq %rbp, %rdx
callq 0x80d6
movl $0x48, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x4ff6
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x4fe7
xorl %eax, %eax
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
movq 0x178(%rsp), %r14
movq %r14, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x4
pushq %rax
pushq %rax
pushq %rax
callq 0x2e76
addq $0x20, %rsp
movq %r12, %rdi
movq %r13, %rsi
callq 0x257a
testb %al, %al
je 0x5f47
movq %rbx, %rdi
callq 0x21d0
movq %r14, %rdi
callq 0x21d0
movq %r12, %rdi
callq 0x21d0
movq %r13, %rdi
callq 0x21d0
movl $0x20, %edi
callq 0x21b0
movq %rax, %r12
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0xe, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0xe, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r15
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0xe, %esi
callq 0x245c
movups 0x409c(%rip), %xmm0     # 0x9170
leaq 0x240(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x4079(%rip), %xmm0     # 0x9160
movaps %xmm0, 0x10(%rsi)
movups 0x405e(%rip), %xmm0     # 0x9150
movaps %xmm0, (%rsi)
movabsq $-0x60000000d, %rax     # imm = 0xFFFFFFF9FFFFFFF3
movq %rax, 0x30(%rsi)
leaq 0x28(%rsp), %r13
leaq 0x13(%rsp), %rcx
movl $0xe, %edx
movq %r13, %rdi
callq 0x796c
leaq 0x40(%rsp), %r14
movups 0x4082(%rip), %xmm0     # 0x91a8
leaq 0x200(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x405f(%rip), %xmm0     # 0x9198
movaps %xmm0, 0x10(%rsi)
movups 0x4044(%rip), %xmm0     # 0x9188
movaps %xmm0, (%rsi)
movabsq $0xb00000000, %rax      # imm = 0xB00000000
movq %rax, 0x30(%rsi)
leaq 0x12(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x58(%rsp), %r14
movups 0x406d(%rip), %xmm0     # 0x91e0
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x404a(%rip), %xmm0     # 0x91d0
movaps %xmm0, 0x10(%rsi)
movups 0x402f(%rip), %xmm0     # 0x91c0
movaps %xmm0, (%rsi)
movabsq $0x120000000b, %rax     # imm = 0x120000000B
movq %rax, 0x30(%rsi)
leaq 0x1f(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x70(%rsp), %r14
movups 0x4058(%rip), %xmm0     # 0x9218
leaq 0x180(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x4035(%rip), %xmm0     # 0x9208
movaps %xmm0, 0x10(%rsi)
movups 0x401a(%rip), %xmm0     # 0x91f8
movaps %xmm0, (%rsi)
movabsq $-0x30000000d, %rax     # imm = 0xFFFFFFFCFFFFFFF3
movq %rax, 0x30(%rsi)
leaq 0x1e(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
movups 0x4048(%rip), %xmm0     # 0x9250
leaq 0x340(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x4025(%rip), %xmm0     # 0x9240
movaps %xmm0, 0x10(%rsi)
movups 0x400a(%rip), %xmm0     # 0x9230
movaps %xmm0, (%rsi)
movabsq $-0x13fffffff5, %rax    # imm = 0xFFFFFFEC0000000B
movq %rax, 0x30(%rsi)
leaq 0x1d(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xa0(%rsp), %rbp
movups 0x4030(%rip), %xmm0     # 0x9288
leaq 0x300(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x400d(%rip), %xmm0     # 0x9278
movaps %xmm0, 0x10(%rsi)
movups 0x3ff2(%rip), %xmm0     # 0x9268
movaps %xmm0, (%rsi)
movabsq $0x11fffffff3, %rax     # imm = 0x11FFFFFFF3
movq %rax, 0x30(%rsi)
leaq 0x1c(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xb8(%rsp), %rbp
movups 0x4018(%rip), %xmm0     # 0x92c0
leaq 0x2c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3ff5(%rip), %xmm0     # 0x92b0
movaps %xmm0, 0x10(%rsi)
movups 0x3fda(%rip), %xmm0     # 0x92a0
movaps %xmm0, (%rsi)
movabsq $0x300000009, %rax      # imm = 0x300000009
movq %rax, 0x30(%rsi)
leaq 0x1b(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xd0(%rsp), %rbp
movups 0x4000(%rip), %xmm0     # 0x92f8
leaq 0x280(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3fdd(%rip), %xmm0     # 0x92e8
movaps %xmm0, 0x10(%rsi)
movups 0x3fc2(%rip), %xmm0     # 0x92d8
movaps %xmm0, (%rsi)
movabsq $0xbffffffed, %rax      # imm = 0xBFFFFFFED
movq %rax, 0x30(%rsi)
leaq 0x1a(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
movups 0x3ff0(%rip), %xmm0     # 0x9330
leaq 0x4c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3fcd(%rip), %xmm0     # 0x9320
movaps %xmm0, 0x10(%rsi)
movups 0x3fb2(%rip), %xmm0     # 0x9310
movaps %xmm0, (%rsi)
movabsq $0xdfffffff1, %rax      # imm = 0xDFFFFFFF1
movq %rax, 0x30(%rsi)
leaq 0x19(%rsp), %rcx
movl $0xe, %edx
leaq 0xe8(%rsp), %rdi
callq 0x796c
leaq 0x100(%rsp), %r14
movups 0x3fd3(%rip), %xmm0     # 0x9368
leaq 0x480(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3fb0(%rip), %xmm0     # 0x9358
movaps %xmm0, 0x10(%rsi)
movups 0x3f95(%rip), %xmm0     # 0x9348
movaps %xmm0, (%rsi)
movabsq $-0xb00000012, %rax     # imm = 0xFFFFFFF4FFFFFFEE
movq %rax, 0x30(%rsi)
leaq 0x18(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x118(%rsp), %r14
movups 0x3fbb(%rip), %xmm0     # 0x93a0
leaq 0x440(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3f98(%rip), %xmm0     # 0x9390
movaps %xmm0, 0x10(%rsi)
movups 0x3f7d(%rip), %xmm0     # 0x9380
movaps %xmm0, (%rsi)
movabsq $0xa00000006, %rax      # imm = 0xA00000006
movq %rax, 0x30(%rsi)
leaq 0x17(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x130(%rsp), %r14
movups 0x3fa3(%rip), %xmm0     # 0x93d8
leaq 0x400(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3f80(%rip), %xmm0     # 0x93c8
movaps %xmm0, 0x10(%rsi)
movups 0x3f65(%rip), %xmm0     # 0x93b8
movaps %xmm0, (%rsi)
movabsq $0x12fffffff9, %rax     # imm = 0x12FFFFFFF9
movq %rax, 0x30(%rsi)
leaq 0x16(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x148(%rsp), %r14
movups 0x3f8b(%rip), %xmm0     # 0x9410
leaq 0x3c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3f68(%rip), %xmm0     # 0x9400
movaps %xmm0, 0x10(%rsi)
movups 0x3f4d(%rip), %xmm0     # 0x93f0
movaps %xmm0, (%rsi)
movabsq $0x9fffffff0, %rax      # imm = 0x9FFFFFFF0
movq %rax, 0x30(%rsi)
leaq 0x15(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
leaq 0x160(%rsp), %r14
movups 0x3f73(%rip), %xmm0     # 0x9448
leaq 0x380(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3f50(%rip), %xmm0     # 0x9438
movaps %xmm0, 0x10(%rsi)
movups 0x3f35(%rip), %xmm0     # 0x9428
movaps %xmm0, (%rsi)
movabsq $0xd00000010, %rax      # imm = 0xD00000010
movq %rax, 0x30(%rsi)
leaq 0x14(%rsp), %rcx
movl $0xe, %edx
movq %r14, %rdi
callq 0x796c
movq %r12, 0x8(%rsp)
leaq 0x8(%r12), %rdi
leaq 0x178(%rsp), %rdx
leaq 0x28(%rsp), %rsi
callq 0x80d6
movq %rbx, %r14
addq $0x8, %r14
movq %r15, %r12
addq $0x8, %r12
movl $0x138, %r13d           # imm = 0x138
movq 0x28(%rsp,%r13), %rdi
testq %rdi, %rdi
je 0x5555
callq 0x2190
addq $-0x18, %r13
cmpq $-0x18, %r13
jne 0x5546
movabsq $-0x500000003, %rax     # imm = 0xFFFFFFFAFFFFFFFD
leaq 0x240(%rsp), %rsi
movq %rax, 0x30(%rsi)
movups 0x3f04(%rip), %xmm0     # 0x9480
movaps %xmm0, 0x20(%rsi)
movups 0x3ee9(%rip), %xmm0     # 0x9470
movaps %xmm0, 0x10(%rsi)
movups 0x3ece(%rip), %xmm0     # 0x9460
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %r13
leaq 0x13(%rsp), %rcx
movl $0xe, %edx
movq %r13, %rdi
callq 0x796c
leaq 0x40(%rsp), %rbp
movups 0x3f00(%rip), %xmm0     # 0x94b8
leaq 0x200(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3edd(%rip), %xmm0     # 0x94a8
movaps %xmm0, 0x10(%rsi)
movups 0x3ec2(%rip), %xmm0     # 0x9498
movaps %xmm0, (%rsi)
movabsq $0x1100000007, %rax     # imm = 0x1100000007
movq %rax, 0x30(%rsi)
leaq 0x12(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x58(%rsp), %rbp
movups 0x3eeb(%rip), %xmm0     # 0x94f0
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3ec8(%rip), %xmm0     # 0x94e0
movaps %xmm0, 0x10(%rsi)
movups 0x3ead(%rip), %xmm0     # 0x94d0
movaps %xmm0, (%rsi)
movabsq $-0xcffffffed, %rax     # imm = 0xFFFFFFF300000013
movq %rax, 0x30(%rsi)
leaq 0x1f(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x70(%rsp), %rbp
movups 0x3ed6(%rip), %xmm0     # 0x9528
leaq 0x180(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3eb3(%rip), %xmm0     # 0x9518
movaps %xmm0, 0x10(%rsi)
movups 0x3e98(%rip), %xmm0     # 0x9508
movaps %xmm0, (%rsi)
movabsq $0x800000010, %rax      # imm = 0x800000010
movq %rax, 0x30(%rsi)
leaq 0x1e(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x88(%rsp), %rbp
movups 0x3ebe(%rip), %xmm0     # 0x9560
leaq 0x340(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e9b(%rip), %xmm0     # 0x9550
movaps %xmm0, 0x10(%rsi)
movups 0x3e80(%rip), %xmm0     # 0x9540
movaps %xmm0, (%rsi)
movabsq $0x60000000e, %rax      # imm = 0x60000000E
movq %rax, 0x30(%rsi)
leaq 0x1d(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xa0(%rsp), %rbp
movups 0x3ea6(%rip), %xmm0     # 0x9598
leaq 0x300(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e83(%rip), %xmm0     # 0x9588
movaps %xmm0, 0x10(%rsi)
movups 0x3e68(%rip), %xmm0     # 0x9578
movaps %xmm0, (%rsi)
movabsq $0x800000002, %rax      # imm = 0x800000002
movq %rax, 0x30(%rsi)
leaq 0x1c(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xb8(%rsp), %rbp
movups 0x3e8e(%rip), %xmm0     # 0x95d0
leaq 0x2c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e6b(%rip), %xmm0     # 0x95c0
movaps %xmm0, 0x10(%rsi)
movups 0x3e50(%rip), %xmm0     # 0x95b0
movaps %xmm0, (%rsi)
movabsq $0x1000000003, %rax     # imm = 0x1000000003
movq %rax, 0x30(%rsi)
leaq 0x1b(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xd0(%rsp), %rbp
movups 0x3e76(%rip), %xmm0     # 0x9608
leaq 0x280(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e53(%rip), %xmm0     # 0x95f8
movaps %xmm0, 0x10(%rsi)
movups 0x3e38(%rip), %xmm0     # 0x95e8
movaps %xmm0, (%rsi)
movabsq $-0xe00000012, %rax     # imm = 0xFFFFFFF1FFFFFFEE
movq %rax, 0x30(%rsi)
leaq 0x1a(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xe8(%rsp), %rbp
movups 0x3e5e(%rip), %xmm0     # 0x9640
leaq 0x4c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e3b(%rip), %xmm0     # 0x9630
movaps %xmm0, 0x10(%rsi)
movups 0x3e20(%rip), %xmm0     # 0x9620
movaps %xmm0, (%rsi)
movabsq $-0x6fffffffe, %rax     # imm = 0xFFFFFFF900000002
movq %rax, 0x30(%rsi)
leaq 0x19(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x100(%rsp), %rbp
movups 0x3e46(%rip), %xmm0     # 0x9678
leaq 0x480(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e23(%rip), %xmm0     # 0x9668
movaps %xmm0, 0x10(%rsi)
movups 0x3e08(%rip), %xmm0     # 0x9658
movaps %xmm0, (%rsi)
movabsq $-0xefffffff4, %rax     # imm = 0xFFFFFFF10000000C
movq %rax, 0x30(%rsi)
leaq 0x18(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x118(%rsp), %rbp
movups 0x3e2e(%rip), %xmm0     # 0x96b0
leaq 0x440(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3e0b(%rip), %xmm0     # 0x96a0
movaps %xmm0, 0x10(%rsi)
movups 0x3df0(%rip), %xmm0     # 0x9690
movaps %xmm0, (%rsi)
movabsq $0x400000010, %rax      # imm = 0x400000010
movq %rax, 0x30(%rsi)
leaq 0x17(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x130(%rsp), %rbp
movups 0x3e16(%rip), %xmm0     # 0x96e8
leaq 0x400(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3df3(%rip), %xmm0     # 0x96d8
movaps %xmm0, 0x10(%rsi)
movups 0x3dd8(%rip), %xmm0     # 0x96c8
movaps %xmm0, (%rsi)
movabsq $-0xbfffffff5, %rax     # imm = 0xFFFFFFF40000000B
movq %rax, 0x30(%rsi)
leaq 0x16(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x148(%rsp), %rbp
movups 0x3dfe(%rip), %xmm0     # 0x9720
leaq 0x3c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3ddb(%rip), %xmm0     # 0x9710
movaps %xmm0, 0x10(%rsi)
movups 0x3dc0(%rip), %xmm0     # 0x9700
movaps %xmm0, (%rsi)
movabsq $-0x1300000000, %rax    # imm = 0xFFFFFFED00000000
movq %rax, 0x30(%rsi)
leaq 0x15(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x160(%rsp), %rbp
movups 0x3de6(%rip), %xmm0     # 0x9758
leaq 0x380(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3dc3(%rip), %xmm0     # 0x9748
movaps %xmm0, 0x10(%rsi)
movups 0x3da8(%rip), %xmm0     # 0x9738
movaps %xmm0, (%rsi)
movabsq $0x300000014, %rax      # imm = 0x300000014
movq %rax, 0x30(%rsi)
leaq 0x14(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x178(%rsp), %rdx
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x80d6
movl $0x138, %r14d           # imm = 0x138
movq 0x28(%rsp,%r14), %rdi
testq %rdi, %rdi
je 0x59dd
callq 0x2190
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x59ce
movabsq $0x2e7fffffcae, %rax    # imm = 0x2E7FFFFFCAE
leaq 0x240(%rsp), %rsi
movq %rax, 0x30(%rsi)
movups 0x3d8c(%rip), %xmm0     # 0x9790
movaps %xmm0, 0x20(%rsi)
movups 0x3d71(%rip), %xmm0     # 0x9780
movaps %xmm0, 0x10(%rsi)
movups 0x3d56(%rip), %xmm0     # 0x9770
movaps %xmm0, (%rsi)
leaq 0x28(%rsp), %r13
leaq 0x13(%rsp), %rcx
movl $0xe, %edx
movq %r13, %rdi
callq 0x796c
leaq 0x40(%rsp), %rbp
movups 0x3d88(%rip), %xmm0     # 0x97c8
leaq 0x200(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3d65(%rip), %xmm0     # 0x97b8
movaps %xmm0, 0x10(%rsi)
movups 0x3d4a(%rip), %xmm0     # 0x97a8
movaps %xmm0, (%rsi)
movabsq $-0x26bfffffbaf, %rax   # imm = 0xFFFFFD9400000451
movq %rax, 0x30(%rsi)
leaq 0x12(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x58(%rsp), %rbp
movups 0x3d73(%rip), %xmm0     # 0x9800
leaq 0x1c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3d50(%rip), %xmm0     # 0x97f0
movaps %xmm0, 0x10(%rsi)
movups 0x3d35(%rip), %xmm0     # 0x97e0
movaps %xmm0, (%rsi)
movabsq $-0x35fffffceb, %rax    # imm = 0xFFFFFFCA00000315
movq %rax, 0x30(%rsi)
leaq 0x1f(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x70(%rsp), %rbp
movups 0x3d5e(%rip), %xmm0     # 0x9838
leaq 0x180(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3d3b(%rip), %xmm0     # 0x9828
movaps %xmm0, 0x10(%rsi)
movups 0x3d20(%rip), %xmm0     # 0x9818
movaps %xmm0, (%rsi)
movabsq $0x650000004a, %rax     # imm = 0x650000004A
movq %rax, 0x30(%rsi)
leaq 0x1e(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x88(%rsp), %rbp
movups 0x3d46(%rip), %xmm0     # 0x9870
leaq 0x340(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3d23(%rip), %xmm0     # 0x9860
movaps %xmm0, 0x10(%rsi)
movups 0x3d08(%rip), %xmm0     # 0x9850
movaps %xmm0, (%rsi)
movabsq $-0x135000000df, %rax   # imm = 0xFFFFFECAFFFFFF21
movq %rax, 0x30(%rsi)
leaq 0x1d(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xa0(%rsp), %rbp
movups 0x3d2e(%rip), %xmm0     # 0x98a8
leaq 0x300(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3d0b(%rip), %xmm0     # 0x9898
movaps %xmm0, 0x10(%rsi)
movups 0x3cf0(%rip), %xmm0     # 0x9888
movaps %xmm0, (%rsi)
movabsq $-0x16effffff09, %rax   # imm = 0xFFFFFE91000000F7
movq %rax, 0x30(%rsi)
leaq 0x1c(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xb8(%rsp), %rbp
movups 0x3d16(%rip), %xmm0     # 0x98e0
leaq 0x2c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3cf3(%rip), %xmm0     # 0x98d0
movaps %xmm0, 0x10(%rsi)
movups 0x3cd8(%rip), %xmm0     # 0x98c0
movaps %xmm0, (%rsi)
movabsq $0xf000000d8, %rax      # imm = 0xF000000D8
movq %rax, 0x30(%rsi)
leaq 0x1b(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xd0(%rsp), %rbp
movups 0x3cfe(%rip), %xmm0     # 0x9918
leaq 0x280(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3cdb(%rip), %xmm0     # 0x9908
movaps %xmm0, 0x10(%rsi)
movups 0x3cc0(%rip), %xmm0     # 0x98f8
movaps %xmm0, (%rsi)
movabsq $0x551000002cf, %rax    # imm = 0x551000002CF
movq %rax, 0x30(%rsi)
leaq 0x1a(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0xe8(%rsp), %rbp
movups 0x3ce6(%rip), %xmm0     # 0x9950
leaq 0x4c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3cc3(%rip), %xmm0     # 0x9940
movaps %xmm0, 0x10(%rsi)
movups 0x3ca8(%rip), %xmm0     # 0x9930
movaps %xmm0, (%rsi)
movabsq $0xa500000196, %rax     # imm = 0xA500000196
movq %rax, 0x30(%rsi)
leaq 0x19(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x100(%rsp), %rbp
movups 0x3cce(%rip), %xmm0     # 0x9988
leaq 0x480(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3cab(%rip), %xmm0     # 0x9978
movaps %xmm0, 0x10(%rsi)
movups 0x3c90(%rip), %xmm0     # 0x9968
movaps %xmm0, (%rsi)
movabsq $-0x275fffffdb7, %rax   # imm = 0xFFFFFD8A00000249
movq %rax, 0x30(%rsi)
leaq 0x18(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x118(%rsp), %rbp
movups 0x3cb6(%rip), %xmm0     # 0x99c0
leaq 0x440(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3c93(%rip), %xmm0     # 0x99b0
movaps %xmm0, 0x10(%rsi)
movups 0x3c78(%rip), %xmm0     # 0x99a0
movaps %xmm0, (%rsi)
movabsq $-0x66fffffd86, %rax    # imm = 0xFFFFFF990000027A
movq %rax, 0x30(%rsi)
leaq 0x17(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x130(%rsp), %rbp
movups 0x3c9e(%rip), %xmm0     # 0x99f8
leaq 0x400(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3c7b(%rip), %xmm0     # 0x99e8
movaps %xmm0, 0x10(%rsi)
movups 0x3c60(%rip), %xmm0     # 0x99d8
movaps %xmm0, (%rsi)
movabsq $-0x1c1fffffde4, %rax   # imm = 0xFFFFFE3E0000021C
movq %rax, 0x30(%rsi)
leaq 0x16(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x148(%rsp), %rbp
movups 0x3c86(%rip), %xmm0     # 0x9a30
leaq 0x3c0(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3c63(%rip), %xmm0     # 0x9a20
movaps %xmm0, 0x10(%rsi)
movups 0x3c48(%rip), %xmm0     # 0x9a10
movaps %xmm0, (%rsi)
movabsq $0x9500000060, %rax     # imm = 0x9500000060
movq %rax, 0x30(%rsi)
leaq 0x15(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x160(%rsp), %rbp
movups 0x3c6e(%rip), %xmm0     # 0x9a68
leaq 0x380(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movups 0x3c4b(%rip), %xmm0     # 0x9a58
movaps %xmm0, 0x10(%rsi)
movups 0x3c30(%rip), %xmm0     # 0x9a48
movaps %xmm0, (%rsi)
movabsq $-0x4d5fffffe77, %rax   # imm = 0xFFFFFB2A00000189
movq %rax, 0x30(%rsi)
leaq 0x14(%rsp), %rcx
movl $0xe, %edx
movq %rbp, %rdi
callq 0x796c
leaq 0x178(%rsp), %rdx
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0x80d6
movl $0x138, %r14d           # imm = 0x138
movq 0x8(%rsp), %r12
movq 0x28(%rsp,%r14), %rdi
testq %rdi, %rdi
je 0x5e6a
callq 0x2190
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x5e5b
movq %r12, %rdi
movq %rbx, %rsi
callq 0x38bf
movq %rax, %r14
movq %r15, %rdi
movq %rax, %rsi
callq 0x257a
testb %al, %al
je 0x5f66
movq %r12, %rdi
callq 0x21d0
movq %rbx, %rdi
callq 0x21d0
movq %r15, %rdi
callq 0x21d0
movq %r14, %rdi
callq 0x21d0
movq 0x811c(%rip), %rbx      # 0xdfd8
leaq 0x3c44(%rip), %rsi      # 0x9b07
movl $0x17, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
addq $0x4f8, %rsp            # imm = 0x4F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3b72(%rip), %rdi      # 0x9a82
leaq 0x3b79(%rip), %rsi      # 0x9a90
leaq 0x3bab(%rip), %rcx      # 0x9ac9
movl $0x1f2, %edx            # imm = 0x1F2
callq 0x2100
leaq 0x3baf(%rip), %rdi      # 0x9ade
leaq 0x3b5a(%rip), %rsi      # 0x9a90
leaq 0x3b8c(%rip), %rcx      # 0x9ac9
movl $0x212, %edx            # imm = 0x212
callq 0x2100
leaq 0x3b9d(%rip), %rdi      # 0x9aeb
leaq 0x3b3b(%rip), %rsi      # 0x9a90
leaq 0x3b6d(%rip), %rcx      # 0x9ac9
movl $0x229, %edx            # imm = 0x229
callq 0x2100
leaq 0x3b8c(%rip), %rdi      # 0x9af9
leaq 0x3b1c(%rip), %rsi      # 0x9a90
leaq 0x3b4e(%rip), %rcx      # 0x9ac9
movl $0x26b, %edx            # imm = 0x26B
callq 0x2100
movq %rax, 0x8(%rsp)
movl $0x138, %ebx            # imm = 0x138
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x5f9e
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x5f8f
movb $0x1, %al
jmp 0x5fcb
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
jmp 0x5fc4
movq %rax, 0x8(%rsp)
xorl %eax, %eax
cmpq %rbp, %r13
sete %cl
testb %al, %al
jne 0x6438
testb %cl, %cl
jne 0x6438
movq -0x18(%rbp), %rdi
testq %rdi, %rdi
je 0x5fef
callq 0x2190
addq $-0x18, %rbp
cmpq %r13, %rbp
jne 0x5fe1
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x138, %ebx            # imm = 0x138
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x601b
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x600c
movb $0x1, %al
jmp 0x6048
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
jmp 0x6041
movq %rax, 0x8(%rsp)
xorl %eax, %eax
cmpq %rbp, %r13
sete %cl
testb %al, %al
jne 0x6438
testb %cl, %cl
jne 0x6438
movq -0x18(%rbp), %rdi
testq %rdi, %rdi
je 0x606c
callq 0x2190
addq $-0x18, %rbp
cmpq %r13, %rbp
jne 0x605e
jmp 0x6438
jmp 0x6433
movq %r14, 0x20(%rsp)
movq %rax, 0x8(%rsp)
movl $0x138, %ebx            # imm = 0x138
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x609d
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x608e
movb $0x1, %al
jmp 0x60bf
jmp 0x60b3
jmp 0x60b3
jmp 0x60b3
jmp 0x60b3
movq %r14, 0x20(%rsp)
movq %rax, 0x8(%rsp)
xorl %eax, %eax
movq 0x20(%rsp), %rbp
jmp 0x60d5
jmp 0x60b8
jmp 0x60ce
jmp 0x60ce
jmp 0x60ce
movq %rax, 0x8(%rsp)
xorl %eax, %eax
movq %rbp, %r14
jmp 0x60e5
jmp 0x60de
jmp 0x60de
movq %rax, 0x8(%rsp)
xorl %eax, %eax
cmpq %r14, %r13
sete %cl
testb %al, %al
jne 0x6438
testb %cl, %cl
jne 0x6438
movq -0x18(%r14), %rdi
testq %rdi, %rdi
je 0x6109
callq 0x2190
addq $-0x18, %r14
cmpq %r13, %r14
jne 0x60fb
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x48, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x6135
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x6126
jmp 0x6438
jmp 0x6148
jmp 0x6148
movq %rax, 0x8(%rsp)
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x615b
callq 0x2190
addq $-0x18, %rbx
cmpq %rbp, %rbx
jne 0x614d
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x48, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x6187
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x6178
jmp 0x6438
jmp 0x619a
jmp 0x619a
movq %rax, 0x8(%rsp)
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x61ad
callq 0x2190
addq $-0x18, %rbx
cmpq %rbp, %rbx
jne 0x619f
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x48, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x61d9
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x61ca
jmp 0x6438
jmp 0x61ec
jmp 0x61ec
movq %rax, 0x8(%rsp)
movq -0x18(%r14), %rdi
testq %rdi, %rdi
je 0x61ff
callq 0x2190
addq $-0x18, %r14
cmpq %r15, %r14
jne 0x61f1
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0xa8, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x622b
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x621c
movb $0x1, %al
jmp 0x624c
jmp 0x6245
jmp 0x6245
jmp 0x6245
jmp 0x6245
jmp 0x6245
jmp 0x6245
movq %rax, 0x8(%rsp)
xorl %eax, %eax
cmpq %rbp, %r12
sete %cl
testb %al, %al
jne 0x6438
testb %cl, %cl
jne 0x6438
movq -0x18(%rbp), %rdi
testq %rdi, %rdi
je 0x6270
callq 0x2190
addq $-0x18, %rbp
cmpq %r12, %rbp
jne 0x6262
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0xa8, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x629c
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x628d
movb $0x1, %al
jmp 0x62bd
jmp 0x62b6
jmp 0x62b6
jmp 0x62b6
jmp 0x62b6
jmp 0x62b6
jmp 0x62b6
movq %rax, 0x8(%rsp)
xorl %eax, %eax
leaq 0x28(%rsp), %rcx
cmpq %r12, %rcx
sete %cl
testb %al, %al
jne 0x6438
testb %cl, %cl
jne 0x6438
leaq 0x28(%rsp), %rbx
movq -0x18(%r12), %rdi
testq %rdi, %rdi
je 0x62ec
callq 0x2190
addq $-0x18, %r12
cmpq %rbx, %r12
jne 0x62dd
jmp 0x6438
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0xa8, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x6318
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x6309
movb $0x1, %al
jmp 0x6337
jmp 0x6330
jmp 0x6330
jmp 0x6330
jmp 0x6330
jmp 0x6330
movq %rax, 0x8(%rsp)
xorl %eax, %eax
movq %rbp, %r12
leaq 0x28(%rsp), %rcx
cmpq %r12, %rcx
sete %cl
testb %al, %al
jne 0x6438
testb %cl, %cl
jne 0x6438
leaq 0x28(%rsp), %rbx
movq -0x18(%r12), %rdi
testq %rdi, %rdi
je 0x6369
callq 0x2190
addq $-0x18, %r12
cmpq %rbx, %r12
jne 0x635a
jmp 0x6438
movq %rax, 0x8(%rsp)
xorl %eax, %eax
jmp 0x633a
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x18, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x639e
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x638f
jmp 0x6438
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x6438
jmp 0x642c
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x18, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x63d9
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x63ca
jmp 0x6438
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x6438
jmp 0x642c
jmp 0x6433
movq %rax, 0x8(%rsp)
movl $0x18, %ebx
movq 0x28(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x6411
callq 0x2190
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x6402
jmp 0x6438
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x6438
callq 0x2190
jmp 0x6438
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x22b0