409398:	c7 45 e4 f1 65 49 00 	movl   $0x4965f1,-0x1c(%ebp)
40939f:	ba e9 65 49 00       	mov    $0x4965e9,%edx
4093a4:	0f 44 55 e4          	cmove  -0x1c(%ebp),%edx
4093a8:	eb 94                	jmp    0x40933e
4093aa:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
4093ae:	8b 46 04             	mov    0x4(%esi),%eax
4093b1:	8b 37                	mov    (%edi),%esi
4093b3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4093b6:	89 75 d4             	mov    %esi,-0x2c(%ebp)
4093b9:	8b 40 08             	mov    0x8(%eax),%eax
4093bc:	89 45 dc             	mov    %eax,-0x24(%ebp)
4093bf:	74 2b                	je     0x4093ec
4093c1:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4093c4:	33 d2                	xor    %edx,%edx
4093c6:	42                   	inc    %edx
4093c7:	3b f2                	cmp    %edx,%esi
4093c9:	0f 47 d6             	cmova  %esi,%edx
4093cc:	03 d0                	add    %eax,%edx
4093ce:	3b 51 0c             	cmp    0xc(%ecx),%edx
4093d1:	76 08                	jbe    0x4093db
4093d3:	8b 01                	mov    (%ecx),%eax
4093d5:	52                   	push   %edx
4093d6:	ff 10                	call   *(%eax)
4093d8:	8b 45 dc             	mov    -0x24(%ebp),%eax
4093db:	40                   	inc    %eax
4093dc:	85 f6                	test   %esi,%esi
4093de:	89 45 dc             	mov    %eax,-0x24(%ebp)
4093e1:	8d 46 ff             	lea    -0x1(%esi),%eax
4093e4:	0f 44 c6             	cmove  %esi,%eax
4093e7:	8b f0                	mov    %eax,%esi
4093e9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4093ec:	8b 4f 0c             	mov    0xc(%edi),%ecx
4093ef:	0f b6 45 f1          	movzbl -0xf(%ebp),%eax
4093f3:	c1 e9 03             	shr    $0x3,%ecx
4093f6:	80 e1 01             	and    $0x1,%cl
4093f9:	c6 45 f0 25          	movb   $0x25,-0x10(%ebp)
4093fd:	6a 23                	push   $0x23
4093ff:	5a                   	pop    %edx
409400:	0f 45 c2             	cmovne %edx,%eax
409403:	84 c9                	test   %cl,%cl
409405:	88 45 f1             	mov    %al,-0xf(%ebp)
409408:	8d 55 f1             	lea    -0xf(%ebp),%edx
40940b:	8d 45 f2             	lea    -0xe(%ebp),%eax
40940e:	0f 45 d0             	cmovne %eax,%edx
409411:	83 7f 08 03          	cmpl   $0x3,0x8(%edi)
409415:	75 06                	jne    0x40941d
409417:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
40941b:	eb 12                	jmp    0x40942f
40941d:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
409421:	75 04                	jne    0x409427
409423:	c6 02 2d             	movb   $0x2d,(%edx)
409426:	42                   	inc    %edx
409427:	85 f6                	test   %esi,%esi
409429:	74 04                	je     0x40942f
40942b:	c6 02 2a             	movb   $0x2a,(%edx)
40942e:	42                   	inc    %edx
40942f:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
409433:	7c 08                	jl     0x40943d
409435:	66 c7 02 2e 2a       	movw   $0x2a2e,(%edx)
40943a:	83 c2 02             	add    $0x2,%edx
40943d:	8a 45 ef             	mov    -0x11(%ebp),%al
409440:	88 02                	mov    %al,(%edx)
409442:	8a 47 04             	mov    0x4(%edi),%al
409445:	c6 42 01 00          	movb   $0x0,0x1(%edx)
409449:	88 45 ef             	mov    %al,-0x11(%ebp)
40944c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40944f:	8b 41 04             	mov    0x4(%ecx),%eax
409452:	8b 75 dc             	mov    -0x24(%ebp),%esi
409455:	8b 50 0c             	mov    0xc(%eax),%edx
409458:	8b ca                	mov    %edx,%ecx
40945a:	2b ce                	sub    %esi,%ecx
40945c:	75 1f                	jne    0x40947d
40945e:	8d 7e 01             	lea    0x1(%esi),%edi
409461:	8b c8                	mov    %eax,%ecx
409463:	3b fa                	cmp    %edx,%edi
409465:	8b 7d c8             	mov    -0x38(%ebp),%edi
409468:	76 0e                	jbe    0x409478
40946a:	8b 01                	mov    (%ecx),%eax
40946c:	8d 56 01             	lea    0x1(%esi),%edx
40946f:	52                   	push   %edx
409470:	ff 10                	call   *(%eax)
409472:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409475:	8b 41 04             	mov    0x4(%ecx),%eax
409478:	8b 48 0c             	mov    0xc(%eax),%ecx
40947b:	2b ce                	sub    %esi,%ecx
40947d:	f2 0f 10 45 08       	movsd  0x8(%ebp),%xmm0
409482:	8b 40 04             	mov    0x4(%eax),%eax
409485:	03 f0                	add    %eax,%esi
409487:	51                   	push   %ecx
409488:	51                   	push   %ecx
409489:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
40948e:	8d 45 f0             	lea    -0x10(%ebp),%eax
409491:	ff 77 10             	push   0x10(%edi)
409494:	ff 75 d4             	push   -0x2c(%ebp)
409497:	50                   	push   %eax
409498:	51                   	push   %ecx
409499:	56                   	push   %esi
40949a:	e8 70 e7 ff ff       	call   0x407c0f
40949f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4094a2:	8b d0                	mov    %eax,%edx
4094a4:	83 c4 1c             	add    $0x1c,%esp
4094a7:	89 55 d8             	mov    %edx,-0x28(%ebp)
4094aa:	8b 41 04             	mov    0x4(%ecx),%eax
4094ad:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4094b0:	8b 48 0c             	mov    0xc(%eax),%ecx
4094b3:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4094b6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4094b9:	85 d2                	test   %edx,%edx
4094bb:	78 24                	js     0x4094e1
4094bd:	8b 45 dc             	mov    -0x24(%ebp),%eax
4094c0:	03 c2                	add    %edx,%eax
4094c2:	89 45 cc             	mov    %eax,-0x34(%ebp)
4094c5:	8b 45 d0             	mov    -0x30(%ebp),%eax
4094c8:	39 45 cc             	cmp    %eax,-0x34(%ebp)
4094cb:	72 2f                	jb     0x4094fc
4094cd:	8b 55 cc             	mov    -0x34(%ebp),%edx
4094d0:	42                   	inc    %edx
4094d1:	3b d0                	cmp    %eax,%edx
4094d3:	0f 86 76 ff ff ff    	jbe    0x40944f
4094d9:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4094dc:	52                   	push   %edx
4094dd:	8b 01                	mov    (%ecx),%eax
4094df:	eb 14                	jmp    0x4094f5
4094e1:	8b 50 0c             	mov    0xc(%eax),%edx
4094e4:	8d 72 01             	lea    0x1(%edx),%esi
4094e7:	3b f2                	cmp    %edx,%esi
4094e9:	0f 86 60 ff ff ff    	jbe    0x40944f
4094ef:	8b 00                	mov    (%eax),%eax
4094f1:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4094f4:	56                   	push   %esi
4094f5:	ff 10                	call   *(%eax)
4094f7:	e9 50 ff ff ff       	jmp    0x40944c
4094fc:	8b 45 e0             	mov    -0x20(%ebp),%eax
4094ff:	84 c0                	test   %al,%al
409501:	74 2b                	je     0x40952e
409503:	83 7f 08 02          	cmpl   $0x2,0x8(%edi)
409507:	74 06                	je     0x40950f
409509:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40950d:	75 05                	jne    0x409514
40950f:	80 3e 20             	cmpb   $0x20,(%esi)
409512:	74 04                	je     0x409518
409514:	32 c0                	xor    %al,%al
409516:	eb 09                	jmp    0x409521
409518:	8a 4d ef             	mov    -0x11(%ebp),%cl
40951b:	88 4d ed             	mov    %cl,-0x13(%ebp)
40951e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409521:	8a 55 ed             	mov    -0x13(%ebp),%dl
409524:	88 56 ff             	mov    %dl,-0x1(%esi)
409527:	8b 55 d8             	mov    -0x28(%ebp),%edx
40952a:	42                   	inc    %edx
40952b:	89 55 d8             	mov    %edx,-0x28(%ebp)
40952e:	83 7f 08 03          	cmpl   $0x3,0x8(%edi)
409532:	75 44                	jne    0x409578
409534:	8b 0f                	mov    (%edi),%ecx
409536:	89 4d d0             	mov    %ecx,-0x30(%ebp)
409539:	3b ca                	cmp    %edx,%ecx
40953b:	76 38                	jbe    0x409575
40953d:	51                   	push   %ecx
40953e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409541:	e8 b6 88 01 00       	call   0x421dfc
409546:	8b 4d d8             	mov    -0x28(%ebp),%ecx
409549:	8b f0                	mov    %eax,%esi
40954b:	8b 45 d0             	mov    -0x30(%ebp),%eax
40954e:	2b c1                	sub    %ecx,%eax
409550:	51                   	push   %ecx
409551:	d1 e8                	shr    $1,%eax
409553:	03 c6                	add    %esi,%eax
409555:	56                   	push   %esi
409556:	50                   	push   %eax
409557:	e8 84 a3 03 00       	call   0x4438e0
40955c:	8a 45 ef             	mov    -0x11(%ebp),%al
40955f:	66 98                	cbtw
409561:	0f b7 c0             	movzwl %ax,%eax
409564:	50                   	push   %eax
409565:	ff 75 d8             	push   -0x28(%ebp)
409568:	ff 37                	push   (%edi)
40956a:	56                   	push   %esi
40956b:	e8 d9 78 01 00       	call   0x420e49
409570:	83 c4 1c             	add    $0x1c,%esp
409573:	eb 2e                	jmp    0x4095a3
409575:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409578:	66 83 7f 04 20       	cmpw   $0x20,0x4(%edi)
40957d:	75 04                	jne    0x409583
40957f:	84 c0                	test   %al,%al
409581:	74 1a                	je     0x40959d
409583:	80 3e 20             	cmpb   $0x20,(%esi)
409586:	75 0e                	jne    0x409596
409588:	8a 4d ef             	mov    -0x11(%ebp),%cl
40958b:	88 0e                	mov    %cl,(%esi)
40958d:	46                   	inc    %esi
40958e:	80 3e 20             	cmpb   $0x20,(%esi)
409591:	74 f8                	je     0x40958b
409593:	8b 4d e8             	mov    -0x18(%ebp),%ecx
409596:	84 c0                	test   %al,%al
409598:	74 03                	je     0x40959d
40959a:	88 46 ff             	mov    %al,-0x1(%esi)
40959d:	52                   	push   %edx
40959e:	e8 59 88 01 00       	call   0x421dfc
4095a3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4095a6:	5f                   	pop    %edi
4095a7:	33 cd                	xor    %ebp,%ecx
4095a9:	5e                   	pop    %esi
4095aa:	e8 53 64 03 00       	call   0x43fa02
4095af:	c9                   	leave
4095b0:	c2 0c 00             	ret    $0xc
4095b3:	68 d0 65 49 00       	push   $0x4965d0
4095b8:	ff 75 e4             	push   -0x1c(%ebp)
4095bb:	e8 4e 91 01 00       	call   0x42270e
4095c0:	cc                   	int3
4095c1:	55                   	push   %ebp
4095c2:	8b ec                	mov    %esp,%ebp
4095c4:	83 ec 3c             	sub    $0x3c,%esp
4095c7:	a1 94 80 4b 00       	mov    0x4b8094,%eax
4095cc:	33 c5                	xor    %ebp,%eax
4095ce:	89 45 fc             	mov    %eax,-0x4(%ebp)
4095d1:	56                   	push   %esi
4095d2:	57                   	push   %edi
4095d3:	8b 7d 10             	mov    0x10(%ebp),%edi
4095d6:	8b f1                	mov    %ecx,%esi
4095d8:	32 c9                	xor    %cl,%cl
4095da:	89 75 dc             	mov    %esi,-0x24(%ebp)
4095dd:	89 7d c4             	mov    %edi,-0x3c(%ebp)
4095e0:	88 4d ee             	mov    %cl,-0x12(%ebp)
4095e3:	8a 47 14             	mov    0x14(%edi),%al
4095e6:	88 45 ef             	mov    %al,-0x11(%ebp)
4095e9:	88 45 e8             	mov    %al,-0x18(%ebp)
4095ec:	3c 46                	cmp    $0x46,%al
4095ee:	7f 57                	jg     0x409647
4095f0:	74 4f                	je     0x409641
4095f2:	84 c0                	test   %al,%al
4095f4:	74 45                	je     0x40963b
4095f6:	3c 41                	cmp    $0x41,%al
4095f8:	74 08                	je     0x409602
4095fa:	3c 45                	cmp    $0x45,%al
4095fc:	0f 85 40 03 00 00    	jne    0x409942
409602:	b1 01                	mov    $0x1,%cl
409604:	88 4d ee             	mov    %cl,-0x12(%ebp)
409607:	f2 0f 10 45 08       	movsd  0x8(%ebp),%xmm0
40960c:	32 c9                	xor    %cl,%cl
40960e:	51                   	push   %ecx
40960f:	51                   	push   %ecx
409610:	89 4d d8             	mov    %ecx,-0x28(%ebp)
409613:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
409618:	e8 f7 a1 04 00       	call   0x453814
40961d:	f2 0f 10 45 08       	movsd  0x8(%ebp),%xmm0
409622:	59                   	pop    %ecx
409623:	59                   	pop    %ecx
409624:	85 c0                	test   %eax,%eax
409626:	74 39                	je     0x409661
409628:	0f 57 05 10 69 49 00 	xorps  0x496910,%xmm0
40962f:	b0 2d                	mov    $0x2d,%al
409631:	89 45 d8             	mov    %eax,-0x28(%ebp)
409634:	f2 0f 11 45 08       	movsd  %xmm0,0x8(%ebp)
409639:	eb 43                	jmp    0x40967e
40963b:	c6 45 ef 67          	movb   $0x67,-0x11(%ebp)
40963f:	eb c6                	jmp    0x409607
409641:	c6 45 ef 66          	movb   $0x66,-0x11(%ebp)
409645:	eb bb                	jmp    0x409602
409647:	3c 47                	cmp    $0x47,%al
409649:	74 b7                	je     0x409602
40964b:	3c 61                	cmp    $0x61,%al
40964d:	74 b8                	je     0x409607
40964f:	3c 64                	cmp    $0x64,%al
409651:	0f 8e eb 02 00 00    	jle    0x409942
409657:	3c 67                	cmp    $0x67,%al
409659:	0f 8f e3 02 00 00    	jg     0x409942
40965f:	eb a6                	jmp    0x409607
409661:	f6 47 0c 01          	testb  $0x1,0xc(%edi)
409665:	74 14                	je     0x40967b
409667:	8b 47 0c             	mov    0xc(%edi),%eax
40966a:	d1 e8                	shr    $1,%eax
40966c:	24 01                	and    $0x1,%al
40966e:	f6 d8                	neg    %al
409670:	1a c0                	sbb    %al,%al
409672:	24 0b                	and    $0xb,%al
409674:	04 20                	add    $0x20,%al
409676:	89 45 d8             	mov    %eax,-0x28(%ebp)
409679:	eb 03                	jmp    0x40967e
40967b:	8b 45 d8             	mov    -0x28(%ebp),%eax
40967e:	51                   	push   %ecx
40967f:	51                   	push   %ecx
409680:	88 45 e7             	mov    %al,-0x19(%ebp)
409683:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
409688:	e8 4e e7 ff ff       	call   0x407ddb
40968d:	59                   	pop    %ecx
40968e:	59                   	pop    %ecx
40968f:	84 c0                	test   %al,%al
409691:	74 53                	je     0x4096e6
409693:	8a 45 ee             	mov    -0x12(%ebp),%al
409696:	b9 e0 65 49 00       	mov    $0x4965e0,%ecx
40969b:	84 c0                	test   %al,%al
40969d:	ba d8 65 49 00       	mov    $0x4965d8,%edx
4096a2:	0f 44 d1             	cmove  %ecx,%edx
4096a5:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4096a8:	84 c9                	test   %cl,%cl
4096aa:	75 12                	jne    0x4096be
4096ac:	84 c0                	test   %al,%al
4096ae:	c7 45 e8 e1 65 49 00 	movl   $0x4965e1,-0x18(%ebp)
4096b5:	ba d9 65 49 00       	mov    $0x4965d9,%edx
4096ba:	0f 44 55 e8          	cmove  -0x18(%ebp),%edx
4096be:	33 c0                	xor    %eax,%eax
4096c0:	84 c9                	test   %cl,%cl
4096c2:	57                   	push   %edi
4096c3:	0f 95 c0             	setne  %al
4096c6:	8b ce                	mov    %esi,%ecx
4096c8:	83 c0 03             	add    $0x3,%eax
4096cb:	50                   	push   %eax
4096cc:	52                   	push   %edx
4096cd:	e8 6c 0e 00 00       	call   0x40a53e
4096d2:	8b c8                	mov    %eax,%ecx
4096d4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4096d7:	84 c0                	test   %al,%al
4096d9:	0f 84 53 02 00 00    	je     0x409932
4096df:	88 01                	mov    %al,(%ecx)
4096e1:	e9 4c 02 00 00       	jmp    0x409932
4096e6:	f2 0f 10 45 08       	movsd  0x8(%ebp),%xmm0
4096eb:	51                   	push   %ecx
4096ec:	51                   	push   %ecx
4096ed:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
4096f2:	e8 4e e6 ff ff       	call   0x407d45
4096f7:	59                   	pop    %ecx
4096f8:	59                   	pop    %ecx
4096f9:	84 c0                	test   %al,%al
4096fb:	74 2d                	je     0x40972a
4096fd:	8a 45 ee             	mov    -0x12(%ebp),%al
409700:	b9 f0 65 49 00       	mov    $0x4965f0,%ecx
409705:	84 c0                	test   %al,%al
409707:	ba e8 65 49 00       	mov    $0x4965e8,%edx
40970c:	0f 44 d1             	cmove  %ecx,%edx
40970f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
409712:	84 c9                	test   %cl,%cl
409714:	75 a8                	jne    0x4096be
409716:	84 c0                	test   %al,%al
409718:	c7 45 e8 f1 65 49 00 	movl   $0x4965f1,-0x18(%ebp)
40971f:	ba e9 65 49 00       	mov    $0x4965e9,%edx
409724:	0f 44 55 e8          	cmove  -0x18(%ebp),%edx
409728:	eb 94                	jmp    0x4096be
40972a:	80 7d d8 00          	cmpb   $0x0,-0x28(%ebp)
40972e:	8b 46 04             	mov    0x4(%esi),%eax
409731:	8b 37                	mov    (%edi),%esi
409733:	89 75 d0             	mov    %esi,-0x30(%ebp)
409736:	8b 50 08             	mov    0x8(%eax),%edx
409739:	89 55 e0             	mov    %edx,-0x20(%ebp)
40973c:	74 27                	je     0x409765
40973e:	33 d2                	xor    %edx,%edx
409740:	8b c8                	mov    %eax,%ecx
409742:	42                   	inc    %edx
409743:	3b f2                	cmp    %edx,%esi
409745:	0f 47 d6             	cmova  %esi,%edx
409748:	03 55 e0             	add    -0x20(%ebp),%edx