407bd9:	8b 65 e8             	mov    -0x18(%ebp),%esp
407bdc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407be0:	8b 75 e0             	mov    -0x20(%ebp),%esi
407be3:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407be6:	eb 9c                	jmp    0x407b84
407be8:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407bef:	e8 19 00 00 00       	call   0x407c0d
407bf4:	3b 75 14             	cmp    0x14(%ebp),%esi
407bf7:	74 05                	je     0x407bfe
407bf9:	e8 0e 62 00 00       	call   0x40de0c
407bfe:	8b 45 08             	mov    0x8(%ebp),%eax
407c01:	89 70 08             	mov    %esi,0x8(%eax)
407c04:	e8 ec 31 00 00       	call   0x40adf5
407c09:	c3                   	ret
407c0a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
407c0d:	e8 c4 47 00 00       	call   0x40c3d6
407c12:	83 b8 90 00 00 00 00 	cmpl   $0x0,0x90(%eax)
407c19:	7e 0b                	jle    0x407c26
407c1b:	e8 b6 47 00 00       	call   0x40c3d6
407c20:	ff 88 90 00 00 00    	decl   0x90(%eax)
407c26:	c3                   	ret
407c27:	55                   	push   %ebp
407c28:	8b ec                	mov    %esp,%ebp
407c2a:	53                   	push   %ebx
407c2b:	56                   	push   %esi
407c2c:	57                   	push   %edi
407c2d:	e8 a4 47 00 00       	call   0x40c3d6
407c32:	8b 4d 18             	mov    0x18(%ebp),%ecx
407c35:	8b 55 08             	mov    0x8(%ebp),%edx
407c38:	33 f6                	xor    %esi,%esi
407c3a:	bb 63 73 6d e0       	mov    $0xe06d7363,%ebx
407c3f:	bf 22 05 93 19       	mov    $0x19930522,%edi
407c44:	39 b0 ac 03 00 00    	cmp    %esi,0x3ac(%eax)
407c4a:	75 21                	jne    0x407c6d
407c4c:	39 1a                	cmp    %ebx,(%edx)
407c4e:	74 1d                	je     0x407c6d
407c50:	81 3a 26 00 00 80    	cmpl   $0x80000026,(%edx)
407c56:	74 15                	je     0x407c6d
407c58:	8b 01                	mov    (%ecx),%eax
407c5a:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
407c5f:	3b c7                	cmp    %edi,%eax
407c61:	72 0a                	jb     0x407c6d
407c63:	f6 41 20 01          	testb  $0x1,0x20(%ecx)
407c67:	0f 85 91 00 00 00    	jne    0x407cfe
407c6d:	f6 42 04 66          	testb  $0x66,0x4(%edx)
407c71:	74 21                	je     0x407c94
407c73:	39 71 04             	cmp    %esi,0x4(%ecx)
407c76:	0f 84 82 00 00 00    	je     0x407cfe
407c7c:	39 75 1c             	cmp    %esi,0x1c(%ebp)
407c7f:	75 7d                	jne    0x407cfe
407c81:	6a ff                	push   $0xffffffff
407c83:	51                   	push   %ecx
407c84:	ff 75 14             	push   0x14(%ebp)
407c87:	ff 75 0c             	push   0xc(%ebp)
407c8a:	e8 bf fe ff ff       	call   0x407b4e
407c8f:	83 c4 10             	add    $0x10,%esp
407c92:	eb 6a                	jmp    0x407cfe
407c94:	39 71 0c             	cmp    %esi,0xc(%ecx)
407c97:	75 13                	jne    0x407cac
407c99:	8b 01                	mov    (%ecx),%eax
407c9b:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
407ca0:	3d 21 05 93 19       	cmp    $0x19930521,%eax
407ca5:	72 57                	jb     0x407cfe
407ca7:	39 71 1c             	cmp    %esi,0x1c(%ecx)
407caa:	74 52                	je     0x407cfe
407cac:	39 1a                	cmp    %ebx,(%edx)
407cae:	75 32                	jne    0x407ce2
407cb0:	83 7a 10 03          	cmpl   $0x3,0x10(%edx)
407cb4:	72 2c                	jb     0x407ce2
407cb6:	39 7a 14             	cmp    %edi,0x14(%edx)
407cb9:	76 27                	jbe    0x407ce2
407cbb:	8b 42 1c             	mov    0x1c(%edx),%eax
407cbe:	8b 70 08             	mov    0x8(%eax),%esi
407cc1:	85 f6                	test   %esi,%esi
407cc3:	74 1d                	je     0x407ce2
407cc5:	0f b6 45 24          	movzbl 0x24(%ebp),%eax
407cc9:	50                   	push   %eax
407cca:	ff 75 20             	push   0x20(%ebp)
407ccd:	ff 75 1c             	push   0x1c(%ebp)
407cd0:	51                   	push   %ecx
407cd1:	ff 75 14             	push   0x14(%ebp)
407cd4:	ff 75 10             	push   0x10(%ebp)
407cd7:	ff 75 0c             	push   0xc(%ebp)
407cda:	52                   	push   %edx
407cdb:	ff d6                	call   *%esi
407cdd:	83 c4 20             	add    $0x20,%esp
407ce0:	eb 1f                	jmp    0x407d01
407ce2:	ff 75 20             	push   0x20(%ebp)
407ce5:	ff 75 1c             	push   0x1c(%ebp)
407ce8:	ff 75 24             	push   0x24(%ebp)
407ceb:	51                   	push   %ecx
407cec:	ff 75 14             	push   0x14(%ebp)
407cef:	ff 75 10             	push   0x10(%ebp)
407cf2:	ff 75 0c             	push   0xc(%ebp)
407cf5:	52                   	push   %edx
407cf6:	e8 81 f6 ff ff       	call   0x40737c
407cfb:	83 c4 20             	add    $0x20,%esp
407cfe:	33 c0                	xor    %eax,%eax
407d00:	40                   	inc    %eax
407d01:	5f                   	pop    %edi
407d02:	5e                   	pop    %esi
407d03:	5b                   	pop    %ebx
407d04:	5d                   	pop    %ebp
407d05:	c3                   	ret
407d06:	55                   	push   %ebp
407d07:	8b ec                	mov    %esp,%ebp
407d09:	56                   	push   %esi
407d0a:	8b 75 08             	mov    0x8(%ebp),%esi
407d0d:	57                   	push   %edi
407d0e:	8b 46 04             	mov    0x4(%esi),%eax
407d11:	85 c0                	test   %eax,%eax
407d13:	74 47                	je     0x407d5c
407d15:	8d 48 08             	lea    0x8(%eax),%ecx
407d18:	80 39 00             	cmpb   $0x0,(%ecx)
407d1b:	74 3f                	je     0x407d5c
407d1d:	8b 7d 0c             	mov    0xc(%ebp),%edi
407d20:	8b 57 04             	mov    0x4(%edi),%edx
407d23:	3b c2                	cmp    %edx,%eax
407d25:	74 14                	je     0x407d3b
407d27:	8d 42 08             	lea    0x8(%edx),%eax
407d2a:	50                   	push   %eax
407d2b:	51                   	push   %ecx
407d2c:	e8 6f 0e 00 00       	call   0x408ba0
407d31:	59                   	pop    %ecx
407d32:	59                   	pop    %ecx
407d33:	85 c0                	test   %eax,%eax
407d35:	74 04                	je     0x407d3b
407d37:	33 c0                	xor    %eax,%eax
407d39:	eb 24                	jmp    0x407d5f
407d3b:	f6 07 02             	testb  $0x2,(%edi)
407d3e:	74 05                	je     0x407d45
407d40:	f6 06 08             	testb  $0x8,(%esi)
407d43:	74 f2                	je     0x407d37
407d45:	8b 45 10             	mov    0x10(%ebp),%eax
407d48:	f6 00 01             	testb  $0x1,(%eax)
407d4b:	74 05                	je     0x407d52
407d4d:	f6 06 01             	testb  $0x1,(%esi)
407d50:	74 e5                	je     0x407d37
407d52:	f6 00 02             	testb  $0x2,(%eax)
407d55:	74 05                	je     0x407d5c
407d57:	f6 06 02             	testb  $0x2,(%esi)
407d5a:	74 db                	je     0x407d37
407d5c:	33 c0                	xor    %eax,%eax
407d5e:	40                   	inc    %eax
407d5f:	5f                   	pop    %edi
407d60:	5e                   	pop    %esi
407d61:	5d                   	pop    %ebp
407d62:	c3                   	ret
407d63:	e8 6e 46 00 00       	call   0x40c3d6
407d68:	8b d0                	mov    %eax,%edx
407d6a:	8b 42 6c             	mov    0x6c(%edx),%eax
407d6d:	3b 05 44 0f 42 00    	cmp    0x420f44,%eax
407d73:	74 10                	je     0x407d85
407d75:	8b 0d 0c 10 42 00    	mov    0x42100c,%ecx
407d7b:	85 4a 70             	test   %ecx,0x70(%edx)
407d7e:	75 05                	jne    0x407d85
407d80:	e8 a1 3c 00 00       	call   0x40ba26
407d85:	8b 40 04             	mov    0x4(%eax),%eax
407d88:	c3                   	ret
407d89:	e8 48 46 00 00       	call   0x40c3d6
407d8e:	8b d0                	mov    %eax,%edx
407d90:	8b 42 6c             	mov    0x6c(%edx),%eax
407d93:	3b 05 44 0f 42 00    	cmp    0x420f44,%eax
407d99:	74 10                	je     0x407dab
407d9b:	8b 0d 0c 10 42 00    	mov    0x42100c,%ecx
407da1:	85 4a 70             	test   %ecx,0x70(%edx)
407da4:	75 05                	jne    0x407dab
407da6:	e8 7b 3c 00 00       	call   0x40ba26
407dab:	05 a0 00 00 00       	add    $0xa0,%eax
407db0:	c3                   	ret
407db1:	55                   	push   %ebp
407db2:	8b ec                	mov    %esp,%ebp
407db4:	83 ec 44             	sub    $0x44,%esp
407db7:	a1 90 08 42 00       	mov    0x420890,%eax
407dbc:	33 c5                	xor    %ebp,%eax
407dbe:	89 45 fc             	mov    %eax,-0x4(%ebp)
407dc1:	53                   	push   %ebx
407dc2:	33 db                	xor    %ebx,%ebx
407dc4:	56                   	push   %esi
407dc5:	8b 75 08             	mov    0x8(%ebp),%esi
407dc8:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
407dcb:	8b 86 a8 00 00 00    	mov    0xa8(%esi),%eax
407dd1:	89 5d e0             	mov    %ebx,-0x20(%ebp)
407dd4:	89 5d dc             	mov    %ebx,-0x24(%ebp)
407dd7:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407dda:	89 5d d8             	mov    %ebx,-0x28(%ebp)
407ddd:	89 75 bc             	mov    %esi,-0x44(%ebp)
407de0:	89 5d c0             	mov    %ebx,-0x40(%ebp)
407de3:	85 c0                	test   %eax,%eax
407de5:	0f 84 0c 03 00 00    	je     0x4080f7
407deb:	57                   	push   %edi
407dec:	8d 7e 04             	lea    0x4(%esi),%edi
407def:	39 1f                	cmp    %ebx,(%edi)
407df1:	75 1c                	jne    0x407e0f
407df3:	57                   	push   %edi
407df4:	68 04 10 00 00       	push   $0x1004
407df9:	50                   	push   %eax
407dfa:	8d 45 bc             	lea    -0x44(%ebp),%eax
407dfd:	53                   	push   %ebx
407dfe:	50                   	push   %eax
407dff:	e8 b9 33 00 00       	call   0x40b1bd
407e04:	83 c4 14             	add    $0x14,%esp
407e07:	85 c0                	test   %eax,%eax
407e09:	0f 85 b4 02 00 00    	jne    0x4080c3
407e0f:	6a 04                	push   $0x4
407e11:	e8 8c 0c 00 00       	call   0x408aa2
407e16:	6a 02                	push   $0x2
407e18:	68 80 01 00 00       	push   $0x180
407e1d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407e20:	e8 33 0c 00 00       	call   0x408a58
407e25:	6a 01                	push   $0x1
407e27:	68 80 01 00 00       	push   $0x180
407e2c:	89 45 e0             	mov    %eax,-0x20(%ebp)
407e2f:	e8 24 0c 00 00       	call   0x408a58
407e34:	6a 01                	push   $0x1
407e36:	68 80 01 00 00       	push   $0x180
407e3b:	89 45 dc             	mov    %eax,-0x24(%ebp)
407e3e:	e8 15 0c 00 00       	call   0x408a58
407e43:	6a 01                	push   $0x1
407e45:	68 01 01 00 00       	push   $0x101
407e4a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407e4d:	e8 06 0c 00 00       	call   0x408a58
407e52:	8b c8                	mov    %eax,%ecx
407e54:	8b 45 d4             	mov    -0x2c(%ebp),%eax
407e57:	83 c4 24             	add    $0x24,%esp
407e5a:	89 4d d8             	mov    %ecx,-0x28(%ebp)
407e5d:	85 c0                	test   %eax,%eax
407e5f:	0f 84 5e 02 00 00    	je     0x4080c3
407e65:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
407e68:	0f 84 55 02 00 00    	je     0x4080c3
407e6e:	85 c9                	test   %ecx,%ecx
407e70:	0f 84 4d 02 00 00    	je     0x4080c3
407e76:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
407e79:	0f 84 44 02 00 00    	je     0x4080c3
407e7f:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
407e82:	0f 84 3b 02 00 00    	je     0x4080c3
407e88:	89 18                	mov    %ebx,(%eax)
407e8a:	8b c3                	mov    %ebx,%eax
407e8c:	88 04 08             	mov    %al,(%eax,%ecx,1)
407e8f:	40                   	inc    %eax
407e90:	3d 00 01 00 00       	cmp    $0x100,%eax
407e95:	7c f5                	jl     0x407e8c
407e97:	8d 45 e8             	lea    -0x18(%ebp),%eax
407e9a:	50                   	push   %eax
407e9b:	ff 37                	push   (%edi)
407e9d:	ff 15 8c 90 41 00    	call   *0x41908c
407ea3:	85 c0                	test   %eax,%eax
407ea5:	0f 84 18 02 00 00    	je     0x4080c3
407eab:	8b 45 e8             	mov    -0x18(%ebp),%eax
407eae:	83 f8 05             	cmp    $0x5,%eax
407eb1:	0f 87 0c 02 00 00    	ja     0x4080c3
407eb7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
407eba:	53                   	push   %ebx
407ebb:	ff 37                	push   (%edi)
407ebd:	0f b7 c0             	movzwl %ax,%eax
407ec0:	89 45 d0             	mov    %eax,-0x30(%ebp)
407ec3:	8b 45 dc             	mov    -0x24(%ebp),%eax
407ec6:	ba ff 00 00 00       	mov    $0xff,%edx
407ecb:	52                   	push   %edx
407ecc:	05 81 00 00 00       	add    $0x81,%eax
407ed1:	50                   	push   %eax
407ed2:	52                   	push   %edx
407ed3:	41                   	inc    %ecx
407ed4:	51                   	push   %ecx
407ed5:	68 00 01 00 00       	push   $0x100
407eda:	ff b6 a8 00 00 00    	push   0xa8(%esi)
407ee0:	89 4d cc             	mov    %ecx,-0x34(%ebp)
407ee3:	53                   	push   %ebx
407ee4:	e8 0d 0b 00 00       	call   0x4089f6
407ee9:	83 c4 24             	add    $0x24,%esp
407eec:	85 c0                	test   %eax,%eax
407eee:	0f 84 cf 01 00 00    	je     0x4080c3
407ef4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407ef7:	53                   	push   %ebx
407ef8:	ff 37                	push   (%edi)
407efa:	b9 ff 00 00 00       	mov    $0xff,%ecx
407eff:	51                   	push   %ecx
407f00:	05 81 00 00 00       	add    $0x81,%eax
407f05:	50                   	push   %eax
407f06:	51                   	push   %ecx
407f07:	ff 75 cc             	push   -0x34(%ebp)
407f0a:	68 00 02 00 00       	push   $0x200
407f0f:	ff b6 a8 00 00 00    	push   0xa8(%esi)
407f15:	53                   	push   %ebx
407f16:	e8 db 0a 00 00       	call   0x4089f6
407f1b:	83 c4 24             	add    $0x24,%esp
407f1e:	85 c0                	test   %eax,%eax
407f20:	0f 84 9d 01 00 00    	je     0x4080c3
407f26:	83 7d d0 01          	cmpl   $0x1,-0x30(%ebp)
407f2a:	7e 31                	jle    0x407f5d
407f2c:	38 5d ee             	cmp    %bl,-0x12(%ebp)
407f2f:	74 2c                	je     0x407f5d
407f31:	8b 7d d8             	mov    -0x28(%ebp),%edi
407f34:	8d 4d ef             	lea    -0x11(%ebp),%ecx
407f37:	8a 01                	mov    (%ecx),%al
407f39:	84 c0                	test   %al,%al
407f3b:	74 1d                	je     0x407f5a
407f3d:	0f b6 51 ff          	movzbl -0x1(%ecx),%edx
407f41:	0f b6 c0             	movzbl %al,%eax
407f44:	eb 08                	jmp    0x407f4e
407f46:	c6 04 3a 20          	movb   $0x20,(%edx,%edi,1)
407f4a:	0f b6 01             	movzbl (%ecx),%eax
407f4d:	42                   	inc    %edx
407f4e:	3b d0                	cmp    %eax,%edx
407f50:	7e f4                	jle    0x407f46
407f52:	83 c1 02             	add    $0x2,%ecx
407f55:	38 59 ff             	cmp    %bl,-0x1(%ecx)
407f58:	75 dd                	jne    0x407f37
407f5a:	8d 7e 04             	lea    0x4(%esi),%edi
407f5d:	8b 45 e0             	mov    -0x20(%ebp),%eax
407f60:	53                   	push   %ebx
407f61:	ff 37                	push   (%edi)
407f63:	05 00 01 00 00       	add    $0x100,%eax
407f68:	50                   	push   %eax
407f69:	68 00 01 00 00       	push   $0x100
407f6e:	ff 75 d8             	push   -0x28(%ebp)
407f71:	6a 01                	push   $0x1
407f73:	53                   	push   %ebx
407f74:	e8 9c 74 00 00       	call   0x40f415
407f79:	83 c4 1c             	add    $0x1c,%esp
407f7c:	85 c0                	test   %eax,%eax
407f7e:	0f 84 3f 01 00 00    	je     0x4080c3
407f84:	8b 7d e0             	mov    -0x20(%ebp),%edi
407f87:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407f8a:	33 c9                	xor    %ecx,%ecx
407f8c:	66 89 8f fe 00 00 00 	mov    %cx,0xfe(%edi)
407f93:	8b 4d dc             	mov    -0x24(%ebp),%ecx
407f96:	83 e9 80             	sub    $0xffffff80,%ecx
407f99:	88 59 ff             	mov    %bl,-0x1(%ecx)
407f9c:	88 58 7f             	mov    %bl,0x7f(%eax)
407f9f:	83 e8 80             	sub    $0xffffff80,%eax
407fa2:	83 7d d0 01          	cmpl   $0x1,-0x30(%ebp)
407fa6:	88 19                	mov    %bl,(%ecx)
407fa8:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
407fab:	89 45 c8             	mov    %eax,-0x38(%ebp)
407fae:	88 18                	mov    %bl,(%eax)
407fb0:	7e 45                	jle    0x407ff7
407fb2:	38 5d ee             	cmp    %bl,-0x12(%ebp)
407fb5:	74 40                	je     0x407ff7
407fb7:	8d 4d ef             	lea    -0x11(%ebp),%ecx
407fba:	8a 01                	mov    (%ecx),%al
407fbc:	84 c0                	test   %al,%al
407fbe:	74 37                	je     0x407ff7
407fc0:	0f b6 51 ff          	movzbl -0x1(%ecx),%edx
407fc4:	0f b6 c0             	movzbl %al,%eax
407fc7:	3b d0                	cmp    %eax,%edx
407fc9:	7f 24                	jg     0x407fef
407fcb:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
407fd1:	8d 04 50             	lea    (%eax,%edx,2),%eax
407fd4:	89 45 cc             	mov    %eax,-0x34(%ebp)