41e75c:	53                   	push   %ebx
41e75d:	56                   	push   %esi
41e75e:	ff 75 10             	push   0x10(%ebp)
41e761:	e8 62 e0 fe ff       	call   0x40c7c8
41e766:	8b 5d 08             	mov    0x8(%ebp),%ebx
41e769:	85 db                	test   %ebx,%ebx
41e76b:	74 07                	je     0x41e774
41e76d:	8b 75 0c             	mov    0xc(%ebp),%esi
41e770:	85 f6                	test   %esi,%esi
41e772:	75 1a                	jne    0x41e78e
41e774:	e8 f2 62 ff ff       	call   0x414a6b
41e779:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41e77f:	e8 5e d5 fe ff       	call   0x40bce2
41e784:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
41e789:	e9 8b 00 00 00       	jmp    0x41e819
41e78e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e791:	57                   	push   %edi
41e792:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
41e799:	75 42                	jne    0x41e7dd
41e79b:	6a 41                	push   $0x41
41e79d:	59                   	pop    %ecx
41e79e:	6a 5a                	push   $0x5a
41e7a0:	2b de                	sub    %esi,%ebx
41e7a2:	5a                   	pop    %edx
41e7a3:	0f b7 04 33          	movzwl (%ebx,%esi,1),%eax
41e7a7:	66 3b c1             	cmp    %cx,%ax
41e7aa:	72 0d                	jb     0x41e7b9
41e7ac:	66 3b c2             	cmp    %dx,%ax
41e7af:	77 08                	ja     0x41e7b9
41e7b1:	83 c0 20             	add    $0x20,%eax
41e7b4:	0f b7 f8             	movzwl %ax,%edi
41e7b7:	eb 02                	jmp    0x41e7bb
41e7b9:	8b f8                	mov    %eax,%edi
41e7bb:	0f b7 06             	movzwl (%esi),%eax
41e7be:	66 3b c1             	cmp    %cx,%ax
41e7c1:	72 0b                	jb     0x41e7ce
41e7c3:	66 3b c2             	cmp    %dx,%ax
41e7c6:	77 06                	ja     0x41e7ce
41e7c8:	83 c0 20             	add    $0x20,%eax
41e7cb:	0f b7 c0             	movzwl %ax,%eax
41e7ce:	83 c6 02             	add    $0x2,%esi
41e7d1:	66 85 ff             	test   %di,%di
41e7d4:	74 3a                	je     0x41e810
41e7d6:	66 3b f8             	cmp    %ax,%di
41e7d9:	74 c8                	je     0x41e7a3
41e7db:	eb 33                	jmp    0x41e810
41e7dd:	0f b7 03             	movzwl (%ebx),%eax
41e7e0:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41e7e3:	51                   	push   %ecx
41e7e4:	50                   	push   %eax
41e7e5:	e8 1d 67 00 00       	call   0x424f07
41e7ea:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41e7ed:	0f b7 f8             	movzwl %ax,%edi
41e7f0:	0f b7 06             	movzwl (%esi),%eax
41e7f3:	8d 5b 02             	lea    0x2(%ebx),%ebx
41e7f6:	51                   	push   %ecx
41e7f7:	50                   	push   %eax
41e7f8:	e8 0a 67 00 00       	call   0x424f07
41e7fd:	83 c4 10             	add    $0x10,%esp
41e800:	0f b7 c0             	movzwl %ax,%eax
41e803:	8d 76 02             	lea    0x2(%esi),%esi
41e806:	66 85 ff             	test   %di,%di
41e809:	74 05                	je     0x41e810
41e80b:	66 3b f8             	cmp    %ax,%di
41e80e:	74 cd                	je     0x41e7dd
41e810:	0f b7 d7             	movzwl %di,%edx
41e813:	0f b7 c0             	movzwl %ax,%eax
41e816:	2b d0                	sub    %eax,%edx
41e818:	5f                   	pop    %edi
41e819:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
41e81d:	5e                   	pop    %esi
41e81e:	5b                   	pop    %ebx
41e81f:	74 0a                	je     0x41e82b
41e821:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41e824:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
41e82b:	8b c2                	mov    %edx,%eax
41e82d:	8b e5                	mov    %ebp,%esp
41e82f:	5d                   	pop    %ebp
41e830:	c3                   	ret
41e831:	8b ff                	mov    %edi,%edi
41e833:	55                   	push   %ebp
41e834:	8b ec                	mov    %esp,%ebp
41e836:	8d 41 04             	lea    0x4(%ecx),%eax
41e839:	8b d0                	mov    %eax,%edx
41e83b:	2b d1                	sub    %ecx,%edx
41e83d:	83 c2 03             	add    $0x3,%edx
41e840:	56                   	push   %esi
41e841:	33 f6                	xor    %esi,%esi
41e843:	c1 ea 02             	shr    $0x2,%edx
41e846:	3b c1                	cmp    %ecx,%eax
41e848:	1b c0                	sbb    %eax,%eax
41e84a:	f7 d0                	not    %eax
41e84c:	23 c2                	and    %edx,%eax
41e84e:	74 0d                	je     0x41e85d
41e850:	8b 55 08             	mov    0x8(%ebp),%edx
41e853:	46                   	inc    %esi
41e854:	89 11                	mov    %edx,(%ecx)
41e856:	8d 49 04             	lea    0x4(%ecx),%ecx
41e859:	3b f0                	cmp    %eax,%esi
41e85b:	75 f6                	jne    0x41e853
41e85d:	5e                   	pop    %esi
41e85e:	5d                   	pop    %ebp
41e85f:	c2 04 00             	ret    $0x4
41e862:	8b ff                	mov    %edi,%edi
41e864:	55                   	push   %ebp
41e865:	8b ec                	mov    %esp,%ebp
41e867:	8d 41 04             	lea    0x4(%ecx),%eax
41e86a:	8b d0                	mov    %eax,%edx
41e86c:	2b d1                	sub    %ecx,%edx
41e86e:	83 c2 03             	add    $0x3,%edx
41e871:	56                   	push   %esi
41e872:	33 f6                	xor    %esi,%esi
41e874:	c1 ea 02             	shr    $0x2,%edx
41e877:	3b c1                	cmp    %ecx,%eax
41e879:	1b c0                	sbb    %eax,%eax
41e87b:	f7 d0                	not    %eax
41e87d:	23 c2                	and    %edx,%eax
41e87f:	74 0d                	je     0x41e88e
41e881:	8b 55 08             	mov    0x8(%ebp),%edx
41e884:	46                   	inc    %esi
41e885:	89 11                	mov    %edx,(%ecx)
41e887:	8d 49 04             	lea    0x4(%ecx),%ecx
41e88a:	3b f0                	cmp    %eax,%esi
41e88c:	75 f6                	jne    0x41e884
41e88e:	5e                   	pop    %esi
41e88f:	5d                   	pop    %ebp
41e890:	c2 04 00             	ret    $0x4
41e893:	68 80 70 00 00       	push   $0x7080
41e898:	b9 f0 9f 83 02       	mov    $0x2839ff0,%ecx
41e89d:	e8 c0 ff ff ff       	call   0x41e862
41e8a2:	6a 01                	push   $0x1
41e8a4:	b9 f4 9f 83 02       	mov    $0x2839ff4,%ecx
41e8a9:	e8 83 ff ff ff       	call   0x41e831
41e8ae:	68 f0 f1 ff ff       	push   $0xfffff1f0
41e8b3:	b9 f8 9f 83 02       	mov    $0x2839ff8,%ecx
41e8b8:	e8 a5 ff ff ff       	call   0x41e862
41e8bd:	c7 05 fc 9f 83 02 40 	movl   $0x43bd40,0x2839ffc
41e8c4:	bd 43 00
41e8c7:	33 c0                	xor    %eax,%eax
41e8c9:	c3                   	ret
41e8ca:	8b ff                	mov    %edi,%edi
41e8cc:	55                   	push   %ebp
41e8cd:	8b ec                	mov    %esp,%ebp
41e8cf:	83 ec 10             	sub    $0x10,%esp
41e8d2:	ff 75 0c             	push   0xc(%ebp)
41e8d5:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41e8d8:	e8 eb de fe ff       	call   0x40c7c8
41e8dd:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e8e0:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
41e8e4:	8b 00                	mov    (%eax),%eax
41e8e6:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
41e8ea:	25 00 80 00 00       	and    $0x8000,%eax
41e8ef:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
41e8f3:	74 0a                	je     0x41e8ff
41e8f5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41e8f8:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
41e8ff:	8b e5                	mov    %ebp,%esp
41e901:	5d                   	pop    %ebp
41e902:	c3                   	ret
41e903:	8b ff                	mov    %edi,%edi
41e905:	55                   	push   %ebp
41e906:	8b ec                	mov    %esp,%ebp
41e908:	8b 45 0c             	mov    0xc(%ebp),%eax
41e90b:	3b 45 08             	cmp    0x8(%ebp),%eax
41e90e:	76 05                	jbe    0x41e915
41e910:	83 c8 ff             	or     $0xffffffff,%eax
41e913:	5d                   	pop    %ebp
41e914:	c3                   	ret
41e915:	1b c0                	sbb    %eax,%eax
41e917:	f7 d8                	neg    %eax
41e919:	5d                   	pop    %ebp
41e91a:	c3                   	ret
41e91b:	8b ff                	mov    %edi,%edi
41e91d:	55                   	push   %ebp
41e91e:	8b ec                	mov    %esp,%ebp
41e920:	8b 45 0c             	mov    0xc(%ebp),%eax
41e923:	83 ec 20             	sub    $0x20,%esp
41e926:	56                   	push   %esi
41e927:	85 c0                	test   %eax,%eax
41e929:	75 16                	jne    0x41e941
41e92b:	e8 3b 61 ff ff       	call   0x414a6b
41e930:	6a 16                	push   $0x16
41e932:	5e                   	pop    %esi
41e933:	89 30                	mov    %esi,(%eax)
41e935:	e8 a8 d3 fe ff       	call   0x40bce2
41e93a:	8b c6                	mov    %esi,%eax
41e93c:	e9 58 01 00 00       	jmp    0x41ea99
41e941:	8b 75 08             	mov    0x8(%ebp),%esi
41e944:	33 c9                	xor    %ecx,%ecx
41e946:	53                   	push   %ebx
41e947:	57                   	push   %edi
41e948:	89 08                	mov    %ecx,(%eax)
41e94a:	8b f9                	mov    %ecx,%edi
41e94c:	8b d9                	mov    %ecx,%ebx
41e94e:	89 7d e0             	mov    %edi,-0x20(%ebp)
41e951:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41e954:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41e957:	39 0e                	cmp    %ecx,(%esi)
41e959:	74 56                	je     0x41e9b1
41e95b:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e95e:	66 c7 45 fc 2a 3f    	movw   $0x3f2a,-0x4(%ebp)
41e964:	50                   	push   %eax
41e965:	ff 36                	push   (%esi)
41e967:	88 4d fe             	mov    %cl,-0x2(%ebp)
41e96a:	e8 e1 6a 00 00       	call   0x425450
41e96f:	59                   	pop    %ecx
41e970:	59                   	pop    %ecx
41e971:	85 c0                	test   %eax,%eax
41e973:	75 14                	jne    0x41e989
41e975:	8d 45 e0             	lea    -0x20(%ebp),%eax
41e978:	50                   	push   %eax
41e979:	6a 00                	push   $0x0
41e97b:	6a 00                	push   $0x0
41e97d:	ff 36                	push   (%esi)
41e97f:	e8 27 01 00 00       	call   0x41eaab
41e984:	83 c4 10             	add    $0x10,%esp
41e987:	eb 0f                	jmp    0x41e998
41e989:	8d 4d e0             	lea    -0x20(%ebp),%ecx
41e98c:	51                   	push   %ecx
41e98d:	50                   	push   %eax
41e98e:	ff 36                	push   (%esi)
41e990:	e8 ac 01 00 00       	call   0x41eb41
41e995:	83 c4 0c             	add    $0xc,%esp
41e998:	8b f8                	mov    %eax,%edi
41e99a:	85 ff                	test   %edi,%edi
41e99c:	0f 85 eb 00 00 00    	jne    0x41ea8d
41e9a2:	83 c6 04             	add    $0x4,%esi
41e9a5:	33 c9                	xor    %ecx,%ecx
41e9a7:	39 0e                	cmp    %ecx,(%esi)
41e9a9:	75 b0                	jne    0x41e95b
41e9ab:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
41e9ae:	8b 7d e0             	mov    -0x20(%ebp),%edi
41e9b1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41e9b5:	8b c3                	mov    %ebx,%eax
41e9b7:	2b c7                	sub    %edi,%eax
41e9b9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41e9bc:	8b d0                	mov    %eax,%edx
41e9be:	83 c0 03             	add    $0x3,%eax
41e9c1:	c1 fa 02             	sar    $0x2,%edx
41e9c4:	42                   	inc    %edx
41e9c5:	c1 e8 02             	shr    $0x2,%eax
41e9c8:	3b df                	cmp    %edi,%ebx
41e9ca:	89 55 f4             	mov    %edx,-0xc(%ebp)
41e9cd:	1b f6                	sbb    %esi,%esi
41e9cf:	f7 d6                	not    %esi
41e9d1:	23 f0                	and    %eax,%esi
41e9d3:	74 30                	je     0x41ea05
41e9d5:	8b d7                	mov    %edi,%edx
41e9d7:	8b d9                	mov    %ecx,%ebx
41e9d9:	8b 0a                	mov    (%edx),%ecx
41e9db:	8d 41 01             	lea    0x1(%ecx),%eax
41e9de:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e9e1:	8a 01                	mov    (%ecx),%al
41e9e3:	41                   	inc    %ecx
41e9e4:	84 c0                	test   %al,%al
41e9e6:	75 f9                	jne    0x41e9e1
41e9e8:	2b 4d fc             	sub    -0x4(%ebp),%ecx
41e9eb:	43                   	inc    %ebx
41e9ec:	8b 45 f8             	mov    -0x8(%ebp),%eax
41e9ef:	03 d9                	add    %ecx,%ebx
41e9f1:	83 c2 04             	add    $0x4,%edx
41e9f4:	40                   	inc    %eax
41e9f5:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e9f8:	3b c6                	cmp    %esi,%eax
41e9fa:	75 dd                	jne    0x41e9d9
41e9fc:	8b 55 f4             	mov    -0xc(%ebp),%edx
41e9ff:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41ea02:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
41ea05:	6a 01                	push   $0x1
41ea07:	ff 75 fc             	push   -0x4(%ebp)
41ea0a:	52                   	push   %edx
41ea0b:	e8 80 74 ff ff       	call   0x415e90
41ea10:	8b f0                	mov    %eax,%esi
41ea12:	83 c4 0c             	add    $0xc,%esp
41ea15:	85 f6                	test   %esi,%esi
41ea17:	75 05                	jne    0x41ea1e
41ea19:	83 cf ff             	or     $0xffffffff,%edi
41ea1c:	eb 67                	jmp    0x41ea85
41ea1e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41ea21:	8d 04 86             	lea    (%esi,%eax,4),%eax
41ea24:	89 45 f0             	mov    %eax,-0x10(%ebp)
41ea27:	8b d0                	mov    %eax,%edx
41ea29:	89 55 f4             	mov    %edx,-0xc(%ebp)
41ea2c:	3b fb                	cmp    %ebx,%edi
41ea2e:	74 4e                	je     0x41ea7e
41ea30:	8b c6                	mov    %esi,%eax
41ea32:	2b c7                	sub    %edi,%eax
41ea34:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ea37:	8b 0f                	mov    (%edi),%ecx
41ea39:	8d 41 01             	lea    0x1(%ecx),%eax
41ea3c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ea3f:	8a 01                	mov    (%ecx),%al
41ea41:	41                   	inc    %ecx
41ea42:	84 c0                	test   %al,%al
41ea44:	75 f9                	jne    0x41ea3f
41ea46:	2b 4d f8             	sub    -0x8(%ebp),%ecx
41ea49:	8d 41 01             	lea    0x1(%ecx),%eax
41ea4c:	50                   	push   %eax
41ea4d:	ff 37                	push   (%edi)
41ea4f:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ea52:	8b 45 f0             	mov    -0x10(%ebp),%eax
41ea55:	2b c2                	sub    %edx,%eax
41ea57:	03 45 fc             	add    -0x4(%ebp),%eax
41ea5a:	50                   	push   %eax
41ea5b:	52                   	push   %edx
41ea5c:	e8 9b 64 00 00       	call   0x424efc
41ea61:	83 c4 10             	add    $0x10,%esp
41ea64:	85 c0                	test   %eax,%eax
41ea66:	75 36                	jne    0x41ea9e
41ea68:	8b 45 ec             	mov    -0x14(%ebp),%eax
41ea6b:	8b 55 f4             	mov    -0xc(%ebp),%edx
41ea6e:	89 14 38             	mov    %edx,(%eax,%edi,1)
41ea71:	83 c7 04             	add    $0x4,%edi
41ea74:	03 55 f8             	add    -0x8(%ebp),%edx
41ea77:	89 55 f4             	mov    %edx,-0xc(%ebp)
41ea7a:	3b fb                	cmp    %ebx,%edi
41ea7c:	75 b9                	jne    0x41ea37
41ea7e:	8b 45 0c             	mov    0xc(%ebp),%eax
41ea81:	33 ff                	xor    %edi,%edi
41ea83:	89 30                	mov    %esi,(%eax)
41ea85:	6a 00                	push   $0x0
41ea87:	e8 84 62 ff ff       	call   0x414d10
41ea8c:	59                   	pop    %ecx
41ea8d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
41ea90:	e8 30 02 00 00       	call   0x41ecc5
41ea95:	8b c7                	mov    %edi,%eax
41ea97:	5f                   	pop    %edi
41ea98:	5b                   	pop    %ebx
41ea99:	5e                   	pop    %esi
41ea9a:	8b e5                	mov    %ebp,%esp
41ea9c:	5d                   	pop    %ebp
41ea9d:	c3                   	ret
41ea9e:	33 c0                	xor    %eax,%eax
41eaa0:	50                   	push   %eax
41eaa1:	50                   	push   %eax
41eaa2:	50                   	push   %eax
41eaa3:	50                   	push   %eax
41eaa4:	50                   	push   %eax
41eaa5:	e8 65 d2 fe ff       	call   0x40bd0f
41eaaa:	cc                   	int3
41eaab:	8b ff                	mov    %edi,%edi
41eaad:	55                   	push   %ebp
41eaae:	8b ec                	mov    %esp,%ebp
41eab0:	51                   	push   %ecx
41eab1:	8b 4d 08             	mov    0x8(%ebp),%ecx
41eab4:	8d 51 01             	lea    0x1(%ecx),%edx
41eab7:	8a 01                	mov    (%ecx),%al
41eab9:	41                   	inc    %ecx
41eaba:	84 c0                	test   %al,%al
41eabc:	75 f9                	jne    0x41eab7