415641:	89 73 18             	mov    %esi,0x18(%ebx)
415644:	8b d7                	mov    %edi,%edx
415646:	8b c7                	mov    %edi,%eax
415648:	c1 ea 03             	shr    $0x3,%edx
41564b:	83 e0 07             	and    $0x7,%eax
41564e:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
415652:	0f ab c1             	bts    %eax,%ecx
415655:	88 0c 32             	mov    %cl,(%edx,%esi,1)
415658:	8b 45 f0             	mov    -0x10(%ebp),%eax
41565b:	47                   	inc    %edi
41565c:	81 ff 00 01 00 00    	cmp    $0x100,%edi
415662:	72 9b                	jb     0x4155ff
415664:	e8 aa a3 02 00       	call   0x43fa13
415669:	c2 0c 00             	ret    $0xc
41566c:	6a 44                	push   $0x44
41566e:	b8 06 ef 48 00       	mov    $0x48ef06,%eax
415673:	e8 06 a4 02 00       	call   0x43fa7e
415678:	8b f1                	mov    %ecx,%esi
41567a:	89 75 b4             	mov    %esi,-0x4c(%ebp)
41567d:	8b 45 0c             	mov    0xc(%ebp),%eax
415680:	8b 55 08             	mov    0x8(%ebp),%edx
415683:	8b 4e 0c             	mov    0xc(%esi),%ecx
415686:	8b 7e 04             	mov    0x4(%esi),%edi
415689:	50                   	push   %eax
41568a:	52                   	push   %edx
41568b:	8d 45 d8             	lea    -0x28(%ebp),%eax
41568e:	50                   	push   %eax
41568f:	e8 5c 32 ff ff       	call   0x4088f0
415694:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415698:	33 db                	xor    %ebx,%ebx
41569a:	89 5d b8             	mov    %ebx,-0x48(%ebp)
41569d:	8b 4e 0c             	mov    0xc(%esi),%ecx
4156a0:	8d 45 c0             	lea    -0x40(%ebp),%eax
4156a3:	50                   	push   %eax
4156a4:	8d 45 bf             	lea    -0x41(%ebp),%eax
4156a7:	88 5d bf             	mov    %bl,-0x41(%ebp)
4156aa:	50                   	push   %eax
4156ab:	8d 45 c0             	lea    -0x40(%ebp),%eax
4156ae:	50                   	push   %eax
4156af:	e8 ea 30 ff ff       	call   0x40879e
4156b4:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4156b8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4156bb:	51                   	push   %ecx
4156bc:	8b c8                	mov    %eax,%ecx
4156be:	e8 b5 3e 00 00       	call   0x419578
4156c3:	8a d8                	mov    %al,%bl
4156c5:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4156c9:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4156cc:	e8 03 7c 00 00       	call   0x41d2d4
4156d1:	84 db                	test   %bl,%bl
4156d3:	74 50                	je     0x415725
4156d5:	8b 77 18             	mov    0x18(%edi),%esi
4156d8:	85 f6                	test   %esi,%esi
4156da:	75 2d                	jne    0x415709
4156dc:	6a 20                	push   $0x20
4156de:	e8 c0 9b 02 00       	call   0x43f2a3
4156e3:	8b f0                	mov    %eax,%esi
4156e5:	59                   	pop    %ecx
4156e6:	89 75 b0             	mov    %esi,-0x50(%ebp)
4156e9:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4156ed:	85 f6                	test   %esi,%esi
4156ef:	74 0f                	je     0x415700
4156f1:	6a 20                	push   $0x20
4156f3:	6a 00                	push   $0x0
4156f5:	56                   	push   %esi
4156f6:	e8 65 e7 02 00       	call   0x443e60
4156fb:	83 c4 0c             	add    $0xc,%esp
4156fe:	eb 02                	jmp    0x415702
415700:	33 f6                	xor    %esi,%esi
415702:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
415706:	89 77 18             	mov    %esi,0x18(%edi)
415709:	8b 5d b8             	mov    -0x48(%ebp),%ebx
41570c:	8b d3                	mov    %ebx,%edx
41570e:	c1 ea 03             	shr    $0x3,%edx
415711:	8b c3                	mov    %ebx,%eax
415713:	83 e0 07             	and    $0x7,%eax
415716:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
41571a:	0f ab c1             	bts    %eax,%ecx
41571d:	88 0c 32             	mov    %cl,(%edx,%esi,1)
415720:	8b 75 b4             	mov    -0x4c(%ebp),%esi
415723:	eb 03                	jmp    0x415728
415725:	8b 5d b8             	mov    -0x48(%ebp),%ebx
415728:	43                   	inc    %ebx
415729:	89 5d b8             	mov    %ebx,-0x48(%ebp)
41572c:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
415732:	0f 82 65 ff ff ff    	jb     0x41569d
415738:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41573c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41573f:	e8 90 7b 00 00       	call   0x41d2d4
415744:	e8 df a2 02 00       	call   0x43fa28
415749:	c2 0c 00             	ret    $0xc
41574c:	6a 4c                	push   $0x4c
41574e:	b8 48 ef 48 00       	mov    $0x48ef48,%eax
415753:	e8 26 a3 02 00       	call   0x43fa7e
415758:	8b f1                	mov    %ecx,%esi
41575a:	89 75 b4             	mov    %esi,-0x4c(%ebp)
41575d:	8b 55 0c             	mov    0xc(%ebp),%edx
415760:	8b 46 04             	mov    0x4(%esi),%eax
415763:	8b 4d 08             	mov    0x8(%ebp),%ecx
415766:	52                   	push   %edx
415767:	89 45 b8             	mov    %eax,-0x48(%ebp)
41576a:	8d 45 d8             	lea    -0x28(%ebp),%eax
41576d:	51                   	push   %ecx
41576e:	89 4d ac             	mov    %ecx,-0x54(%ebp)
415771:	8b 4e 0c             	mov    0xc(%esi),%ecx
415774:	50                   	push   %eax
415775:	89 55 b0             	mov    %edx,-0x50(%ebp)
415778:	e8 18 32 ff ff       	call   0x408995
41577d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415781:	33 ff                	xor    %edi,%edi
415783:	8b 4e 0c             	mov    0xc(%esi),%ecx
415786:	0f b7 c7             	movzwl %di,%eax
415789:	89 45 bc             	mov    %eax,-0x44(%ebp)
41578c:	8d 45 be             	lea    -0x42(%ebp),%eax
41578f:	50                   	push   %eax
415790:	8d 45 bc             	lea    -0x44(%ebp),%eax
415793:	50                   	push   %eax
415794:	8d 45 c0             	lea    -0x40(%ebp),%eax
415797:	50                   	push   %eax
415798:	e8 a6 30 ff ff       	call   0x408843
41579d:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4157a1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4157a4:	51                   	push   %ecx
4157a5:	8b c8                	mov    %eax,%ecx
4157a7:	e8 2b 3e 00 00       	call   0x4195d7
4157ac:	8a d8                	mov    %al,%bl
4157ae:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4157b2:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4157b5:	e8 40 7b 00 00       	call   0x41d2fa
4157ba:	84 db                	test   %bl,%bl
4157bc:	8b 5d b8             	mov    -0x48(%ebp),%ebx
4157bf:	74 4b                	je     0x41580c
4157c1:	8b 73 18             	mov    0x18(%ebx),%esi
4157c4:	85 f6                	test   %esi,%esi
4157c6:	75 2d                	jne    0x4157f5
4157c8:	6a 20                	push   $0x20
4157ca:	e8 d4 9a 02 00       	call   0x43f2a3
4157cf:	8b f0                	mov    %eax,%esi
4157d1:	59                   	pop    %ecx
4157d2:	89 75 a8             	mov    %esi,-0x58(%ebp)
4157d5:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4157d9:	85 f6                	test   %esi,%esi
4157db:	74 0f                	je     0x4157ec
4157dd:	6a 20                	push   $0x20
4157df:	6a 00                	push   $0x0
4157e1:	56                   	push   %esi
4157e2:	e8 79 e6 02 00       	call   0x443e60
4157e7:	83 c4 0c             	add    $0xc,%esp
4157ea:	eb 02                	jmp    0x4157ee
4157ec:	33 f6                	xor    %esi,%esi
4157ee:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4157f2:	89 73 18             	mov    %esi,0x18(%ebx)
4157f5:	8b d7                	mov    %edi,%edx
4157f7:	8b c7                	mov    %edi,%eax
4157f9:	c1 ea 03             	shr    $0x3,%edx
4157fc:	83 e0 07             	and    $0x7,%eax
4157ff:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
415803:	0f ab c1             	bts    %eax,%ecx
415806:	88 0c 32             	mov    %cl,(%edx,%esi,1)
415809:	8b 75 b4             	mov    -0x4c(%ebp),%esi
41580c:	47                   	inc    %edi
41580d:	81 ff 00 01 00 00    	cmp    $0x100,%edi
415813:	0f 82 6a ff ff ff    	jb     0x415783
415819:	8d 43 28             	lea    0x28(%ebx),%eax
41581c:	8b ce                	mov    %esi,%ecx
41581e:	50                   	push   %eax
41581f:	ff 75 10             	push   0x10(%ebp)
415822:	ff 75 b0             	push   -0x50(%ebp)
415825:	ff 75 ac             	push   -0x54(%ebp)
415828:	e8 73 1a 00 00       	call   0x4172a0
41582d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
415831:	8d 4d d8             	lea    -0x28(%ebp),%ecx
415834:	e8 c1 7a 00 00       	call   0x41d2fa
415839:	e8 ea a1 02 00       	call   0x43fa28
41583e:	c2 0c 00             	ret    $0xc
415841:	6a 04                	push   $0x4
415843:	b8 87 ef 48 00       	mov    $0x48ef87,%eax
415848:	e8 fd a1 02 00       	call   0x43fa4a
41584d:	8b d9                	mov    %ecx,%ebx
41584f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
415852:	f7 43 08 00 01 00 00 	testl  $0x100,0x8(%ebx)
415859:	74 28                	je     0x415883
41585b:	8b 43 0c             	mov    0xc(%ebx),%eax
41585e:	ff 75 08             	push   0x8(%ebp)
415861:	8b 48 04             	mov    0x4(%eax),%ecx
415864:	8b 01                	mov    (%ecx),%eax
415866:	8b 40 10             	mov    0x10(%eax),%eax
415869:	ff d0                	call   *%eax
41586b:	ff 75 0c             	push   0xc(%ebp)
41586e:	0f be f0             	movsbl %al,%esi
415871:	8b 43 0c             	mov    0xc(%ebx),%eax
415874:	8b 48 04             	mov    0x4(%eax),%ecx
415877:	8b 01                	mov    (%ecx),%eax
415879:	8b 40 10             	mov    0x10(%eax),%eax
41587c:	ff d0                	call   *%eax
41587e:	0f be f8             	movsbl %al,%edi
415881:	eb 08                	jmp    0x41588b
415883:	0f b6 75 08          	movzbl 0x8(%ebp),%esi
415887:	0f b6 7d 0c          	movzbl 0xc(%ebp),%edi
41588b:	8b 4b 04             	mov    0x4(%ebx),%ecx
41588e:	89 4d 08             	mov    %ecx,0x8(%ebp)
415891:	3b f7                	cmp    %edi,%esi
415893:	0f 87 c1 00 00 00    	ja     0x41595a
415899:	3b 7b 10             	cmp    0x10(%ebx),%edi
41589c:	73 56                	jae    0x4158f4
41589e:	8b 59 18             	mov    0x18(%ecx),%ebx
4158a1:	85 db                	test   %ebx,%ebx
4158a3:	75 30                	jne    0x4158d5
4158a5:	6a 20                	push   $0x20
4158a7:	e8 f7 99 02 00       	call   0x43f2a3
4158ac:	8b d8                	mov    %eax,%ebx
4158ae:	59                   	pop    %ecx
4158af:	89 5d 0c             	mov    %ebx,0xc(%ebp)
4158b2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4158b6:	85 db                	test   %ebx,%ebx
4158b8:	74 0f                	je     0x4158c9
4158ba:	6a 20                	push   $0x20
4158bc:	6a 00                	push   $0x0
4158be:	53                   	push   %ebx
4158bf:	e8 9c e5 02 00       	call   0x443e60
4158c4:	83 c4 0c             	add    $0xc,%esp
4158c7:	eb 02                	jmp    0x4158cb
4158c9:	33 db                	xor    %ebx,%ebx
4158cb:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4158cf:	8b 4d 08             	mov    0x8(%ebp),%ecx
4158d2:	89 59 18             	mov    %ebx,0x18(%ecx)
4158d5:	8b d6                	mov    %esi,%edx
4158d7:	8b c6                	mov    %esi,%eax
4158d9:	c1 ea 03             	shr    $0x3,%edx
4158dc:	83 e0 07             	and    $0x7,%eax
4158df:	0f b6 0c 1a          	movzbl (%edx,%ebx,1),%ecx
4158e3:	0f ab c1             	bts    %eax,%ecx
4158e6:	46                   	inc    %esi
4158e7:	88 0c 1a             	mov    %cl,(%edx,%ebx,1)
4158ea:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4158ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
4158f0:	3b f7                	cmp    %edi,%esi
4158f2:	76 a5                	jbe    0x415899
4158f4:	3b fe                	cmp    %esi,%edi
4158f6:	72 62                	jb     0x41595a
4158f8:	8b c7                	mov    %edi,%eax
4158fa:	2b c6                	sub    %esi,%eax
4158fc:	3b 43 14             	cmp    0x14(%ebx),%eax
4158ff:	72 33                	jb     0x415934
415901:	8b 41 20             	mov    0x20(%ecx),%eax
415904:	85 c0                	test   %eax,%eax
415906:	75 3e                	jne    0x415946
415908:	6a 0c                	push   $0xc
41590a:	e8 94 99 02 00       	call   0x43f2a3
41590f:	59                   	pop    %ecx
415910:	89 45 0c             	mov    %eax,0xc(%ebp)
415913:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
41591a:	85 c0                	test   %eax,%eax
41591c:	74 1c                	je     0x41593a
41591e:	83 20 00             	andl   $0x0,(%eax)
415921:	83 60 04 00          	andl   $0x0,0x4(%eax)
415925:	83 60 08 00          	andl   $0x0,0x8(%eax)
415929:	eb 11                	jmp    0x41593c
41592b:	56                   	push   %esi
41592c:	8b cb                	mov    %ebx,%ecx
41592e:	e8 bf f9 ff ff       	call   0x4152f2
415933:	46                   	inc    %esi
415934:	3b f7                	cmp    %edi,%esi
415936:	76 f3                	jbe    0x41592b
415938:	eb 20                	jmp    0x41595a
41593a:	33 c0                	xor    %eax,%eax
41593c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
415940:	8b 4d 08             	mov    0x8(%ebp),%ecx
415943:	89 41 20             	mov    %eax,0x20(%ecx)
415946:	56                   	push   %esi
415947:	8b c8                	mov    %eax,%ecx
415949:	e8 85 57 00 00       	call   0x41b0d3
41594e:	8b 45 08             	mov    0x8(%ebp),%eax
415951:	57                   	push   %edi
415952:	8b 48 20             	mov    0x20(%eax),%ecx
415955:	e8 79 57 00 00       	call   0x41b0d3
41595a:	e8 b4 a0 02 00       	call   0x43fa13
41595f:	c2 08 00             	ret    $0x8
415962:	6a 04                	push   $0x4
415964:	b8 bc ef 48 00       	mov    $0x48efbc,%eax
415969:	e8 dc a0 02 00       	call   0x43fa4a
41596e:	8b d9                	mov    %ecx,%ebx
415970:	89 5d f0             	mov    %ebx,-0x10(%ebp)
415973:	f7 43 08 00 01 00 00 	testl  $0x100,0x8(%ebx)
41597a:	74 24                	je     0x4159a0
41597c:	8b 43 0c             	mov    0xc(%ebx),%eax
41597f:	ff 75 08             	push   0x8(%ebp)
415982:	8b 48 04             	mov    0x4(%eax),%ecx
415985:	8b 01                	mov    (%ecx),%eax
415987:	ff 50 20             	call   *0x20(%eax)
41598a:	ff 75 0c             	push   0xc(%ebp)
41598d:	0f b7 f0             	movzwl %ax,%esi
415990:	8b 43 0c             	mov    0xc(%ebx),%eax
415993:	8b 48 04             	mov    0x4(%eax),%ecx
415996:	8b 01                	mov    (%ecx),%eax
415998:	ff 50 20             	call   *0x20(%eax)
41599b:	0f b7 f8             	movzwl %ax,%edi
41599e:	eb 08                	jmp    0x4159a8
4159a0:	0f b7 75 08          	movzwl 0x8(%ebp),%esi
4159a4:	0f b7 7d 0c          	movzwl 0xc(%ebp),%edi
4159a8:	8b 4b 04             	mov    0x4(%ebx),%ecx
4159ab:	89 4d 08             	mov    %ecx,0x8(%ebp)
4159ae:	3b f7                	cmp    %edi,%esi
4159b0:	0f 87 c1 00 00 00    	ja     0x415a77
4159b6:	3b 7b 10             	cmp    0x10(%ebx),%edi
4159b9:	73 56                	jae    0x415a11
4159bb:	8b 59 18             	mov    0x18(%ecx),%ebx
4159be:	85 db                	test   %ebx,%ebx
4159c0:	75 30                	jne    0x4159f2
4159c2:	6a 20                	push   $0x20
4159c4:	e8 da 98 02 00       	call   0x43f2a3
4159c9:	8b d8                	mov    %eax,%ebx
4159cb:	59                   	pop    %ecx
4159cc:	89 5d 0c             	mov    %ebx,0xc(%ebp)
4159cf:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4159d3:	85 db                	test   %ebx,%ebx
4159d5:	74 0f                	je     0x4159e6
4159d7:	6a 20                	push   $0x20
4159d9:	6a 00                	push   $0x0
4159db:	53                   	push   %ebx
4159dc:	e8 7f e4 02 00       	call   0x443e60
4159e1:	83 c4 0c             	add    $0xc,%esp
4159e4:	eb 02                	jmp    0x4159e8
4159e6:	33 db                	xor    %ebx,%ebx
4159e8:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4159ec:	8b 4d 08             	mov    0x8(%ebp),%ecx
4159ef:	89 59 18             	mov    %ebx,0x18(%ecx)
4159f2:	8b d6                	mov    %esi,%edx
4159f4:	8b c6                	mov    %esi,%eax
4159f6:	c1 ea 03             	shr    $0x3,%edx
4159f9:	83 e0 07             	and    $0x7,%eax
4159fc:	0f b6 0c 1a          	movzbl (%edx,%ebx,1),%ecx
415a00:	0f ab c1             	bts    %eax,%ecx
415a03:	46                   	inc    %esi
415a04:	88 0c 1a             	mov    %cl,(%edx,%ebx,1)
415a07:	8b 5d f0             	mov    -0x10(%ebp),%ebx
415a0a:	8b 4d 08             	mov    0x8(%ebp),%ecx
415a0d:	3b f7                	cmp    %edi,%esi
415a0f:	76 a5                	jbe    0x4159b6
415a11:	3b fe                	cmp    %esi,%edi
415a13:	72 62                	jb     0x415a77
415a15:	8b c7                	mov    %edi,%eax
415a17:	2b c6                	sub    %esi,%eax
415a19:	3b 43 14             	cmp    0x14(%ebx),%eax
415a1c:	72 33                	jb     0x415a51
415a1e:	8b 41 20             	mov    0x20(%ecx),%eax
415a21:	85 c0                	test   %eax,%eax
415a23:	75 3e                	jne    0x415a63
415a25:	6a 0c                	push   $0xc
415a27:	e8 77 98 02 00       	call   0x43f2a3