418cf5:	83 c4 14             	add    $0x14,%esp
418cf8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418cfb:	8b f0                	mov    %eax,%esi
418cfd:	e8 28 44 ff ff       	call   0x40d12a
418d02:	8b c6                	mov    %esi,%eax
418d04:	5e                   	pop    %esi
418d05:	c9                   	leave
418d06:	c3                   	ret
418d07:	8b ff                	mov    %edi,%edi
418d09:	55                   	push   %ebp
418d0a:	8b ec                	mov    %esp,%ebp
418d0c:	83 ec 28             	sub    $0x28,%esp
418d0f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418d12:	56                   	push   %esi
418d13:	6a 00                	push   $0x0
418d15:	e8 c8 43 ff ff       	call   0x40d0e2
418d1a:	8d 45 d8             	lea    -0x28(%ebp),%eax
418d1d:	50                   	push   %eax
418d1e:	ff 75 10             	push   0x10(%ebp)
418d21:	8b 45 0c             	mov    0xc(%ebp),%eax
418d24:	99                   	cltd
418d25:	52                   	push   %edx
418d26:	50                   	push   %eax
418d27:	ff 75 08             	push   0x8(%ebp)
418d2a:	e8 2f fd ff ff       	call   0x418a5e
418d2f:	83 c4 14             	add    $0x14,%esp
418d32:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418d35:	8b f0                	mov    %eax,%esi
418d37:	e8 ee 43 ff ff       	call   0x40d12a
418d3c:	8b c6                	mov    %esi,%eax
418d3e:	5e                   	pop    %esi
418d3f:	c9                   	leave
418d40:	c3                   	ret
418d41:	6a 10                	push   $0x10
418d43:	68 f8 ab 43 00       	push   $0x43abf8
418d48:	e8 83 17 ff ff       	call   0x40a4d0
418d4d:	33 f6                	xor    %esi,%esi
418d4f:	39 75 08             	cmp    %esi,0x8(%ebp)
418d52:	75 23                	jne    0x418d77
418d54:	8b 45 0c             	mov    0xc(%ebp),%eax
418d57:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418d5b:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418d62:	50                   	push   %eax
418d63:	56                   	push   %esi
418d64:	56                   	push   %esi
418d65:	56                   	push   %esi
418d66:	56                   	push   %esi
418d67:	56                   	push   %esi
418d68:	e8 04 46 ff ff       	call   0x40d371
418d6d:	83 c4 18             	add    $0x18,%esp
418d70:	83 ca ff             	or     $0xffffffff,%edx
418d73:	8b c2                	mov    %edx,%eax
418d75:	eb 39                	jmp    0x418db0
418d77:	89 75 e0             	mov    %esi,-0x20(%ebp)
418d7a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
418d7d:	ff 75 08             	push   0x8(%ebp)
418d80:	e8 4c 4c 00 00       	call   0x41d9d1
418d85:	59                   	pop    %ecx
418d86:	89 75 fc             	mov    %esi,-0x4(%ebp)
418d89:	ff 75 0c             	push   0xc(%ebp)
418d8c:	ff 75 08             	push   0x8(%ebp)
418d8f:	e8 3c 00 00 00       	call   0x418dd0
418d94:	59                   	pop    %ecx
418d95:	59                   	pop    %ecx
418d96:	8b f0                	mov    %eax,%esi
418d98:	89 75 e0             	mov    %esi,-0x20(%ebp)
418d9b:	8b fa                	mov    %edx,%edi
418d9d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
418da0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
418da7:	e8 1a 00 00 00       	call   0x418dc6
418dac:	8b c6                	mov    %esi,%eax
418dae:	8b d7                	mov    %edi,%edx
418db0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
418db3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
418dba:	59                   	pop    %ecx
418dbb:	5f                   	pop    %edi
418dbc:	5e                   	pop    %esi
418dbd:	5b                   	pop    %ebx
418dbe:	c9                   	leave
418dbf:	c3                   	ret
418dc0:	8b 7d e4             	mov    -0x1c(%ebp),%edi
418dc3:	8b 75 e0             	mov    -0x20(%ebp),%esi
418dc6:	ff 75 08             	push   0x8(%ebp)
418dc9:	e8 17 4c 00 00       	call   0x41d9e5
418dce:	59                   	pop    %ecx
418dcf:	c3                   	ret
418dd0:	8b ff                	mov    %edi,%edi
418dd2:	55                   	push   %ebp
418dd3:	8b ec                	mov    %esp,%ebp
418dd5:	83 ec 18             	sub    $0x18,%esp
418dd8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
418ddc:	57                   	push   %edi
418ddd:	75 28                	jne    0x418e07
418ddf:	8b 45 0c             	mov    0xc(%ebp),%eax
418de2:	33 ff                	xor    %edi,%edi
418de4:	50                   	push   %eax
418de5:	57                   	push   %edi
418de6:	57                   	push   %edi
418de7:	57                   	push   %edi
418de8:	57                   	push   %edi
418de9:	57                   	push   %edi
418dea:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418dee:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418df5:	e8 77 45 ff ff       	call   0x40d371
418dfa:	83 c8 ff             	or     $0xffffffff,%eax
418dfd:	83 c4 18             	add    $0x18,%esp
418e00:	0b d0                	or     %eax,%edx
418e02:	e9 67 01 00 00       	jmp    0x418f6e
418e07:	53                   	push   %ebx
418e08:	ff 75 08             	push   0x8(%ebp)
418e0b:	e8 30 4a 00 00       	call   0x41d840
418e10:	59                   	pop    %ecx
418e11:	8b 4d 08             	mov    0x8(%ebp),%ecx
418e14:	33 ff                	xor    %edi,%edi
418e16:	8b d8                	mov    %eax,%ebx
418e18:	39 79 08             	cmp    %edi,0x8(%ecx)
418e1b:	7d 03                	jge    0x418e20
418e1d:	89 79 08             	mov    %edi,0x8(%ecx)
418e20:	56                   	push   %esi
418e21:	ff 75 0c             	push   0xc(%ebp)
418e24:	6a 01                	push   $0x1
418e26:	57                   	push   %edi
418e27:	57                   	push   %edi
418e28:	53                   	push   %ebx
418e29:	e8 ae 8b 00 00       	call   0x4219dc
418e2e:	8b ca                	mov    %edx,%ecx
418e30:	83 c4 14             	add    $0x14,%esp
418e33:	89 4d fc             	mov    %ecx,-0x4(%ebp)
418e36:	8b f0                	mov    %eax,%esi
418e38:	89 75 e8             	mov    %esi,-0x18(%ebp)
418e3b:	3b cf                	cmp    %edi,%ecx
418e3d:	7f 0e                	jg     0x418e4d
418e3f:	0f 8c d2 00 00 00    	jl     0x418f17
418e45:	3b f7                	cmp    %edi,%esi
418e47:	0f 82 ca 00 00 00    	jb     0x418f17
418e4d:	8b 45 08             	mov    0x8(%ebp),%eax
418e50:	8b 40 0c             	mov    0xc(%eax),%eax
418e53:	90                   	nop
418e54:	a8 c0                	test   $0xc0,%al
418e56:	75 12                	jne    0x418e6a
418e58:	8b 45 08             	mov    0x8(%ebp),%eax
418e5b:	8b 40 08             	mov    0x8(%eax),%eax
418e5e:	99                   	cltd
418e5f:	2b f0                	sub    %eax,%esi
418e61:	8b c6                	mov    %esi,%eax
418e63:	1b ca                	sbb    %edx,%ecx
418e65:	e9 00 01 00 00       	jmp    0x418f6a
418e6a:	8b c3                	mov    %ebx,%eax
418e6c:	83 e3 3f             	and    $0x3f,%ebx
418e6f:	c1 f8 06             	sar    $0x6,%eax
418e72:	6b cb 38             	imul   $0x38,%ebx,%ecx
418e75:	89 45 f4             	mov    %eax,-0xc(%ebp)
418e78:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
418e7f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
418e82:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
418e86:	8b 4d 08             	mov    0x8(%ebp),%ecx
418e89:	88 45 f8             	mov    %al,-0x8(%ebp)
418e8c:	8b 01                	mov    (%ecx),%eax
418e8e:	2b 41 04             	sub    0x4(%ecx),%eax
418e91:	8b 49 0c             	mov    0xc(%ecx),%ecx
418e94:	99                   	cltd
418e95:	8b d8                	mov    %eax,%ebx
418e97:	89 55 ec             	mov    %edx,-0x14(%ebp)
418e9a:	90                   	nop
418e9b:	f6 c1 03             	test   $0x3,%cl
418e9e:	74 5b                	je     0x418efb
418ea0:	80 7d f8 01          	cmpb   $0x1,-0x8(%ebp)
418ea4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
418ea7:	8b 55 f0             	mov    -0x10(%ebp),%edx
418eaa:	75 25                	jne    0x418ed1
418eac:	8b 04 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%eax
418eb3:	f6 44 02 2d 02       	testb  $0x2,0x2d(%edx,%eax,1)
418eb8:	74 17                	je     0x418ed1
418eba:	ff 75 0c             	push   0xc(%ebp)
418ebd:	ff 75 fc             	push   -0x4(%ebp)
418ec0:	56                   	push   %esi
418ec1:	ff 75 08             	push   0x8(%ebp)
418ec4:	e8 73 02 00 00       	call   0x41913c
418ec9:	83 c4 10             	add    $0x10,%esp
418ecc:	e9 9b 00 00 00       	jmp    0x418f6c
418ed1:	8b 04 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%eax
418ed8:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
418edd:	7d 3f                	jge    0x418f1e
418edf:	8b 75 08             	mov    0x8(%ebp),%esi
418ee2:	ff 75 f8             	push   -0x8(%ebp)
418ee5:	ff 36                	push   (%esi)
418ee7:	ff 76 04             	push   0x4(%esi)
418eea:	e8 f8 03 00 00       	call   0x4192e7
418eef:	8b 4d ec             	mov    -0x14(%ebp),%ecx
418ef2:	83 c4 0c             	add    $0xc,%esp
418ef5:	03 d8                	add    %eax,%ebx
418ef7:	13 ca                	adc    %edx,%ecx
418ef9:	eb 29                	jmp    0x418f24
418efb:	8b 45 08             	mov    0x8(%ebp),%eax
418efe:	8b 40 0c             	mov    0xc(%eax),%eax
418f01:	90                   	nop
418f02:	c1 e8 02             	shr    $0x2,%eax
418f05:	a8 01                	test   $0x1,%al
418f07:	75 15                	jne    0x418f1e
418f09:	8b 45 0c             	mov    0xc(%ebp),%eax
418f0c:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418f10:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418f17:	83 c8 ff             	or     $0xffffffff,%eax
418f1a:	0b d0                	or     %eax,%edx
418f1c:	eb 4e                	jmp    0x418f6c
418f1e:	8b 75 08             	mov    0x8(%ebp),%esi
418f21:	8b 4d ec             	mov    -0x14(%ebp),%ecx
418f24:	8b 55 e8             	mov    -0x18(%ebp),%edx
418f27:	8b c2                	mov    %edx,%eax
418f29:	0b 45 fc             	or     -0x4(%ebp),%eax
418f2c:	74 3a                	je     0x418f68
418f2e:	8b 46 0c             	mov    0xc(%esi),%eax
418f31:	90                   	nop
418f32:	a8 01                	test   $0x1,%al
418f34:	74 16                	je     0x418f4c
418f36:	ff 75 0c             	push   0xc(%ebp)
418f39:	51                   	push   %ecx
418f3a:	53                   	push   %ebx
418f3b:	ff 75 fc             	push   -0x4(%ebp)
418f3e:	52                   	push   %edx
418f3f:	ff 75 08             	push   0x8(%ebp)
418f42:	e8 2a 00 00 00       	call   0x418f71
418f47:	83 c4 18             	add    $0x18,%esp
418f4a:	eb 20                	jmp    0x418f6c
418f4c:	80 7d f8 01          	cmpb   $0x1,-0x8(%ebp)
418f50:	75 11                	jne    0x418f63
418f52:	57                   	push   %edi
418f53:	6a 02                	push   $0x2
418f55:	51                   	push   %ecx
418f56:	53                   	push   %ebx
418f57:	e8 b4 0f ff ff       	call   0x409f10
418f5c:	8b ca                	mov    %edx,%ecx
418f5e:	8b d8                	mov    %eax,%ebx
418f60:	8b 55 e8             	mov    -0x18(%ebp),%edx
418f63:	03 da                	add    %edx,%ebx
418f65:	13 4d fc             	adc    -0x4(%ebp),%ecx
418f68:	8b c3                	mov    %ebx,%eax
418f6a:	8b d1                	mov    %ecx,%edx
418f6c:	5e                   	pop    %esi
418f6d:	5b                   	pop    %ebx
418f6e:	5f                   	pop    %edi
418f6f:	c9                   	leave
418f70:	c3                   	ret
418f71:	8b ff                	mov    %edi,%edi
418f73:	55                   	push   %ebp
418f74:	8b ec                	mov    %esp,%ebp
418f76:	83 ec 24             	sub    $0x24,%esp
418f79:	53                   	push   %ebx
418f7a:	56                   	push   %esi
418f7b:	57                   	push   %edi
418f7c:	ff 75 08             	push   0x8(%ebp)
418f7f:	e8 bc 48 00 00       	call   0x41d840
418f84:	8b d0                	mov    %eax,%edx
418f86:	89 45 e0             	mov    %eax,-0x20(%ebp)
418f89:	83 e0 3f             	and    $0x3f,%eax
418f8c:	c1 fa 06             	sar    $0x6,%edx
418f8f:	6b c0 38             	imul   $0x38,%eax,%eax
418f92:	33 db                	xor    %ebx,%ebx
418f94:	59                   	pop    %ecx
418f95:	43                   	inc    %ebx
418f96:	89 55 dc             	mov    %edx,-0x24(%ebp)
418f99:	8b 0c 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%ecx
418fa0:	33 ff                	xor    %edi,%edi
418fa2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
418fa5:	89 45 e8             	mov    %eax,-0x18(%ebp)
418fa8:	89 7d f4             	mov    %edi,-0xc(%ebp)
418fab:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
418faf:	88 45 ec             	mov    %al,-0x14(%ebp)
418fb2:	3a c3                	cmp    %bl,%al
418fb4:	75 08                	jne    0x418fbe
418fb6:	6a 02                	push   $0x2
418fb8:	5e                   	pop    %esi
418fb9:	89 75 f8             	mov    %esi,-0x8(%ebp)
418fbc:	eb 03                	jmp    0x418fc1
418fbe:	89 5d f8             	mov    %ebx,-0x8(%ebp)
418fc1:	8b 45 08             	mov    0x8(%ebp),%eax
418fc4:	8b 48 08             	mov    0x8(%eax),%ecx
418fc7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
418fca:	85 c9                	test   %ecx,%ecx
418fcc:	75 0b                	jne    0x418fd9
418fce:	8b 45 0c             	mov    0xc(%ebp),%eax
418fd1:	8b 55 10             	mov    0x10(%ebp),%edx
418fd4:	e9 5e 01 00 00       	jmp    0x419137
418fd9:	8b 08                	mov    (%eax),%ecx
418fdb:	2b 48 04             	sub    0x4(%eax),%ecx
418fde:	8b 75 e4             	mov    -0x1c(%ebp),%esi
418fe1:	8b c1                	mov    %ecx,%eax
418fe3:	99                   	cltd
418fe4:	8b c8                	mov    %eax,%ecx
418fe6:	89 55 fc             	mov    %edx,-0x4(%ebp)
418fe9:	8b 45 f0             	mov    -0x10(%ebp),%eax
418fec:	99                   	cltd
418fed:	03 c8                	add    %eax,%ecx
418fef:	8b 45 fc             	mov    -0x4(%ebp),%eax
418ff2:	89 4d f0             	mov    %ecx,-0x10(%ebp)
418ff5:	13 c2                	adc    %edx,%eax
418ff7:	8b 55 e8             	mov    -0x18(%ebp),%edx
418ffa:	89 45 fc             	mov    %eax,-0x4(%ebp)
418ffd:	80 7c 16 28 00       	cmpb   $0x0,0x28(%esi,%edx,1)
419002:	8b 75 f8             	mov    -0x8(%ebp),%esi
419005:	7c 14                	jl     0x41901b
419007:	8b 5d f4             	mov    -0xc(%ebp),%ebx
41900a:	53                   	push   %ebx
41900b:	56                   	push   %esi
41900c:	50                   	push   %eax
41900d:	51                   	push   %ecx
41900e:	e8 fd 0e ff ff       	call   0x409f10
419013:	53                   	push   %ebx
419014:	8b de                	mov    %esi,%ebx
419016:	e9 02 01 00 00       	jmp    0x41911d
41901b:	ff 75 1c             	push   0x1c(%ebp)
41901e:	8b 75 e0             	mov    -0x20(%ebp),%esi
419021:	6a 02                	push   $0x2
419023:	57                   	push   %edi
419024:	57                   	push   %edi
419025:	56                   	push   %esi
419026:	e8 b1 89 00 00       	call   0x4219dc
41902b:	83 c4 14             	add    $0x14,%esp
41902e:	3b 45 0c             	cmp    0xc(%ebp),%eax
419031:	75 4b                	jne    0x41907e
419033:	3b 55 10             	cmp    0x10(%ebp),%edx
419036:	75 46                	jne    0x41907e
419038:	8b 75 08             	mov    0x8(%ebp),%esi
41903b:	ff 75 ec             	push   -0x14(%ebp)
41903e:	8b 45 f0             	mov    -0x10(%ebp),%eax
419041:	8b 4e 04             	mov    0x4(%esi),%ecx
419044:	03 c1                	add    %ecx,%eax
419046:	50                   	push   %eax
419047:	51                   	push   %ecx
419048:	e8 9a 02 00 00       	call   0x4192e7
41904d:	8b c8                	mov    %eax,%ecx
41904f:	83 c4 0c             	add    $0xc,%esp
419052:	03 4d f0             	add    -0x10(%ebp),%ecx
419055:	8b 46 0c             	mov    0xc(%esi),%eax
419058:	13 55 fc             	adc    -0x4(%ebp),%edx
41905b:	90                   	nop
41905c:	c1 e8 05             	shr    $0x5,%eax
41905f:	84 c3                	test   %al,%bl
419061:	0f 84 a5 00 00 00    	je     0x41910c
419067:	8a 45 ec             	mov    -0x14(%ebp),%al
41906a:	3a c3                	cmp    %bl,%al
41906c:	74 04                	je     0x419072
41906e:	3c 02                	cmp    $0x2,%al
419070:	75 03                	jne    0x419075
419072:	6a 02                	push   $0x2
419074:	5b                   	pop    %ebx
419075:	03 cb                	add    %ebx,%ecx
419077:	13 d7                	adc    %edi,%edx
419079:	e9 8e 00 00 00       	jmp    0x41910c
41907e:	ff 75 1c             	push   0x1c(%ebp)