40f7ae:	ff 15 60 c3 42 00    	call   *0x42c360
40f7b4:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f7b7:	83 c4 10             	add    $0x10,%esp
40f7ba:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
40f7be:	03 c6                	add    %esi,%eax
40f7c0:	89 01                	mov    %eax,(%ecx)
40f7c2:	b0 01                	mov    $0x1,%al
40f7c4:	5f                   	pop    %edi
40f7c5:	5e                   	pop    %esi
40f7c6:	5b                   	pop    %ebx
40f7c7:	c9                   	leave
40f7c8:	c2 08 00             	ret    $0x8
40f7cb:	8b ff                	mov    %edi,%edi
40f7cd:	55                   	push   %ebp
40f7ce:	8b ec                	mov    %esp,%ebp
40f7d0:	51                   	push   %ecx
40f7d1:	8b 45 08             	mov    0x8(%ebp),%eax
40f7d4:	53                   	push   %ebx
40f7d5:	56                   	push   %esi
40f7d6:	8b f1                	mov    %ecx,%esi
40f7d8:	8b 10                	mov    (%eax),%edx
40f7da:	8a 46 02             	mov    0x2(%esi),%al
40f7dd:	3c 01                	cmp    $0x1,%al
40f7df:	75 23                	jne    0x40f804
40f7e1:	8d 5a 02             	lea    0x2(%edx),%ebx
40f7e4:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
40f7e7:	77 78                	ja     0x40f861
40f7e9:	6a 02                	push   $0x2
40f7eb:	52                   	push   %edx
40f7ec:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f7ef:	89 56 0c             	mov    %edx,0xc(%esi)
40f7f2:	6a 02                	push   $0x2
40f7f4:	50                   	push   %eax
40f7f5:	ff 15 60 c3 42 00    	call   *0x42c360
40f7fb:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40f7ff:	89 46 04             	mov    %eax,0x4(%esi)
40f802:	eb 1e                	jmp    0x40f822
40f804:	3c 02                	cmp    $0x2,%al
40f806:	75 1f                	jne    0x40f827
40f808:	8d 5a 04             	lea    0x4(%edx),%ebx
40f80b:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
40f80e:	77 51                	ja     0x40f861
40f810:	6a 04                	push   $0x4
40f812:	52                   	push   %edx
40f813:	8d 46 04             	lea    0x4(%esi),%eax
40f816:	89 56 0c             	mov    %edx,0xc(%esi)
40f819:	6a 04                	push   $0x4
40f81b:	50                   	push   %eax
40f81c:	ff 15 60 c3 42 00    	call   *0x42c360
40f822:	8b d3                	mov    %ebx,%edx
40f824:	83 c4 10             	add    $0x10,%esp
40f827:	0f b7 06             	movzwl (%esi),%eax
40f82a:	8d 5e 08             	lea    0x8(%esi),%ebx
40f82d:	66 89 03             	mov    %ax,(%ebx)
40f830:	8b c8                	mov    %eax,%ecx
40f832:	66 85 c0             	test   %ax,%ax
40f835:	75 20                	jne    0x40f857
40f837:	8d 42 02             	lea    0x2(%edx),%eax
40f83a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f83d:	3b 45 0c             	cmp    0xc(%ebp),%eax
40f840:	77 1f                	ja     0x40f861
40f842:	6a 02                	push   $0x2
40f844:	52                   	push   %edx
40f845:	6a 02                	push   $0x2
40f847:	53                   	push   %ebx
40f848:	ff 15 60 c3 42 00    	call   *0x42c360
40f84e:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f851:	83 c4 10             	add    $0x10,%esp
40f854:	0f b7 0b             	movzwl (%ebx),%ecx
40f857:	0f b7 c1             	movzwl %cx,%eax
40f85a:	03 c2                	add    %edx,%eax
40f85c:	3b 45 0c             	cmp    0xc(%ebp),%eax
40f85f:	76 04                	jbe    0x40f865
40f861:	32 c0                	xor    %al,%al
40f863:	eb 0a                	jmp    0x40f86f
40f865:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f868:	89 56 10             	mov    %edx,0x10(%esi)
40f86b:	89 01                	mov    %eax,(%ecx)
40f86d:	b0 01                	mov    $0x1,%al
40f86f:	5e                   	pop    %esi
40f870:	5b                   	pop    %ebx
40f871:	c9                   	leave
40f872:	c2 08 00             	ret    $0x8
40f875:	8b ff                	mov    %edi,%edi
40f877:	55                   	push   %ebp
40f878:	8b ec                	mov    %esp,%ebp
40f87a:	66 8b 45 08          	mov    0x8(%ebp),%ax
40f87e:	8b d1                	mov    %ecx,%edx
40f880:	8a 4d 18             	mov    0x18(%ebp),%cl
40f883:	83 ec 14             	sub    $0x14,%esp
40f886:	66 89 02             	mov    %ax,(%edx)
40f889:	66 8b 45 0c          	mov    0xc(%ebp),%ax
40f88d:	66 89 42 02          	mov    %ax,0x2(%edx)
40f891:	8a 45 10             	mov    0x10(%ebp),%al
40f894:	88 42 04             	mov    %al,0x4(%edx)
40f897:	66 8b 45 14          	mov    0x14(%ebp),%ax
40f89b:	53                   	push   %ebx
40f89c:	33 db                	xor    %ebx,%ebx
40f89e:	66 89 42 06          	mov    %ax,0x6(%edx)
40f8a2:	88 4a 08             	mov    %cl,0x8(%edx)
40f8a5:	66 85 c0             	test   %ax,%ax
40f8a8:	74 20                	je     0x40f8ca
40f8aa:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40f8ae:	33 c0                	xor    %eax,%eax
40f8b0:	88 4d ee             	mov    %cl,-0x12(%ebp)
40f8b3:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f8b6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40f8b9:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
40f8bd:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40f8c0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f8c3:	e8 1f fe ff ff       	call   0x40f6e7
40f8c8:	eb 02                	jmp    0x40f8cc
40f8ca:	8b c3                	mov    %ebx,%eax
40f8cc:	89 42 0c             	mov    %eax,0xc(%edx)
40f8cf:	8b c2                	mov    %edx,%eax
40f8d1:	89 5a 10             	mov    %ebx,0x10(%edx)
40f8d4:	89 5a 14             	mov    %ebx,0x14(%edx)
40f8d7:	89 5a 18             	mov    %ebx,0x18(%edx)
40f8da:	89 5a 1c             	mov    %ebx,0x1c(%edx)
40f8dd:	88 5a 22             	mov    %bl,0x22(%edx)
40f8e0:	66 c7 42 20 00 00    	movw   $0x0,0x20(%edx)
40f8e6:	5b                   	pop    %ebx
40f8e7:	c9                   	leave
40f8e8:	c2 14 00             	ret    $0x14
40f8eb:	8b ff                	mov    %edi,%edi
40f8ed:	55                   	push   %ebp
40f8ee:	8b ec                	mov    %esp,%ebp
40f8f0:	83 ec 18             	sub    $0x18,%esp
40f8f3:	53                   	push   %ebx
40f8f4:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f8f7:	8d 41 10             	lea    0x10(%ecx),%eax
40f8fa:	56                   	push   %esi
40f8fb:	57                   	push   %edi
40f8fc:	8b f0                	mov    %eax,%esi
40f8fe:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40f901:	8d 7d e8             	lea    -0x18(%ebp),%edi
40f904:	8d 48 0c             	lea    0xc(%eax),%ecx
40f907:	8b 11                	mov    (%ecx),%edx
40f909:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f90a:	89 55 fc             	mov    %edx,-0x4(%ebp)
40f90d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f90e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f90f:	83 21 00             	andl   $0x0,(%ecx)
40f912:	8d 73 10             	lea    0x10(%ebx),%esi
40f915:	8b f8                	mov    %eax,%edi
40f917:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f918:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f919:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f91a:	8b 43 1c             	mov    0x1c(%ebx),%eax
40f91d:	83 63 1c 00          	andl   $0x0,0x1c(%ebx)
40f921:	50                   	push   %eax
40f922:	e8 32 30 00 00       	call   0x412959
40f927:	ff 75 fc             	push   -0x4(%ebp)
40f92a:	8b fb                	mov    %ebx,%edi
40f92c:	8d 75 e8             	lea    -0x18(%ebp),%esi
40f92f:	8d 4b 1c             	lea    0x1c(%ebx),%ecx
40f932:	8d 7f 10             	lea    0x10(%edi),%edi
40f935:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f936:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f937:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f938:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40f93c:	e8 18 30 00 00       	call   0x412959
40f941:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40f944:	e8 34 30 00 00       	call   0x41297d
40f949:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40f94c:	8b 55 08             	mov    0x8(%ebp),%edx
40f94f:	5f                   	pop    %edi
40f950:	5e                   	pop    %esi
40f951:	8a 4b 20             	mov    0x20(%ebx),%cl
40f954:	8a 42 20             	mov    0x20(%edx),%al
40f957:	88 43 20             	mov    %al,0x20(%ebx)
40f95a:	8a 42 21             	mov    0x21(%edx),%al
40f95d:	88 4a 20             	mov    %cl,0x20(%edx)
40f960:	8a 4b 21             	mov    0x21(%ebx),%cl
40f963:	88 43 21             	mov    %al,0x21(%ebx)
40f966:	88 4a 21             	mov    %cl,0x21(%edx)
40f969:	5b                   	pop    %ebx
40f96a:	c9                   	leave
40f96b:	c2 04 00             	ret    $0x4
40f96e:	8b ff                	mov    %edi,%edi
40f970:	55                   	push   %ebp
40f971:	8b ec                	mov    %esp,%ebp
40f973:	56                   	push   %esi
40f974:	57                   	push   %edi
40f975:	8b 7d 10             	mov    0x10(%ebp),%edi
40f978:	8b f1                	mov    %ecx,%esi
40f97a:	83 ff 0a             	cmp    $0xa,%edi
40f97d:	0f 82 c7 00 00 00    	jb     0x40fa4a
40f983:	8b 46 1c             	mov    0x1c(%esi),%eax
40f986:	53                   	push   %ebx
40f987:	33 db                	xor    %ebx,%ebx
40f989:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40f98c:	85 c0                	test   %eax,%eax
40f98e:	74 0f                	je     0x40f99f
40f990:	50                   	push   %eax
40f991:	53                   	push   %ebx
40f992:	ff 15 a0 c1 42 00    	call   *0x42c1a0
40f998:	50                   	push   %eax
40f999:	ff 15 a4 c1 42 00    	call   *0x42c1a4
40f99f:	8b 55 08             	mov    0x8(%ebp),%edx
40f9a2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f9a5:	83 f9 0a             	cmp    $0xa,%ecx
40f9a8:	88 5e 21             	mov    %bl,0x21(%esi)
40f9ab:	1a db                	sbb    %bl,%bl
40f9ad:	89 56 10             	mov    %edx,0x10(%esi)
40f9b0:	fe c3                	inc    %bl
40f9b2:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
40f9b5:	89 46 14             	mov    %eax,0x14(%esi)
40f9b8:	8d 04 3a             	lea    (%edx,%edi,1),%eax
40f9bb:	89 46 18             	mov    %eax,0x18(%esi)
40f9be:	83 f9 0a             	cmp    $0xa,%ecx
40f9c1:	72 4b                	jb     0x40fa0e
40f9c3:	33 c9                	xor    %ecx,%ecx
40f9c5:	66 39 0a             	cmp    %cx,(%edx)
40f9c8:	77 0b                	ja     0x40f9d5
40f9ca:	66 8b 42 02          	mov    0x2(%edx),%ax
40f9ce:	66 3b 06             	cmp    (%esi),%ax
40f9d1:	8a c1                	mov    %cl,%al
40f9d3:	76 02                	jbe    0x40f9d7
40f9d5:	b0 01                	mov    $0x1,%al
40f9d7:	88 46 21             	mov    %al,0x21(%esi)
40f9da:	66 39 0a             	cmp    %cx,(%edx)
40f9dd:	75 2d                	jne    0x40fa0c
40f9df:	66 8b 42 02          	mov    0x2(%edx),%ax
40f9e3:	66 3b 06             	cmp    (%esi),%ax
40f9e6:	75 24                	jne    0x40fa0c
40f9e8:	66 8b 42 04          	mov    0x4(%edx),%ax
40f9ec:	66 3b 46 02          	cmp    0x2(%esi),%ax
40f9f0:	75 1a                	jne    0x40fa0c
40f9f2:	8a 42 08             	mov    0x8(%edx),%al
40f9f5:	3a 46 04             	cmp    0x4(%esi),%al
40f9f8:	75 12                	jne    0x40fa0c
40f9fa:	66 8b 42 06          	mov    0x6(%edx),%ax
40f9fe:	66 3b 46 06          	cmp    0x6(%esi),%ax
40fa02:	75 08                	jne    0x40fa0c
40fa04:	8a 42 09             	mov    0x9(%edx),%al
40fa07:	3a 46 08             	cmp    0x8(%esi),%al
40fa0a:	74 02                	je     0x40fa0e
40fa0c:	8a d9                	mov    %cl,%bl
40fa0e:	84 db                	test   %bl,%bl
40fa10:	5b                   	pop    %ebx
40fa11:	75 31                	jne    0x40fa44
40fa13:	33 c0                	xor    %eax,%eax
40fa15:	66 89 02             	mov    %ax,(%edx)
40fa18:	66 8b 06             	mov    (%esi),%ax
40fa1b:	66 89 42 02          	mov    %ax,0x2(%edx)
40fa1f:	66 8b 46 02          	mov    0x2(%esi),%ax
40fa23:	66 89 42 04          	mov    %ax,0x4(%edx)
40fa27:	8a 46 04             	mov    0x4(%esi),%al
40fa2a:	88 42 08             	mov    %al,0x8(%edx)
40fa2d:	66 8b 46 06          	mov    0x6(%esi),%ax
40fa31:	66 89 42 06          	mov    %ax,0x6(%edx)
40fa35:	8a 46 08             	mov    0x8(%esi),%al
40fa38:	88 42 09             	mov    %al,0x9(%edx)
40fa3b:	8b 46 10             	mov    0x10(%esi),%eax
40fa3e:	83 c0 0a             	add    $0xa,%eax
40fa41:	89 46 14             	mov    %eax,0x14(%esi)
40fa44:	5f                   	pop    %edi
40fa45:	5e                   	pop    %esi
40fa46:	5d                   	pop    %ebp
40fa47:	c2 0c 00             	ret    $0xc
40fa4a:	51                   	push   %ecx
40fa4b:	8b 4d 04             	mov    0x4(%ebp),%ecx
40fa4e:	e8 fb e6 ff ff       	call   0x40e14e
40fa53:	cc                   	int3
40fa54:	6a 44                	push   $0x44
40fa56:	b8 10 87 42 00       	mov    $0x428710,%eax
40fa5b:	e8 08 86 01 00       	call   0x428068
40fa60:	8b f1                	mov    %ecx,%esi
40fa62:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40fa65:	33 db                	xor    %ebx,%ebx
40fa67:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40fa6a:	8b 46 10             	mov    0x10(%esi),%eax
40fa6d:	8a 4e 04             	mov    0x4(%esi),%cl
40fa70:	83 c0 0a             	add    $0xa,%eax
40fa73:	89 45 f0             	mov    %eax,-0x10(%ebp)
40fa76:	66 8b 46 02          	mov    0x2(%esi),%ax
40fa7a:	66 89 45 dc          	mov    %ax,-0x24(%ebp)
40fa7e:	33 c0                	xor    %eax,%eax
40fa80:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40fa84:	66 8b 46 06          	mov    0x6(%esi),%ax
40fa88:	88 4d de             	mov    %cl,-0x22(%ebp)
40fa8b:	8a 4e 08             	mov    0x8(%esi),%cl
40fa8e:	66 89 45 b0          	mov    %ax,-0x50(%ebp)
40fa92:	33 c0                	xor    %eax,%eax
40fa94:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40fa97:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40fa9a:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40fa9d:	88 4d b2             	mov    %cl,-0x4e(%ebp)
40faa0:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
40faa3:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40faa7:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40faaa:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40faad:	eb 74                	jmp    0x40fb23
40faaf:	8b fb                	mov    %ebx,%edi
40fab1:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40fab4:	76 6d                	jbe    0x40fb23
40fab6:	ff 76 14             	push   0x14(%esi)
40fab9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fabc:	50                   	push   %eax
40fabd:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40fac0:	e8 06 fd ff ff       	call   0x40f7cb
40fac5:	84 c0                	test   %al,%al
40fac7:	74 5a                	je     0x40fb23
40fac9:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40facc:	89 45 d8             	mov    %eax,-0x28(%ebp)
40facf:	0f b7 45 b8          	movzwl -0x48(%ebp),%eax
40fad3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40fad6:	8b 45 c0             	mov    -0x40(%ebp),%eax
40fad9:	89 45 d0             	mov    %eax,-0x30(%ebp)
40fadc:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
40fae0:	89 45 cc             	mov    %eax,-0x34(%ebp)
40fae3:	8b 45 ec             	mov    -0x14(%ebp),%eax
40fae6:	89 45 c8             	mov    %eax,-0x38(%ebp)
40fae9:	8b 45 48             	mov    0x48(%ebp),%eax
40faec:	85 c0                	test   %eax,%eax
40faee:	74 75                	je     0x40fb65
40faf0:	8b 30                	mov    (%eax),%esi
40faf2:	8d 45 d8             	lea    -0x28(%ebp),%eax
40faf5:	50                   	push   %eax
40faf6:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40faf9:	50                   	push   %eax
40fafa:	8b 76 10             	mov    0x10(%esi),%esi
40fafd:	8d 45 d0             	lea    -0x30(%ebp),%eax
40fb00:	50                   	push   %eax
40fb01:	8d 45 cc             	lea    -0x34(%ebp),%eax
40fb04:	8b ce                	mov    %esi,%ecx
40fb06:	50                   	push   %eax
40fb07:	8d 45 c8             	lea    -0x38(%ebp),%eax
40fb0a:	50                   	push   %eax
40fb0b:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40fb11:	8b 4d 48             	mov    0x48(%ebp),%ecx
40fb14:	ff d6                	call   *%esi
40fb16:	84 c0                	test   %al,%al
40fb18:	74 22                	je     0x40fb3c
40fb1a:	8b 75 c4             	mov    -0x3c(%ebp),%esi
40fb1d:	47                   	inc    %edi
40fb1e:	3b 7d e0             	cmp    -0x20(%ebp),%edi
40fb21:	72 93                	jb     0x40fab6
40fb23:	ff 76 14             	push   0x14(%esi)
40fb26:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fb29:	50                   	push   %eax
40fb2a:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40fb2d:	e8 99 fc ff ff       	call   0x40f7cb
40fb32:	84 c0                	test   %al,%al
40fb34:	0f 85 75 ff ff ff    	jne    0x40faaf
40fb3a:	b3 01                	mov    $0x1,%bl
40fb3c:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40fb43:	8b 7d 48             	mov    0x48(%ebp),%edi
40fb46:	85 ff                	test   %edi,%edi