4125b6:	5d                   	pop    %ebp
4125b7:	c2 08 00             	ret    $0x8
4125ba:	8b 46 04             	mov    0x4(%esi),%eax
4125bd:	8b 48 04             	mov    0x4(%eax),%ecx
4125c0:	e8 f6 63 05 00       	call   0x4689bb
4125c5:	eb bb                	jmp    0x412582
4125c7:	55                   	push   %ebp
4125c8:	8b ec                	mov    %esp,%ebp
4125ca:	83 ec 38             	sub    $0x38,%esp
4125cd:	53                   	push   %ebx
4125ce:	56                   	push   %esi
4125cf:	8b 75 08             	mov    0x8(%ebp),%esi
4125d2:	33 db                	xor    %ebx,%ebx
4125d4:	57                   	push   %edi
4125d5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4125d8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4125db:	8b 46 04             	mov    0x4(%esi),%eax
4125de:	8b 78 04             	mov    0x4(%eax),%edi
4125e1:	8b cf                	mov    %edi,%ecx
4125e3:	83 7f 0c 0e          	cmpl   $0xe,0xc(%edi)
4125e7:	0f 84 df 45 03 00    	je     0x446bcc
4125ed:	6a 02                	push   $0x2
4125ef:	58                   	pop    %eax
4125f0:	89 45 08             	mov    %eax,0x8(%ebp)
4125f3:	e8 9f 73 ff ff       	call   0x409997
4125f8:	8b 4f 08             	mov    0x8(%edi),%ecx
4125fb:	8b 01                	mov    (%ecx),%eax
4125fd:	89 45 d8             	mov    %eax,-0x28(%ebp)
412600:	8b 41 04             	mov    0x4(%ecx),%eax
412603:	89 45 dc             	mov    %eax,-0x24(%ebp)
412606:	8b 41 08             	mov    0x8(%ecx),%eax
412609:	89 45 e0             	mov    %eax,-0x20(%ebp)
41260c:	8b 41 0c             	mov    0xc(%ecx),%eax
41260f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
412612:	89 45 e4             	mov    %eax,-0x1c(%ebp)
412615:	ff 00                	incl   (%eax)
412617:	8b 01                	mov    (%ecx),%eax
412619:	89 45 e8             	mov    %eax,-0x18(%ebp)
41261c:	8b 41 04             	mov    0x4(%ecx),%eax
41261f:	89 45 ec             	mov    %eax,-0x14(%ebp)
412622:	8b 41 08             	mov    0x8(%ecx),%eax
412625:	89 45 f0             	mov    %eax,-0x10(%ebp)
412628:	8b 41 0c             	mov    0xc(%ecx),%eax
41262b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41262e:	ff 00                	incl   (%eax)
412630:	8b 45 08             	mov    0x8(%ebp),%eax
412633:	a8 02                	test   $0x2,%al
412635:	74 11                	je     0x412648
412637:	83 e0 fd             	and    $0xfffffffd,%eax
41263a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41263d:	89 45 08             	mov    %eax,0x8(%ebp)
412640:	e8 1f 34 ff ff       	call   0x405a64
412645:	8b 45 08             	mov    0x8(%ebp),%eax
412648:	a8 01                	test   $0x1,%al
41264a:	75 5a                	jne    0x4126a6
41264c:	8b 7d fc             	mov    -0x4(%ebp),%edi
41264f:	8d 45 e8             	lea    -0x18(%ebp),%eax
412652:	50                   	push   %eax
412653:	8b cf                	mov    %edi,%ecx
412655:	e8 63 79 ff ff       	call   0x409fbd
41265a:	85 c0                	test   %eax,%eax
41265c:	0f 84 80 45 03 00    	je     0x446be2
412662:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
412666:	8b c3                	mov    %ebx,%eax
412668:	77 46                	ja     0x4126b0
41266a:	8b 4e 04             	mov    0x4(%esi),%ecx
41266d:	50                   	push   %eax
41266e:	8d 45 e8             	lea    -0x18(%ebp),%eax
412671:	50                   	push   %eax
412672:	8b 09                	mov    (%ecx),%ecx
412674:	e8 23 76 ff ff       	call   0x409c9c
412679:	50                   	push   %eax
41267a:	e8 a8 04 ff ff       	call   0x402b27
41267f:	8b 75 0c             	mov    0xc(%ebp),%esi
412682:	8b f8                	mov    %eax,%edi
412684:	8b ce                	mov    %esi,%ecx
412686:	e8 95 73 ff ff       	call   0x409a20
41268b:	33 c0                	xor    %eax,%eax
41268d:	89 3e                	mov    %edi,(%esi)
41268f:	40                   	inc    %eax
412690:	89 46 0c             	mov    %eax,0xc(%esi)
412693:	8d 4d e8             	lea    -0x18(%ebp),%ecx
412696:	e8 c9 33 ff ff       	call   0x405a64
41269b:	5f                   	pop    %edi
41269c:	5e                   	pop    %esi
41269d:	8b c3                	mov    %ebx,%eax
41269f:	5b                   	pop    %ebx
4126a0:	8b e5                	mov    %ebp,%esp
4126a2:	5d                   	pop    %ebp
4126a3:	c2 08 00             	ret    $0x8
4126a6:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4126a9:	e8 b6 33 ff ff       	call   0x405a64
4126ae:	eb 9c                	jmp    0x41264c
4126b0:	8b 46 04             	mov    0x4(%esi),%eax
4126b3:	8b 48 08             	mov    0x8(%eax),%ecx
4126b6:	e8 00 63 05 00       	call   0x4689bb
4126bb:	eb ad                	jmp    0x41266a
4126bd:	55                   	push   %ebp
4126be:	8b ec                	mov    %esp,%ebp
4126c0:	53                   	push   %ebx
4126c1:	56                   	push   %esi
4126c2:	8b 75 08             	mov    0x8(%ebp),%esi
4126c5:	33 db                	xor    %ebx,%ebx
4126c7:	57                   	push   %edi
4126c8:	6a 05                	push   $0x5
4126ca:	5f                   	pop    %edi
4126cb:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
4126cf:	0f 87 35 45 03 00    	ja     0x446c0a
4126d5:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
4126d9:	77 25                	ja     0x412700
4126db:	53                   	push   %ebx
4126dc:	57                   	push   %edi
4126dd:	e8 79 03 ff ff       	call   0x402a5b
4126e2:	8b 75 0c             	mov    0xc(%ebp),%esi
4126e5:	8b f8                	mov    %eax,%edi
4126e7:	8b ce                	mov    %esi,%ecx
4126e9:	e8 32 73 ff ff       	call   0x409a20
4126ee:	89 3e                	mov    %edi,(%esi)
4126f0:	33 c0                	xor    %eax,%eax
4126f2:	5f                   	pop    %edi
4126f3:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4126fa:	5e                   	pop    %esi
4126fb:	5b                   	pop    %ebx
4126fc:	5d                   	pop    %ebp
4126fd:	c2 08 00             	ret    $0x8
412700:	8b 46 04             	mov    0x4(%esi),%eax
412703:	8b 08                	mov    (%eax),%ecx
412705:	e8 92 75 ff ff       	call   0x409c9c
41270a:	8b f8                	mov    %eax,%edi
41270c:	eb cd                	jmp    0x4126db
41270e:	55                   	push   %ebp
41270f:	8b ec                	mov    %esp,%ebp
412711:	83 ec 68             	sub    $0x68,%esp
412714:	56                   	push   %esi
412715:	8b 75 08             	mov    0x8(%ebp),%esi
412718:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41271b:	8b 56 04             	mov    0x4(%esi),%edx
41271e:	8b 02                	mov    (%edx),%eax
412720:	83 78 0c 0b          	cmpl   $0xb,0xc(%eax)
412724:	0f 84 f2 44 03 00    	je     0x446c1c
41272a:	53                   	push   %ebx
41272b:	57                   	push   %edi
41272c:	6a 08                	push   $0x8
41272e:	33 db                	xor    %ebx,%ebx
412730:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
412734:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
412738:	5f                   	pop    %edi
412739:	76 2d                	jbe    0x412768
41273b:	8b 42 04             	mov    0x4(%edx),%eax
41273e:	89 45 f8             	mov    %eax,-0x8(%ebp)
412741:	83 78 0c 0a          	cmpl   $0xa,0xc(%eax)
412745:	0f 84 13 45 03 00    	je     0x446c5e
41274b:	8b c8                	mov    %eax,%ecx
41274d:	88 5d ff             	mov    %bl,-0x1(%ebp)
412750:	e8 47 75 ff ff       	call   0x409c9c
412755:	8b f8                	mov    %eax,%edi
412757:	83 ff 10             	cmp    $0x10,%edi
41275a:	0f 8f a8 00 00 00    	jg     0x412808
412760:	85 ff                	test   %edi,%edi
412762:	0f 88 a8 00 00 00    	js     0x412810
412768:	8b 46 04             	mov    0x4(%esi),%eax
41276b:	8b 08                	mov    (%eax),%ecx
41276d:	83 79 0c 07          	cmpl   $0x7,0xc(%ecx)
412771:	0f 84 00 45 03 00    	je     0x446c77
412777:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
41277b:	76 16                	jbe    0x412793
41277d:	8b 70 04             	mov    0x4(%eax),%esi
412780:	8b ce                	mov    %esi,%ecx
412782:	e8 99 72 ff ff       	call   0x409a20
412787:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
41278e:	89 1e                	mov    %ebx,(%esi)
412790:	8b 75 08             	mov    0x8(%ebp),%esi
412793:	8b 4d f4             	mov    -0xc(%ebp),%ecx
412796:	8d 45 e0             	lea    -0x20(%ebp),%eax
412799:	50                   	push   %eax
41279a:	56                   	push   %esi
41279b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41279e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4127a1:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
4127a8:	e8 15 05 00 00       	call   0x412cc2
4127ad:	83 7d ec 03          	cmpl   $0x3,-0x14(%ebp)
4127b1:	0f 84 d5 44 03 00    	je     0x446c8c
4127b7:	8b 46 04             	mov    0x4(%esi),%eax
4127ba:	8b 08                	mov    (%eax),%ecx
4127bc:	e8 85 75 ff ff       	call   0x409d46
4127c1:	8b f2                	mov    %edx,%esi
4127c3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4127c6:	38 5d ff             	cmp    %bl,-0x1(%ebp)
4127c9:	0f 85 db 44 03 00    	jne    0x446caa
4127cf:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4127d2:	e8 49 72 ff ff       	call   0x409a20
4127d7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4127da:	38 5d ff             	cmp    %bl,-0x1(%ebp)
4127dd:	0f 85 e4 44 03 00    	jne    0x446cc7
4127e3:	56                   	push   %esi
4127e4:	50                   	push   %eax
4127e5:	8b d7                	mov    %edi,%edx
4127e7:	8d 4d 98             	lea    -0x68(%ebp),%ecx
4127ea:	e8 82 d5 00 00       	call   0x41fd71
4127ef:	59                   	pop    %ecx
4127f0:	59                   	pop    %ecx
4127f1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4127f4:	8d 45 98             	lea    -0x68(%ebp),%eax
4127f7:	50                   	push   %eax
4127f8:	e8 fb 73 ff ff       	call   0x409bf8
4127fd:	5f                   	pop    %edi
4127fe:	5b                   	pop    %ebx
4127ff:	33 c0                	xor    %eax,%eax
412801:	5e                   	pop    %esi
412802:	8b e5                	mov    %ebp,%esp
412804:	5d                   	pop    %ebp
412805:	c2 08 00             	ret    $0x8
412808:	6a 10                	push   $0x10
41280a:	5f                   	pop    %edi
41280b:	e9 58 ff ff ff       	jmp    0x412768
412810:	8b fb                	mov    %ebx,%edi
412812:	e9 51 ff ff ff       	jmp    0x412768
412817:	55                   	push   %ebp
412818:	8b ec                	mov    %esp,%ebp
41281a:	83 e4 f8             	and    $0xfffffff8,%esp
41281d:	83 ec 44             	sub    $0x44,%esp
412820:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
412825:	53                   	push   %ebx
412826:	56                   	push   %esi
412827:	57                   	push   %edi
412828:	8b f9                	mov    %ecx,%edi
41282a:	8b 4d 08             	mov    0x8(%ebp),%ecx
41282d:	8b 71 08             	mov    0x8(%ecx),%esi
412830:	33 c9                	xor    %ecx,%ecx
412832:	89 4c 24 10          	mov    %ecx,0x10(%esp)
412836:	83 fe 01             	cmp    $0x1,%esi
412839:	8d 4c 24 30          	lea    0x30(%esp),%ecx
41283d:	0f 94 c7             	sete   %bh
412840:	e8 82 4f ff ff       	call   0x4077c7
412845:	83 fe 02             	cmp    $0x2,%esi
412848:	0f 82 90 00 00 00    	jb     0x4128de
41284e:	8b 45 08             	mov    0x8(%ebp),%eax
412851:	6a 2a                	push   $0x2a
412853:	8b 40 04             	mov    0x4(%eax),%eax
412856:	8b 70 04             	mov    0x4(%eax),%esi
412859:	8b ce                	mov    %esi,%ecx
41285b:	e8 4e 75 ff ff       	call   0x409dae
412860:	8a f8                	mov    %al,%bh
412862:	88 7c 24 0c          	mov    %bh,0xc(%esp)
412866:	84 ff                	test   %bh,%bh
412868:	75 74                	jne    0x4128de
41286a:	83 7e 0c 0e          	cmpl   $0xe,0xc(%esi)
41286e:	8b ce                	mov    %esi,%ecx
412870:	0f 84 82 44 03 00    	je     0x446cf8
412876:	6a 02                	push   $0x2
412878:	5b                   	pop    %ebx
412879:	e8 19 71 ff ff       	call   0x409997
41287e:	8b 4e 08             	mov    0x8(%esi),%ecx
412881:	8b 01                	mov    (%ecx),%eax
412883:	89 44 24 20          	mov    %eax,0x20(%esp)
412887:	8b 41 04             	mov    0x4(%ecx),%eax
41288a:	89 44 24 24          	mov    %eax,0x24(%esp)
41288e:	8b 41 08             	mov    0x8(%ecx),%eax
412891:	89 44 24 28          	mov    %eax,0x28(%esp)
412895:	8b 41 0c             	mov    0xc(%ecx),%eax
412898:	89 44 24 2c          	mov    %eax,0x2c(%esp)
41289c:	ff 00                	incl   (%eax)
41289e:	8d 44 24 20          	lea    0x20(%esp),%eax
4128a2:	50                   	push   %eax
4128a3:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4128a7:	e8 fb 58 ff ff       	call   0x4081a7
4128ac:	f6 c3 02             	test   $0x2,%bl
4128af:	74 0c                	je     0x4128bd
4128b1:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4128b5:	83 e3 fd             	and    $0xfffffffd,%ebx
4128b8:	e8 a7 31 ff ff       	call   0x405a64
4128bd:	f6 c3 01             	test   $0x1,%bl
4128c0:	0f 85 44 44 03 00    	jne    0x446d0a
4128c6:	8d 44 24 30          	lea    0x30(%esp),%eax
4128ca:	8b cf                	mov    %edi,%ecx
4128cc:	50                   	push   %eax
4128cd:	e8 eb 76 ff ff       	call   0x409fbd
4128d2:	85 c0                	test   %eax,%eax
4128d4:	0f 84 3e 44 03 00    	je     0x446d18
4128da:	8a 7c 24 0c          	mov    0xc(%esp),%bh
4128de:	8b 45 08             	mov    0x8(%ebp),%eax
4128e1:	8b 40 04             	mov    0x4(%eax),%eax
4128e4:	8b 30                	mov    (%eax),%esi
4128e6:	8b ce                	mov    %esi,%ecx
4128e8:	e8 aa 70 ff ff       	call   0x409997
4128ed:	8b 46 08             	mov    0x8(%esi),%eax
4128f0:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4128f4:	ff 30                	push   (%eax)
4128f6:	e8 46 56 ff ff       	call   0x407f41
4128fb:	8d 44 24 0f          	lea    0xf(%esp),%eax
4128ff:	50                   	push   %eax
412900:	8d 44 24 12          	lea    0x12(%esp),%eax
412904:	50                   	push   %eax
412905:	8d 44 24 14          	lea    0x14(%esp),%eax
412909:	50                   	push   %eax
41290a:	8d 44 24 19          	lea    0x19(%esp),%eax
41290e:	50                   	push   %eax
41290f:	8d 44 24 24          	lea    0x24(%esp),%eax
412913:	50                   	push   %eax
412914:	8d 44 24 34          	lea    0x34(%esp),%eax
412918:	50                   	push   %eax
412919:	e8 1d d9 00 00       	call   0x42023b
41291e:	8a d8                	mov    %al,%bl
412920:	8d 4c 24 20          	lea    0x20(%esp),%ecx
412924:	f6 db                	neg    %bl
412926:	1a db                	sbb    %bl,%bl
412928:	e8 37 31 ff ff       	call   0x405a64
41292d:	fe c3                	inc    %bl
41292f:	0f 85 0a 44 03 00    	jne    0x446d3f
412935:	8b 54 24 14          	mov    0x14(%esp),%edx
412939:	8a 4c 24 0c          	mov    0xc(%esp),%cl
41293d:	89 54 24 18          	mov    %edx,0x18(%esp)
412941:	83 fa 13             	cmp    $0x13,%edx
412944:	0f 84 1e 44 03 00    	je     0x446d68
41294a:	80 7c 24 0d 00       	cmpb   $0x0,0xd(%esp)
41294f:	0f 85 27 44 03 00    	jne    0x446d7c
412955:	8b 44 24 10          	mov    0x10(%esp),%eax
412959:	84 c9                	test   %cl,%cl
41295b:	0f 85 27 44 03 00    	jne    0x446d88
412961:	80 7c 24 0e 00       	cmpb   $0x0,0xe(%esp)
412966:	0f 85 28 44 03 00    	jne    0x446d94
41296c:	80 7c 24 0f 00       	cmpb   $0x0,0xf(%esp)
412971:	0f 85 29 44 03 00    	jne    0x446da0
412977:	8b 8f c8 01 00 00    	mov    0x1c8(%edi),%ecx
41297d:	33 f6                	xor    %esi,%esi
41297f:	c1 e2 10             	shl    $0x10,%edx
412982:	0b d0                	or     %eax,%edx
412984:	89 54 24 1c          	mov    %edx,0x1c(%esp)
412988:	85 c9                	test   %ecx,%ecx
41298a:	0f 85 1c 44 03 00    	jne    0x446dac
412990:	84 ff                	test   %bh,%bh
412992:	0f 85 be 43 03 00    	jne    0x446d56
412998:	33 db                	xor    %ebx,%ebx
41299a:	85 c9                	test   %ecx,%ecx
41299c:	0f 85 89 44 03 00    	jne    0x446e2b
4129a2:	6a 28                	push   $0x28
4129a4:	3b d9                	cmp    %ecx,%ebx
4129a6:	0f 85 9d 44 03 00    	jne    0x446e49
4129ac:	e8 45 e6 00 00       	call   0x420ff6
4129b1:	59                   	pop    %ecx
4129b2:	85 c0                	test   %eax,%eax
4129b4:	0f 84 b5 00 00 00    	je     0x412a6f
4129ba:	8b c8                	mov    %eax,%ecx
4129bc:	e8 40 e4 00 00       	call   0x420e01
4129c1:	89 44 24 14          	mov    %eax,0x14(%esp)
4129c5:	8d 44 24 14          	lea    0x14(%esp),%eax
4129c9:	50                   	push   %eax
4129ca:	8d 8f c0 01 00 00    	lea    0x1c0(%edi),%ecx
4129d0:	e8 ed 0a ff ff       	call   0x4034c2
4129d5:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax