408a2f:	50                   	push   %eax
408a30:	8d 45 d8             	lea    -0x28(%ebp),%eax
408a33:	50                   	push   %eax
408a34:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408a37:	50                   	push   %eax
408a38:	8d 45 d0             	lea    -0x30(%ebp),%eax
408a3b:	50                   	push   %eax
408a3c:	ff 15 78 64 42 00    	call   *0x426478
408a42:	8b 4d 48             	mov    0x48(%ebp),%ecx
408a45:	ff d6                	call   *%esi
408a47:	84 c0                	test   %al,%al
408a49:	74 25                	je     0x408a70
408a4b:	8b 75 f8             	mov    -0x8(%ebp),%esi
408a4e:	46                   	inc    %esi
408a4f:	89 75 f8             	mov    %esi,-0x8(%ebp)
408a52:	3b 75 e8             	cmp    -0x18(%ebp),%esi
408a55:	72 90                	jb     0x4089e7
408a57:	ff 77 14             	push   0x14(%edi)
408a5a:	8d 45 fc             	lea    -0x4(%ebp),%eax
408a5d:	50                   	push   %eax
408a5e:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408a61:	e8 96 fc ff ff       	call   0x4086fc
408a66:	84 c0                	test   %al,%al
408a68:	0f 85 71 ff ff ff    	jne    0x4089df
408a6e:	b3 01                	mov    $0x1,%bl
408a70:	8b 7d 48             	mov    0x48(%ebp),%edi
408a73:	85 ff                	test   %edi,%edi
408a75:	74 11                	je     0x408a88
408a77:	8b 17                	mov    (%edi),%edx
408a79:	8b 72 0c             	mov    0xc(%edx),%esi
408a7c:	8b ce                	mov    %esi,%ecx
408a7e:	ff 15 78 64 42 00    	call   *0x426478
408a84:	8b cf                	mov    %edi,%ecx
408a86:	ff d6                	call   *%esi
408a88:	5f                   	pop    %edi
408a89:	5e                   	pop    %esi
408a8a:	8a c3                	mov    %bl,%al
408a8c:	5b                   	pop    %ebx
408a8d:	c9                   	leave
408a8e:	c2 48 00             	ret    $0x48
408a91:	e8 64 e5 ff ff       	call   0x406ffa
408a96:	cc                   	int3
408a97:	8b ff                	mov    %edi,%edi
408a99:	55                   	push   %ebp
408a9a:	8b ec                	mov    %esp,%ebp
408a9c:	83 e4 f8             	and    $0xfffffff8,%esp
408a9f:	83 ec 14             	sub    $0x14,%esp
408aa2:	53                   	push   %ebx
408aa3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408aa6:	56                   	push   %esi
408aa7:	57                   	push   %edi
408aa8:	ff 75 18             	push   0x18(%ebp)
408aab:	8b 7d 14             	mov    0x14(%ebp),%edi
408aae:	8b f1                	mov    %ecx,%esi
408ab0:	57                   	push   %edi
408ab1:	ff 75 10             	push   0x10(%ebp)
408ab4:	53                   	push   %ebx
408ab5:	ff 75 08             	push   0x8(%ebp)
408ab8:	e8 dc 02 00 00       	call   0x408d99
408abd:	84 c0                	test   %al,%al
408abf:	74 07                	je     0x408ac8
408ac1:	b0 01                	mov    $0x1,%al
408ac3:	e9 83 00 00 00       	jmp    0x408b4b
408ac8:	8d 47 20             	lea    0x20(%edi),%eax
408acb:	33 d2                	xor    %edx,%edx
408acd:	8d 4e 10             	lea    0x10(%esi),%ecx
408ad0:	03 c3                	add    %ebx,%eax
408ad2:	39 11                	cmp    %edx,(%ecx)
408ad4:	75 58                	jne    0x408b2e
408ad6:	83 c0 0a             	add    $0xa,%eax
408ad9:	89 54 24 10          	mov    %edx,0x10(%esp)
408add:	50                   	push   %eax
408ade:	8d 4c 24 14          	lea    0x14(%esp),%ecx
408ae2:	89 54 24 18          	mov    %edx,0x18(%esp)
408ae6:	89 54 24 1c          	mov    %edx,0x1c(%esp)
408aea:	89 54 24 20          	mov    %edx,0x20(%esp)
408aee:	e8 57 f8 ff ff       	call   0x40834a
408af3:	84 c0                	test   %al,%al
408af5:	74 2c                	je     0x408b23
408af7:	8b 44 24 18          	mov    0x18(%esp),%eax
408afb:	8b ce                	mov    %esi,%ecx
408afd:	2b 44 24 10          	sub    0x10(%esp),%eax
408b01:	50                   	push   %eax
408b02:	6a 00                	push   $0x0
408b04:	ff 74 24 18          	push   0x18(%esp)
408b08:	e8 8f fd ff ff       	call   0x40889c
408b0d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
408b11:	8d 4e 1c             	lea    0x1c(%esi),%ecx
408b14:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
408b19:	50                   	push   %eax
408b1a:	e8 02 18 00 00       	call   0x40a321
408b1f:	c6 46 22 01          	movb   $0x1,0x22(%esi)
408b23:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
408b27:	e8 19 18 00 00       	call   0x40a345
408b2c:	eb 0b                	jmp    0x408b39
408b2e:	38 56 22             	cmp    %dl,0x22(%esi)
408b31:	74 06                	je     0x408b39
408b33:	50                   	push   %eax
408b34:	e8 11 f8 ff ff       	call   0x40834a
408b39:	ff 75 18             	push   0x18(%ebp)
408b3c:	8b ce                	mov    %esi,%ecx
408b3e:	57                   	push   %edi
408b3f:	ff 75 10             	push   0x10(%ebp)
408b42:	53                   	push   %ebx
408b43:	ff 75 08             	push   0x8(%ebp)
408b46:	e8 4e 02 00 00       	call   0x408d99
408b4b:	5f                   	pop    %edi
408b4c:	5e                   	pop    %esi
408b4d:	5b                   	pop    %ebx
408b4e:	8b e5                	mov    %ebp,%esp
408b50:	5d                   	pop    %ebp
408b51:	c2 14 00             	ret    $0x14
408b54:	8b ff                	mov    %edi,%edi
408b56:	55                   	push   %ebp
408b57:	8b ec                	mov    %esp,%ebp
408b59:	83 ec 1c             	sub    $0x1c,%esp
408b5c:	66 8b 41 06          	mov    0x6(%ecx),%ax
408b60:	33 d2                	xor    %edx,%edx
408b62:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
408b66:	8a 41 08             	mov    0x8(%ecx),%al
408b69:	53                   	push   %ebx
408b6a:	8b 5d 08             	mov    0x8(%ebp),%ebx
408b6d:	56                   	push   %esi
408b6e:	8b 75 0c             	mov    0xc(%ebp),%esi
408b71:	88 45 e6             	mov    %al,-0x1a(%ebp)
408b74:	33 c0                	xor    %eax,%eax
408b76:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408b79:	89 55 e8             	mov    %edx,-0x18(%ebp)
408b7c:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
408b80:	89 55 f0             	mov    %edx,-0x10(%ebp)
408b83:	89 55 f4             	mov    %edx,-0xc(%ebp)
408b86:	85 f6                	test   %esi,%esi
408b88:	74 47                	je     0x408bd1
408b8a:	57                   	push   %edi
408b8b:	8b 41 0c             	mov    0xc(%ecx),%eax
408b8e:	8b fe                	mov    %esi,%edi
408b90:	ff 71 14             	push   0x14(%ecx)
408b93:	d1 ef                	shr    $1,%edi
408b95:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408b98:	0f af c7             	imul   %edi,%eax
408b9b:	03 c3                	add    %ebx,%eax
408b9d:	89 45 fc             	mov    %eax,-0x4(%ebp)
408ba0:	8d 45 fc             	lea    -0x4(%ebp),%eax
408ba3:	50                   	push   %eax
408ba4:	e8 53 fb ff ff       	call   0x4086fc
408ba9:	ff 75 14             	push   0x14(%ebp)
408bac:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408baf:	ff 75 10             	push   0x10(%ebp)
408bb2:	e8 f1 f9 ff ff       	call   0x4085a8
408bb7:	85 c0                	test   %eax,%eax
408bb9:	7e 0c                	jle    0x408bc7
408bbb:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408bbe:	83 c8 ff             	or     $0xffffffff,%eax
408bc1:	2b c7                	sub    %edi,%eax
408bc3:	03 f0                	add    %eax,%esi
408bc5:	eb 02                	jmp    0x408bc9
408bc7:	8b f7                	mov    %edi,%esi
408bc9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408bcc:	85 f6                	test   %esi,%esi
408bce:	75 bb                	jne    0x408b8b
408bd0:	5f                   	pop    %edi
408bd1:	5e                   	pop    %esi
408bd2:	8b c3                	mov    %ebx,%eax
408bd4:	5b                   	pop    %ebx
408bd5:	c9                   	leave
408bd6:	c2 10 00             	ret    $0x10
408bd9:	8b ff                	mov    %edi,%edi
408bdb:	55                   	push   %ebp
408bdc:	8b ec                	mov    %esp,%ebp
408bde:	83 ec 20             	sub    $0x20,%esp
408be1:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
408be5:	53                   	push   %ebx
408be6:	56                   	push   %esi
408be7:	8b 75 08             	mov    0x8(%ebp),%esi
408bea:	57                   	push   %edi
408beb:	8b f9                	mov    %ecx,%edi
408bed:	33 c9                	xor    %ecx,%ecx
408bef:	66 89 4d e8          	mov    %cx,-0x18(%ebp)
408bf3:	66 8b 47 06          	mov    0x6(%edi),%ax
408bf7:	8b 4f 0c             	mov    0xc(%edi),%ecx
408bfa:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
408bfe:	8a 47 08             	mov    0x8(%edi),%al
408c01:	88 45 e2             	mov    %al,-0x1e(%ebp)
408c04:	33 c0                	xor    %eax,%eax
408c06:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408c09:	89 45 ec             	mov    %eax,-0x14(%ebp)
408c0c:	89 45 f0             	mov    %eax,-0x10(%ebp)
408c0f:	85 c9                	test   %ecx,%ecx
408c11:	74 64                	je     0x408c77
408c13:	8b 47 14             	mov    0x14(%edi),%eax
408c16:	33 d2                	xor    %edx,%edx
408c18:	2b 47 10             	sub    0x10(%edi),%eax
408c1b:	f7 f1                	div    %ecx
408c1d:	8b 56 04             	mov    0x4(%esi),%edx
408c20:	3b d0                	cmp    %eax,%edx
408c22:	76 0e                	jbe    0x408c32
408c24:	50                   	push   %eax
408c25:	8b ce                	mov    %esi,%ecx
408c27:	e8 a3 f9 ff ff       	call   0x4085cf
408c2c:	8b 56 04             	mov    0x4(%esi),%edx
408c2f:	8b 4f 0c             	mov    0xc(%edi),%ecx
408c32:	ff 75 14             	push   0x14(%ebp)
408c35:	8b f2                	mov    %edx,%esi
408c37:	ff 75 10             	push   0x10(%ebp)
408c3a:	0f af f1             	imul   %ecx,%esi
408c3d:	8b cf                	mov    %edi,%ecx
408c3f:	52                   	push   %edx
408c40:	ff 75 0c             	push   0xc(%ebp)
408c43:	03 75 0c             	add    0xc(%ebp),%esi
408c46:	e8 09 ff ff ff       	call   0x408b54
408c4b:	8b d8                	mov    %eax,%ebx
408c4d:	3b de                	cmp    %esi,%ebx
408c4f:	0f 83 ac 00 00 00    	jae    0x408d01
408c55:	ff 77 14             	push   0x14(%edi)
408c58:	8d 45 f4             	lea    -0xc(%ebp),%eax
408c5b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408c5e:	50                   	push   %eax
408c5f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c62:	e8 95 fa ff ff       	call   0x4086fc
408c67:	ff 75 14             	push   0x14(%ebp)
408c6a:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c6d:	ff 75 10             	push   0x10(%ebp)
408c70:	e8 33 f9 ff ff       	call   0x4085a8
408c75:	eb 55                	jmp    0x408ccc
408c77:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408c7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
408c7d:	39 46 04             	cmp    %eax,0x4(%esi)
408c80:	76 7f                	jbe    0x408d01
408c82:	ff 77 14             	push   0x14(%edi)
408c85:	8d 45 f4             	lea    -0xc(%ebp),%eax
408c88:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408c8b:	50                   	push   %eax
408c8c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c8f:	e8 68 fa ff ff       	call   0x4086fc
408c94:	84 c0                	test   %al,%al
408c96:	74 26                	je     0x408cbe
408c98:	ff 75 14             	push   0x14(%ebp)
408c9b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c9e:	ff 75 10             	push   0x10(%ebp)
408ca1:	e8 02 f9 ff ff       	call   0x4085a8
408ca6:	89 45 f8             	mov    %eax,-0x8(%ebp)
408ca9:	85 c0                	test   %eax,%eax
408cab:	7e 21                	jle    0x408cce
408cad:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cb0:	8b 5d f4             	mov    -0xc(%ebp),%ebx
408cb3:	40                   	inc    %eax
408cb4:	89 45 fc             	mov    %eax,-0x4(%ebp)
408cb7:	3b 46 04             	cmp    0x4(%esi),%eax
408cba:	72 c6                	jb     0x408c82
408cbc:	eb 0b                	jmp    0x408cc9
408cbe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408cc1:	51                   	push   %ecx
408cc2:	8b ce                	mov    %esi,%ecx
408cc4:	e8 06 f9 ff ff       	call   0x4085cf
408cc9:	8b 45 f8             	mov    -0x8(%ebp),%eax
408ccc:	85 c0                	test   %eax,%eax
408cce:	75 31                	jne    0x408d01
408cd0:	8a 45 e2             	mov    -0x1e(%ebp),%al
408cd3:	84 c0                	test   %al,%al
408cd5:	0f 95 c3             	setne  %bl
408cd8:	84 c0                	test   %al,%al
408cda:	74 0f                	je     0x408ceb
408cdc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408cdf:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408ce2:	03 45 18             	add    0x18(%ebp),%eax
408ce5:	50                   	push   %eax
408ce6:	e8 e4 f8 ff ff       	call   0x4085cf
408ceb:	84 db                	test   %bl,%bl
408ced:	75 09                	jne    0x408cf8
408cef:	38 5f 20             	cmp    %bl,0x20(%edi)
408cf2:	75 04                	jne    0x408cf8
408cf4:	33 c0                	xor    %eax,%eax
408cf6:	eb 02                	jmp    0x408cfa
408cf8:	b0 01                	mov    $0x1,%al
408cfa:	88 47 20             	mov    %al,0x20(%edi)
408cfd:	33 c0                	xor    %eax,%eax
408cff:	eb 02                	jmp    0x408d03
408d01:	8b c3                	mov    %ebx,%eax
408d03:	5f                   	pop    %edi
408d04:	5e                   	pop    %esi
408d05:	5b                   	pop    %ebx
408d06:	c9                   	leave
408d07:	c2 14 00             	ret    $0x14
408d0a:	8b ff                	mov    %edi,%edi
408d0c:	55                   	push   %ebp
408d0d:	8b ec                	mov    %esp,%ebp
408d0f:	83 ec 14             	sub    $0x14,%esp
408d12:	53                   	push   %ebx
408d13:	8b d9                	mov    %ecx,%ebx
408d15:	56                   	push   %esi
408d16:	57                   	push   %edi
408d17:	8b 7d 08             	mov    0x8(%ebp),%edi
408d1a:	8b 73 0c             	mov    0xc(%ebx),%esi
408d1d:	85 f6                	test   %esi,%esi
408d1f:	74 29                	je     0x408d4a
408d21:	8b 43 14             	mov    0x14(%ebx),%eax
408d24:	33 d2                	xor    %edx,%edx
408d26:	2b 43 10             	sub    0x10(%ebx),%eax
408d29:	f7 f6                	div    %esi
408d2b:	8b 4f 04             	mov    0x4(%edi),%ecx
408d2e:	3b c8                	cmp    %eax,%ecx
408d30:	76 0e                	jbe    0x408d40
408d32:	50                   	push   %eax
408d33:	8b cf                	mov    %edi,%ecx
408d35:	e8 95 f8 ff ff       	call   0x4085cf
408d3a:	8b 4f 04             	mov    0x4(%edi),%ecx
408d3d:	8b 73 0c             	mov    0xc(%ebx),%esi
408d40:	8b 45 0c             	mov    0xc(%ebp),%eax
408d43:	0f af f1             	imul   %ecx,%esi
408d46:	03 c6                	add    %esi,%eax
408d48:	eb 48                	jmp    0x408d92
408d4a:	66 8b 43 06          	mov    0x6(%ebx),%ax
408d4e:	33 f6                	xor    %esi,%esi
408d50:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
408d54:	8a 43 08             	mov    0x8(%ebx),%al
408d57:	88 45 ee             	mov    %al,-0x12(%ebp)
408d5a:	33 c0                	xor    %eax,%eax
408d5c:	89 75 f0             	mov    %esi,-0x10(%ebp)
408d5f:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
408d63:	89 75 f8             	mov    %esi,-0x8(%ebp)
408d66:	89 75 fc             	mov    %esi,-0x4(%ebp)
408d69:	39 77 04             	cmp    %esi,0x4(%edi)
408d6c:	76 19                	jbe    0x408d87
408d6e:	ff 73 14             	push   0x14(%ebx)
408d71:	8d 45 0c             	lea    0xc(%ebp),%eax
408d74:	50                   	push   %eax
408d75:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408d78:	e8 7f f9 ff ff       	call   0x4086fc
408d7d:	84 c0                	test   %al,%al
408d7f:	74 06                	je     0x408d87
408d81:	46                   	inc    %esi
408d82:	3b 77 04             	cmp    0x4(%edi),%esi
408d85:	72 e7                	jb     0x408d6e
408d87:	56                   	push   %esi
408d88:	8b cf                	mov    %edi,%ecx
408d8a:	e8 40 f8 ff ff       	call   0x4085cf
408d8f:	8b 45 0c             	mov    0xc(%ebp),%eax
408d92:	5f                   	pop    %edi
408d93:	5e                   	pop    %esi
408d94:	5b                   	pop    %ebx
408d95:	c9                   	leave
408d96:	c2 08 00             	ret    $0x8
408d99:	8b ff                	mov    %edi,%edi
408d9b:	55                   	push   %ebp
408d9c:	8b ec                	mov    %esp,%ebp
408d9e:	83 ec 34             	sub    $0x34,%esp
408da1:	53                   	push   %ebx
408da2:	56                   	push   %esi
408da3:	57                   	push   %edi
408da4:	8b f9                	mov    %ecx,%edi