407bf1:	72 06                	jb     0x407bf9
407bf3:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
407bf7:	74 23                	je     0x407c1c
407bf9:	51                   	push   %ecx
407bfa:	8d 56 5c             	lea    0x5c(%esi),%edx
407bfd:	8b ce                	mov    %esi,%ecx
407bff:	e8 a5 f8 ff ff       	call   0x4074a9
407c04:	59                   	pop    %ecx
407c05:	85 c0                	test   %eax,%eax
407c07:	0f 84 b4 00 00 00    	je     0x407cc1
407c0d:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
407c11:	74 09                	je     0x407c1c
407c13:	83 f8 02             	cmp    $0x2,%eax
407c16:	0f 85 97 00 00 00    	jne    0x407cb3
407c1c:	8b 55 f4             	mov    -0xc(%ebp),%edx
407c1f:	8d 46 5c             	lea    0x5c(%esi),%eax
407c22:	50                   	push   %eax
407c23:	8b ce                	mov    %esi,%ecx
407c25:	89 46 18             	mov    %eax,0x18(%esi)
407c28:	e8 07 f8 ff ff       	call   0x407434
407c2d:	85 c0                	test   %eax,%eax
407c2f:	0f 85 87 00 00 00    	jne    0x407cbc
407c35:	8b 46 18             	mov    0x18(%esi),%eax
407c38:	2b 45 f0             	sub    -0x10(%ebp),%eax
407c3b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407c3e:	2b c6                	sub    %esi,%eax
407c40:	83 c1 a4             	add    $0xffffffa4,%ecx
407c43:	03 c1                	add    %ecx,%eax
407c45:	01 07                	add    %eax,(%edi)
407c47:	2b d8                	sub    %eax,%ebx
407c49:	01 45 08             	add    %eax,0x8(%ebp)
407c4c:	83 66 58 00          	andl   $0x0,0x58(%esi)
407c50:	81 7e 48 12 01 00 00 	cmpl   $0x112,0x48(%esi)
407c57:	0f 85 05 fe ff ff    	jne    0x407a62
407c5d:	8b 55 14             	mov    0x14(%ebp),%edx
407c60:	8b 4e 20             	mov    0x20(%esi),%ecx
407c63:	85 c9                	test   %ecx,%ecx
407c65:	75 06                	jne    0x407c6d
407c67:	c7 02 01 00 00 00    	movl   $0x1,(%edx)
407c6d:	33 c0                	xor    %eax,%eax
407c6f:	85 c9                	test   %ecx,%ecx
407c71:	0f 95 c0             	setne  %al
407c74:	5f                   	pop    %edi
407c75:	5e                   	pop    %esi
407c76:	5b                   	pop    %ebx
407c77:	c9                   	leave
407c78:	c3                   	ret
407c79:	8b 45 14             	mov    0x14(%ebp),%eax
407c7c:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
407c82:	33 c0                	xor    %eax,%eax
407c84:	eb ee                	jmp    0x407c74
407c86:	8b 45 14             	mov    0x14(%ebp),%eax
407c89:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
407c8f:	eb f1                	jmp    0x407c82
407c91:	8b 45 14             	mov    0x14(%ebp),%eax
407c94:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
407c9a:	eb e6                	jmp    0x407c82
407c9c:	53                   	push   %ebx
407c9d:	ff 75 08             	push   0x8(%ebp)
407ca0:	8d 46 5c             	lea    0x5c(%esi),%eax
407ca3:	50                   	push   %eax
407ca4:	e8 27 1f 00 00       	call   0x409bd0
407ca9:	83 c4 0c             	add    $0xc,%esp
407cac:	89 5e 58             	mov    %ebx,0x58(%esi)
407caf:	01 1f                	add    %ebx,(%edi)
407cb1:	eb c6                	jmp    0x407c79
407cb3:	8b 45 14             	mov    0x14(%ebp),%eax
407cb6:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
407cbc:	33 c0                	xor    %eax,%eax
407cbe:	40                   	inc    %eax
407cbf:	eb b3                	jmp    0x407c74
407cc1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407cc4:	01 0f                	add    %ecx,(%edi)
407cc6:	eb b1                	jmp    0x407c79
407cc8:	55                   	push   %ebp
407cc9:	8b ec                	mov    %esp,%ebp
407ccb:	83 ec 10             	sub    $0x10,%esp
407cce:	8b 45 10             	mov    0x10(%ebp),%eax
407cd1:	53                   	push   %ebx
407cd2:	8b d9                	mov    %ecx,%ebx
407cd4:	89 55 f4             	mov    %edx,-0xc(%ebp)
407cd7:	8b 4d 08             	mov    0x8(%ebp),%ecx
407cda:	8b 10                	mov    (%eax),%edx
407cdc:	56                   	push   %esi
407cdd:	57                   	push   %edi
407cde:	8b 39                	mov    (%ecx),%edi
407ce0:	83 21 00             	andl   $0x0,(%ecx)
407ce3:	83 20 00             	andl   $0x0,(%eax)
407ce6:	89 55 fc             	mov    %edx,-0x4(%ebp)
407ce9:	8b 73 24             	mov    0x24(%ebx),%esi
407cec:	89 55 f8             	mov    %edx,-0x8(%ebp)
407cef:	8b 53 28             	mov    0x28(%ebx),%edx
407cf2:	3b f2                	cmp    %edx,%esi
407cf4:	75 06                	jne    0x407cfc
407cf6:	83 63 24 00          	andl   $0x0,0x24(%ebx)
407cfa:	33 f6                	xor    %esi,%esi
407cfc:	8b c2                	mov    %edx,%eax
407cfe:	2b c6                	sub    %esi,%eax
407d00:	3b f8                	cmp    %eax,%edi
407d02:	77 03                	ja     0x407d07
407d04:	8d 14 3e             	lea    (%esi,%edi,1),%edx
407d07:	ff 75 18             	push   0x18(%ebp)
407d0a:	3b c7                	cmp    %edi,%eax
407d0c:	8b cb                	mov    %ebx,%ecx
407d0e:	1b c0                	sbb    %eax,%eax
407d10:	40                   	inc    %eax
407d11:	50                   	push   %eax
407d12:	8d 45 f8             	lea    -0x8(%ebp),%eax
407d15:	50                   	push   %eax
407d16:	ff 75 0c             	push   0xc(%ebp)
407d19:	e8 11 fd ff ff       	call   0x407a2f
407d1e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407d21:	01 4d 0c             	add    %ecx,0xc(%ebp)
407d24:	29 4d fc             	sub    %ecx,-0x4(%ebp)
407d27:	89 45 f0             	mov    %eax,-0x10(%ebp)
407d2a:	8b 45 10             	mov    0x10(%ebp),%eax
407d2d:	01 08                	add    %ecx,(%eax)
407d2f:	8b 43 24             	mov    0x24(%ebx),%eax
407d32:	8b 4b 14             	mov    0x14(%ebx),%ecx
407d35:	2b c6                	sub    %esi,%eax
407d37:	50                   	push   %eax
407d38:	03 ce                	add    %esi,%ecx
407d3a:	89 45 f8             	mov    %eax,-0x8(%ebp)
407d3d:	8b 75 f4             	mov    -0xc(%ebp),%esi
407d40:	51                   	push   %ecx
407d41:	56                   	push   %esi
407d42:	e8 89 1e 00 00       	call   0x409bd0
407d47:	8b 4d 08             	mov    0x8(%ebp),%ecx
407d4a:	83 c4 1c             	add    $0x1c,%esp
407d4d:	8b 45 f8             	mov    -0x8(%ebp),%eax
407d50:	03 f0                	add    %eax,%esi
407d52:	2b f8                	sub    %eax,%edi
407d54:	89 75 f4             	mov    %esi,-0xc(%ebp)
407d57:	01 01                	add    %eax,(%ecx)
407d59:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407d5c:	85 c9                	test   %ecx,%ecx
407d5e:	75 13                	jne    0x407d73
407d60:	85 c0                	test   %eax,%eax
407d62:	74 0b                	je     0x407d6f
407d64:	8b 55 fc             	mov    -0x4(%ebp),%edx
407d67:	85 ff                	test   %edi,%edi
407d69:	0f 85 7a ff ff ff    	jne    0x407ce9
407d6f:	33 c0                	xor    %eax,%eax
407d71:	eb 02                	jmp    0x407d75
407d73:	8b c1                	mov    %ecx,%eax
407d75:	5f                   	pop    %edi
407d76:	5e                   	pop    %esi
407d77:	5b                   	pop    %ebx
407d78:	c9                   	leave
407d79:	c3                   	ret
407d7a:	56                   	push   %esi
407d7b:	8b 72 04             	mov    0x4(%edx),%esi
407d7e:	57                   	push   %edi
407d7f:	8b f9                	mov    %ecx,%edi
407d81:	8b ce                	mov    %esi,%ecx
407d83:	ff 77 10             	push   0x10(%edi)
407d86:	52                   	push   %edx
407d87:	ff 15 50 c2 41 00    	call   *0x41c250
407d8d:	ff d6                	call   *%esi
407d8f:	83 67 10 00          	andl   $0x0,0x10(%edi)
407d93:	59                   	pop    %ecx
407d94:	59                   	pop    %ecx
407d95:	5f                   	pop    %edi
407d96:	5e                   	pop    %esi
407d97:	c3                   	ret
407d98:	0f b6 42 03          	movzbl 0x3(%edx),%eax
407d9c:	56                   	push   %esi
407d9d:	0f b6 72 04          	movzbl 0x4(%edx),%esi
407da1:	c1 e6 08             	shl    $0x8,%esi
407da4:	0b f0                	or     %eax,%esi
407da6:	0f b6 42 02          	movzbl 0x2(%edx),%eax
407daa:	c1 e6 08             	shl    $0x8,%esi
407dad:	0b f0                	or     %eax,%esi
407daf:	0f b6 42 01          	movzbl 0x1(%edx),%eax
407db3:	c1 e6 08             	shl    $0x8,%esi
407db6:	0b f0                	or     %eax,%esi
407db8:	b8 00 10 00 00       	mov    $0x1000,%eax
407dbd:	57                   	push   %edi
407dbe:	8b f9                	mov    %ecx,%edi
407dc0:	3b f0                	cmp    %eax,%esi
407dc2:	73 02                	jae    0x407dc6
407dc4:	8b f0                	mov    %eax,%esi
407dc6:	8a 02                	mov    (%edx),%al
407dc8:	89 77 0c             	mov    %esi,0xc(%edi)
407dcb:	3c e1                	cmp    $0xe1,%al
407dcd:	72 05                	jb     0x407dd4
407dcf:	6a 04                	push   $0x4
407dd1:	58                   	pop    %eax
407dd2:	eb 2e                	jmp    0x407e02
407dd4:	0f b6 c8             	movzbl %al,%ecx
407dd7:	33 d2                	xor    %edx,%edx
407dd9:	6a 09                	push   $0x9
407ddb:	5e                   	pop    %esi
407ddc:	8b c1                	mov    %ecx,%eax
407dde:	f7 f6                	div    %esi
407de0:	8b c1                	mov    %ecx,%eax
407de2:	89 17                	mov    %edx,(%edi)
407de4:	33 d2                	xor    %edx,%edx
407de6:	f7 f6                	div    %esi
407de8:	33 d2                	xor    %edx,%edx
407dea:	0f b6 c8             	movzbl %al,%ecx
407ded:	6a 05                	push   $0x5
407def:	5e                   	pop    %esi
407df0:	8b c1                	mov    %ecx,%eax
407df2:	f7 f6                	div    %esi
407df4:	33 d2                	xor    %edx,%edx
407df6:	89 47 08             	mov    %eax,0x8(%edi)
407df9:	8b c1                	mov    %ecx,%eax
407dfb:	f7 f6                	div    %esi
407dfd:	33 c0                	xor    %eax,%eax
407dff:	89 57 04             	mov    %edx,0x4(%edi)
407e02:	5f                   	pop    %edi
407e03:	5e                   	pop    %esi
407e04:	c3                   	ret
407e05:	55                   	push   %ebp
407e06:	8b ec                	mov    %esp,%ebp
407e08:	51                   	push   %ecx
407e09:	8b c1                	mov    %ecx,%eax
407e0b:	8b 4a 04             	mov    0x4(%edx),%ecx
407e0e:	03 0a                	add    (%edx),%ecx
407e10:	53                   	push   %ebx
407e11:	57                   	push   %edi
407e12:	bf 00 03 00 00       	mov    $0x300,%edi
407e17:	89 45 fc             	mov    %eax,-0x4(%ebp)
407e1a:	d3 e7                	shl    %cl,%edi
407e1c:	8d 58 54             	lea    0x54(%eax),%ebx
407e1f:	81 c7 36 07 00 00    	add    $0x736,%edi
407e25:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
407e29:	74 08                	je     0x407e33
407e2b:	3b 3b                	cmp    (%ebx),%edi
407e2d:	75 04                	jne    0x407e33
407e2f:	33 c0                	xor    %eax,%eax
407e31:	eb 33                	jmp    0x407e66
407e33:	56                   	push   %esi
407e34:	8b 75 08             	mov    0x8(%ebp),%esi
407e37:	8b c8                	mov    %eax,%ecx
407e39:	8b d6                	mov    %esi,%edx
407e3b:	e8 3a ff ff ff       	call   0x407d7a
407e40:	8d 04 3f             	lea    (%edi,%edi,1),%eax
407e43:	50                   	push   %eax
407e44:	56                   	push   %esi
407e45:	8b 36                	mov    (%esi),%esi
407e47:	8b ce                	mov    %esi,%ecx
407e49:	ff 15 50 c2 41 00    	call   *0x41c250
407e4f:	ff d6                	call   *%esi
407e51:	59                   	pop    %ecx
407e52:	59                   	pop    %ecx
407e53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407e56:	89 3b                	mov    %edi,(%ebx)
407e58:	5e                   	pop    %esi
407e59:	89 41 10             	mov    %eax,0x10(%ecx)
407e5c:	f7 d8                	neg    %eax
407e5e:	1b c0                	sbb    %eax,%eax
407e60:	83 e0 fe             	and    $0xfffffffe,%eax
407e63:	83 c0 02             	add    $0x2,%eax
407e66:	5f                   	pop    %edi
407e67:	5b                   	pop    %ebx
407e68:	c9                   	leave
407e69:	c3                   	ret
407e6a:	55                   	push   %ebp
407e6b:	8b ec                	mov    %esp,%ebp
407e6d:	83 ec 14             	sub    $0x14,%esp
407e70:	53                   	push   %ebx
407e71:	56                   	push   %esi
407e72:	57                   	push   %edi
407e73:	8b f9                	mov    %ecx,%edi
407e75:	51                   	push   %ecx
407e76:	8d 4d f0             	lea    -0x10(%ebp),%ecx
407e79:	e8 1a ff ff ff       	call   0x407d98
407e7e:	59                   	pop    %ecx
407e7f:	85 c0                	test   %eax,%eax
407e81:	75 71                	jne    0x407ef4
407e83:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407e86:	8d 55 f0             	lea    -0x10(%ebp),%edx
407e89:	53                   	push   %ebx
407e8a:	8b cf                	mov    %edi,%ecx
407e8c:	e8 74 ff ff ff       	call   0x407e05
407e91:	59                   	pop    %ecx
407e92:	85 c0                	test   %eax,%eax
407e94:	75 5e                	jne    0x407ef4
407e96:	39 47 14             	cmp    %eax,0x14(%edi)
407e99:	74 0a                	je     0x407ea5
407e9b:	8b 45 fc             	mov    -0x4(%ebp),%eax
407e9e:	8d 4f 28             	lea    0x28(%edi),%ecx
407ea1:	3b 01                	cmp    (%ecx),%eax
407ea3:	74 44                	je     0x407ee9
407ea5:	ff 77 14             	push   0x14(%edi)
407ea8:	8b 73 04             	mov    0x4(%ebx),%esi
407eab:	8b ce                	mov    %esi,%ecx
407ead:	53                   	push   %ebx
407eae:	ff 15 50 c2 41 00    	call   *0x41c250
407eb4:	ff d6                	call   *%esi
407eb6:	83 67 14 00          	andl   $0x0,0x14(%edi)
407eba:	8b 33                	mov    (%ebx),%esi
407ebc:	59                   	pop    %ecx
407ebd:	59                   	pop    %ecx
407ebe:	ff 75 fc             	push   -0x4(%ebp)
407ec1:	8b ce                	mov    %esi,%ecx
407ec3:	53                   	push   %ebx
407ec4:	ff 15 50 c2 41 00    	call   *0x41c250
407eca:	ff d6                	call   *%esi
407ecc:	89 47 14             	mov    %eax,0x14(%edi)
407ecf:	59                   	pop    %ecx
407ed0:	59                   	pop    %ecx
407ed1:	8d 4f 28             	lea    0x28(%edi),%ecx
407ed4:	85 c0                	test   %eax,%eax
407ed6:	75 0e                	jne    0x407ee6
407ed8:	8b d3                	mov    %ebx,%edx
407eda:	8b cf                	mov    %edi,%ecx
407edc:	e8 99 fe ff ff       	call   0x407d7a
407ee1:	6a 02                	push   $0x2
407ee3:	58                   	pop    %eax
407ee4:	eb 0e                	jmp    0x407ef4
407ee6:	8b 45 fc             	mov    -0x4(%ebp),%eax
407ee9:	8d 75 f0             	lea    -0x10(%ebp),%esi
407eec:	89 01                	mov    %eax,(%ecx)
407eee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407eef:	33 c0                	xor    %eax,%eax
407ef1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407ef2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407ef3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407ef4:	5f                   	pop    %edi
407ef5:	5e                   	pop    %esi
407ef6:	5b                   	pop    %ebx
407ef7:	c9                   	leave
407ef8:	c3                   	ret
407ef9:	55                   	push   %ebp
407efa:	8b ec                	mov    %esp,%ebp
407efc:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
407f02:	a1 18 60 42 00       	mov    0x426018,%eax
407f07:	33 c5                	xor    %ebp,%eax
407f09:	89 45 fc             	mov    %eax,-0x4(%ebp)
407f0c:	8b 45 20             	mov    0x20(%ebp),%eax
407f0f:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
407f15:	33 c0                	xor    %eax,%eax
407f17:	53                   	push   %ebx
407f18:	8b 5d 18             	mov    0x18(%ebp),%ebx
407f1b:	56                   	push   %esi
407f1c:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
407f22:	8b f0                	mov    %eax,%esi
407f24:	57                   	push   %edi
407f25:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
407f2b:	8d bd f8 fd ff ff    	lea    -0x208(%ebp),%edi
407f31:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
407f37:	b9 81 00 00 00       	mov    $0x81,%ecx
407f3c:	8a d0                	mov    %al,%dl
407f3e:	b8 00 04 00 04       	mov    $0x4000400,%eax
407f43:	f3 ab                	rep stos %eax,%es:(%edi)
407f45:	8b 45 1c             	mov    0x1c(%ebp),%eax
407f48:	03 c3                	add    %ebx,%eax