4035ef:	0f 42 f8             	cmovb  %eax,%edi
4035f2:	33 c9                	xor    %ecx,%ecx
4035f4:	8b c7                	mov    %edi,%eax
4035f6:	83 c0 01             	add    $0x1,%eax
4035f9:	0f 92 c1             	setb   %cl
4035fc:	f7 d9                	neg    %ecx
4035fe:	0b c8                	or     %eax,%ecx
403600:	51                   	push   %ecx
403601:	8b ce                	mov    %esi,%ecx
403603:	e8 08 eb ff ff       	call   0x402110
403608:	8d 0c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ecx
40360f:	89 06                	mov    %eax,(%esi)
403611:	51                   	push   %ecx
403612:	ff 75 fc             	push   -0x4(%ebp)
403615:	89 5e 10             	mov    %ebx,0x10(%esi)
403618:	50                   	push   %eax
403619:	89 7e 14             	mov    %edi,0x14(%esi)
40361c:	e8 ff 7f 06 00       	call   0x46b620
403621:	83 c4 0c             	add    $0xc,%esp
403624:	8b c6                	mov    %esi,%eax
403626:	5f                   	pop    %edi
403627:	5e                   	pop    %esi
403628:	5b                   	pop    %ebx
403629:	8b e5                	mov    %ebp,%esp
40362b:	5d                   	pop    %ebp
40362c:	c2 04 00             	ret    $0x4
40362f:	e8 ac dd ff ff       	call   0x4013e0
403634:	cc                   	int3
403635:	cc                   	int3
403636:	cc                   	int3
403637:	cc                   	int3
403638:	cc                   	int3
403639:	cc                   	int3
40363a:	cc                   	int3
40363b:	cc                   	int3
40363c:	cc                   	int3
40363d:	cc                   	int3
40363e:	cc                   	int3
40363f:	cc                   	int3
403640:	55                   	push   %ebp
403641:	8b ec                	mov    %esp,%ebp
403643:	56                   	push   %esi
403644:	8b 75 08             	mov    0x8(%ebp),%esi
403647:	3b ca                	cmp    %edx,%ecx
403649:	74 48                	je     0x403693
40364b:	8b c6                	mov    %esi,%eax
40364d:	2b c1                	sub    %ecx,%eax
40364f:	57                   	push   %edi
403650:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403656:	33 ff                	xor    %edi,%edi
403658:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40365f:	c7 44 08 14 00 00 00 	movl   $0x0,0x14(%eax,%ecx,1)
403666:	00
403667:	0f 10 01             	movups (%ecx),%xmm0
40366a:	0f 11 06             	movups %xmm0,(%esi)
40366d:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
403672:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
403677:	83 c6 18             	add    $0x18,%esi
40367a:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
403681:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
403688:	66 89 39             	mov    %di,(%ecx)
40368b:	83 c1 18             	add    $0x18,%ecx
40368e:	3b ca                	cmp    %edx,%ecx
403690:	75 be                	jne    0x403650
403692:	5f                   	pop    %edi
403693:	51                   	push   %ecx
403694:	8b d6                	mov    %esi,%edx
403696:	8b ce                	mov    %esi,%ecx
403698:	e8 33 fa ff ff       	call   0x4030d0
40369d:	83 c4 04             	add    $0x4,%esp
4036a0:	8b c6                	mov    %esi,%eax
4036a2:	5e                   	pop    %esi
4036a3:	5d                   	pop    %ebp
4036a4:	c3                   	ret
4036a5:	cc                   	int3
4036a6:	cc                   	int3
4036a7:	cc                   	int3
4036a8:	cc                   	int3
4036a9:	cc                   	int3
4036aa:	cc                   	int3
4036ab:	cc                   	int3
4036ac:	cc                   	int3
4036ad:	cc                   	int3
4036ae:	cc                   	int3
4036af:	cc                   	int3
4036b0:	8b 51 04             	mov    0x4(%ecx),%edx
4036b3:	51                   	push   %ecx
4036b4:	8b 09                	mov    (%ecx),%ecx
4036b6:	e8 15 fa ff ff       	call   0x4030d0
4036bb:	59                   	pop    %ecx
4036bc:	c3                   	ret
4036bd:	cc                   	int3
4036be:	cc                   	int3
4036bf:	cc                   	int3
4036c0:	68 f0 f2 4a 00       	push   $0x4af2f0
4036c5:	e8 70 50 06 00       	call   0x46873a
4036ca:	cc                   	int3
4036cb:	cc                   	int3
4036cc:	cc                   	int3
4036cd:	cc                   	int3
4036ce:	cc                   	int3
4036cf:	cc                   	int3
4036d0:	56                   	push   %esi
4036d1:	8b f1                	mov    %ecx,%esi
4036d3:	8b 4e 14             	mov    0x14(%esi),%ecx
4036d6:	83 f9 10             	cmp    $0x10,%ecx
4036d9:	72 27                	jb     0x403702
4036db:	8b 06                	mov    (%esi),%eax
4036dd:	41                   	inc    %ecx
4036de:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4036e4:	72 12                	jb     0x4036f8
4036e6:	8b 50 fc             	mov    -0x4(%eax),%edx
4036e9:	83 c1 23             	add    $0x23,%ecx
4036ec:	2b c2                	sub    %edx,%eax
4036ee:	83 c0 fc             	add    $0xfffffffc,%eax
4036f1:	83 f8 1f             	cmp    $0x1f,%eax
4036f4:	77 1f                	ja     0x403715
4036f6:	8b c2                	mov    %edx,%eax
4036f8:	51                   	push   %ecx
4036f9:	50                   	push   %eax
4036fa:	e8 09 63 06 00       	call   0x469a08
4036ff:	83 c4 08             	add    $0x8,%esp
403702:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
403709:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403710:	c6 06 00             	movb   $0x0,(%esi)
403713:	5e                   	pop    %esi
403714:	c3                   	ret
403715:	e8 17 5f 07 00       	call   0x479631
40371a:	cc                   	int3
40371b:	cc                   	int3
40371c:	cc                   	int3
40371d:	cc                   	int3
40371e:	cc                   	int3
40371f:	cc                   	int3
403720:	55                   	push   %ebp
403721:	8b ec                	mov    %esp,%ebp
403723:	51                   	push   %ecx
403724:	53                   	push   %ebx
403725:	8b 5d 08             	mov    0x8(%ebp),%ebx
403728:	8b c3                	mov    %ebx,%eax
40372a:	56                   	push   %esi
40372b:	8b f1                	mov    %ecx,%esi
40372d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403730:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403736:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40373d:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
403744:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
403748:	72 05                	jb     0x40374f
40374a:	8b 03                	mov    (%ebx),%eax
40374c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40374f:	8b 5b 10             	mov    0x10(%ebx),%ebx
403752:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
403758:	0f 87 ab 00 00 00    	ja     0x403809
40375e:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403765:	83 fb 10             	cmp    $0x10,%ebx
403768:	73 19                	jae    0x403783
40376a:	6a 10                	push   $0x10
40376c:	50                   	push   %eax
40376d:	56                   	push   %esi
40376e:	89 5e 10             	mov    %ebx,0x10(%esi)
403771:	e8 aa 7e 06 00       	call   0x46b620
403776:	83 c4 0c             	add    $0xc,%esp
403779:	8b c6                	mov    %esi,%eax
40377b:	5e                   	pop    %esi
40377c:	5b                   	pop    %ebx
40377d:	8b e5                	mov    %ebp,%esp
40377f:	5d                   	pop    %ebp
403780:	c2 04 00             	ret    $0x4
403783:	57                   	push   %edi
403784:	8b fb                	mov    %ebx,%edi
403786:	83 cf 0f             	or     $0xf,%edi
403789:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40378f:	76 27                	jbe    0x4037b8
403791:	b9 00 00 00 80       	mov    $0x80000000,%ecx
403796:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40379b:	83 c1 23             	add    $0x23,%ecx
40379e:	51                   	push   %ecx
40379f:	e8 34 62 06 00       	call   0x4699d8
4037a4:	8b c8                	mov    %eax,%ecx
4037a6:	83 c4 04             	add    $0x4,%esp
4037a9:	85 c9                	test   %ecx,%ecx
4037ab:	74 66                	je     0x403813
4037ad:	8d 41 23             	lea    0x23(%ecx),%eax
4037b0:	83 e0 e0             	and    $0xffffffe0,%eax
4037b3:	89 48 fc             	mov    %ecx,-0x4(%eax)
4037b6:	eb 2e                	jmp    0x4037e6
4037b8:	b8 16 00 00 00       	mov    $0x16,%eax
4037bd:	3b f8                	cmp    %eax,%edi
4037bf:	0f 42 f8             	cmovb  %eax,%edi
4037c2:	8d 47 01             	lea    0x1(%edi),%eax
4037c5:	3d 00 10 00 00       	cmp    $0x1000,%eax
4037ca:	72 09                	jb     0x4037d5
4037cc:	8d 48 23             	lea    0x23(%eax),%ecx
4037cf:	3b c8                	cmp    %eax,%ecx
4037d1:	76 3b                	jbe    0x40380e
4037d3:	eb c9                	jmp    0x40379e
4037d5:	85 c0                	test   %eax,%eax
4037d7:	74 0b                	je     0x4037e4
4037d9:	50                   	push   %eax
4037da:	e8 f9 61 06 00       	call   0x4699d8
4037df:	83 c4 04             	add    $0x4,%esp
4037e2:	eb 02                	jmp    0x4037e6
4037e4:	33 c0                	xor    %eax,%eax
4037e6:	8d 4b 01             	lea    0x1(%ebx),%ecx
4037e9:	89 06                	mov    %eax,(%esi)
4037eb:	51                   	push   %ecx
4037ec:	ff 75 fc             	push   -0x4(%ebp)
4037ef:	89 5e 10             	mov    %ebx,0x10(%esi)
4037f2:	50                   	push   %eax
4037f3:	89 7e 14             	mov    %edi,0x14(%esi)
4037f6:	e8 25 7e 06 00       	call   0x46b620
4037fb:	83 c4 0c             	add    $0xc,%esp
4037fe:	8b c6                	mov    %esi,%eax
403800:	5f                   	pop    %edi
403801:	5e                   	pop    %esi
403802:	5b                   	pop    %ebx
403803:	8b e5                	mov    %ebp,%esp
403805:	5d                   	pop    %ebp
403806:	c2 04 00             	ret    $0x4
403809:	e8 d2 db ff ff       	call   0x4013e0
40380e:	e8 2d db ff ff       	call   0x401340
403813:	e8 19 5e 07 00       	call   0x479631
403818:	cc                   	int3
403819:	cc                   	int3
40381a:	cc                   	int3
40381b:	cc                   	int3
40381c:	cc                   	int3
40381d:	cc                   	int3
40381e:	cc                   	int3
40381f:	cc                   	int3
403820:	8b c1                	mov    %ecx,%eax
403822:	c3                   	ret
403823:	cc                   	int3
403824:	cc                   	int3
403825:	cc                   	int3
403826:	cc                   	int3
403827:	cc                   	int3
403828:	cc                   	int3
403829:	cc                   	int3
40382a:	cc                   	int3
40382b:	cc                   	int3
40382c:	cc                   	int3
40382d:	cc                   	int3
40382e:	cc                   	int3
40382f:	cc                   	int3
403830:	55                   	push   %ebp
403831:	8b ec                	mov    %esp,%ebp
403833:	51                   	push   %ecx
403834:	8b 45 08             	mov    0x8(%ebp),%eax
403837:	53                   	push   %ebx
403838:	8b d9                	mov    %ecx,%ebx
40383a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40383d:	56                   	push   %esi
40383e:	8b 33                	mov    (%ebx),%esi
403840:	8b 76 04             	mov    0x4(%esi),%esi
403843:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403847:	75 33                	jne    0x40387c
403849:	57                   	push   %edi
40384a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
403850:	ff 76 08             	push   0x8(%esi)
403853:	8b cb                	mov    %ebx,%ecx
403855:	50                   	push   %eax
403856:	e8 35 00 00 00       	call   0x403890
40385b:	8b fe                	mov    %esi,%edi
40385d:	8b 36                	mov    (%esi),%esi
40385f:	8d 4f 10             	lea    0x10(%edi),%ecx
403862:	e8 19 03 00 00       	call   0x403b80
403867:	6a 40                	push   $0x40
403869:	57                   	push   %edi
40386a:	e8 99 61 06 00       	call   0x469a08
40386f:	8b 45 fc             	mov    -0x4(%ebp),%eax
403872:	83 c4 08             	add    $0x8,%esp
403875:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403879:	74 d5                	je     0x403850
40387b:	5f                   	pop    %edi
40387c:	6a 40                	push   $0x40
40387e:	ff 33                	push   (%ebx)
403880:	e8 83 61 06 00       	call   0x469a08
403885:	83 c4 08             	add    $0x8,%esp
403888:	5e                   	pop    %esi
403889:	5b                   	pop    %ebx
40388a:	8b e5                	mov    %ebp,%esp
40388c:	5d                   	pop    %ebp
40388d:	c2 04 00             	ret    $0x4
403890:	55                   	push   %ebp
403891:	8b ec                	mov    %esp,%ebp
403893:	51                   	push   %ecx
403894:	8b 45 08             	mov    0x8(%ebp),%eax
403897:	53                   	push   %ebx
403898:	56                   	push   %esi
403899:	8b 75 0c             	mov    0xc(%ebp),%esi
40389c:	8b d9                	mov    %ecx,%ebx
40389e:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038a1:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4038a5:	75 2d                	jne    0x4038d4
4038a7:	57                   	push   %edi
4038a8:	ff 76 08             	push   0x8(%esi)
4038ab:	8b cb                	mov    %ebx,%ecx
4038ad:	50                   	push   %eax
4038ae:	e8 dd ff ff ff       	call   0x403890
4038b3:	8b fe                	mov    %esi,%edi
4038b5:	8b 36                	mov    (%esi),%esi
4038b7:	8d 4f 10             	lea    0x10(%edi),%ecx
4038ba:	e8 c1 02 00 00       	call   0x403b80
4038bf:	6a 40                	push   $0x40
4038c1:	57                   	push   %edi
4038c2:	e8 41 61 06 00       	call   0x469a08
4038c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4038ca:	83 c4 08             	add    $0x8,%esp
4038cd:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4038d1:	74 d5                	je     0x4038a8
4038d3:	5f                   	pop    %edi
4038d4:	5e                   	pop    %esi
4038d5:	5b                   	pop    %ebx
4038d6:	8b e5                	mov    %ebp,%esp
4038d8:	5d                   	pop    %ebp
4038d9:	c2 08 00             	ret    $0x8
4038dc:	cc                   	int3
4038dd:	cc                   	int3
4038de:	cc                   	int3
4038df:	cc                   	int3
4038e0:	55                   	push   %ebp
4038e1:	8b ec                	mov    %esp,%ebp
4038e3:	51                   	push   %ecx
4038e4:	8b 55 08             	mov    0x8(%ebp),%edx
4038e7:	53                   	push   %ebx
4038e8:	8b d9                	mov    %ecx,%ebx
4038ea:	57                   	push   %edi
4038eb:	8b 7d 10             	mov    0x10(%ebp),%edi
4038ee:	8b 03                	mov    (%ebx),%eax
4038f0:	ff 43 04             	incl   0x4(%ebx)
4038f3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038f6:	89 57 04             	mov    %edx,0x4(%edi)
4038f9:	3b d0                	cmp    %eax,%edx
4038fb:	75 16                	jne    0x403913
4038fd:	89 38                	mov    %edi,(%eax)
4038ff:	89 78 04             	mov    %edi,0x4(%eax)
403902:	89 78 08             	mov    %edi,0x8(%eax)
403905:	8b c7                	mov    %edi,%eax
403907:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
40390b:	5f                   	pop    %edi
40390c:	5b                   	pop    %ebx
40390d:	8b e5                	mov    %ebp,%esp
40390f:	5d                   	pop    %ebp
403910:	c2 0c 00             	ret    $0xc
403913:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403917:	75 0d                	jne    0x403926
403919:	89 7a 08             	mov    %edi,0x8(%edx)
40391c:	3b 50 08             	cmp    0x8(%eax),%edx
40391f:	75 0d                	jne    0x40392e