453b48:	33 d2                	xor    %edx,%edx
453b4a:	8b 40 08             	mov    0x8(%eax),%eax
453b4d:	85 c0                	test   %eax,%eax
453b4f:	74 08                	je     0x453b59
453b51:	8b 40 0c             	mov    0xc(%eax),%eax
453b54:	42                   	inc    %edx
453b55:	85 c0                	test   %eax,%eax
453b57:	75 f8                	jne    0x453b51
453b59:	8b c2                	mov    %edx,%eax
453b5b:	c3                   	ret
453b5c:	53                   	push   %ebx
453b5d:	56                   	push   %esi
453b5e:	33 f6                	xor    %esi,%esi
453b60:	e8 3f 06 00 00       	call   0x4541a4
453b65:	8b d8                	mov    %eax,%ebx
453b67:	85 db                	test   %ebx,%ebx
453b69:	74 0e                	je     0x453b79
453b6b:	8b c3                	mov    %ebx,%eax
453b6d:	e8 0a 06 00 00       	call   0x45417c
453b72:	8b d8                	mov    %eax,%ebx
453b74:	46                   	inc    %esi
453b75:	85 db                	test   %ebx,%ebx
453b77:	75 f2                	jne    0x453b6b
453b79:	8b c6                	mov    %esi,%eax
453b7b:	5e                   	pop    %esi
453b7c:	5b                   	pop    %ebx
453b7d:	c3                   	ret
453b7e:	8b c0                	mov    %eax,%eax
453b80:	53                   	push   %ebx
453b81:	56                   	push   %esi
453b82:	8b 50 04             	mov    0x4(%eax),%edx
453b85:	85 d2                	test   %edx,%edx
453b87:	74 06                	je     0x453b8f
453b89:	0f b6 5a 57          	movzbl 0x57(%edx),%ebx
453b8d:	eb 21                	jmp    0x453bb0
453b8f:	b3 01                	mov    $0x1,%bl
453b91:	e8 0e 06 00 00       	call   0x4541a4
453b96:	8b f0                	mov    %eax,%esi
453b98:	85 f6                	test   %esi,%esi
453b9a:	74 12                	je     0x453bae
453b9c:	8b c6                	mov    %esi,%eax
453b9e:	e8 dd ff ff ff       	call   0x453b80
453ba3:	84 c0                	test   %al,%al
453ba5:	75 09                	jne    0x453bb0
453ba7:	8b 76 0c             	mov    0xc(%esi),%esi
453baa:	85 f6                	test   %esi,%esi
453bac:	75 ee                	jne    0x453b9c
453bae:	33 db                	xor    %ebx,%ebx
453bb0:	8b c3                	mov    %ebx,%eax
453bb2:	5e                   	pop    %esi
453bb3:	5b                   	pop    %ebx
453bb4:	c3                   	ret
453bb5:	8d 40 00             	lea    0x0(%eax),%eax
453bb8:	8b 50 1c             	mov    0x1c(%eax),%edx
453bbb:	3b 42 64             	cmp    0x64(%edx),%eax
453bbe:	75 04                	jne    0x453bc4
453bc0:	8b d0                	mov    %eax,%edx
453bc2:	eb 03                	jmp    0x453bc7
453bc4:	8b 50 14             	mov    0x14(%eax),%edx
453bc7:	0f b6 4a 10          	movzbl 0x10(%edx),%ecx
453bcb:	80 f9 01             	cmp    $0x1,%cl
453bce:	75 0b                	jne    0x453bdb
453bd0:	ba 01 00 00 00       	mov    $0x1,%edx
453bd5:	e8 6e 00 00 00       	call   0x453c48
453bda:	c3                   	ret
453bdb:	80 f9 02             	cmp    $0x2,%cl
453bde:	75 0c                	jne    0x453bec
453be0:	ba 02 00 00 00       	mov    $0x2,%edx
453be5:	e8 5e 00 00 00       	call   0x453c48
453bea:	eb 13                	jmp    0x453bff
453bec:	33 c9                	xor    %ecx,%ecx
453bee:	b2 01                	mov    $0x1,%dl
453bf0:	a1 38 7b 40 00       	mov    0x407b38,%eax
453bf5:	e8 16 88 fb ff       	call   0x40c410
453bfa:	e8 91 05 fb ff       	call   0x404190
453bff:	c3                   	ret
453c00:	8b 50 1c             	mov    0x1c(%eax),%edx
453c03:	3b 42 64             	cmp    0x64(%edx),%eax
453c06:	75 04                	jne    0x453c0c
453c08:	8b d0                	mov    %eax,%edx
453c0a:	eb 03                	jmp    0x453c0f
453c0c:	8b 50 14             	mov    0x14(%eax),%edx
453c0f:	0f b6 4a 10          	movzbl 0x10(%edx),%ecx
453c13:	80 f9 01             	cmp    $0x1,%cl
453c16:	75 0b                	jne    0x453c23
453c18:	ba 01 00 00 00       	mov    $0x1,%edx
453c1d:	e8 aa 00 00 00       	call   0x453ccc
453c22:	c3                   	ret
453c23:	80 f9 02             	cmp    $0x2,%cl
453c26:	75 0c                	jne    0x453c34
453c28:	ba 02 00 00 00       	mov    $0x2,%edx
453c2d:	e8 9a 00 00 00       	call   0x453ccc
453c32:	eb 13                	jmp    0x453c47
453c34:	33 c9                	xor    %ecx,%ecx
453c36:	b2 01                	mov    $0x1,%dl
453c38:	a1 38 7b 40 00       	mov    0x407b38,%eax
453c3d:	e8 ce 87 fb ff       	call   0x40c410
453c42:	e8 49 05 fb ff       	call   0x404190
453c47:	c3                   	ret
453c48:	53                   	push   %ebx
453c49:	56                   	push   %esi
453c4a:	57                   	push   %edi
453c4b:	55                   	push   %ebp
453c4c:	83 c4 ec             	add    $0xffffffec,%esp
453c4f:	8b fa                	mov    %edx,%edi
453c51:	8b f0                	mov    %eax,%esi
453c53:	8b de                	mov    %esi,%ebx
453c55:	eb 1f                	jmp    0x453c76
453c57:	8b c7                	mov    %edi,%eax
453c59:	8b 6b 14             	mov    0x14(%ebx),%ebp
453c5c:	3a 45 10             	cmp    0x10(%ebp),%al
453c5f:	75 13                	jne    0x453c74
453c61:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
453c65:	74 0d                	je     0x453c74
453c67:	8b 43 18             	mov    0x18(%ebx),%eax
453c6a:	e8 31 04 00 00       	call   0x4540a0
453c6f:	89 04 24             	mov    %eax,(%esp)
453c72:	eb 4c                	jmp    0x453cc0
453c74:	8b dd                	mov    %ebp,%ebx
453c76:	8b 46 1c             	mov    0x1c(%esi),%eax
453c79:	3b 58 64             	cmp    0x64(%eax),%ebx
453c7c:	75 d9                	jne    0x453c57
453c7e:	8d 54 24 04          	lea    0x4(%esp),%edx
453c82:	8b 46 1c             	mov    0x1c(%esi),%eax
453c85:	8b 40 14             	mov    0x14(%eax),%eax
453c88:	8b 08                	mov    (%eax),%ecx
453c8a:	ff 51 44             	call   *0x44(%ecx)
453c8d:	8d 54 24 04          	lea    0x4(%esp),%edx
453c91:	8b 46 1c             	mov    0x1c(%esi),%eax
453c94:	8b 40 14             	mov    0x14(%eax),%eax
453c97:	8b 08                	mov    (%eax),%ecx
453c99:	ff 91 90 00 00 00    	call   *0x90(%ecx)
453c9f:	8b c7                	mov    %edi,%eax
453ca1:	fe c8                	dec    %al
453ca3:	74 0d                	je     0x453cb2
453ca5:	fe c8                	dec    %al
453ca7:	75 12                	jne    0x453cbb
453ca9:	8b 44 24 04          	mov    0x4(%esp),%eax
453cad:	89 04 24             	mov    %eax,(%esp)
453cb0:	eb 0e                	jmp    0x453cc0
453cb2:	8b 44 24 08          	mov    0x8(%esp),%eax
453cb6:	89 04 24             	mov    %eax,(%esp)
453cb9:	eb 05                	jmp    0x453cc0
453cbb:	33 c0                	xor    %eax,%eax
453cbd:	89 04 24             	mov    %eax,(%esp)
453cc0:	8b 04 24             	mov    (%esp),%eax
453cc3:	83 c4 14             	add    $0x14,%esp
453cc6:	5d                   	pop    %ebp
453cc7:	5f                   	pop    %edi
453cc8:	5e                   	pop    %esi
453cc9:	5b                   	pop    %ebx
453cca:	c3                   	ret
453ccb:	90                   	nop
453ccc:	53                   	push   %ebx
453ccd:	56                   	push   %esi
453cce:	57                   	push   %edi
453ccf:	55                   	push   %ebp
453cd0:	83 c4 f0             	add    $0xfffffff0,%esp
453cd3:	8b fa                	mov    %edx,%edi
453cd5:	8b d8                	mov    %eax,%ebx
453cd7:	8b 43 1c             	mov    0x1c(%ebx),%eax
453cda:	3b 58 64             	cmp    0x64(%eax),%ebx
453cdd:	74 1b                	je     0x453cfa
453cdf:	8b 43 1c             	mov    0x1c(%ebx),%eax
453ce2:	8b 70 64             	mov    0x64(%eax),%esi
453ce5:	3b 73 14             	cmp    0x14(%ebx),%esi
453ce8:	75 46                	jne    0x453d30
453cea:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
453cee:	74 40                	je     0x453d30
453cf0:	8b c6                	mov    %esi,%eax
453cf2:	e8 65 fe ff ff       	call   0x453b5c
453cf7:	48                   	dec    %eax
453cf8:	75 36                	jne    0x453d30
453cfa:	8b d4                	mov    %esp,%edx
453cfc:	8b 43 1c             	mov    0x1c(%ebx),%eax
453cff:	8b 40 14             	mov    0x14(%eax),%eax
453d02:	8b 08                	mov    (%eax),%ecx
453d04:	ff 51 44             	call   *0x44(%ecx)
453d07:	8b d4                	mov    %esp,%edx
453d09:	8b 43 1c             	mov    0x1c(%ebx),%eax
453d0c:	8b 40 14             	mov    0x14(%eax),%eax
453d0f:	8b 08                	mov    (%eax),%ecx
453d11:	ff 91 90 00 00 00    	call   *0x90(%ecx)
453d17:	8b c7                	mov    %edi,%eax
453d19:	3c 01                	cmp    $0x1,%al
453d1b:	75 0a                	jne    0x453d27
453d1d:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
453d21:	2b 6c 24 04          	sub    0x4(%esp),%ebp
453d25:	eb 51                	jmp    0x453d78
453d27:	8b 6c 24 08          	mov    0x8(%esp),%ebp
453d2b:	2b 2c 24             	sub    (%esp),%ebp
453d2e:	eb 48                	jmp    0x453d78
453d30:	8b f3                	mov    %ebx,%esi
453d32:	eb 21                	jmp    0x453d55
453d34:	8b c7                	mov    %edi,%eax
453d36:	8b 56 14             	mov    0x14(%esi),%edx
453d39:	3a 42 10             	cmp    0x10(%edx),%al
453d3c:	75 14                	jne    0x453d52
453d3e:	8b c6                	mov    %esi,%eax
453d40:	e8 5b 03 00 00       	call   0x4540a0
453d45:	8b e8                	mov    %eax,%ebp
453d47:	8b c6                	mov    %esi,%eax
453d49:	e8 6a fe ff ff       	call   0x453bb8
453d4e:	2b e8                	sub    %eax,%ebp
453d50:	eb 26                	jmp    0x453d78
453d52:	8b 76 14             	mov    0x14(%esi),%esi
453d55:	8b 43 1c             	mov    0x1c(%ebx),%eax
453d58:	3b 70 64             	cmp    0x64(%eax),%esi
453d5b:	75 d7                	jne    0x453d34
453d5d:	8b cf                	mov    %edi,%ecx
453d5f:	8b 43 1c             	mov    0x1c(%ebx),%eax
453d62:	8b 50 64             	mov    0x64(%eax),%edx
453d65:	3a 4a 10             	cmp    0x10(%edx),%cl
453d68:	75 05                	jne    0x453d6f
453d6a:	8b 68 68             	mov    0x68(%eax),%ebp
453d6d:	eb 09                	jmp    0x453d78
453d6f:	8b c2                	mov    %edx,%eax
453d71:	e8 2a 03 00 00       	call   0x4540a0
453d76:	8b e8                	mov    %eax,%ebp
453d78:	8b c5                	mov    %ebp,%eax
453d7a:	83 c4 10             	add    $0x10,%esp
453d7d:	5d                   	pop    %ebp
453d7e:	5f                   	pop    %edi
453d7f:	5e                   	pop    %esi
453d80:	5b                   	pop    %ebx
453d81:	c3                   	ret
453d82:	8b c0                	mov    %eax,%eax
453d84:	53                   	push   %ebx
453d85:	56                   	push   %esi
453d86:	57                   	push   %edi
453d87:	8b f0                	mov    %eax,%esi
453d89:	8b c6                	mov    %esi,%eax
453d8b:	e8 cc fd ff ff       	call   0x453b5c
453d90:	85 c0                	test   %eax,%eax
453d92:	0f 84 90 00 00 00    	je     0x453e28
453d98:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
453d9c:	0f 84 86 00 00 00    	je     0x453e28
453da2:	8b c6                	mov    %esi,%eax
453da4:	e8 fb 03 00 00       	call   0x4541a4
453da9:	8b d8                	mov    %eax,%ebx
453dab:	0f b6 46 10          	movzbl 0x10(%esi),%eax
453daf:	fe c8                	dec    %al
453db1:	74 06                	je     0x453db9
453db3:	fe c8                	dec    %al
453db5:	74 12                	je     0x453dc9
453db7:	eb 20                	jmp    0x453dd9
453db9:	ba 01 00 00 00       	mov    $0x1,%edx
453dbe:	8b c6                	mov    %esi,%eax
453dc0:	e8 07 ff ff ff       	call   0x453ccc
453dc5:	8b f8                	mov    %eax,%edi
453dc7:	eb 12                	jmp    0x453ddb
453dc9:	ba 02 00 00 00       	mov    $0x2,%edx
453dce:	8b c6                	mov    %esi,%eax
453dd0:	e8 f7 fe ff ff       	call   0x453ccc
453dd5:	8b f8                	mov    %eax,%edi
453dd7:	eb 02                	jmp    0x453ddb
453dd9:	33 ff                	xor    %edi,%edi
453ddb:	8b c6                	mov    %esi,%eax
453ddd:	e8 7a fd ff ff       	call   0x453b5c
453de2:	50                   	push   %eax
453de3:	8b c7                	mov    %edi,%eax
453de5:	5a                   	pop    %edx
453de6:	8b ca                	mov    %edx,%ecx
453de8:	99                   	cltd
453de9:	f7 f9                	idiv   %ecx
453deb:	8b f0                	mov    %eax,%esi
453ded:	85 db                	test   %ebx,%ebx
453def:	74 37                	je     0x453e28
453df1:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
453df5:	75 0b                	jne    0x453e02
453df7:	8b d7                	mov    %edi,%edx
453df9:	8b c3                	mov    %ebx,%eax
453dfb:	e8 c8 02 00 00       	call   0x4540c8
453e00:	eb 12                	jmp    0x453e14
453e02:	8b c3                	mov    %ebx,%eax
453e04:	e8 af fd ff ff       	call   0x453bb8
453e09:	8b d0                	mov    %eax,%edx
453e0b:	03 d6                	add    %esi,%edx
453e0d:	8b c3                	mov    %ebx,%eax
453e0f:	e8 b4 02 00 00       	call   0x4540c8
453e14:	8b c3                	mov    %ebx,%eax
453e16:	e8 09 01 00 00       	call   0x453f24
453e1b:	8b c3                	mov    %ebx,%eax
453e1d:	e8 5a 03 00 00       	call   0x45417c
453e22:	8b d8                	mov    %eax,%ebx
453e24:	85 db                	test   %ebx,%ebx
453e26:	75 c9                	jne    0x453df1
453e28:	5f                   	pop    %edi
453e29:	5e                   	pop    %esi
453e2a:	5b                   	pop    %ebx
453e2b:	c3                   	ret
453e2c:	53                   	push   %ebx
453e2d:	56                   	push   %esi
453e2e:	57                   	push   %edi
453e2f:	8b f2                	mov    %edx,%esi
453e31:	8b d8                	mov    %eax,%ebx
453e33:	8b c6                	mov    %esi,%eax
453e35:	e8 0e 09 fb ff       	call   0x404748
453e3a:	8b 7b 04             	mov    0x4(%ebx),%edi
453e3d:	85 ff                	test   %edi,%edi
453e3f:	74 2a                	je     0x453e6b
453e41:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
453e45:	75 17                	jne    0x453e5e
453e47:	8b 0d c8 75 4a 00    	mov    0x4a75c8,%ecx
453e4d:	b2 01                	mov    $0x1,%dl
453e4f:	a1 38 7b 40 00       	mov    0x407b38,%eax
453e54:	e8 73 86 fb ff       	call   0x40c4cc
453e59:	e8 32 03 fb ff       	call   0x404190
453e5e:	8b c6                	mov    %esi,%eax
453e60:	8b 53 04             	mov    0x4(%ebx),%edx
453e63:	8b 52 08             	mov    0x8(%edx),%edx
453e66:	e8 31 09 fb ff       	call   0x40479c
453e6b:	5f                   	pop    %edi
453e6c:	5e                   	pop    %esi
453e6d:	5b                   	pop    %ebx
453e6e:	c3                   	ret
453e6f:	90                   	nop
453e70:	55                   	push   %ebp
453e71:	8b ec                	mov    %esp,%ebp
453e73:	83 c4 f4             	add    $0xfffffff4,%esp
453e76:	53                   	push   %ebx
453e77:	56                   	push   %esi
453e78:	8b d8                	mov    %eax,%ebx
453e7a:	33 c0                	xor    %eax,%eax
453e7c:	89 45 f8             	mov    %eax,-0x8(%ebp)
453e7f:	8b 43 1c             	mov    0x1c(%ebx),%eax
453e82:	89 45 f4             	mov    %eax,-0xc(%ebp)
453e85:	8d 4d f8             	lea    -0x8(%ebp),%ecx
453e88:	8b 45 f4             	mov    -0xc(%ebp),%eax
453e8b:	8b 40 14             	mov    0x14(%eax),%eax
453e8e:	66 be b7 ff          	mov    $0xffb7,%si
453e92:	e8 81 fc fa ff       	call   0x403b18
453e97:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
453e9b:	0f 95 45 ff          	setne  -0x1(%ebp)
453e9f:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
453ea3:	74 43                	je     0x453ee8
453ea5:	8b 45 f4             	mov    -0xc(%ebp),%eax
453ea8:	89 58 38             	mov    %ebx,0x38(%eax)
453eab:	33 c0                	xor    %eax,%eax
453ead:	55                   	push   %ebp
453eae:	68 e1 3e 45 00       	push   $0x453ee1
453eb3:	64 ff 30             	push   %fs:(%eax)
453eb6:	64 89 20             	mov    %esp,%fs:(%eax)
453eb9:	6a 00                	push   $0x0
453ebb:	8b 45 f4             	mov    -0xc(%ebp),%eax
453ebe:	8b 50 14             	mov    0x14(%eax),%edx
453ec1:	33 c9                	xor    %ecx,%ecx
453ec3:	8b 45 f8             	mov    -0x8(%ebp),%eax
453ec6:	e8 a9 6d ff ff       	call   0x44ac74
453ecb:	33 c0                	xor    %eax,%eax