41b758:	50                   	push   %eax
41b759:	50                   	push   %eax
41b75a:	50                   	push   %eax
41b75b:	50                   	push   %eax
41b75c:	50                   	push   %eax
41b75d:	e8 b9 1c ff ff       	call   0x40d41b
41b762:	cc                   	int3
41b763:	8b ff                	mov    %edi,%edi
41b765:	55                   	push   %ebp
41b766:	8b ec                	mov    %esp,%ebp
41b768:	53                   	push   %ebx
41b769:	56                   	push   %esi
41b76a:	8b 75 0c             	mov    0xc(%ebp),%esi
41b76d:	33 db                	xor    %ebx,%ebx
41b76f:	39 5e 08             	cmp    %ebx,0x8(%esi)
41b772:	75 50                	jne    0x41b7c4
41b774:	8b 4e 04             	mov    0x4(%esi),%ecx
41b777:	8d 41 fe             	lea    -0x2(%ecx),%eax
41b77a:	83 f8 01             	cmp    $0x1,%eax
41b77d:	77 45                	ja     0x41b7c4
41b77f:	51                   	push   %ecx
41b780:	ff 36                	push   (%esi)
41b782:	e8 7c 01 00 00       	call   0x41b903
41b787:	59                   	pop    %ecx
41b788:	59                   	pop    %ecx
41b789:	84 c0                	test   %al,%al
41b78b:	74 37                	je     0x41b7c4
41b78d:	57                   	push   %edi
41b78e:	ff 76 04             	push   0x4(%esi)
41b791:	8b 7d 08             	mov    0x8(%ebp),%edi
41b794:	ff 36                	push   (%esi)
41b796:	6a 40                	push   $0x40
41b798:	57                   	push   %edi
41b799:	e8 2f 66 00 00       	call   0x421dcd
41b79e:	83 c4 10             	add    $0x10,%esp
41b7a1:	85 c0                	test   %eax,%eax
41b7a3:	75 25                	jne    0x41b7ca
41b7a5:	ff 76 04             	push   0x4(%esi)
41b7a8:	8d 8f 20 01 00 00    	lea    0x120(%edi),%ecx
41b7ae:	ff 36                	push   (%esi)
41b7b0:	6a 55                	push   $0x55
41b7b2:	51                   	push   %ecx
41b7b3:	e8 15 66 00 00       	call   0x421dcd
41b7b8:	83 c4 10             	add    $0x10,%esp
41b7bb:	5f                   	pop    %edi
41b7bc:	85 c0                	test   %eax,%eax
41b7be:	75 0a                	jne    0x41b7ca
41b7c0:	b0 01                	mov    $0x1,%al
41b7c2:	eb 02                	jmp    0x41b7c6
41b7c4:	32 c0                	xor    %al,%al
41b7c6:	5e                   	pop    %esi
41b7c7:	5b                   	pop    %ebx
41b7c8:	5d                   	pop    %ebp
41b7c9:	c3                   	ret
41b7ca:	53                   	push   %ebx
41b7cb:	53                   	push   %ebx
41b7cc:	53                   	push   %ebx
41b7cd:	53                   	push   %ebx
41b7ce:	53                   	push   %ebx
41b7cf:	e8 47 1c ff ff       	call   0x40d41b
41b7d4:	cc                   	int3
41b7d5:	8b ff                	mov    %edi,%edi
41b7d7:	55                   	push   %ebp
41b7d8:	8b ec                	mov    %esp,%ebp
41b7da:	51                   	push   %ecx
41b7db:	53                   	push   %ebx
41b7dc:	56                   	push   %esi
41b7dd:	57                   	push   %edi
41b7de:	8b 7d 0c             	mov    0xc(%ebp),%edi
41b7e1:	33 db                	xor    %ebx,%ebx
41b7e3:	39 5f 08             	cmp    %ebx,0x8(%edi)
41b7e6:	0f 85 95 00 00 00    	jne    0x41b881
41b7ec:	83 7f 04 02          	cmpl   $0x2,0x4(%edi)
41b7f0:	75 0f                	jne    0x41b801
41b7f2:	6a 02                	push   $0x2
41b7f4:	ff 37                	push   (%edi)
41b7f6:	e8 08 01 00 00       	call   0x41b903
41b7fb:	59                   	pop    %ecx
41b7fc:	59                   	pop    %ecx
41b7fd:	84 c0                	test   %al,%al
41b7ff:	75 2f                	jne    0x41b830
41b801:	83 7f 04 03          	cmpl   $0x3,0x4(%edi)
41b805:	75 7a                	jne    0x41b881
41b807:	8b 07                	mov    (%edi),%eax
41b809:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b80c:	0f b7 34 58          	movzwl (%eax,%ebx,2),%esi
41b810:	e8 a7 26 00 00       	call   0x41debc
41b815:	6a 04                	push   $0x4
41b817:	56                   	push   %esi
41b818:	50                   	push   %eax
41b819:	e8 e7 63 ff ff       	call   0x411c05
41b81e:	83 c4 0c             	add    $0xc,%esp
41b821:	85 c0                	test   %eax,%eax
41b823:	74 5c                	je     0x41b881
41b825:	8b 45 fc             	mov    -0x4(%ebp),%eax
41b828:	43                   	inc    %ebx
41b829:	83 fb 03             	cmp    $0x3,%ebx
41b82c:	72 de                	jb     0x41b80c
41b82e:	33 db                	xor    %ebx,%ebx
41b830:	ff 77 04             	push   0x4(%edi)
41b833:	8b 75 08             	mov    0x8(%ebp),%esi
41b836:	ff 37                	push   (%edi)
41b838:	6a 40                	push   $0x40
41b83a:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
41b840:	50                   	push   %eax
41b841:	e8 87 65 00 00       	call   0x421dcd
41b846:	83 c4 10             	add    $0x10,%esp
41b849:	85 c0                	test   %eax,%eax
41b84b:	75 3b                	jne    0x41b888
41b84d:	6a 01                	push   $0x1
41b84f:	68 04 33 43 00       	push   $0x433304
41b854:	81 c6 20 01 00 00    	add    $0x120,%esi
41b85a:	6a 55                	push   $0x55
41b85c:	56                   	push   %esi
41b85d:	e8 6e 8c 00 00       	call   0x4244d0
41b862:	83 c4 10             	add    $0x10,%esp
41b865:	85 c0                	test   %eax,%eax
41b867:	75 1f                	jne    0x41b888
41b869:	ff 77 04             	push   0x4(%edi)
41b86c:	ff 37                	push   (%edi)
41b86e:	6a 55                	push   $0x55
41b870:	56                   	push   %esi
41b871:	e8 5a 8c 00 00       	call   0x4244d0
41b876:	83 c4 10             	add    $0x10,%esp
41b879:	85 c0                	test   %eax,%eax
41b87b:	75 0b                	jne    0x41b888
41b87d:	b0 01                	mov    $0x1,%al
41b87f:	eb 02                	jmp    0x41b883
41b881:	32 c0                	xor    %al,%al
41b883:	5f                   	pop    %edi
41b884:	5e                   	pop    %esi
41b885:	5b                   	pop    %ebx
41b886:	c9                   	leave
41b887:	c3                   	ret
41b888:	53                   	push   %ebx
41b889:	53                   	push   %ebx
41b88a:	53                   	push   %ebx
41b88b:	53                   	push   %ebx
41b88c:	53                   	push   %ebx
41b88d:	e8 89 1b ff ff       	call   0x40d41b
41b892:	cc                   	int3
41b893:	8b ff                	mov    %edi,%edi
41b895:	55                   	push   %ebp
41b896:	8b ec                	mov    %esp,%ebp
41b898:	53                   	push   %ebx
41b899:	56                   	push   %esi
41b89a:	8b 75 0c             	mov    0xc(%ebp),%esi
41b89d:	33 db                	xor    %ebx,%ebx
41b89f:	39 5e 08             	cmp    %ebx,0x8(%esi)
41b8a2:	75 4e                	jne    0x41b8f2
41b8a4:	83 7e 04 04          	cmpl   $0x4,0x4(%esi)
41b8a8:	75 48                	jne    0x41b8f2
41b8aa:	6a 04                	push   $0x4
41b8ac:	ff 36                	push   (%esi)
41b8ae:	e8 50 00 00 00       	call   0x41b903
41b8b3:	59                   	pop    %ecx
41b8b4:	59                   	pop    %ecx
41b8b5:	84 c0                	test   %al,%al
41b8b7:	74 39                	je     0x41b8f2
41b8b9:	57                   	push   %edi
41b8ba:	8b 7d 08             	mov    0x8(%ebp),%edi
41b8bd:	6a 01                	push   $0x1
41b8bf:	68 04 33 43 00       	push   $0x433304
41b8c4:	81 c7 20 01 00 00    	add    $0x120,%edi
41b8ca:	6a 55                	push   $0x55
41b8cc:	57                   	push   %edi
41b8cd:	e8 fe 8b 00 00       	call   0x4244d0
41b8d2:	83 c4 10             	add    $0x10,%esp
41b8d5:	85 c0                	test   %eax,%eax
41b8d7:	75 1f                	jne    0x41b8f8
41b8d9:	ff 76 04             	push   0x4(%esi)
41b8dc:	ff 36                	push   (%esi)
41b8de:	6a 55                	push   $0x55
41b8e0:	57                   	push   %edi
41b8e1:	e8 ea 8b 00 00       	call   0x4244d0
41b8e6:	83 c4 10             	add    $0x10,%esp
41b8e9:	5f                   	pop    %edi
41b8ea:	85 c0                	test   %eax,%eax
41b8ec:	75 0a                	jne    0x41b8f8
41b8ee:	b0 01                	mov    $0x1,%al
41b8f0:	eb 02                	jmp    0x41b8f4
41b8f2:	32 c0                	xor    %al,%al
41b8f4:	5e                   	pop    %esi
41b8f5:	5b                   	pop    %ebx
41b8f6:	5d                   	pop    %ebp
41b8f7:	c3                   	ret
41b8f8:	53                   	push   %ebx
41b8f9:	53                   	push   %ebx
41b8fa:	53                   	push   %ebx
41b8fb:	53                   	push   %ebx
41b8fc:	53                   	push   %ebx
41b8fd:	e8 19 1b ff ff       	call   0x40d41b
41b902:	cc                   	int3
41b903:	8b ff                	mov    %edi,%edi
41b905:	55                   	push   %ebp
41b906:	8b ec                	mov    %esp,%ebp
41b908:	53                   	push   %ebx
41b909:	56                   	push   %esi
41b90a:	57                   	push   %edi
41b90b:	33 ff                	xor    %edi,%edi
41b90d:	39 7d 0c             	cmp    %edi,0xc(%ebp)
41b910:	76 25                	jbe    0x41b937
41b912:	8b 5d 08             	mov    0x8(%ebp),%ebx
41b915:	0f b7 34 7b          	movzwl (%ebx,%edi,2),%esi
41b919:	e8 9e 25 00 00       	call   0x41debc
41b91e:	68 03 01 00 00       	push   $0x103
41b923:	56                   	push   %esi
41b924:	50                   	push   %eax
41b925:	e8 db 62 ff ff       	call   0x411c05
41b92a:	83 c4 0c             	add    $0xc,%esp
41b92d:	85 c0                	test   %eax,%eax
41b92f:	74 0d                	je     0x41b93e
41b931:	47                   	inc    %edi
41b932:	3b 7d 0c             	cmp    0xc(%ebp),%edi
41b935:	72 de                	jb     0x41b915
41b937:	b0 01                	mov    $0x1,%al
41b939:	5f                   	pop    %edi
41b93a:	5e                   	pop    %esi
41b93b:	5b                   	pop    %ebx
41b93c:	5d                   	pop    %ebp
41b93d:	c3                   	ret
41b93e:	32 c0                	xor    %al,%al
41b940:	eb f7                	jmp    0x41b939
41b942:	8b ff                	mov    %edi,%edi
41b944:	55                   	push   %ebp
41b945:	8b ec                	mov    %esp,%ebp
41b947:	8b 45 08             	mov    0x8(%ebp),%eax
41b94a:	85 c0                	test   %eax,%eax
41b94c:	74 1a                	je     0x41b968
41b94e:	83 f8 01             	cmp    $0x1,%eax
41b951:	74 15                	je     0x41b968
41b953:	e8 19 0d 00 00       	call   0x41c671
41b958:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41b95e:	e8 8b 1a ff ff       	call   0x40d3ee
41b963:	83 c8 ff             	or     $0xffffffff,%eax
41b966:	5d                   	pop    %ebp
41b967:	c3                   	ret
41b968:	b9 bc f7 43 00       	mov    $0x43f7bc,%ecx
41b96d:	87 01                	xchg   %eax,(%ecx)
41b96f:	5d                   	pop    %ebp
41b970:	c3                   	ret
41b971:	b8 c0 f7 43 00       	mov    $0x43f7c0,%eax
41b976:	c3                   	ret
41b977:	6a 0c                	push   $0xc
41b979:	68 60 ad 43 00       	push   $0x43ad60
41b97e:	e8 4d eb fe ff       	call   0x40a4d0
41b983:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41b987:	8b 45 08             	mov    0x8(%ebp),%eax
41b98a:	ff 30                	push   (%eax)
41b98c:	e8 f1 79 00 00       	call   0x423382
41b991:	59                   	pop    %ecx
41b992:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41b996:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41b999:	e8 91 01 00 00       	call   0x41bb2f
41b99e:	8b f0                	mov    %eax,%esi
41b9a0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41b9a3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41b9aa:	e8 17 00 00 00       	call   0x41b9c6
41b9af:	8b c6                	mov    %esi,%eax
41b9b1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41b9b4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41b9bb:	59                   	pop    %ecx
41b9bc:	5f                   	pop    %edi
41b9bd:	5e                   	pop    %esi
41b9be:	5b                   	pop    %ebx
41b9bf:	c9                   	leave
41b9c0:	c2 0c 00             	ret    $0xc
41b9c3:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41b9c6:	8b 45 10             	mov    0x10(%ebp),%eax
41b9c9:	ff 30                	push   (%eax)
41b9cb:	e8 fa 79 00 00       	call   0x4233ca
41b9d0:	59                   	pop    %ecx
41b9d1:	c3                   	ret
41b9d2:	6a 0c                	push   $0xc
41b9d4:	68 40 ad 43 00       	push   $0x43ad40
41b9d9:	e8 f2 ea fe ff       	call   0x40a4d0
41b9de:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41b9e2:	8b 45 08             	mov    0x8(%ebp),%eax
41b9e5:	ff 30                	push   (%eax)
41b9e7:	e8 96 79 00 00       	call   0x423382
41b9ec:	59                   	pop    %ecx
41b9ed:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41b9f1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41b9f4:	e8 34 00 00 00       	call   0x41ba2d
41b9f9:	8b f0                	mov    %eax,%esi
41b9fb:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41b9fe:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41ba05:	e8 17 00 00 00       	call   0x41ba21
41ba0a:	8b c6                	mov    %esi,%eax
41ba0c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41ba0f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41ba16:	59                   	pop    %ecx
41ba17:	5f                   	pop    %edi
41ba18:	5e                   	pop    %esi
41ba19:	5b                   	pop    %ebx
41ba1a:	c9                   	leave
41ba1b:	c2 0c 00             	ret    $0xc
41ba1e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41ba21:	8b 45 10             	mov    0x10(%ebp),%eax
41ba24:	ff 30                	push   (%eax)
41ba26:	e8 9f 79 00 00       	call   0x4233ca
41ba2b:	59                   	pop    %ecx
41ba2c:	c3                   	ret
41ba2d:	8b ff                	mov    %edi,%edi
41ba2f:	55                   	push   %ebp
41ba30:	8b ec                	mov    %esp,%ebp
41ba32:	51                   	push   %ecx
41ba33:	51                   	push   %ecx
41ba34:	8b c1                	mov    %ecx,%eax
41ba36:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ba39:	53                   	push   %ebx
41ba3a:	56                   	push   %esi
41ba3b:	8b 00                	mov    (%eax),%eax
41ba3d:	57                   	push   %edi
41ba3e:	8b 30                	mov    (%eax),%esi
41ba40:	85 f6                	test   %esi,%esi
41ba42:	0f 84 df 00 00 00    	je     0x41bb27
41ba48:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
41ba4d:	8b c8                	mov    %eax,%ecx
41ba4f:	8b 1e                	mov    (%esi),%ebx
41ba51:	83 e1 1f             	and    $0x1f,%ecx
41ba54:	8b 7e 04             	mov    0x4(%esi),%edi
41ba57:	33 d8                	xor    %eax,%ebx
41ba59:	8b 76 08             	mov    0x8(%esi),%esi
41ba5c:	33 f8                	xor    %eax,%edi
41ba5e:	33 f0                	xor    %eax,%esi
41ba60:	d3 cf                	ror    %cl,%edi
41ba62:	d3 ce                	ror    %cl,%esi
41ba64:	d3 cb                	ror    %cl,%ebx
41ba66:	3b fe                	cmp    %esi,%edi
41ba68:	75 7b                	jne    0x41bae5
41ba6a:	2b f3                	sub    %ebx,%esi
41ba6c:	b8 00 02 00 00       	mov    $0x200,%eax
41ba71:	c1 fe 02             	sar    $0x2,%esi
41ba74:	3b f0                	cmp    %eax,%esi
41ba76:	77 02                	ja     0x41ba7a
41ba78:	8b c6                	mov    %esi,%eax
41ba7a:	8d 3c 30             	lea    (%eax,%esi,1),%edi
41ba7d:	85 ff                	test   %edi,%edi
41ba7f:	75 03                	jne    0x41ba84
41ba81:	6a 20                	push   $0x20
41ba83:	5f                   	pop    %edi
41ba84:	3b fe                	cmp    %esi,%edi
41ba86:	72 1d                	jb     0x41baa5
41ba88:	6a 04                	push   $0x4
41ba8a:	57                   	push   %edi
41ba8b:	53                   	push   %ebx
41ba8c:	e8 cf b1 fe ff       	call   0x406c60
41ba91:	6a 00                	push   $0x0
41ba93:	89 45 fc             	mov    %eax,-0x4(%ebp)