// File: carlos-urena[P]svg-gen/svgobjects.cpp
// Function: Hemisphere::Hemisphere(VectorTempl3<float> const&, float, VectorTempl3<float>, bool)
Hemisphere::Hemisphere( const vec3 & pcenter3D, real pradius3D, vec3 p_view_dir, bool flip_axes )
{


   radius3D = pradius3D ;
   center3D = pcenter3D ;
   view_dir = p_view_dir ;

   const vec3 view_dir_norm = view_dir.normalized(),
              proj_view_dir = vec3( view_dir[0], 0.0, view_dir[2] ),
              axisz         = proj_view_dir.normalized(),
              axisy         = vec3( 0.0, 1.0, 0.0 ),
              axisx         = vec3( -axisz[2], 0.0, axisz[0] ) ;

      auto * contour = new Polygon();

    // add points in the equator
    const int np = 128 ;

    // semicircunference (front side of the equator) (perp. to Y)
    for( int i = 0 ; i < np ; i++ )
    {
       const float angr = M_PI*float(i)/float(np);
       contour->points3D.push_back( center3D + radius3D*( -cos(angr)*axisx + sin(angr)*axisz )  );
    }

    // semicircunference perp. to Z
    const vec3
      axisy_rot = axisx.cross( view_dir_norm ).normalized(); // axisY, but perp. to view dir

    for( int i = 0 ; i < np ; i++ )
    {
       const float angr = M_PI*float(i)/float(np);
       contour->points3D.push_back( center3D + radius3D*(cos(angr)*axisx + sin(angr)*axisy_rot)  );
    }

    contour->style.draw_filled = true ;
    contour->style.use_grad_fill = true ;
    contour->style.grad_fill_name = "hemisphereGradFill" ;

    contour->style.draw_lines  = true ;
    contour->style.lines_width = 0.0035 ;
    contour->style.lines_color = vec3( 0.5, 0.5, 0.5 );
    contour->style.close_lines = true ;


   // back side of the equator (dashed) (perp to Y)

   auto * equator = new Polygon();

   // semicircunference at the equator (perp. to view_dir) (equalt to contour equator)
   for( int i = 0 ; i <= np ; i++ )
   {
      const float angr = M_PI*float(i)/float(np);
      equator->points3D.push_back( center3D + radius3D*( -cos(angr)*axisx - sin(angr)*axisz )  );
   }

   equator->style.draw_filled = false ;
   equator->style.draw_lines  = true ;
   equator->style.dashed_lines = true ; /// dashed!
   equator->style.lines_width = contour->style.lines_width ;
   equator->style.lines_color = contour->style.lines_color;
   equator->style.close_lines = false ;

   // axes

   add( new Axes( 0.005, flip_axes ) );

   // add objects to this object set
   add( equator );
   add( contour );


}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x620, %rsp            # imm = 0x620
movb %dl, %al
movlpd %xmm1, -0x20(%rbp)
movss %xmm2, -0x18(%rbp)
movl -0x18(%rbp), %ecx
movl %ecx, -0x8(%rbp)
movq -0x20(%rbp), %rcx
movq %rcx, -0x10(%rbp)
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movss %xmm0, -0x34(%rbp)
andb $0x1, %al
movb %al, -0x35(%rbp)
movq -0x28(%rbp), %rdi
movq %rdi, -0x368(%rbp)
callq 0xb5b0
movq -0x368(%rbp), %rdi
leaq 0x11b63(%rip), %rax     # 0x1d848
movq %rax, (%rdi)
addq $0x40, %rdi
callq 0x93b0
jmp 0xbcf3
movq -0x368(%rbp), %rdi
addq $0x4c, %rdi
callq 0x93b0
jmp 0xbd05
movq -0x368(%rbp), %rdi
addq $0x58, %rdi
callq 0x13450
jmp 0xbd17
movq -0x368(%rbp), %rdi
addq $0x60, %rdi
movq %rdi, -0x370(%rbp)
callq 0xb040
jmp 0xbd30
movq -0x368(%rbp), %rax
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x38(%rax)
movq -0x30(%rbp), %rcx
movl 0x8(%rcx), %edx
movl %edx, 0x48(%rax)
movq (%rcx), %rcx
movq %rcx, 0x40(%rax)
movq %rax, %rdi
addq $0x4c, %rdi
movl -0x8(%rbp), %ecx
movl %ecx, 0x54(%rax)
movq -0x10(%rbp), %rcx
movq %rcx, 0x4c(%rax)
callq 0x8ea0
movss %xmm1, -0x384(%rbp)
movaps %xmm0, -0x380(%rbp)
jmp 0xbd7d
movss -0x384(%rbp), %xmm0
movaps -0x380(%rbp), %xmm1
movlpd %xmm1, -0x70(%rbp)
movss %xmm0, -0x68(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x8e00
jmp 0xbdb3
movq -0x368(%rbp), %rdi
addq $0x4c, %rdi
callq 0x93d0
movq %rax, -0x390(%rbp)
jmp 0xbdcc
movq -0x368(%rbp), %rdi
movq -0x390(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movl $0x0, -0x80(%rbp)
addq $0x4c, %rdi
callq 0x93d0
movq %rax, -0x398(%rbp)
jmp 0xbdfa
movq -0x3a0(%rbp), %rsi
movq -0x398(%rbp), %rcx
addq $0x8, %rcx
leaq -0x7c(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x8c30
jmp 0xbe1b
leaq -0x7c(%rbp), %rdi
callq 0x8ea0
movss %xmm1, -0x3b4(%rbp)
movaps %xmm0, -0x3b0(%rbp)
jmp 0xbe35
movss -0x3b4(%rbp), %xmm0
movaps -0x3b0(%rbp), %xmm1
movlpd %xmm1, -0xa8(%rbp)
movss %xmm0, -0xa0(%rbp)
movl -0xa0(%rbp), %eax
movl %eax, -0x90(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x98(%rbp)
leaq -0x8c(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x8e00
jmp 0xbe83
movl $0x0, -0xb8(%rbp)
movl $0x3f800000, -0xbc(%rbp) # imm = 0x3F800000
movl $0x0, -0xc0(%rbp)
leaq -0xb4(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xbc(%rbp), %rdx
leaq -0xc0(%rbp), %rcx
callq 0x8c30
jmp 0xbec4
leaq -0x8c(%rbp), %rdi
callq 0x8f10
movq %rax, -0x3c0(%rbp)
jmp 0xbed9
movq -0x3c0(%rbp), %rax
movss 0x8(%rax), %xmm0
movaps 0xb154(%rip), %xmm1     # 0x17040
pxor %xmm1, %xmm0
movss %xmm0, -0xd0(%rbp)
movl $0x0, -0xd4(%rbp)
leaq -0x8c(%rbp), %rdi
callq 0x8f10
movq %rax, -0x3c8(%rbp)
jmp 0xbf17
movq -0x3c8(%rbp), %rcx
leaq -0xcc(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xd4(%rbp), %rdx
callq 0x8c30
jmp 0xbf3a
movl $0x98, %edi
callq 0x31b0
movq %rax, -0x3d0(%rbp)
jmp 0xbf4d
movq -0x3d0(%rbp), %rdi
callq 0xb040
jmp 0xbf5b
movq -0x3d0(%rbp), %rax
movq %rax, -0xe0(%rbp)
movl $0x80, -0xe4(%rbp)
movl $0x0, -0xe8(%rbp)
cmpl $0x80, -0xe8(%rbp)
jge 0xc266
movq -0x368(%rbp), %rax
cvtsi2ssl -0xe8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xb238(%rip), %xmm1     # 0x171e0
mulsd %xmm1, %xmm0
movsd 0xb234(%rip), %xmm1     # 0x171e8
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xec(%rbp)
movq -0xe0(%rbp), %rcx
addq $0x68, %rcx
movq %rcx, -0x400(%rbp)
movq %rax, %rcx
addq $0x40, %rcx
movq %rcx, -0x3f8(%rbp)
addq $0x38, %rax
movq %rax, -0x3f0(%rbp)
movss -0xec(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x32b0
movaps 0xb249(%rip), %xmm1     # 0x17250
pxor %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
leaq -0xcc(%rbp), %rdi
callq 0x8cf0
movss %xmm1, -0x3e4(%rbp)
movaps %xmm0, -0x3e0(%rbp)
jmp 0xc02c
movss -0x3e4(%rbp), %xmm0
movaps -0x3e0(%rbp), %xmm1
movlpd %xmm1, -0x148(%rbp)
movss %xmm0, -0x140(%rbp)
movl -0x140(%rbp), %eax
movl %eax, -0x130(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x138(%rbp)
movss -0xec(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x3060
cvtsd2ss %xmm0, %xmm0
leaq -0x8c(%rbp), %rdi
callq 0x8cf0
movss %xmm1, -0x414(%rbp)
movaps %xmm0, -0x410(%rbp)
jmp 0xc097
movss -0x414(%rbp), %xmm0
movaps -0x410(%rbp), %xmm1
movlpd %xmm1, -0x168(%rbp)
movss %xmm0, -0x160(%rbp)
movl -0x160(%rbp), %eax
movl %eax, -0x150(%rbp)
movq -0x168(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x13b90
movss %xmm1, -0x434(%rbp)
movaps %xmm0, -0x430(%rbp)
jmp 0xc0f4
movq -0x3f0(%rbp), %rdi
movss -0x434(%rbp), %xmm0
movaps -0x430(%rbp), %xmm1
movlpd %xmm1, -0x178(%rbp)
movss %xmm0, -0x170(%rbp)
movl -0x170(%rbp), %eax
movl %eax, -0x120(%rbp)
movq -0x178(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq -0x128(%rbp), %rsi
callq 0x13c30
movss %xmm1, -0x454(%rbp)
movaps %xmm0, -0x450(%rbp)
jmp 0xc151
movq -0x3f8(%rbp), %rdi
movss -0x454(%rbp), %xmm0
movaps -0x450(%rbp), %xmm1
movlpd %xmm1, -0x188(%rbp)
movss %xmm0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movl %eax, -0x110(%rbp)
movq -0x188(%rbp), %rax
movq %rax, -0x118(%rbp)
leaq -0x118(%rbp), %rsi
callq 0x13b90
movss %xmm1, -0x474(%rbp)
movaps %xmm0, -0x470(%rbp)
jmp 0xc1ae
movss -0x474(%rbp), %xmm0
movaps -0x470(%rbp), %xmm1
movlpd %xmm1, -0x198(%rbp)
movss %xmm0, -0x190(%rbp)
movl -0x190(%rbp), %eax
movl %eax, -0x100(%rbp)
movq -0x198(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0xf8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x8e00
jmp 0xc1fc
movq -0x400(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x13b60
jmp 0xc211
jmp 0xc213
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0xbf7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xca7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xca73
movq -0x3d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x3190
jmp 0xca73
leaq -0xcc(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x8f70
movss %xmm1, -0x494(%rbp)
movaps %xmm0, -0x490(%rbp)
jmp 0xc287
movss -0x494(%rbp), %xmm0
movaps -0x490(%rbp), %xmm1
movlpd %xmm1, -0x1d0(%rbp)
movss %xmm0, -0x1c8(%rbp)
movl -0x1c8(%rbp), %eax
movl %eax, -0x1b8(%rbp)
movq -0x1d0(%rbp), %rax
movq %rax, -0x1c0(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x8ea0
movss %xmm1, -0x4b4(%rbp)
movaps %xmm0, -0x4b0(%rbp)
jmp 0xc2dd
movss -0x4b4(%rbp), %xmm0
movaps -0x4b0(%rbp), %xmm1
movlpd %xmm1, -0x1e0(%rbp)
movss %xmm0, -0x1d8(%rbp)
movl -0x1d8(%rbp), %eax
movl %eax, -0x1a8(%rbp)
movq -0x1e0(%rbp), %rax
movq %rax, -0x1b0(%rbp)
leaq -0x1a4(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x8e00
jmp 0xc32b
movl $0x0, -0x1e4(%rbp)
cmpl $0x80, -0x1e4(%rbp)
jge 0xc5d4
movq -0x368(%rbp), %rax
cvtsi2ssl -0x1e4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xae80(%rip), %xmm1     # 0x171e0
mulsd %xmm1, %xmm0
movsd 0xae7c(%rip), %xmm1     # 0x171e8
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1e8(%rbp)
movq -0xe0(%rbp), %rcx
addq $0x68, %rcx
movq %rcx, -0x4f0(%rbp)
movq %rax, %rcx
addq $0x40, %rcx
movq %rcx, -0x4e8(%rbp)
addq $0x38, %rax
movq %rax, -0x4e0(%rbp)
movss -0x1e8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x32b0
cvtsd2ss %xmm0, %xmm0
leaq -0xcc(%rbp), %rdi
callq 0x8cf0
movss %xmm1, -0x4d4(%rbp)
movaps %xmm0, -0x4d0(%rbp)
jmp 0xc3d9
movss -0x4d4(%rbp), %xmm0
movaps -0x4d0(%rbp), %xmm1
movlpd %xmm1, -0x240(%rbp)
movss %xmm0, -0x238(%rbp)
movl -0x238(%rbp), %eax
movl %eax, -0x228(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x230(%rbp)
movss -0x1e8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x3060
cvtsd2ss %xmm0, %xmm0
leaq -0x1a4(%rbp), %rdi
callq 0x8cf0
movss %xmm1, -0x504(%rbp)
movaps %xmm0, -0x500(%rbp)
jmp 0xc444
movss -0x504(%rbp), %xmm0
movaps -0x500(%rbp), %xmm1
movlpd %xmm1, -0x260(%rbp)
movss %xmm0, -0x258(%rbp)
movl -0x258(%rbp), %eax
movl %eax, -0x248(%rbp)
movq -0x260(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x13b90
movss %xmm1, -0x524(%rbp)
movaps %xmm0, -0x520(%rbp)
jmp 0xc4a1
movq -0x4e0(%rbp), %rdi
movss -0x524(%rbp), %xmm0
movaps -0x520(%rbp), %xmm1
movlpd %xmm1, -0x270(%rbp)
movss %xmm0, -0x268(%rbp)
movl -0x268(%rbp), %eax
movl %eax, -0x218(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0x220(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x13c30
movss %xmm1, -0x544(%rbp)
movaps %xmm0, -0x540(%rbp)
jmp 0xc4fe
movq -0x4e8(%rbp), %rdi
movss -0x544(%rbp), %xmm0
movaps -0x540(%rbp), %xmm1
movlpd %xmm1, -0x280(%rbp)
movss %xmm0, -0x278(%rbp)
movl -0x278(%rbp), %eax
movl %eax, -0x208(%rbp)
movq -0x280(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0x210(%rbp), %rsi
callq 0x13b90
movss %xmm1, -0x564(%rbp)
movaps %xmm0, -0x560(%rbp)
jmp 0xc55b
movss -0x564(%rbp), %xmm0
movaps -0x560(%rbp), %xmm1
movlpd %xmm1, -0x290(%rbp)
movss %xmm0, -0x288(%rbp)
movl -0x288(%rbp), %eax
movl %eax, -0x1f8(%rbp)
movq -0x290(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq -0x1f4(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x8e00
jmp 0xc5a9
movq -0x4f0(%rbp), %rdi
leaq -0x1f4(%rbp), %rsi
callq 0x13b60
jmp 0xc5be
jmp 0xc5c0
movl -0x1e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e4(%rbp)
jmp 0xc335
movq -0xe0(%rbp), %rax
movb $0x1, 0x3a(%rax)
movq -0xe0(%rbp), %rax
movb $0x1, 0x45(%rax)
movq -0xe0(%rbp), %rdi
addq $0x48, %rdi
leaq 0xb20a(%rip), %rsi      # 0x17806
callq 0x31f0
jmp 0xc603
movq -0xe0(%rbp), %rax
movb $0x1, 0x38(%rax)
movq -0xe0(%rbp), %rax
movl $0x3b656042, 0x3c(%rax) # imm = 0x3B656042
movl $0x3f000000, -0x2a0(%rbp) # imm = 0x3F000000
movl $0x3f000000, -0x2a4(%rbp) # imm = 0x3F000000
movl $0x3f000000, -0x2a8(%rbp) # imm = 0x3F000000
leaq -0x29c(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
leaq -0x2a4(%rbp), %rdx
leaq -0x2a8(%rbp), %rcx
callq 0x8c30
jmp 0xc65d
movq -0xe0(%rbp), %rax
movl -0x294(%rbp), %ecx
movl %ecx, 0x28(%rax)
movq -0x29c(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0xe0(%rbp), %rax
movb $0x1, 0x39(%rax)
movl $0x98, %edi
callq 0x31b0
movq %rax, -0x570(%rbp)
jmp 0xc696
movq -0x570(%rbp), %rdi
callq 0xb040
jmp 0xc6a4
movq -0x570(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movl $0x0, -0x2b4(%rbp)
cmpl $0x80, -0x2b4(%rbp)
jg 0xc983
movq -0x368(%rbp), %rax
cvtsi2ssl -0x2b4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xaaf9(%rip), %xmm1     # 0x171e0
mulsd %xmm1, %xmm0
movsd 0xaaf5(%rip), %xmm1     # 0x171e8
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x2b8(%rbp)
movq -0x2b0(%rbp), %rcx
addq $0x68, %rcx
movq %rcx, -0x5a0(%rbp)
movq %rax, %rcx
addq $0x40, %rcx
movq %rcx, -0x598(%rbp)
addq $0x38, %rax
movq %rax, -0x590(%rbp)
movss -0x2b8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x32b0
movaps 0xab0a(%rip), %xmm1     # 0x17250
pxor %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
leaq -0xcc(%rbp), %rdi
callq 0x8cf0
movss %xmm1, -0x584(%rbp)
movaps %xmm0, -0x580(%rbp)
jmp 0xc76b
movss -0x584(%rbp), %xmm0
movaps -0x580(%rbp), %xmm1
movlpd %xmm1, -0x310(%rbp)
movss %xmm0, -0x308(%rbp)
movl -0x308(%rbp), %eax
movl %eax, -0x2f8(%rbp)
movq -0x310(%rbp), %rax
movq %rax, -0x300(%rbp)
movss -0x2b8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x3060
cvtsd2ss %xmm0, %xmm0
leaq -0x8c(%rbp), %rdi
callq 0x8cf0
movss %xmm1, -0x5b4(%rbp)
movaps %xmm0, -0x5b0(%rbp)
jmp 0xc7d6
movss -0x5b4(%rbp), %xmm0
movaps -0x5b0(%rbp), %xmm1
movlpd %xmm1, -0x330(%rbp)
movss %xmm0, -0x328(%rbp)
movl -0x328(%rbp), %eax
movl %eax, -0x318(%rbp)
movq -0x330(%rbp), %rax
movq %rax, -0x320(%rbp)
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x8d60
movss %xmm1, -0x5d4(%rbp)
movaps %xmm0, -0x5d0(%rbp)
jmp 0xc833
movq -0x590(%rbp), %rdi
movss -0x5d4(%rbp), %xmm0
movaps -0x5d0(%rbp), %xmm1
movlpd %xmm1, -0x340(%rbp)
movss %xmm0, -0x338(%rbp)
movl -0x338(%rbp), %eax
movl %eax, -0x2e8(%rbp)
movq -0x340(%rbp), %rax
movq %rax, -0x2f0(%rbp)
leaq -0x2f0(%rbp), %rsi
callq 0x13c30
movss %xmm1, -0x5f4(%rbp)
movaps %xmm0, -0x5f0(%rbp)
jmp 0xc890
movq -0x598(%rbp), %rdi
movss -0x5f4(%rbp), %xmm0
movaps -0x5f0(%rbp), %xmm1
movlpd %xmm1, -0x350(%rbp)
movss %xmm0, -0x348(%rbp)
movl -0x348(%rbp), %eax
movl %eax, -0x2d8(%rbp)
movq -0x350(%rbp), %rax
movq %rax, -0x2e0(%rbp)
leaq -0x2e0(%rbp), %rsi
callq 0x13b90
movss %xmm1, -0x614(%rbp)
movaps %xmm0, -0x610(%rbp)
jmp 0xc8ed
movss -0x614(%rbp), %xmm0
movaps -0x610(%rbp), %xmm1
movlpd %xmm1, -0x360(%rbp)
movss %xmm0, -0x358(%rbp)
movl -0x358(%rbp), %eax
movl %eax, -0x2c8(%rbp)
movq -0x360(%rbp), %rax
movq %rax, -0x2d0(%rbp)
leaq -0x2c4(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x8e00
jmp 0xc93b
movq -0x5a0(%rbp), %rdi
leaq -0x2c4(%rbp), %rsi
callq 0x13b60
jmp 0xc950
jmp 0xc952
movl -0x2b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b4(%rbp)
jmp 0xc6bc
movq -0x570(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x3190
jmp 0xca73
movq -0x2b0(%rbp), %rax
movb $0x0, 0x3a(%rax)
movq -0x2b0(%rbp), %rax
movb $0x1, 0x38(%rax)
movq -0x2b0(%rbp), %rax
movb $0x1, 0x44(%rax)
movq -0xe0(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x2b0(%rbp), %rax
movss %xmm0, 0x3c(%rax)
movq -0xe0(%rbp), %rcx
movq -0x2b0(%rbp), %rax
movl 0x28(%rcx), %edx
movl %edx, 0x28(%rax)
movq 0x20(%rcx), %rcx
movq %rcx, 0x20(%rax)
movq -0x2b0(%rbp), %rax
movb $0x0, 0x39(%rax)
movl $0x38, %edi
callq 0x31b0
movq %rax, -0x620(%rbp)
jmp 0xc9f6
movq -0x620(%rbp), %rdi
movzbl -0x35(%rbp), %esi
andl $0x1, %esi
movss 0xa814(%rip), %xmm0     # 0x17220
callq 0xebb0
jmp 0xca13
movq -0x620(%rbp), %rsi
movq -0x368(%rbp), %rdi
callq 0xb660
jmp 0xca28
movq -0x368(%rbp), %rdi
movq -0x2b0(%rbp), %rsi
callq 0xb660
jmp 0xca3d
movq -0x368(%rbp), %rdi
movq -0xe0(%rbp), %rsi
callq 0xb660
jmp 0xca52
addq $0x620, %rsp            # imm = 0x620
popq %rbp
retq
movq -0x620(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x3190
movq -0x370(%rbp), %rdi
callq 0xb2d0
movq -0x368(%rbp), %rdi
callq 0xb5f0
movq -0x40(%rbp), %rdi
callq 0x3280
nopw %cs:(%rax,%rax)