475c6a:	8b ff                	mov    %edi,%edi
475c6c:	55                   	push   %ebp
475c6d:	8b ec                	mov    %esp,%ebp
475c6f:	51                   	push   %ecx
475c70:	53                   	push   %ebx
475c71:	56                   	push   %esi
475c72:	57                   	push   %edi
475c73:	8b f9                	mov    %ecx,%edi
475c75:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
475c79:	75 04                	jne    0x475c7f
475c7b:	33 db                	xor    %ebx,%ebx
475c7d:	eb 0e                	jmp    0x475c8d
475c7f:	8b 47 0c             	mov    0xc(%edi),%eax
475c82:	2b 47 04             	sub    0x4(%edi),%eax
475c85:	6a 1c                	push   $0x1c
475c87:	99                   	cltd
475c88:	59                   	pop    %ecx
475c89:	f7 f9                	idiv   %ecx
475c8b:	8b d8                	mov    %eax,%ebx
475c8d:	8b 77 08             	mov    0x8(%edi),%esi
475c90:	8b cf                	mov    %edi,%ecx
475c92:	e8 33 00 00 00       	call   0x475cca
475c97:	3b c3                	cmp    %ebx,%eax
475c99:	73 1c                	jae    0x475cb7
475c9b:	ff 75 fc             	push   -0x4(%ebp)
475c9e:	33 d2                	xor    %edx,%edx
475ca0:	ff 75 fc             	push   -0x4(%ebp)
475ca3:	42                   	inc    %edx
475ca4:	51                   	push   %ecx
475ca5:	ff 75 08             	push   0x8(%ebp)
475ca8:	8b ce                	mov    %esi,%ecx
475caa:	e8 b1 05 00 00       	call   0x476260
475caf:	83 c6 1c             	add    $0x1c,%esi
475cb2:	89 77 08             	mov    %esi,0x8(%edi)
475cb5:	eb 0c                	jmp    0x475cc3
475cb7:	ff 75 08             	push   0x8(%ebp)
475cba:	51                   	push   %ecx
475cbb:	56                   	push   %esi
475cbc:	8b cf                	mov    %edi,%ecx
475cbe:	e8 7f 01 00 00       	call   0x475e42
475cc3:	5f                   	pop    %edi
475cc4:	5e                   	pop    %esi
475cc5:	5b                   	pop    %ebx
475cc6:	c9                   	leave
475cc7:	c2 04 00             	ret    $0x4
475cca:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
475cce:	75 03                	jne    0x475cd3
475cd0:	33 c0                	xor    %eax,%eax
475cd2:	c3                   	ret
475cd3:	8b 41 08             	mov    0x8(%ecx),%eax
475cd6:	2b 41 04             	sub    0x4(%ecx),%eax
475cd9:	6a 1c                	push   $0x1c
475cdb:	99                   	cltd
475cdc:	59                   	pop    %ecx
475cdd:	f7 f9                	idiv   %ecx
475cdf:	c3                   	ret
475ce0:	8b ff                	mov    %edi,%edi
475ce2:	56                   	push   %esi
475ce3:	57                   	push   %edi
475ce4:	8b f9                	mov    %ecx,%edi
475ce6:	8b 77 04             	mov    0x4(%edi),%esi
475ce9:	85 f6                	test   %esi,%esi
475ceb:	74 26                	je     0x475d13
475ced:	53                   	push   %ebx
475cee:	8b 5f 08             	mov    0x8(%edi),%ebx
475cf1:	3b f3                	cmp    %ebx,%esi
475cf3:	74 15                	je     0x475d0a
475cf5:	6a 00                	push   $0x0
475cf7:	6a 01                	push   $0x1
475cf9:	8b ce                	mov    %esi,%ecx
475cfb:	e8 c4 6a fa ff       	call   0x41c7c4
475d00:	83 c6 1c             	add    $0x1c,%esi
475d03:	3b f3                	cmp    %ebx,%esi
475d05:	75 ee                	jne    0x475cf5
475d07:	8b 77 04             	mov    0x4(%edi),%esi
475d0a:	56                   	push   %esi
475d0b:	ff 15 10 74 4a 00    	call   *0x4a7410
475d11:	59                   	pop    %ecx
475d12:	5b                   	pop    %ebx
475d13:	83 67 04 00          	andl   $0x0,0x4(%edi)
475d17:	83 67 08 00          	andl   $0x0,0x8(%edi)
475d1b:	83 67 0c 00          	andl   $0x0,0xc(%edi)
475d1f:	5f                   	pop    %edi
475d20:	5e                   	pop    %esi
475d21:	c3                   	ret
475d22:	8b 41 ac             	mov    -0x54(%ecx),%eax
475d25:	56                   	push   %esi
475d26:	8d 71 b8             	lea    -0x48(%ecx),%esi
475d29:	8b 40 04             	mov    0x4(%eax),%eax
475d2c:	c7 44 08 ac 64 5f 40 	movl   $0x405f64,-0x54(%eax,%ecx,1)
475d33:	00
475d34:	8b ce                	mov    %esi,%ecx
475d36:	e8 c1 48 fa ff       	call   0x41a5fc
475d3b:	8b ce                	mov    %esi,%ecx
475d3d:	5e                   	pop    %esi
475d3e:	e9 00 00 00 00       	jmp    0x475d43
475d43:	8b 41 f4             	mov    -0xc(%ecx),%eax
475d46:	8b 40 04             	mov    0x4(%eax),%eax
475d49:	c7 44 08 f4 68 5f 40 	movl   $0x405f68,-0xc(%eax,%ecx,1)
475d50:	00
475d51:	8b 41 fc             	mov    -0x4(%ecx),%eax
475d54:	8b 40 04             	mov    0x4(%eax),%eax
475d57:	c7 44 08 fc cc 11 40 	movl   $0x4011cc,-0x4(%eax,%ecx,1)
475d5e:	00
475d5f:	8b 41 f4             	mov    -0xc(%ecx),%eax
475d62:	8b 40 04             	mov    0x4(%eax),%eax
475d65:	c7 44 08 f4 bc 11 40 	movl   $0x4011bc,-0xc(%eax,%ecx,1)
475d6c:	00
475d6d:	c3                   	ret
475d6e:	cc                   	int3
475d6f:	cc                   	int3
475d70:	8b ff                	mov    %edi,%edi
475d72:	55                   	push   %ebp
475d73:	8b ec                	mov    %esp,%ebp
475d75:	6a ff                	push   $0xffffffff
475d77:	68 20 12 49 00       	push   $0x491220
475d7c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
475d82:	50                   	push   %eax
475d83:	56                   	push   %esi
475d84:	57                   	push   %edi
475d85:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
475d8a:	33 c5                	xor    %ebp,%eax
475d8c:	50                   	push   %eax
475d8d:	8d 45 f4             	lea    -0xc(%ebp),%eax
475d90:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
475d96:	8b f1                	mov    %ecx,%esi
475d98:	8d 7e ac             	lea    -0x54(%esi),%edi
475d9b:	e8 82 ff ff ff       	call   0x475d22
475da0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
475da4:	56                   	push   %esi
475da5:	c7 06 04 12 40 00    	movl   $0x401204,(%esi)
475dab:	e8 49 7d 01 00       	call   0x48daf9
475db0:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
475db4:	59                   	pop    %ecx
475db5:	74 08                	je     0x475dbf
475db7:	57                   	push   %edi
475db8:	ff 15 10 74 4a 00    	call   *0x4a7410
475dbe:	59                   	pop    %ecx
475dbf:	8b c7                	mov    %edi,%eax
475dc1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
475dc4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
475dcb:	59                   	pop    %ecx
475dcc:	5f                   	pop    %edi
475dcd:	5e                   	pop    %esi
475dce:	c9                   	leave
475dcf:	c2 04 00             	ret    $0x4
475dd2:	cc                   	int3
475dd3:	cc                   	int3
475dd4:	cc                   	int3
475dd5:	cc                   	int3
475dd6:	cc                   	int3
475dd7:	cc                   	int3
475dd8:	cc                   	int3
475dd9:	cc                   	int3
475dda:	cc                   	int3
475ddb:	cc                   	int3
475ddc:	cc                   	int3
475ddd:	cc                   	int3
475dde:	cc                   	int3
475ddf:	cc                   	int3
475de0:	8b ff                	mov    %edi,%edi
475de2:	55                   	push   %ebp
475de3:	8b ec                	mov    %esp,%ebp
475de5:	6a ff                	push   $0xffffffff
475de7:	68 20 12 49 00       	push   $0x491220
475dec:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
475df2:	50                   	push   %eax
475df3:	56                   	push   %esi
475df4:	57                   	push   %edi
475df5:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
475dfa:	33 c5                	xor    %ebp,%eax
475dfc:	50                   	push   %eax
475dfd:	8d 45 f4             	lea    -0xc(%ebp),%eax
475e00:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
475e06:	8b f1                	mov    %ecx,%esi
475e08:	8d 7e f4             	lea    -0xc(%esi),%edi
475e0b:	e8 33 ff ff ff       	call   0x475d43
475e10:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
475e14:	56                   	push   %esi
475e15:	c7 06 04 12 40 00    	movl   $0x401204,(%esi)
475e1b:	e8 d9 7c 01 00       	call   0x48daf9
475e20:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
475e24:	59                   	pop    %ecx
475e25:	74 08                	je     0x475e2f
475e27:	57                   	push   %edi
475e28:	ff 15 10 74 4a 00    	call   *0x4a7410
475e2e:	59                   	pop    %ecx
475e2f:	8b c7                	mov    %edi,%eax
475e31:	8b 4d f4             	mov    -0xc(%ebp),%ecx
475e34:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
475e3b:	59                   	pop    %ecx
475e3c:	5f                   	pop    %edi
475e3d:	5e                   	pop    %esi
475e3e:	c9                   	leave
475e3f:	c2 04 00             	ret    $0x4
475e42:	6a 34                	push   $0x34
475e44:	b8 08 61 49 00       	mov    $0x496108,%eax
475e49:	e8 24 a7 01 00       	call   0x490572
475e4e:	8b f9                	mov    %ecx,%edi
475e50:	8b 45 10             	mov    0x10(%ebp),%eax
475e53:	8d 4d d0             	lea    -0x30(%ebp),%ecx
475e56:	50                   	push   %eax
475e57:	89 7d cc             	mov    %edi,-0x34(%ebp)
475e5a:	e8 bf 41 fa ff       	call   0x41a01e
475e5f:	33 f6                	xor    %esi,%esi
475e61:	89 75 fc             	mov    %esi,-0x4(%ebp)
475e64:	39 77 04             	cmp    %esi,0x4(%edi)
475e67:	75 0b                	jne    0x475e74
475e69:	8b de                	mov    %esi,%ebx
475e6b:	c7 45 c4 1c 00 00 00 	movl   $0x1c,-0x3c(%ebp)
475e72:	eb 11                	jmp    0x475e85
475e74:	8b 47 0c             	mov    0xc(%edi),%eax
475e77:	2b 47 04             	sub    0x4(%edi),%eax
475e7a:	6a 1c                	push   $0x1c
475e7c:	5b                   	pop    %ebx
475e7d:	99                   	cltd
475e7e:	f7 fb                	idiv   %ebx
475e80:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
475e83:	8b d8                	mov    %eax,%ebx
475e85:	8b cf                	mov    %edi,%ecx
475e87:	e8 3e fe ff ff       	call   0x475cca
475e8c:	b9 49 92 24 09       	mov    $0x9249249,%ecx
475e91:	2b c8                	sub    %eax,%ecx
475e93:	83 f9 01             	cmp    $0x1,%ecx
475e96:	0f 82 d4 01 00 00    	jb     0x476070
475e9c:	8d 50 01             	lea    0x1(%eax),%edx
475e9f:	3b da                	cmp    %edx,%ebx
475ea1:	0f 83 cb 00 00 00    	jae    0x475f72
475ea7:	8b c3                	mov    %ebx,%eax
475ea9:	b9 49 92 24 09       	mov    $0x9249249,%ecx
475eae:	d1 e8                	shr    $1,%eax
475eb0:	2b c8                	sub    %eax,%ecx
475eb2:	03 c3                	add    %ebx,%eax
475eb4:	3b cb                	cmp    %ebx,%ecx
475eb6:	1b c9                	sbb    %ecx,%ecx
475eb8:	f7 d1                	not    %ecx
475eba:	23 c8                	and    %eax,%ecx
475ebc:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
475ebf:	3b ca                	cmp    %edx,%ecx
475ec1:	73 05                	jae    0x475ec8
475ec3:	8b ca                	mov    %edx,%ecx
475ec5:	89 55 c4             	mov    %edx,-0x3c(%ebp)
475ec8:	51                   	push   %ecx
475ec9:	e8 e8 01 00 00       	call   0x4760b6
475ece:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
475ed2:	ff 75 cc             	push   -0x34(%ebp)
475ed5:	8b 55 08             	mov    0x8(%ebp),%edx
475ed8:	ff 75 cc             	push   -0x34(%ebp)
475edb:	89 45 c0             	mov    %eax,-0x40(%ebp)
475ede:	51                   	push   %ecx
475edf:	8b 4f 04             	mov    0x4(%edi),%ecx
475ee2:	50                   	push   %eax
475ee3:	89 45 c8             	mov    %eax,-0x38(%ebp)
475ee6:	e8 d0 03 00 00       	call   0x4762bb
475eeb:	ff 75 cc             	push   -0x34(%ebp)
475eee:	33 d2                	xor    %edx,%edx
475ef0:	89 45 c8             	mov    %eax,-0x38(%ebp)
475ef3:	ff 75 cc             	push   -0x34(%ebp)
475ef6:	42                   	inc    %edx
475ef7:	8d 58 1c             	lea    0x1c(%eax),%ebx
475efa:	51                   	push   %ecx
475efb:	8d 4d d0             	lea    -0x30(%ebp),%ecx
475efe:	51                   	push   %ecx
475eff:	8b c8                	mov    %eax,%ecx
475f01:	e8 5a 03 00 00       	call   0x476260
475f06:	ff 75 cc             	push   -0x34(%ebp)
475f09:	8b 57 08             	mov    0x8(%edi),%edx
475f0c:	ff 75 cc             	push   -0x34(%ebp)
475f0f:	89 5d c8             	mov    %ebx,-0x38(%ebp)
475f12:	51                   	push   %ecx
475f13:	8b 4d 08             	mov    0x8(%ebp),%ecx
475f16:	53                   	push   %ebx
475f17:	e8 9f 03 00 00       	call   0x4762bb
475f1c:	8b cf                	mov    %edi,%ecx
475f1e:	e8 a7 fd ff ff       	call   0x475cca
475f23:	8b 5f 04             	mov    0x4(%edi),%ebx
475f26:	40                   	inc    %eax
475f27:	89 45 cc             	mov    %eax,-0x34(%ebp)
475f2a:	85 db                	test   %ebx,%ebx
475f2c:	74 27                	je     0x475f55
475f2e:	8b 47 08             	mov    0x8(%edi),%eax
475f31:	89 45 c8             	mov    %eax,-0x38(%ebp)
475f34:	3b d8                	cmp    %eax,%ebx
475f36:	74 15                	je     0x475f4d
475f38:	56                   	push   %esi
475f39:	6a 01                	push   $0x1
475f3b:	8b cb                	mov    %ebx,%ecx
475f3d:	e8 82 68 fa ff       	call   0x41c7c4
475f42:	83 c3 1c             	add    $0x1c,%ebx
475f45:	3b 5d c8             	cmp    -0x38(%ebp),%ebx
475f48:	75 ee                	jne    0x475f38
475f4a:	8b 5f 04             	mov    0x4(%edi),%ebx
475f4d:	53                   	push   %ebx
475f4e:	ff 15 10 74 4a 00    	call   *0x4a7410
475f54:	59                   	pop    %ecx
475f55:	6b 45 c4 1c          	imul   $0x1c,-0x3c(%ebp),%eax
475f59:	8b 4d c0             	mov    -0x40(%ebp),%ecx
475f5c:	89 4f 04             	mov    %ecx,0x4(%edi)
475f5f:	03 c1                	add    %ecx,%eax
475f61:	89 47 0c             	mov    %eax,0xc(%edi)
475f64:	6b 45 cc 1c          	imul   $0x1c,-0x34(%ebp),%eax
475f68:	03 c1                	add    %ecx,%eax
475f6a:	89 47 08             	mov    %eax,0x8(%edi)
475f6d:	e9 eb 00 00 00       	jmp    0x47605d
475f72:	8b 5f 08             	mov    0x8(%edi),%ebx
475f75:	8b c3                	mov    %ebx,%eax
475f77:	8b 4d 08             	mov    0x8(%ebp),%ecx
475f7a:	2b c1                	sub    %ecx,%eax
475f7c:	99                   	cltd
475f7d:	f7 7d c4             	idivl  -0x3c(%ebp)
475f80:	ff 75 cc             	push   -0x34(%ebp)
475f83:	89 5d c8             	mov    %ebx,-0x38(%ebp)
475f86:	ff 75 cc             	push   -0x34(%ebp)
475f89:	51                   	push   %ecx
475f8a:	83 f8 01             	cmp    $0x1,%eax
475f8d:	73 7b                	jae    0x47600a
475f8f:	8d 41 1c             	lea    0x1c(%ecx),%eax
475f92:	8b d3                	mov    %ebx,%edx
475f94:	50                   	push   %eax
475f95:	e8 21 03 00 00       	call   0x4762bb
475f9a:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
475f9e:	8b 4f 08             	mov    0x8(%edi),%ecx
475fa1:	8b c1                	mov    %ecx,%eax
475fa3:	2b 45 08             	sub    0x8(%ebp),%eax
475fa6:	6a 1c                	push   $0x1c
475fa8:	5b                   	pop    %ebx
475fa9:	99                   	cltd
475faa:	f7 fb                	idiv   %ebx
475fac:	ff 75 cc             	push   -0x34(%ebp)
475faf:	33 d2                	xor    %edx,%edx
475fb1:	ff 75 cc             	push   -0x34(%ebp)
475fb4:	42                   	inc    %edx
475fb5:	2b d0                	sub    %eax,%edx
475fb7:	8d 45 d0             	lea    -0x30(%ebp),%eax
475fba:	51                   	push   %ecx
475fbb:	50                   	push   %eax
475fbc:	e8 9f 02 00 00       	call   0x476260
475fc1:	89 75 fc             	mov    %esi,-0x4(%ebp)
475fc4:	8b 4f 08             	mov    0x8(%edi),%ecx
475fc7:	89 4d cc             	mov    %ecx,-0x34(%ebp)
475fca:	8d 41 1c             	lea    0x1c(%ecx),%eax
475fcd:	89 47 08             	mov    %eax,0x8(%edi)
475fd0:	8b 7d 08             	mov    0x8(%ebp),%edi
475fd3:	3b f9                	cmp    %ecx,%edi
475fd5:	0f 84 82 00 00 00    	je     0x47605d
475fdb:	6a ff                	push   $0xffffffff
475fdd:	56                   	push   %esi
475fde:	8d 45 d0             	lea    -0x30(%ebp),%eax
475fe1:	8b cf                	mov    %edi,%ecx
475fe3:	50                   	push   %eax