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
40fb48:	74 11                	je     0x40fb5b
40fb4a:	8b 17                	mov    (%edi),%edx
40fb4c:	8b 72 0c             	mov    0xc(%edx),%esi
40fb4f:	8b ce                	mov    %esi,%ecx
40fb51:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40fb57:	8b cf                	mov    %edi,%ecx
40fb59:	ff d6                	call   *%esi
40fb5b:	8a c3                	mov    %bl,%al
40fb5d:	e8 d4 84 01 00       	call   0x428036
40fb62:	c2 48 00             	ret    $0x48
40fb65:	e8 0a e6 ff ff       	call   0x40e174
40fb6a:	cc                   	int3
40fb6b:	6a 10                	push   $0x10
40fb6d:	b8 33 87 42 00       	mov    $0x428733,%eax
40fb72:	e8 f1 84 01 00       	call   0x428068
40fb77:	8b f1                	mov    %ecx,%esi
40fb79:	ff 75 18             	push   0x18(%ebp)
40fb7c:	8b 7d 14             	mov    0x14(%ebp),%edi
40fb7f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40fb82:	57                   	push   %edi
40fb83:	ff 75 10             	push   0x10(%ebp)
40fb86:	53                   	push   %ebx
40fb87:	ff 75 08             	push   0x8(%ebp)
40fb8a:	e8 d0 02 00 00       	call   0x40fe5f
40fb8f:	84 c0                	test   %al,%al
40fb91:	74 04                	je     0x40fb97
40fb93:	b0 01                	mov    $0x1,%al
40fb95:	eb 7b                	jmp    0x40fc12
40fb97:	8d 47 20             	lea    0x20(%edi),%eax
40fb9a:	33 d2                	xor    %edx,%edx
40fb9c:	8d 4e 10             	lea    0x10(%esi),%ecx
40fb9f:	03 c3                	add    %ebx,%eax
40fba1:	39 11                	cmp    %edx,(%ecx)
40fba3:	75 50                	jne    0x40fbf5
40fba5:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40fba8:	89 55 e8             	mov    %edx,-0x18(%ebp)
40fbab:	89 55 ec             	mov    %edx,-0x14(%ebp)
40fbae:	89 55 f0             	mov    %edx,-0x10(%ebp)
40fbb1:	83 c0 0a             	add    $0xa,%eax
40fbb4:	89 55 fc             	mov    %edx,-0x4(%ebp)
40fbb7:	50                   	push   %eax
40fbb8:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fbbb:	e8 c5 f5 ff ff       	call   0x40f185
40fbc0:	84 c0                	test   %al,%al
40fbc2:	74 27                	je     0x40fbeb
40fbc4:	8b 45 ec             	mov    -0x14(%ebp),%eax
40fbc7:	8b ce                	mov    %esi,%ecx
40fbc9:	2b 45 e4             	sub    -0x1c(%ebp),%eax
40fbcc:	50                   	push   %eax
40fbcd:	6a 00                	push   $0x0
40fbcf:	ff 75 e4             	push   -0x1c(%ebp)
40fbd2:	e8 97 fd ff ff       	call   0x40f96e
40fbd7:	8b 45 f0             	mov    -0x10(%ebp),%eax
40fbda:	8d 4e 1c             	lea    0x1c(%esi),%ecx
40fbdd:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40fbe1:	50                   	push   %eax
40fbe2:	e8 72 2d 00 00       	call   0x412959
40fbe7:	c6 46 22 01          	movb   $0x1,0x22(%esi)
40fbeb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fbee:	e8 8a 2d 00 00       	call   0x41297d
40fbf3:	eb 0b                	jmp    0x40fc00
40fbf5:	38 56 22             	cmp    %dl,0x22(%esi)
40fbf8:	74 06                	je     0x40fc00
40fbfa:	50                   	push   %eax
40fbfb:	e8 85 f5 ff ff       	call   0x40f185
40fc00:	ff 75 18             	push   0x18(%ebp)
40fc03:	8b ce                	mov    %esi,%ecx
40fc05:	57                   	push   %edi
40fc06:	ff 75 10             	push   0x10(%ebp)
40fc09:	53                   	push   %ebx
40fc0a:	ff 75 08             	push   0x8(%ebp)
40fc0d:	e8 4d 02 00 00       	call   0x40fe5f
40fc12:	e8 1f 84 01 00       	call   0x428036
40fc17:	c2 14 00             	ret    $0x14
40fc1a:	8b ff                	mov    %edi,%edi
40fc1c:	55                   	push   %ebp
40fc1d:	8b ec                	mov    %esp,%ebp
40fc1f:	83 ec 1c             	sub    $0x1c,%esp
40fc22:	66 8b 41 06          	mov    0x6(%ecx),%ax
40fc26:	33 d2                	xor    %edx,%edx
40fc28:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40fc2c:	8a 41 08             	mov    0x8(%ecx),%al
40fc2f:	53                   	push   %ebx
40fc30:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fc33:	56                   	push   %esi
40fc34:	8b 75 0c             	mov    0xc(%ebp),%esi
40fc37:	88 45 e6             	mov    %al,-0x1a(%ebp)
40fc3a:	33 c0                	xor    %eax,%eax
40fc3c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40fc3f:	89 55 e8             	mov    %edx,-0x18(%ebp)
40fc42:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fc46:	89 55 f0             	mov    %edx,-0x10(%ebp)
40fc49:	89 55 f4             	mov    %edx,-0xc(%ebp)
40fc4c:	85 f6                	test   %esi,%esi
40fc4e:	74 47                	je     0x40fc97
40fc50:	57                   	push   %edi
40fc51:	8b 41 0c             	mov    0xc(%ecx),%eax
40fc54:	8b fe                	mov    %esi,%edi
40fc56:	ff 71 14             	push   0x14(%ecx)
40fc59:	d1 ef                	shr    $1,%edi
40fc5b:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fc5e:	0f af c7             	imul   %edi,%eax
40fc61:	03 c3                	add    %ebx,%eax
40fc63:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fc66:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fc69:	50                   	push   %eax
40fc6a:	e8 5c fb ff ff       	call   0x40f7cb
40fc6f:	ff 75 14             	push   0x14(%ebp)
40fc72:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fc75:	ff 75 10             	push   0x10(%ebp)
40fc78:	e8 fe f9 ff ff       	call   0x40f67b
40fc7d:	85 c0                	test   %eax,%eax
40fc7f:	7e 0c                	jle    0x40fc8d
40fc81:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40fc84:	83 c8 ff             	or     $0xffffffff,%eax
40fc87:	2b c7                	sub    %edi,%eax
40fc89:	03 f0                	add    %eax,%esi
40fc8b:	eb 02                	jmp    0x40fc8f
40fc8d:	8b f7                	mov    %edi,%esi
40fc8f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40fc92:	85 f6                	test   %esi,%esi
40fc94:	75 bb                	jne    0x40fc51
40fc96:	5f                   	pop    %edi
40fc97:	5e                   	pop    %esi
40fc98:	8b c3                	mov    %ebx,%eax
40fc9a:	5b                   	pop    %ebx
40fc9b:	c9                   	leave
40fc9c:	c2 10 00             	ret    $0x10
40fc9f:	8b ff                	mov    %edi,%edi
40fca1:	55                   	push   %ebp
40fca2:	8b ec                	mov    %esp,%ebp
40fca4:	83 ec 20             	sub    $0x20,%esp
40fca7:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
40fcab:	53                   	push   %ebx
40fcac:	56                   	push   %esi
40fcad:	8b 75 08             	mov    0x8(%ebp),%esi
40fcb0:	57                   	push   %edi
40fcb1:	8b f9                	mov    %ecx,%edi
40fcb3:	33 c9                	xor    %ecx,%ecx
40fcb5:	66 89 4d e8          	mov    %cx,-0x18(%ebp)
40fcb9:	66 8b 47 06          	mov    0x6(%edi),%ax
40fcbd:	8b 4f 0c             	mov    0xc(%edi),%ecx
40fcc0:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40fcc4:	8a 47 08             	mov    0x8(%edi),%al
40fcc7:	88 45 e2             	mov    %al,-0x1e(%ebp)
40fcca:	33 c0                	xor    %eax,%eax
40fccc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fccf:	89 45 ec             	mov    %eax,-0x14(%ebp)
40fcd2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40fcd5:	85 c9                	test   %ecx,%ecx
40fcd7:	74 64                	je     0x40fd3d
40fcd9:	8b 47 14             	mov    0x14(%edi),%eax
40fcdc:	33 d2                	xor    %edx,%edx
40fcde:	2b 45 0c             	sub    0xc(%ebp),%eax
40fce1:	f7 f1                	div    %ecx
40fce3:	8b 56 04             	mov    0x4(%esi),%edx
40fce6:	3b d0                	cmp    %eax,%edx
40fce8:	76 0e                	jbe    0x40fcf8
40fcea:	50                   	push   %eax
40fceb:	8b ce                	mov    %esi,%ecx
40fced:	e8 b0 f9 ff ff       	call   0x40f6a2
40fcf2:	8b 56 04             	mov    0x4(%esi),%edx
40fcf5:	8b 4f 0c             	mov    0xc(%edi),%ecx
40fcf8:	ff 75 14             	push   0x14(%ebp)
40fcfb:	8b f2                	mov    %edx,%esi
40fcfd:	ff 75 10             	push   0x10(%ebp)
40fd00:	0f af f1             	imul   %ecx,%esi
40fd03:	8b cf                	mov    %edi,%ecx
40fd05:	52                   	push   %edx
40fd06:	ff 75 0c             	push   0xc(%ebp)
40fd09:	03 75 0c             	add    0xc(%ebp),%esi
40fd0c:	e8 09 ff ff ff       	call   0x40fc1a
40fd11:	8b d8                	mov    %eax,%ebx
40fd13:	3b de                	cmp    %esi,%ebx
40fd15:	0f 83 ac 00 00 00    	jae    0x40fdc7