Paste: dump

Author: erg
Mode: factor
Date: Wed, 25 Jul 2012 22:45:58
Plain Text |
(gdb) disassemble 0x7fffdd4c04a0,0x7fffdd4c107f
Dump of assembler code from 0x7fffdd4c04a0 to 0x7fffdd4c107f:
   0x00007fffdd4c04a0:	jg     0x7fffdd4c04a2
=> 0x00007fffdd4c04a2:	add    %cl,-0x77(%rcx)
   0x00007fffdd4c04a5:	rex.WRX clc 
   0x00007fffdd4c04a7:	mov    0x0(%r13),%rcx
   0x00007fffdd4c04ab:	mov    0x40(%rcx),%rcx
   0x00007fffdd4c04af:	mov    %rcx,(%r14)
   0x00007fffdd4c04b2:	callq  0x7fffdc68f100
   0x00007fffdd4c04b7:	callq  0x7fffdc7a0cc0
   0x00007fffdd4c04bc:	add    $0x10,%r14
   0x00007fffdd4c04c0:	mov    (%r15),%rcx
   0x00007fffdd4c04c3:	movabs $0x7fffbda1934c,%rbx
   0x00007fffdd4c04cd:	mov    %rbx,(%r14)
   0x00007fffdd4c04d0:	mov    %rcx,-0x8(%r14)
   0x00007fffdd4c04d4:	mov    -0x10(%r14),%rcx
   0x00007fffdd4c04d8:	mov    %rcx,(%r15)
   0x00007fffdd4c04db:	callq  0x7fffdc69c3c0
   0x00007fffdd4c04e0:	add    $0x8,%r15
   0x00007fffdd4c04e4:	movq   $0x1,(%r15)
   0x00007fffdd4c04eb:	callq  0x7fffdc8c98e0
   0x00007fffdd4c04f0:	sub    $0x10,%r15
   0x00007fffdd4c04f4:	sub    $0x8,%r14
   0x00007fffdd4c04f8:	mov    0x0(%r13),%rcx
   0x00007fffdd4c04fc:	lea    -0x8(%rsp),%rbx
   0x00007fffdd4c0501:	mov    %rbx,(%rcx)
   0x00007fffdd4c0504:	mov    %r14,0x10(%rcx)
   0x00007fffdd4c0508:	mov    %r15,0x18(%rcx)
   0x00007fffdd4c050c:	mov    (%r14),%rcx
   0x00007fffdd4c050f:	xor    %rbx,%rbx
   0x00007fffdd4c0512:	cmp    $0x1,%rcx
   0x00007fffdd4c0516:	je     0x7fffdd4c0535
   0x00007fffdd4c051c:	mov    %rcx,%rbx
   0x00007fffdd4c051f:	and    $0xf,%rbx
   0x00007fffdd4c0523:	cmp    $0x6,%rbx
   0x00007fffdd4c0527:	lea    0x7(%rcx),%rbx
   0x00007fffdd4c052b:	jne    0x7fffdd4c0535
   0x00007fffdd4c0531:	mov    0x1a(%rcx),%rbx
   0x00007fffdd4c0535:	mov    %rbx,0x30(%rsp)
   0x00007fffdd4c053a:	mov    0x8(%r14),%rcx
   0x00007fffdd4c053e:	xor    %rax,%rax
   0x00007fffdd4c0541:	cmp    $0x1,%rcx
   0x00007fffdd4c0545:	je     0x7fffdd4c0564
   0x00007fffdd4c054b:	mov    %rcx,%rax
   0x00007fffdd4c054e:	and    $0xf,%rax
   0x00007fffdd4c0552:	cmp    $0x6,%rax
   0x00007fffdd4c0556:	lea    0x7(%rcx),%rax
   0x00007fffdd4c055a:	jne    0x7fffdd4c0564
   0x00007fffdd4c0560:	mov    0x1a(%rcx),%rax
   0x00007fffdd4c0564:	mov    %rax,0x38(%rsp)
   0x00007fffdd4c0569:	mov    0x10(%r15),%rcx
   0x00007fffdd4c056d:	xor    %r12,%r12
   0x00007fffdd4c0570:	cmp    $0x1,%rcx
   0x00007fffdd4c0574:	je     0x7fffdd4c0593
   0x00007fffdd4c057a:	mov    %rcx,%r12
   0x00007fffdd4c057d:	and    $0xf,%r12
   0x00007fffdd4c0581:	cmp    $0x6,%r12
   0x00007fffdd4c0585:	lea    0x7(%rcx),%r12
   0x00007fffdd4c0589:	jne    0x7fffdd4c0593
   0x00007fffdd4c058f:	mov    0x1a(%rcx),%r12
   0x00007fffdd4c0593:	mov    %r12,0x40(%rsp)
   0x00007fffdd4c0598:	mov    0x30(%rsp),%rdi
   0x00007fffdd4c059d:	mov    0x38(%rsp),%rsi
   0x00007fffdd4c05a2:	mov    0x40(%rsp),%rdx
   0x00007fffdd4c05a7:	xor    %rax,%rax
   0x00007fffdd4c05aa:	movabs $0x7ffff645e700,%r11
   0x00007fffdd4c05b4:	rex.WB callq *%r11
   0x00007fffdd4c05b7:	mov    0x8(%r15),%rcx
   0x00007fffdd4c05bb:	xor    %rbx,%rbx
   0x00007fffdd4c05be:	cmp    $0x1,%rcx
   0x00007fffdd4c05c2:	je     0x7fffdd4c05e1
   0x00007fffdd4c05c8:	mov    %rcx,%rbx
   0x00007fffdd4c05cb:	and    $0xf,%rbx
   0x00007fffdd4c05cf:	cmp    $0x6,%rbx
   0x00007fffdd4c05d3:	lea    0x7(%rcx),%rbx
   0x00007fffdd4c05d7:	jne    0x7fffdd4c05e1
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c05dd:	mov    0x1a(%rcx),%rbx
   0x00007fffdd4c05e1:	mov    %rbx,0x48(%rsp)
   0x00007fffdd4c05e6:	mov    0x48(%rsp),%rdi
   0x00007fffdd4c05eb:	xor    %rax,%rax
   0x00007fffdd4c05ee:	movabs $0x7ffff63ccf20,%r11
   0x00007fffdd4c05f8:	rex.WB callq *%r11
   0x00007fffdd4c05fb:	mov    0x0(%r13),%rcx
   0x00007fffdd4c05ff:	mov    0x48(%rcx),%rcx
   0x00007fffdd4c0603:	mov    %rcx,(%r14)
   0x00007fffdd4c0606:	callq  0x7fffdcd2e5f0
   0x00007fffdd4c060b:	callq  0x7fffdcbf2160
   0x00007fffdd4c0610:	mov    %eax,-0xe3c616(%rip)        # 0x7fffdc684000
   0x00007fffdd4c0616:	add    $0x58,%rsp
   0x00007fffdd4c061a:	lea    0x5(%rip),%rbx        # 0x7fffdd4c0626
   0x00007fffdd4c0621:	jmpq   0x7fffdcd03e50
   0x00007fffdd4c0626:	sub    $0x18,%r14
   0x00007fffdd4c062a:	callq  0x7fffdcb76e80
   0x00007fffdd4c062f:	add    $0x8,%r15
   0x00007fffdd4c0633:	sub    $0x8,%r14
   0x00007fffdd4c0637:	mov    0x8(%r14),%rcx
   0x00007fffdd4c063b:	mov    %rcx,(%r15)
   0x00007fffdd4c063e:	callq  0x7fffdcbf2160
   0x00007fffdd4c0643:	callq  0x7fffdcbf3830
   0x00007fffdd4c0648:	sub    $0x8,%r15
   0x00007fffdd4c064c:	add    $0x8,%r14
   0x00007fffdd4c0650:	mov    0x8(%r15),%rcx
   0x00007fffdd4c0654:	mov    %rcx,(%r14)
   0x00007fffdd4c0657:	callq  0x7fffdc74ef00
   0x00007fffdd4c065c:	add    %al,(%rax)
   0x00007fffdd4c065e:	add    %al,(%rax)
   0x00007fffdd4c0660:	jb     0x7fffdd4c066d
   0x00007fffdd4c0662:	add    %al,0x0(%rip)        # 0x7fffdd4c0668
   0x00007fffdd4c0668:	mov    %fs,%ecx
   0x00007fffdd4c066a:	(bad)  
   0x00007fffdd4c066b:	sar    $0x7f,%bh
   0x00007fffdd4c066e:	add    %al,(%rax)
   0x00007fffdd4c0670:	loop   0x7fffdd4c06db
   0x00007fffdd4c0672:	push   %rcx
   0x00007fffdd4c0673:	retq   
   0x00007fffdd4c0674:	(bad)  
   0x00007fffdd4c0675:	jg     0x7fffdd4c0677
   0x00007fffdd4c0677:	add    %bl,-0x3cae62(%rcx)
   0x00007fffdd4c067d:	jg     0x7fffdd4c067f
   0x00007fffdd4c067f:	add    %cl,0x1c397a05(%rcx)
   0x00007fffdd4c0685:	decl   -0x7d(%rax)
   0x00007fffdd4c0688:	in     (%dx),%al
   0x00007fffdd4c0689:	rex.W
   0x00007fffdd4c068a:	add    $0x8,%r15
   0x00007fffdd4c068e:	sub    $0x8,%r14
   0x00007fffdd4c0692:	mov    0x8(%r14),%rcx
   0x00007fffdd4c0696:	mov    %rcx,(%r15)
   0x00007fffdd4c0699:	callq  0x7fffdc97c8f0
   0x00007fffdd4c069e:	sub    $0x8,%r14
   0x00007fffdd4c06a2:	mov    0x8(%r14),%rcx
   0x00007fffdd4c06a6:	movabs $0x7fffbf1fabb7,%rbx
   0x00007fffdd4c06b0:	mov    %rcx,0x9(%rbx)
   0x00007fffdd4c06b4:	lea    0x9(%rbx),%rcx
   0x00007fffdd4c06b8:	shr    $0x8,%rcx
   0x00007fffdd4c06bc:	movabs $0x7f7fe0c3cc10,%rax
   0x00007fffdd4c06c6:	rex.W movb $0xc0,(%rcx,%rax,1)
   0x00007fffdd4c06cb:	shr    $0xa,%rcx
   0x00007fffdd4c06cf:	movabs $0xffffffffe06cc5a3,%rax
   0x00007fffdd4c06d9:	rex.W movb $0xc0,(%rcx,%rax,1)
   0x00007fffdd4c06de:	callq  0x7fffdd4ac790
   0x00007fffdd4c06e3:	lea    0x10(%r13),%rcx
   0x00007fffdd4c06e7:	mov    (%rcx),%rbx
   0x00007fffdd4c06ea:	add    $0x20,%rbx
   0x00007fffdd4c06ee:	cmp    0x10(%rcx),%rbx
   0x00007fffdd4c06f2:	jle    0x7fffdd4c0711
   0x00007fffdd4c06f8:	mov    0x0(%r13),%rcx
   0x00007fffdd4c06fc:	lea    -0x8(%rsp),%rbx
   0x00007fffdd4c0701:	mov    %rbx,(%rcx)
   0x00007fffdd4c0704:	mov    %r14,0x10(%rcx)
   0x00007fffdd4c0708:	mov    %r15,0x18(%rcx)
   0x00007fffdd4c070c:	callq  0x7fffdcd03cf0
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c0711:	add    $0x18,%r14
   0x00007fffdd4c0715:	lea    0x10(%r13),%rbx
   0x00007fffdd4c0719:	mov    (%rbx),%rcx
   0x00007fffdd4c071c:	movq   $0x1c,(%rcx)
   0x00007fffdd4c0723:	or     $0x7,%rcx
   0x00007fffdd4c0727:	addq   $0x20,(%rbx)
   0x00007fffdd4c072b:	movabs $0x7fffbeeb7272,%rbx
   0x00007fffdd4c0735:	mov    %rbx,0x1(%rcx)
   0x00007fffdd4c0739:	mov    -0x18(%r14),%rbx
   0x00007fffdd4c073d:	mov    %rbx,0x9(%rcx)
   0x00007fffdd4c0741:	mov    %rcx,-0x10(%r14)
   0x00007fffdd4c0745:	mov    0x0(%r13),%rcx
   0x00007fffdd4c0749:	mov    0x40(%rcx),%rcx
   0x00007fffdd4c074d:	mov    %rcx,(%r14)
   0x00007fffdd4c0750:	movabs $0x7fffbda20b5c,%rcx
   0x00007fffdd4c075a:	mov    %rcx,-0x8(%r14)
   0x00007fffdd4c075e:	callq  0x7fffdc68f100
   0x00007fffdd4c0763:	callq  0x7fffdc7a0cc0
   0x00007fffdd4c0768:	callq  0x7fffdd6611e0
   0x00007fffdd4c076d:	mov    0x0(%r13),%rcx
   0x00007fffdd4c0771:	lea    -0x8(%rsp),%rbx
   0x00007fffdd4c0776:	mov    %rbx,(%rcx)
   0x00007fffdd4c0779:	mov    %r14,0x10(%rcx)
   0x00007fffdd4c077d:	mov    %r15,0x18(%rcx)
   0x00007fffdd4c0781:	movabs $0x60,%rcx
   0x00007fffdd4c078b:	mov    %rcx,(%rsp)
   0x00007fffdd4c078f:	mov    (%r14),%rbx
   0x00007fffdd4c0792:	xor    %rax,%rax
   0x00007fffdd4c0795:	cmp    $0x1,%rbx
   0x00007fffdd4c0799:	je     0x7fffdd4c07b8
   0x00007fffdd4c079f:	mov    %rbx,%rax
   0x00007fffdd4c07a2:	and    $0xf,%rax
   0x00007fffdd4c07a6:	cmp    $0x6,%rax
   0x00007fffdd4c07aa:	lea    0x7(%rbx),%rax
   0x00007fffdd4c07ae:	jne    0x7fffdd4c07b8
   0x00007fffdd4c07b4:	mov    0x1a(%rbx),%rax
   0x00007fffdd4c07b8:	mov    %rax,0x8(%rsp)
   0x00007fffdd4c07bd:	mov    0x8(%rsp),%rdi
   0x00007fffdd4c07c2:	mov    (%rsp),%rsi
   0x00007fffdd4c07c6:	xor    %rax,%rax
   0x00007fffdd4c07c9:	movabs $0x7ffff3e367c0,%r11
   0x00007fffdd4c07d3:	rex.WB callq *%r11
   0x00007fffdd4c07d6:	mov    %rax,0x8(%rsp)
   0x00007fffdd4c07db:	lea    0x10(%r13),%rbx
   0x00007fffdd4c07df:	mov    (%rbx),%rcx
   0x00007fffdd4c07e2:	add    $0x30,%rcx
   0x00007fffdd4c07e6:	cmp    0x10(%rbx),%rcx
   0x00007fffdd4c07ea:	jle    0x7fffdd4c0809
   0x00007fffdd4c07f0:	mov    0x0(%r13),%rcx
   0x00007fffdd4c07f4:	lea    -0x8(%rsp),%rbx
   0x00007fffdd4c07f9:	mov    %rbx,(%rcx)
   0x00007fffdd4c07fc:	mov    %r14,0x10(%rcx)
   0x00007fffdd4c0800:	mov    %r15,0x18(%rcx)
   0x00007fffdd4c0804:	callq  0x7fffdcd03cf0
   0x00007fffdd4c0809:	mov    0x8(%rsp),%rax
   0x00007fffdd4c080e:	movabs $0x1,%rcx
   0x00007fffdd4c0818:	test   %rax,%rax
   0x00007fffdd4c081b:	je     0x7fffdd4c084f
   0x00007fffdd4c0821:	lea    0x10(%r13),%rbx
   0x00007fffdd4c0825:	mov    (%rbx),%rcx
   0x00007fffdd4c0828:	movq   $0x18,(%rcx)
   0x00007fffdd4c082f:	or     $0x6,%rcx
   0x00007fffdd4c0833:	addq   $0x30,(%rbx)
   0x00007fffdd4c0837:	movq   $0x1,0x2(%rcx)
   0x00007fffdd4c083f:	movq   $0x1,0xa(%rcx)
   0x00007fffdd4c0847:	mov    %rax,0x12(%rcx)
   0x00007fffdd4c084b:	mov    %rax,0x1a(%rcx)
   0x00007fffdd4c084f:	cmp    $0x1,%rcx
   0x00007fffdd4c0853:	je     0x7fffdd4c08c3
   0x00007fffdd4c0859:	mov    %rcx,0x10(%rsp)
   0x00007fffdd4c085e:	lea    0x10(%r13),%rax
   0x00007fffdd4c0862:	mov    (%rax),%rbx
   0x00007fffdd4c0865:	add    $0x20,%rbx
   0x00007fffdd4c0869:	cmp    0x10(%rax),%rbx
   0x00007fffdd4c086d:	jle    0x7fffdd4c088c
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c0873:	mov    0x0(%r13),%rax
   0x00007fffdd4c0877:	lea    -0x8(%rsp),%rbx
   0x00007fffdd4c087c:	mov    %rbx,(%rax)
   0x00007fffdd4c087f:	mov    %r14,0x10(%rax)
   0x00007fffdd4c0883:	mov    %r15,0x18(%rax)
   0x00007fffdd4c0887:	callq  0x7fffdcd03cf0
   0x00007fffdd4c088c:	lea    0x10(%r13),%rbx
   0x00007fffdd4c0890:	mov    (%rbx),%rcx
   0x00007fffdd4c0893:	movq   $0x1c,(%rcx)
   0x00007fffdd4c089a:	or     $0x7,%rcx
   0x00007fffdd4c089e:	addq   $0x20,(%rbx)
   0x00007fffdd4c08a2:	movabs $0x7fffbdae6f12,%rbx
   0x00007fffdd4c08ac:	mov    %rbx,0x1(%rcx)
   0x00007fffdd4c08b0:	mov    0x10(%rsp),%rbx
   0x00007fffdd4c08b5:	mov    %rbx,0x9(%rcx)
   0x00007fffdd4c08b9:	mov    %rcx,0x18(%rsp)
   0x00007fffdd4c08be:	jmpq   0x7fffdd4c08d2
   0x00007fffdd4c08c3:	movabs $0x1,%rcx
   0x00007fffdd4c08cd:	mov    %rcx,0x18(%rsp)
   0x00007fffdd4c08d2:	lea    0x10(%r13),%rbx
   0x00007fffdd4c08d6:	mov    (%rbx),%rax
   0x00007fffdd4c08d9:	add    $0x20,%rax
   0x00007fffdd4c08dd:	cmp    0x10(%rbx),%rax
   0x00007fffdd4c08e1:	jle    0x7fffdd4c0900
   0x00007fffdd4c08e7:	mov    0x0(%r13),%rbx
   0x00007fffdd4c08eb:	lea    -0x8(%rsp),%rax
   0x00007fffdd4c08f0:	mov    %rax,(%rbx)
   0x00007fffdd4c08f3:	mov    %r14,0x10(%rbx)
   0x00007fffdd4c08f7:	mov    %r15,0x18(%rbx)
   0x00007fffdd4c08fb:	callq  0x7fffdcd03cf0
   0x00007fffdd4c0900:	add    $0x18,%r14
   0x00007fffdd4c0904:	lea    0x10(%r13),%rcx
   0x00007fffdd4c0908:	mov    (%rcx),%rbx
   0x00007fffdd4c090b:	movq   $0x1c,(%rbx)
   0x00007fffdd4c0912:	or     $0x7,%rbx
   0x00007fffdd4c0916:	addq   $0x20,(%rcx)
   0x00007fffdd4c091a:	mov    %rbx,-0x10(%r14)
   0x00007fffdd4c091e:	movabs $0x7fffbf55a5c2,%rcx
   0x00007fffdd4c0928:	mov    %rcx,0x1(%rbx)
   0x00007fffdd4c092c:	mov    0x18(%rsp),%rcx
   0x00007fffdd4c0931:	mov    %rcx,0x9(%rbx)
   0x00007fffdd4c0935:	mov    %rcx,-0x18(%r14)
   0x00007fffdd4c0939:	movabs $0x7fffbda20b5c,%rcx
   0x00007fffdd4c0943:	mov    %rcx,-0x8(%r14)
   0x00007fffdd4c0947:	mov    0x0(%r13),%rcx
   0x00007fffdd4c094b:	mov    0x40(%rcx),%rcx
   0x00007fffdd4c094f:	mov    %rcx,(%r14)
   0x00007fffdd4c0952:	callq  0x7fffdc68f100
   0x00007fffdd4c0957:	callq  0x7fffdc7a0cc0
   0x00007fffdd4c095c:	add    $0x10,%r15
   0x00007fffdd4c0960:	movq   $0x1,(%r15)
   0x00007fffdd4c0967:	mov    (%r14),%rcx
   0x00007fffdd4c096a:	mov    %rcx,-0x8(%r15)
   0x00007fffdd4c096e:	callq  0x7fffdd6621f0
   0x00007fffdd4c0973:	sub    $0x8,%r14
   0x00007fffdd4c0977:	mov    0x0(%r13),%rcx
   0x00007fffdd4c097b:	lea    -0x8(%rsp),%rbx
   0x00007fffdd4c0980:	mov    %rbx,(%rcx)
   0x00007fffdd4c0983:	mov    %r14,0x10(%rcx)
   0x00007fffdd4c0987:	mov    %r15,0x18(%rcx)
   0x00007fffdd4c098b:	mov    (%r15),%rcx
   0x00007fffdd4c098e:	mov    0x8(%r14),%rbx
   0x00007fffdd4c0992:	xor    %rax,%rax
   0x00007fffdd4c0995:	cmp    $0x1,%rbx
   0x00007fffdd4c0999:	je     0x7fffdd4c09b8
   0x00007fffdd4c099f:	mov    %rbx,%rax
   0x00007fffdd4c09a2:	and    $0xf,%rax
   0x00007fffdd4c09a6:	cmp    $0x6,%rax
   0x00007fffdd4c09aa:	lea    0x7(%rbx),%rax
   0x00007fffdd4c09ae:	jne    0x7fffdd4c09b8
   0x00007fffdd4c09b4:	mov    0x1a(%rbx),%rax
   0x00007fffdd4c09b8:	mov    %rax,0x20(%rsp)
   0x00007fffdd4c09bd:	xor    %rbx,%rbx
   0x00007fffdd4c09c0:	cmp    $0x1,%rcx
   0x00007fffdd4c09c4:	je     0x7fffdd4c09e3
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c09ca:	mov    %rcx,%rbx
   0x00007fffdd4c09cd:	and    $0xf,%rbx
   0x00007fffdd4c09d1:	cmp    $0x6,%rbx
   0x00007fffdd4c09d5:	lea    0x7(%rcx),%rbx
   0x00007fffdd4c09d9:	jne    0x7fffdd4c09e3
   0x00007fffdd4c09df:	mov    0x1a(%rcx),%rbx
   0x00007fffdd4c09e3:	mov    %rbx,0x28(%rsp)
   0x00007fffdd4c09e8:	mov    0x20(%rsp),%rdi
   0x00007fffdd4c09ed:	mov    0x28(%rsp),%rsi
   0x00007fffdd4c09f2:	xor    %rax,%rax
   0x00007fffdd4c09f5:	movabs $0x7ffff3e36830,%r11
   0x00007fffdd4c09ff:	rex.WB callq *%r11
   0x00007fffdd4c0a02:	mov    -0x10(%r15),%rcx
   0x00007fffdd4c0a06:	mov    -0x8(%r15),%rbx
   0x00007fffdd4c0a0a:	mov    %rbx,(%r15)
   0x00007fffdd4c0a0d:	mov    %rbx,-0x10(%r15)
   0x00007fffdd4c0a11:	mov    %rcx,-0x8(%r15)
   0x00007fffdd4c0a15:	callq  0x7fffdcb76e40
   0x00007fffdd4c0a1a:	callq  0x7fffdcb7d610
   0x00007fffdd4c0a1f:	sub    $0x10,%r15
   0x00007fffdd4c0a23:	add    $0x10,%r14
   0x00007fffdd4c0a27:	mov    -0x10(%r14),%rcx
   0x00007fffdd4c0a2b:	mov    0x10(%r15),%rbx
   0x00007fffdd4c0a2f:	mov    0x8(%r15),%rax
   0x00007fffdd4c0a33:	cmp    $0x1,%rcx
   0x00007fffdd4c0a37:	je     0x7fffdd4c1129
   0x00007fffdd4c0a3d:	add    $0x8,%r15
   0x00007fffdd4c0a41:	sub    $0x8,%r14
   0x00007fffdd4c0a45:	mov    0x0(%r13),%rbx
   0x00007fffdd4c0a49:	mov    0x48(%rbx),%rbx
   0x00007fffdd4c0a4d:	mov    0x11(%rbx),%r12
   0x00007fffdd4c0a51:	mov    0x9(%rbx),%rdi
   0x00007fffdd4c0a55:	mov    0x6(%rdi),%rdi
   0x00007fffdd4c0a59:	cmp    %rdi,%r12
   0x00007fffdd4c0a5c:	jl     0x7fffdd4c0b28
   0x00007fffdd4c0a62:	add    $0x10,%r14
   0x00007fffdd4c0a66:	lea    0x10(%r12),%rdi
   0x00007fffdd4c0a6b:	movabs $0x3,%r10
   0x00007fffdd4c0a75:	mov    %rdi,%rsi
   0x00007fffdd4c0a78:	imul   %r10,%rsi
   0x00007fffdd4c0a7c:	jo     0x7fffdd4c0a9d
   0x00007fffdd4c0a82:	sub    $0x8,%r14
   0x00007fffdd4c0a86:	mov    %r12,-0x10(%r14)
   0x00007fffdd4c0a8a:	mov    %rcx,-0x18(%r14)
   0x00007fffdd4c0a8e:	mov    %rbx,-0x8(%r14)
   0x00007fffdd4c0a92:	mov    %rsi,(%r14)
   0x00007fffdd4c0a95:	mov    %rax,(%r15)
   0x00007fffdd4c0a98:	jmpq   0x7fffdd4c0ac0
   0x00007fffdd4c0a9d:	mov    %rcx,-0x20(%r14)
   0x00007fffdd4c0aa1:	mov    %rdi,-0x8(%r14)
   0x00007fffdd4c0aa5:	mov    %rax,(%r15)
   0x00007fffdd4c0aa8:	shl    $0x4,%r10
   0x00007fffdd4c0aac:	mov    %r10,(%r14)
   0x00007fffdd4c0aaf:	mov    %r12,-0x18(%r14)
   0x00007fffdd4c0ab3:	mov    %rbx,-0x10(%r14)
   0x00007fffdd4c0ab7:	callq  0x7fffdca54e50
   0x00007fffdd4c0abc:	mov    -0x8(%r14),%rbx
   0x00007fffdd4c0ac0:	add    $0x8,%r15
   0x00007fffdd4c0ac4:	add    $0x8,%r14
   0x00007fffdd4c0ac8:	mov    %rbx,(%r15)
   0x00007fffdd4c0acb:	mov    0x9(%rbx),%rbx
   0x00007fffdd4c0acf:	mov    %rbx,(%r14)
   0x00007fffdd4c0ad2:	callq  0x7fffdc860da0
   0x00007fffdd4c0ad7:	sub    $0x8,%r15
   0x00007fffdd4c0adb:	sub    $0x8,%r14
   0x00007fffdd4c0adf:	mov    0x8(%r15),%rcx
   0x00007fffdd4c0ae3:	mov    0x8(%r14),%rbx
   0x00007fffdd4c0ae7:	mov    %rbx,0x9(%rcx)
   0x00007fffdd4c0aeb:	lea    0x9(%rcx),%rbx
   0x00007fffdd4c0aef:	shr    $0x8,%rbx
   0x00007fffdd4c0af3:	movabs $0x7f7fe0c3cc10,%rax
   0x00007fffdd4c0afd:	rex.W movb $0xc0,(%rbx,%rax,1)
   0x00007fffdd4c0b02:	shr    $0xa,%rbx
   0x00007fffdd4c0b06:	movabs $0xffffffffe06cc5a3,%rax
   0x00007fffdd4c0b10:	rex.W movb $0xc0,(%rbx,%rax,1)
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c0b15:	mov    -0x8(%r14),%r12
   0x00007fffdd4c0b19:	mov    -0x10(%r14),%rcx
   0x00007fffdd4c0b1d:	mov    (%r14),%rbx
   0x00007fffdd4c0b20:	mov    (%r15),%rax
   0x00007fffdd4c0b23:	jmpq   0x7fffdd4c0b28
   0x00007fffdd4c0b28:	mov    %r12,%rdi
   0x00007fffdd4c0b2b:	sar    $0x4,%rdi
   0x00007fffdd4c0b2f:	add    $0x1,%rdi
   0x00007fffdd4c0b33:	movabs $0x3ffffffffffffff,%r10
   0x00007fffdd4c0b3d:	and    %r10,%rdi
   0x00007fffdd4c0b40:	shl    $0x4,%rdi
   0x00007fffdd4c0b44:	mov    %rdi,0x11(%rbx)
   0x00007fffdd4c0b48:	sub    $0x8,%r15
   0x00007fffdd4c0b4c:	mov    0x9(%rbx),%rbx
   0x00007fffdd4c0b50:	sar    $0x4,%r12
   0x00007fffdd4c0b54:	mov    %rcx,0xe(%rbx,%r12,8)
   0x00007fffdd4c0b59:	lea    0xe(%rbx,%r12,8),%rcx
   0x00007fffdd4c0b5e:	shr    $0x8,%rcx
   0x00007fffdd4c0b62:	movabs $0x7f7fe0c3cc10,%rdi
   0x00007fffdd4c0b6c:	rex.W movb $0xc0,(%rcx,%rdi,1)
   0x00007fffdd4c0b71:	shr    $0xa,%rcx
   0x00007fffdd4c0b75:	movabs $0xffffffffe06cc5a3,%rdi
   0x00007fffdd4c0b7f:	rex.W movb $0xc0,(%rcx,%rdi,1)
   0x00007fffdd4c0b84:	movabs $0x7fffc0170ce7,%rcx
   0x00007fffdd4c0b8e:	movabs $0x7fffc3518987,%rbx
   0x00007fffdd4c0b98:	mov    0x9(%rbx),%r12
   0x00007fffdd4c0b9c:	cmp    %r12,%rax
   0x00007fffdd4c0b9f:	je     0x7fffdd4c0c92
   0x00007fffdd4c0ba5:	sub    $0x8,%r14
   0x00007fffdd4c0ba9:	add    $0x8,%r15
   0x00007fffdd4c0bad:	mov    %rax,-0x8(%r14)
   0x00007fffdd4c0bb1:	mov    %rcx,(%r15)
   0x00007fffdd4c0bb4:	mov    %rax,(%r14)
   0x00007fffdd4c0bb7:	callq  0x7fffdd6617e0
   0x00007fffdd4c0bbc:	sub    $0x8,%r15
   0x00007fffdd4c0bc0:	add    $0x8,%r14
   0x00007fffdd4c0bc4:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0bc8:	mov    0x8(%r15),%rbx
   0x00007fffdd4c0bcc:	movabs $0x7fffbd8da99c,%rax
   0x00007fffdd4c0bd6:	cmp    %rax,%rcx
   0x00007fffdd4c0bd9:	jne    0x7fffdd4c0bfe
   0x00007fffdd4c0bdf:	sub    $0x10,%r14
   0x00007fffdd4c0be3:	add    $0x8,%r14
   0x00007fffdd4c0be7:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0bf1:	mov    %rcx,(%r14)
   0x00007fffdd4c0bf4:	callq  0x7fffdc6cb310
   0x00007fffdd4c0bf9:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0bfe:	mov    0x19(%rcx),%rax
   0x00007fffdd4c0c02:	cmp    $0x1,%rax
   0x00007fffdd4c0c06:	je     0x7fffdd4c0c18
   0x00007fffdd4c0c0c:	sub    $0x10,%r14
   0x00007fffdd4c0c10:	mov    (%r14),%rcx
   0x00007fffdd4c0c13:	jmpq   0x7fffdd4c100d
   0x00007fffdd4c0c18:	add    $0x8,%r15
   0x00007fffdd4c0c1c:	add    $0x8,%r14
   0x00007fffdd4c0c20:	mov    %rbx,-0x8(%r14)
   0x00007fffdd4c0c24:	mov    %rcx,(%r14)
   0x00007fffdd4c0c27:	mov    %rbx,(%r15)
   0x00007fffdd4c0c2a:	callq  0x7fffdcbf1990
   0x00007fffdd4c0c2f:	sub    $0x8,%r15
   0x00007fffdd4c0c33:	add    $0x8,%r14
   0x00007fffdd4c0c37:	mov    0x8(%r15),%rcx
   0x00007fffdd4c0c3b:	mov    %rcx,(%r14)
   0x00007fffdd4c0c3e:	callq  0x7fffdcbf1990
   0x00007fffdd4c0c43:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0c47:	mov    (%r14),%rbx
   0x00007fffdd4c0c4a:	cmp    $0x1,%rcx
   0x00007fffdd4c0c4e:	je     0x7fffdd4c0c73
   0x00007fffdd4c0c54:	sub    $0x10,%r14
   0x00007fffdd4c0c58:	cmp    $0x1,%rcx
   0x00007fffdd4c0c5c:	je     0x7fffdd4c0c67
   0x00007fffdd4c0c62:	jmpq   0x7fffdd4c0ea5
   0x00007fffdd4c0c67:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0c6b:	mov    (%r14),%rbx
   0x00007fffdd4c0c6e:	jmpq   0x7fffdd4c0ecb
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c0c73:	sub    $0x10,%r14
   0x00007fffdd4c0c77:	cmp    $0x1,%rbx
   0x00007fffdd4c0c7b:	je     0x7fffdd4c0c86
   0x00007fffdd4c0c81:	jmpq   0x7fffdd4c0ea5
   0x00007fffdd4c0c86:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0c8a:	mov    (%r14),%rbx
   0x00007fffdd4c0c8d:	jmpq   0x7fffdd4c0ecb
   0x00007fffdd4c0c92:	mov    0x11(%rbx),%rbx
   0x00007fffdd4c0c96:	mov    0x1f0(%r13),%r12
   0x00007fffdd4c0c9d:	cmp    %r12,%rbx
   0x00007fffdd4c0ca0:	movabs $0x1,%rdi
   0x00007fffdd4c0caa:	movabs $0x7fffbd8c03cc,%r10
   0x00007fffdd4c0cb4:	cmove  %r10,%rdi
   0x00007fffdd4c0cb8:	cmp    %r12,%rbx
   0x00007fffdd4c0cbb:	je     0x7fffdd4c0dae
   0x00007fffdd4c0cc1:	sub    $0x8,%r14
   0x00007fffdd4c0cc5:	add    $0x8,%r15
   0x00007fffdd4c0cc9:	mov    %rax,-0x8(%r14)
   0x00007fffdd4c0ccd:	mov    %rcx,(%r15)
   0x00007fffdd4c0cd0:	mov    %rax,(%r14)
   0x00007fffdd4c0cd3:	callq  0x7fffdc7e4110
   0x00007fffdd4c0cd8:	sub    $0x8,%r15
   0x00007fffdd4c0cdc:	add    $0x8,%r14
   0x00007fffdd4c0ce0:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0ce4:	mov    0x8(%r15),%rbx
   0x00007fffdd4c0ce8:	movabs $0x7fffbd8da99c,%rax
   0x00007fffdd4c0cf2:	cmp    %rax,%rcx
   0x00007fffdd4c0cf5:	jne    0x7fffdd4c0d1a
   0x00007fffdd4c0cfb:	sub    $0x10,%r14
   0x00007fffdd4c0cff:	add    $0x8,%r14
   0x00007fffdd4c0d03:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0d0d:	mov    %rcx,(%r14)
   0x00007fffdd4c0d10:	callq  0x7fffdc6cb310
   0x00007fffdd4c0d15:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0d1a:	mov    0x19(%rcx),%rax
   0x00007fffdd4c0d1e:	cmp    $0x1,%rax
   0x00007fffdd4c0d22:	je     0x7fffdd4c0d34
   0x00007fffdd4c0d28:	sub    $0x10,%r14
   0x00007fffdd4c0d2c:	mov    (%r14),%rcx
   0x00007fffdd4c0d2f:	jmpq   0x7fffdd4c100d
   0x00007fffdd4c0d34:	add    $0x8,%r15
   0x00007fffdd4c0d38:	add    $0x8,%r14
   0x00007fffdd4c0d3c:	mov    %rbx,-0x8(%r14)
   0x00007fffdd4c0d40:	mov    %rcx,(%r14)
   0x00007fffdd4c0d43:	mov    %rbx,(%r15)
   0x00007fffdd4c0d46:	callq  0x7fffdcbf1990
   0x00007fffdd4c0d4b:	sub    $0x8,%r15
   0x00007fffdd4c0d4f:	add    $0x8,%r14
   0x00007fffdd4c0d53:	mov    0x8(%r15),%rcx
   0x00007fffdd4c0d57:	mov    %rcx,(%r14)
   0x00007fffdd4c0d5a:	callq  0x7fffdcbf1990
   0x00007fffdd4c0d5f:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0d63:	mov    (%r14),%rbx
   0x00007fffdd4c0d66:	cmp    $0x1,%rcx
   0x00007fffdd4c0d6a:	je     0x7fffdd4c0d8f
   0x00007fffdd4c0d70:	sub    $0x10,%r14
   0x00007fffdd4c0d74:	cmp    $0x1,%rcx
   0x00007fffdd4c0d78:	je     0x7fffdd4c0d83
   0x00007fffdd4c0d7e:	jmpq   0x7fffdd4c0ea5
   0x00007fffdd4c0d83:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0d87:	mov    (%r14),%rbx
   0x00007fffdd4c0d8a:	jmpq   0x7fffdd4c0ecb
   0x00007fffdd4c0d8f:	sub    $0x10,%r14
   0x00007fffdd4c0d93:	cmp    $0x1,%rbx
   0x00007fffdd4c0d97:	je     0x7fffdd4c0da2
   0x00007fffdd4c0d9d:	jmpq   0x7fffdd4c0ea5
   0x00007fffdd4c0da2:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0da6:	mov    (%r14),%rbx
   0x00007fffdd4c0da9:	jmpq   0x7fffdd4c0ecb
   0x00007fffdd4c0dae:	sub    $0x8,%r14
   0x00007fffdd4c0db2:	cmp    $0x1,%rdi
   0x00007fffdd4c0db6:	je     0x7fffdd4c0dcd
   0x00007fffdd4c0dbc:	sub    $0x8,%r14
   0x00007fffdd4c0dc0:	mov    %rax,(%r14)
   0x00007fffdd4c0dc3:	callq  0x7fffdc6cb310
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c0dc8:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0dcd:	add    $0x8,%r15
   0x00007fffdd4c0dd1:	mov    %rax,-0x8(%r14)
   0x00007fffdd4c0dd5:	mov    %rcx,(%r15)
   0x00007fffdd4c0dd8:	mov    %rax,(%r14)
   0x00007fffdd4c0ddb:	callq  0x7fffdc7e4110
   0x00007fffdd4c0de0:	sub    $0x8,%r15
   0x00007fffdd4c0de4:	add    $0x8,%r14
   0x00007fffdd4c0de8:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0dec:	mov    0x8(%r15),%rbx
   0x00007fffdd4c0df0:	movabs $0x7fffbd8da99c,%rax
   0x00007fffdd4c0dfa:	cmp    %rax,%rcx
   0x00007fffdd4c0dfd:	jne    0x7fffdd4c0e22
   0x00007fffdd4c0e03:	sub    $0x10,%r14
   0x00007fffdd4c0e07:	add    $0x8,%r14
   0x00007fffdd4c0e0b:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0e15:	mov    %rcx,(%r14)
   0x00007fffdd4c0e18:	callq  0x7fffdc6cb310
   0x00007fffdd4c0e1d:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0e22:	mov    0x19(%rcx),%rax
   0x00007fffdd4c0e26:	cmp    $0x1,%rax
   0x00007fffdd4c0e2a:	je     0x7fffdd4c0e3c
   0x00007fffdd4c0e30:	sub    $0x10,%r14
   0x00007fffdd4c0e34:	mov    (%r14),%rcx
   0x00007fffdd4c0e37:	jmpq   0x7fffdd4c100d
   0x00007fffdd4c0e3c:	add    $0x8,%r15
   0x00007fffdd4c0e40:	add    $0x8,%r14
   0x00007fffdd4c0e44:	mov    %rbx,-0x8(%r14)
   0x00007fffdd4c0e48:	mov    %rcx,(%r14)
   0x00007fffdd4c0e4b:	mov    %rbx,(%r15)
   0x00007fffdd4c0e4e:	callq  0x7fffdcbf1990
   0x00007fffdd4c0e53:	sub    $0x8,%r15
   0x00007fffdd4c0e57:	add    $0x8,%r14
   0x00007fffdd4c0e5b:	mov    0x8(%r15),%rcx
   0x00007fffdd4c0e5f:	mov    %rcx,(%r14)
   0x00007fffdd4c0e62:	callq  0x7fffdcbf1990
   0x00007fffdd4c0e67:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0e6b:	mov    (%r14),%rbx
   0x00007fffdd4c0e6e:	cmp    $0x1,%rcx
   0x00007fffdd4c0e72:	je     0x7fffdd4c0e97
   0x00007fffdd4c0e78:	sub    $0x10,%r14
   0x00007fffdd4c0e7c:	cmp    $0x1,%rcx
   0x00007fffdd4c0e80:	je     0x7fffdd4c0e8b
   0x00007fffdd4c0e86:	jmpq   0x7fffdd4c0ea5
   0x00007fffdd4c0e8b:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0e8f:	mov    (%r14),%rbx
   0x00007fffdd4c0e92:	jmpq   0x7fffdd4c0ecb
   0x00007fffdd4c0e97:	sub    $0x10,%r14
   0x00007fffdd4c0e9b:	cmp    $0x1,%rbx
   0x00007fffdd4c0e9f:	je     0x7fffdd4c0ec4
   0x00007fffdd4c0ea5:	sub    $0x10,%r14
   0x00007fffdd4c0ea9:	add    $0x8,%r14
   0x00007fffdd4c0ead:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0eb7:	mov    %rcx,(%r14)
   0x00007fffdd4c0eba:	callq  0x7fffdc6cb310
   0x00007fffdd4c0ebf:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0ec4:	mov    -0x8(%r14),%rcx
   0x00007fffdd4c0ec8:	mov    (%r14),%rbx
   0x00007fffdd4c0ecb:	add    $0x8,%r15
   0x00007fffdd4c0ecf:	mov    %rcx,(%r14)
   0x00007fffdd4c0ed2:	mov    %rbx,(%r15)
   0x00007fffdd4c0ed5:	callq  0x7fffdcbf93c0
   0x00007fffdd4c0eda:	sub    $0x8,%r15
   0x00007fffdd4c0ede:	add    $0x8,%r14
   0x00007fffdd4c0ee2:	mov    0x8(%r15),%rcx
   0x00007fffdd4c0ee6:	mov    %rcx,(%r14)
   0x00007fffdd4c0ee9:	callq  0x7fffdcbf93c0
   0x00007fffdd4c0eee:	mov    (%r14),%rcx
   0x00007fffdd4c0ef1:	cmp    $0x1,%rcx
   0x00007fffdd4c0ef5:	movabs $0x1,%rcx
   0x00007fffdd4c0eff:	movabs $0x7fffbd8c03cc,%rbx
   0x00007fffdd4c0f09:	cmove  %rbx,%rcx
   0x00007fffdd4c0f0d:	mov    -0x8(%r14),%rbx
   0x00007fffdd4c0f11:	cmp    $0x1,%rbx
   0x00007fffdd4c0f15:	je     0x7fffdd4c0f81
---Type <return> to continue, or q <return> to quit---
   0x00007fffdd4c0f1b:	sub    $0x10,%r14
   0x00007fffdd4c0f1f:	cmp    $0x1,%rcx
   0x00007fffdd4c0f23:	je     0x7fffdd4c0f48
   0x00007fffdd4c0f29:	sub    $0x8,%r14
   0x00007fffdd4c0f2d:	add    $0x8,%r14
   0x00007fffdd4c0f31:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0f3b:	mov    %rcx,(%r14)
   0x00007fffdd4c0f3e:	callq  0x7fffdc6cb310
   0x00007fffdd4c0f43:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0f48:	mov    (%r14),%rcx
   0x00007fffdd4c0f4b:	mov    0x9(%rcx),%rbx
   0x00007fffdd4c0f4f:	mov    0x6(%rbx),%rbx
   0x00007fffdd4c0f53:	cmp    $0x0,%rbx
   0x00007fffdd4c0f57:	jle    0x7fffdd4c0f7c
   0x00007fffdd4c0f5d:	sub    $0x8,%r14
   0x00007fffdd4c0f61:	add    $0x8,%r14
   0x00007fffdd4c0f65:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0f6f:	mov    %rcx,(%r14)
   0x00007fffdd4c0f72:	callq  0x7fffdc6cb310
   0x00007fffdd4c0f77:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0f7c:	jmpq   0x7fffdd4c0fe2
   0x00007fffdd4c0f81:	sub    $0x10,%r14
   0x00007fffdd4c0f85:	cmp    $0x1,%rbx
   0x00007fffdd4c0f89:	je     0x7fffdd4c0fae
   0x00007fffdd4c0f8f:	sub    $0x8,%r14
   0x00007fffdd4c0f93:	add    $0x8,%r14
   0x00007fffdd4c0f97:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0fa1:	mov    %rcx,(%r14)
   0x00007fffdd4c0fa4:	callq  0x7fffdc6cb310
   0x00007fffdd4c0fa9:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0fae:	mov    (%r14),%rcx
   0x00007fffdd4c0fb1:	mov    0x9(%rcx),%rbx
   0x00007fffdd4c0fb5:	mov    0x6(%rbx),%rbx
   0x00007fffdd4c0fb9:	cmp    $0x0,%rbx
   0x00007fffdd4c0fbd:	jle    0x7fffdd4c0fe2
   0x00007fffdd4c0fc3:	sub    $0x8,%r14
   0x00007fffdd4c0fc7:	add    $0x8,%r14
   0x00007fffdd4c0fcb:	movabs $0x7fffc3518967,%rcx
   0x00007fffdd4c0fd5:	mov    %rcx,(%r14)
   0x00007fffdd4c0fd8:	callq  0x7fffdc6cb310
   0x00007fffdd4c0fdd:	jmpq   0x7fffdd4c109a
   0x00007fffdd4c0fe2:	sub    $0x8,%r14
   0x00007fffdd4c0fe6:	mov    0x11(%rcx),%rbx
   0x00007fffdd4c0fea:	mov    0x6(%rbx),%rbx
   0x00007fffdd4c0fee:	sar    $0x4,%rbx
   0x00007fffdd4c0ff2:	mov    0x9(%rcx),%rcx
   0x00007fffdd4c0ff6:	mov    0x6(%rcx),%rcx
   0x00007fffdd4c0ffa:	sar    $0x4,%rcx
   0x00007fffdd4c0ffe:	sub    %rcx,%rbx
   0x00007fffdd4c1001:	test   %rbx,%rbx
   0x00007fffdd4c1004:	jne    0x7fffdd4c1084
   0x00007fffdd4c100a:	mov    (%r14),%rcx
   0x00007fffdd4c100d:	mov    0x1f0(%r13),%rbx
   0x00007fffdd4c1014:	movabs $0x7fffc3518987,%rax
   0x00007fffdd4c101e:	mov    %rcx,0x9(%rax)
   0x00007fffdd4c1022:	lea    0x9(%rax),%rcx
   0x00007fffdd4c1026:	shr    $0x8,%rcx
   0x00007fffdd4c102a:	movabs $0x7f7fe0c3cc10,%r12
   0x00007fffdd4c1034:	rex.WX movb $0xc0,(%rcx,%r12,1)
   0x00007fffdd4c1039:	shr    $0xa,%rcx
   0x00007fffdd4c103d:	movabs $0xffffffffe06cc5a3,%r12
   0x00007fffdd4c1047:	rex.WX movb $0xc0,(%rcx,%r12,1)
   0x00007fffdd4c104c:	mov    %rbx,0x11(%rax)
   0x00007fffdd4c1050:	lea    0x11(%rax),%rbx
   0x00007fffdd4c1054:	shr    $0x8,%rbx
   0x00007fffdd4c1058:	movabs $0x7f7fe0c3cc10,%rcx
   0x00007fffdd4c1062:	rex.W movb $0xc0,(%rbx,%rcx,1)
   0x00007fffdd4c1067:	shr    $0xa,%rbx
   0x00007fffdd4c106b:	movabs $0xffffffffe06cc5a3,%rcx
   0x00007fffdd4c1075:	rex.W movb $0xc0,(%rbx,%rcx,1)
   0x00007fffdd4c107a:	callq  0x7fffdd6632e0
End of assembler dump.

Annotation: asdfasdfasdf

Author: erg
Mode: factor
Date: Wed, 25 Jul 2012 22:47:39
Plain Text |
addr = 0x7fffdd40844e
fixed_addr = 0x7fffdd40844e
addr = 0x7fffdd40844e
natural_frame_size = 16
entry_point() = 0x7fffdd408420
frame_size = 16
addr = 0x7fffdd4c107f
fixed_addr = 0x7fffdd4c107f

addr = 0x7fffdd4c107f
natural_frame_size = 0
entry_point() = 0x7fffdd4c04a0
frame_size = 16
addr = 0xc191f0
fixed_addr = 0xc191f0
failing at address = 0xc191f0
Starting low level debugger...

Annotation: git diff

Author: erg
Mode: factor
Date: Wed, 25 Jul 2012 22:50:26
Plain Text |
erg@ommegang ~/factor/vm $ [master*] git diff
diff --git a/vm/callstack.hpp b/vm/callstack.hpp
index f4fbac2..ac514fb 100755
--- a/vm/callstack.hpp
+++ b/vm/callstack.hpp
@@ -47,6 +47,7 @@ inline void factor_vm::iterate_callstack(context *ctx, Iterator &iterator, Fixup
 
        char *frame_top = (char*)ctx->callstack_top;
 
+       printf("iterating\n");
        while (frame_top < (char*)ctx->callstack_bottom)
        {
                void *addr = frame_return_address((void*)frame_top);
@@ -54,13 +55,17 @@ inline void factor_vm::iterate_callstack(context *ctx, Iterator &iterator, Fixup
                void *fixed_addr = Fixup::translated_code_block_map
                        ? (void*)fixup.translate_code((code_block*)addr)
                        : addr;
+               printf("addr = %p\n", addr);
+               printf("fixed_addr = %p\n", fixed_addr);
 
                code_block *owner = code->code_block_for_address((cell)fixed_addr);
                code_block *fixed_owner = Fixup::translated_code_block_map
                        ? owner
                        : fixup.translate_code(owner);
 
+               // This fails
                cell frame_size = fixed_owner->stack_frame_size_for_address((cell)fixed_addr);
+               printf("frame_size = %ld\n", frame_size);
 
                void *fixed_addr_for_iter = Fixup::translated_code_block_map
                        ? fixed_addr
@@ -69,6 +74,7 @@ inline void factor_vm::iterate_callstack(context *ctx, Iterator &iterator, Fixup
                iterator(frame_top, frame_size, owner, fixed_addr_for_iter);
                frame_top += frame_size;
        }
+       printf("done iterating\n\n");
 }
 
 template<typename Iterator>
diff --git a/vm/code_blocks.hpp b/vm/code_blocks.hpp
index 4f67a19..d0a602f 100644
--- a/vm/code_blocks.hpp
+++ b/vm/code_blocks.hpp
@@ -61,9 +61,13 @@ struct code_block
                        return (header >> 20) & 0xFF0;
        }
 
+       // This fails!
        cell stack_frame_size_for_address(cell addr) const
        {
                cell natural_frame_size = stack_frame_size();
+               printf("addr = %p\n", addr);
+               printf("natural_frame_size = %ld\n", natural_frame_size);
+               printf("entry_point() = %p\n", entry_point());
                /* The first instruction in a code block is the prolog safepoint,
                and a leaf procedure code block will record a frame size of zero.
                If we're seeing a stack frame in either of these cases, it's a
diff --git a/vm/code_heap.cpp b/vm/code_heap.cpp
index ad3680b..560d618 100755
--- a/vm/code_heap.cpp
+++ b/vm/code_heap.cpp
@@ -118,6 +118,11 @@ code_block *code_heap::code_block_for_address(cell address)
 {
        std::set<cell>::const_iterator blocki =
                all_blocks.upper_bound(address);
+       if(blocki == all_blocks.begin()) {
+               printf("failing at address = %p\n", address);
+               current_vm()->factorbug();
+               //current_vm()->print_callstack();
+       }
        FACTOR_ASSERT(blocki != all_blocks.begin());
        --blocki;
        code_block* found_block = (code_block*)*blocki;
diff --git a/vm/inline_cache.cpp b/vm/inline_cache.cpp
index 30e568a..20edc5a 100755
--- a/vm/inline_cache.cpp
+++ b/vm/inline_cache.cpp
@@ -17,8 +17,10 @@ void factor_vm::deallocate_inline_cache(cell return_address)
        code_block *old_block = (code_block *)old_entry_point - 1;
 
        /* Free the old PIC since we know its unreachable */
-       if(old_block->pic_p())
+       if(old_block->pic_p()) {
+               printf("freeing old_block = %p\n", old_block);
                code->free(old_block);
+       }
 }
 
 /* Figure out what kind of type check the PIC needs based on the methods

Annotation: asdf

Author: erg
Mode: factor
Date: Wed, 25 Jul 2012 22:51:27
Plain Text |
iterating
addr = 0x7fffdd40844e
fixed_addr = 0x7fffdd40844e
addr = 0x7fffdd40844e
natural_frame_size = 16
entry_point() = 0x7fffdd408420
frame_size = 16
addr = 0x7fffdd4c107f
fixed_addr = 0x7fffdd4c107f
addr = 0x7fffdd4c107f
natural_frame_size = 0
entry_point() = 0x7fffdd4c04a0
frame_size = 16
addr = 0xc191f0
fixed_addr = 0xc191f0
failing at address = 0xc191f0
Starting low level debugger...
Basic commands:
  q ^D             -- quit Factor
  c                -- continue executing Factor - NOT SAFE
  t                -- throw exception in Factor - NOT SAFE
  .s .r .c         -- print data, retain, call stacks
  help             -- full help, including advanced commands

> 

New Annotation

Summary:
Author:
Mode:
Body: