402bd1:	8b ca                	mov    %edx,%ecx
402bd3:	8a 11                	mov    (%ecx),%dl
402bd5:	3a 10                	cmp    (%eax),%dl
402bd7:	75 1a                	jne    0x402bf3
402bd9:	84 d2                	test   %dl,%dl
402bdb:	74 12                	je     0x402bef
402bdd:	8a 51 01             	mov    0x1(%ecx),%dl
402be0:	3a 50 01             	cmp    0x1(%eax),%dl
402be3:	75 0e                	jne    0x402bf3
402be5:	83 c1 02             	add    $0x2,%ecx
402be8:	83 c0 02             	add    $0x2,%eax
402beb:	84 d2                	test   %dl,%dl
402bed:	75 e4                	jne    0x402bd3
402bef:	33 c0                	xor    %eax,%eax
402bf1:	eb 05                	jmp    0x402bf8
402bf3:	1b c0                	sbb    %eax,%eax
402bf5:	83 d8 ff             	sbb    $0xffffffff,%eax
402bf8:	85 c0                	test   %eax,%eax
402bfa:	75 11                	jne    0x402c0d
402bfc:	8b 44 24 10          	mov    0x10(%esp),%eax
402c00:	0f b7 0c 68          	movzwl (%eax,%ebp,2),%ecx
402c04:	8b 54 24 14          	mov    0x14(%esp),%edx
402c08:	8b 1c 8a             	mov    (%edx,%ecx,4),%ebx
402c0b:	03 de                	add    %esi,%ebx
402c0d:	83 c5 01             	add    $0x1,%ebp
402c10:	3b 6f 18             	cmp    0x18(%edi),%ebp
402c13:	72 af                	jb     0x402bc4
402c15:	3b df                	cmp    %edi,%ebx
402c17:	72 5f                	jb     0x402c78
402c19:	8b 44 24 18          	mov    0x18(%esp),%eax
402c1d:	8b 48 04             	mov    0x4(%eax),%ecx
402c20:	03 cf                	add    %edi,%ecx
402c22:	3b d9                	cmp    %ecx,%ebx
402c24:	73 52                	jae    0x402c78
402c26:	53                   	push   %ebx
402c27:	e8 c5 2c 01 00       	call   0x4158f1
402c2c:	8b f0                	mov    %eax,%esi
402c2e:	83 c4 04             	add    $0x4,%esp
402c31:	85 f6                	test   %esi,%esi
402c33:	0f 84 78 ff ff ff    	je     0x402bb1
402c39:	6a 2e                	push   $0x2e
402c3b:	56                   	push   %esi
402c3c:	33 db                	xor    %ebx,%ebx
402c3e:	e8 7d 2b 00 00       	call   0x4057c0
402c43:	8b f8                	mov    %eax,%edi
402c45:	83 c4 08             	add    $0x8,%esp
402c48:	88 1f                	mov    %bl,(%edi)
402c4a:	56                   	push   %esi
402c4b:	83 c7 01             	add    $0x1,%edi
402c4e:	ff 15 44 70 41 00    	call   *0x417044
402c54:	85 c0                	test   %eax,%eax
402c56:	75 0b                	jne    0x402c63
402c58:	56                   	push   %esi
402c59:	ff 15 40 70 41 00    	call   *0x417040
402c5f:	85 c0                	test   %eax,%eax
402c61:	74 0c                	je     0x402c6f
402c63:	57                   	push   %edi
402c64:	50                   	push   %eax
402c65:	e8 e6 fe ff ff       	call   0x402b50
402c6a:	83 c4 08             	add    $0x8,%esp
402c6d:	8b d8                	mov    %eax,%ebx
402c6f:	56                   	push   %esi
402c70:	e8 de 37 00 00       	call   0x406453
402c75:	83 c4 04             	add    $0x4,%esp
402c78:	68 94 73 41 00       	push   $0x417394
402c7d:	68 30 d7 41 00       	push   $0x41d730
402c82:	e8 79 fb ff ff       	call   0x402800
402c87:	83 c4 08             	add    $0x8,%esp
402c8a:	8b f0                	mov    %eax,%esi
402c8c:	6a 0a                	push   $0xa
402c8e:	8b ce                	mov    %esi,%ecx
402c90:	e8 8b fd ff ff       	call   0x402a20
402c95:	8b 16                	mov    (%esi),%edx
402c97:	8b 42 04             	mov    0x4(%edx),%eax
402c9a:	03 c6                	add    %esi,%eax
402c9c:	33 ff                	xor    %edi,%edi
402c9e:	f6 40 08 06          	testb  $0x6,0x8(%eax)
402ca2:	75 16                	jne    0x402cba
402ca4:	8b 40 28             	mov    0x28(%eax),%eax
402ca7:	8b 10                	mov    (%eax),%edx
402ca9:	8b c8                	mov    %eax,%ecx
402cab:	8b 42 30             	mov    0x30(%edx),%eax
402cae:	ff d0                	call   *%eax
402cb0:	83 f8 ff             	cmp    $0xffffffff,%eax
402cb3:	75 05                	jne    0x402cba
402cb5:	bf 04 00 00 00       	mov    $0x4,%edi
402cba:	8b 0e                	mov    (%esi),%ecx
402cbc:	8b 49 04             	mov    0x4(%ecx),%ecx
402cbf:	03 ce                	add    %esi,%ecx
402cc1:	85 ff                	test   %edi,%edi
402cc3:	74 16                	je     0x402cdb
402cc5:	8b 41 08             	mov    0x8(%ecx),%eax
402cc8:	0b c7                	or     %edi,%eax
402cca:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
402cce:	75 03                	jne    0x402cd3
402cd0:	83 c8 04             	or     $0x4,%eax
402cd3:	6a 00                	push   $0x0
402cd5:	50                   	push   %eax
402cd6:	e8 85 f7 ff ff       	call   0x402460
402cdb:	5f                   	pop    %edi
402cdc:	5e                   	pop    %esi
402cdd:	5d                   	pop    %ebp
402cde:	8b c3                	mov    %ebx,%eax
402ce0:	5b                   	pop    %ebx
402ce1:	83 c4 0c             	add    $0xc,%esp
402ce4:	c3                   	ret
402ce5:	cc                   	int3
402ce6:	cc                   	int3
402ce7:	cc                   	int3
402ce8:	cc                   	int3
402ce9:	cc                   	int3
402cea:	cc                   	int3
402ceb:	cc                   	int3
402cec:	cc                   	int3
402ced:	cc                   	int3
402cee:	cc                   	int3
402cef:	cc                   	int3
402cf0:	83 ec 18             	sub    $0x18,%esp
402cf3:	a1 20 c5 41 00       	mov    0x41c520,%eax
402cf8:	33 c4                	xor    %esp,%eax
402cfa:	89 44 24 14          	mov    %eax,0x14(%esp)
402cfe:	56                   	push   %esi
402cff:	8b 35 48 70 41 00    	mov    0x417048,%esi
402d05:	57                   	push   %edi
402d06:	68 1c 74 41 00       	push   $0x41741c
402d0b:	ff d6                	call   *%esi
402d0d:	68 00 74 41 00       	push   $0x417400
402d12:	8b f8                	mov    %eax,%edi
402d14:	ff d6                	call   *%esi
402d16:	8b 0d f0 73 41 00    	mov    0x4173f0,%ecx
402d1c:	8b 15 f4 73 41 00    	mov    0x4173f4,%edx
402d22:	8b f0                	mov    %eax,%esi
402d24:	a1 ec 73 41 00       	mov    0x4173ec,%eax
402d29:	89 44 24 08          	mov    %eax,0x8(%esp)
402d2d:	a1 f8 73 41 00       	mov    0x4173f8,%eax
402d32:	89 44 24 14          	mov    %eax,0x14(%esp)
402d36:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
402d3a:	66 8b 0d fc 73 41 00 	mov    0x4173fc,%cx
402d41:	89 54 24 10          	mov    %edx,0x10(%esp)
402d45:	8a 15 fe 73 41 00    	mov    0x4173fe,%dl
402d4b:	8d 44 24 08          	lea    0x8(%esp),%eax
402d4f:	50                   	push   %eax
402d50:	66 89 4c 24 1c       	mov    %cx,0x1c(%esp)
402d55:	88 54 24 1e          	mov    %dl,0x1e(%esp)
402d59:	e8 82 e4 ff ff       	call   0x4011e0
402d5e:	50                   	push   %eax
402d5f:	57                   	push   %edi
402d60:	e8 eb fd ff ff       	call   0x402b50
402d65:	68 d4 73 41 00       	push   $0x4173d4
402d6a:	56                   	push   %esi
402d6b:	a3 e8 d6 41 00       	mov    %eax,0x41d6e8
402d70:	e8 db fd ff ff       	call   0x402b50
402d75:	68 c4 73 41 00       	push   $0x4173c4
402d7a:	56                   	push   %esi
402d7b:	a3 f0 d6 41 00       	mov    %eax,0x41d6f0
402d80:	e8 cb fd ff ff       	call   0x402b50
402d85:	68 b4 73 41 00       	push   $0x4173b4
402d8a:	56                   	push   %esi
402d8b:	a3 f4 d6 41 00       	mov    %eax,0x41d6f4
402d90:	e8 bb fd ff ff       	call   0x402b50
402d95:	8b 4c 24 40          	mov    0x40(%esp),%ecx
402d99:	83 c4 24             	add    $0x24,%esp
402d9c:	5f                   	pop    %edi
402d9d:	5e                   	pop    %esi
402d9e:	33 cc                	xor    %esp,%ecx
402da0:	a3 f8 d6 41 00       	mov    %eax,0x41d6f8
402da5:	e8 8b 31 00 00       	call   0x405f35
402daa:	83 c4 18             	add    $0x18,%esp
402dad:	c3                   	ret
402dae:	cc                   	int3
402daf:	cc                   	int3
402db0:	83 ec 1c             	sub    $0x1c,%esp
402db3:	a1 20 c5 41 00       	mov    0x41c520,%eax
402db8:	33 c4                	xor    %esp,%eax
402dba:	89 44 24 18          	mov    %eax,0x18(%esp)
402dbe:	56                   	push   %esi
402dbf:	57                   	push   %edi
402dc0:	8b 7c 24 28          	mov    0x28(%esp),%edi
402dc4:	6a 00                	push   $0x0
402dc6:	e8 3f 2d 00 00       	call   0x405b0a
402dcb:	50                   	push   %eax
402dcc:	e8 10 37 00 00       	call   0x4064e1
402dd1:	83 c4 08             	add    $0x8,%esp
402dd4:	e8 15 37 00 00       	call   0x4064ee
402dd9:	25 03 00 00 80       	and    $0x80000003,%eax
402dde:	79 05                	jns    0x402de5
402de0:	48                   	dec    %eax
402de1:	83 c8 fc             	or     $0xfffffffc,%eax
402de4:	40                   	inc    %eax
402de5:	83 c0 01             	add    $0x1,%eax
402de8:	83 f8 03             	cmp    $0x3,%eax
402deb:	7e d7                	jle    0x402dc4
402ded:	e8 fe fe ff ff       	call   0x402cf0
402df2:	8b 0d 58 74 41 00    	mov    0x417458,%ecx
402df8:	8b 15 5c 74 41 00    	mov    0x41745c,%edx
402dfe:	a1 54 74 41 00       	mov    0x417454,%eax
402e03:	68 48 74 41 00       	push   $0x417448
402e08:	89 4c 24 18          	mov    %ecx,0x18(%esp)
402e0c:	68 f8 55 01 00       	push   $0x155f8
402e11:	8d 4c 24 10          	lea    0x10(%esp),%ecx
402e15:	89 54 24 20          	mov    %edx,0x20(%esp)
402e19:	89 44 24 18          	mov    %eax,0x18(%esp)
402e1d:	a1 60 74 41 00       	mov    0x417460,%eax
402e22:	51                   	push   %ecx
402e23:	8d 54 24 18          	lea    0x18(%esp),%edx
402e27:	52                   	push   %edx
402e28:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
402e2f:	00
402e30:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
402e37:	00
402e38:	89 44 24 2c          	mov    %eax,0x2c(%esp)
402e3c:	e8 2f e3 ff ff       	call   0x401170
402e41:	8b 74 24 1c          	mov    0x1c(%esp),%esi
402e45:	8d 44 24 18          	lea    0x18(%esp),%eax
402e49:	50                   	push   %eax
402e4a:	56                   	push   %esi
402e4b:	8d 4c 24 28          	lea    0x28(%esp),%ecx
402e4f:	6a 01                	push   $0x1
402e51:	51                   	push   %ecx
402e52:	e8 e9 e1 ff ff       	call   0x401040
402e57:	83 c4 20             	add    $0x20,%esp
402e5a:	84 c0                	test   %al,%al
402e5c:	75 31                	jne    0x402e8f
402e5e:	8d 54 24 08          	lea    0x8(%esp),%edx
402e62:	52                   	push   %edx
402e63:	56                   	push   %esi
402e64:	8d 44 24 18          	lea    0x18(%esp),%eax
402e68:	6a 10                	push   $0x10
402e6a:	50                   	push   %eax
402e6b:	e8 d0 e1 ff ff       	call   0x401040
402e70:	83 c4 10             	add    $0x10,%esp
402e73:	84 c0                	test   %al,%al
402e75:	75 18                	jne    0x402e8f
402e77:	5f                   	pop    %edi
402e78:	b8 01 00 00 00       	mov    $0x1,%eax
402e7d:	5e                   	pop    %esi
402e7e:	8b 4c 24 18          	mov    0x18(%esp),%ecx
402e82:	33 cc                	xor    %esp,%ecx
402e84:	e8 ac 30 00 00       	call   0x405f35
402e89:	83 c4 1c             	add    $0x1c,%esp
402e8c:	c2 10 00             	ret    $0x10
402e8f:	ff d6                	call   *%esi
402e91:	68 b0 d5 41 00       	push   $0x41d5b0
402e96:	68 04 01 00 00       	push   $0x104
402e9b:	ff 15 4c 70 41 00    	call   *0x41704c
402ea1:	b8 b0 d5 41 00       	mov    $0x41d5b0,%eax
402ea6:	83 c0 ff             	add    $0xffffffff,%eax
402ea9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
402eb0:	8a 48 01             	mov    0x1(%eax),%cl
402eb3:	83 c0 01             	add    $0x1,%eax
402eb6:	84 c9                	test   %cl,%cl
402eb8:	75 f6                	jne    0x402eb0
402eba:	8b 0d 38 74 41 00    	mov    0x417438,%ecx
402ec0:	8b 15 3c 74 41 00    	mov    0x41743c,%edx
402ec6:	8b 35 a0 71 41 00    	mov    0x4171a0,%esi
402ecc:	89 08                	mov    %ecx,(%eax)
402ece:	8b 0d 40 74 41 00    	mov    0x417440,%ecx
402ed4:	89 50 04             	mov    %edx,0x4(%eax)
402ed7:	8a 15 44 74 41 00    	mov    0x417444,%dl
402edd:	6a 66                	push   $0x66
402edf:	89 48 08             	mov    %ecx,0x8(%eax)
402ee2:	57                   	push   %edi
402ee3:	88 50 0c             	mov    %dl,0xc(%eax)
402ee6:	89 3d d4 d6 41 00    	mov    %edi,0x41d6d4
402eec:	ff d6                	call   *%esi
402eee:	a3 c0 d6 41 00       	mov    %eax,0x41d6c0
402ef3:	a1 d4 d6 41 00       	mov    0x41d6d4,%eax
402ef8:	6a 67                	push   $0x67
402efa:	50                   	push   %eax
402efb:	ff d6                	call   *%esi
402efd:	8b 0d d4 d6 41 00    	mov    0x41d6d4,%ecx
402f03:	6a 68                	push   $0x68
402f05:	51                   	push   %ecx
402f06:	a3 bc d6 41 00       	mov    %eax,0x41d6bc
402f0b:	ff d6                	call   *%esi
402f0d:	8b 15 d4 d6 41 00    	mov    0x41d6d4,%edx
402f13:	6a 65                	push   $0x65
402f15:	52                   	push   %edx
402f16:	a3 b8 d6 41 00       	mov    %eax,0x41d6b8
402f1b:	ff 15 8c 71 41 00    	call   *0x41718c
402f21:	6a 00                	push   $0x0
402f23:	68 a0 1c 40 00       	push   $0x401ca0
402f28:	6a 00                	push   $0x0
402f2a:	6a 65                	push   $0x65
402f2c:	57                   	push   %edi
402f2d:	a3 b4 d6 41 00       	mov    %eax,0x41d6b4
402f32:	ff 15 7c 71 41 00    	call   *0x41717c
402f38:	a1 c0 d6 41 00       	mov    0x41d6c0,%eax
402f3d:	8b 35 00 70 41 00    	mov    0x417000,%esi
402f43:	50                   	push   %eax
402f44:	ff d6                	call   *%esi
402f46:	8b 0d bc d6 41 00    	mov    0x41d6bc,%ecx
402f4c:	51                   	push   %ecx
402f4d:	ff d6                	call   *%esi
402f4f:	8b 15 b8 d6 41 00    	mov    0x41d6b8,%edx
402f55:	52                   	push   %edx
402f56:	ff d6                	call   *%esi
402f58:	a1 b4 d6 41 00       	mov    0x41d6b4,%eax
402f5d:	50                   	push   %eax
402f5e:	ff d6                	call   *%esi
402f60:	8b 4c 24 20          	mov    0x20(%esp),%ecx
402f64:	5f                   	pop    %edi
402f65:	5e                   	pop    %esi
402f66:	33 cc                	xor    %esp,%ecx
402f68:	33 c0                	xor    %eax,%eax
402f6a:	e8 c6 2f 00 00       	call   0x405f35
402f6f:	83 c4 1c             	add    $0x1c,%esp
402f72:	c2 10 00             	ret    $0x10
402f75:	cc                   	int3
402f76:	cc                   	int3
402f77:	cc                   	int3
402f78:	cc                   	int3
402f79:	cc                   	int3
402f7a:	cc                   	int3
402f7b:	cc                   	int3
402f7c:	cc                   	int3
402f7d:	cc                   	int3
402f7e:	cc                   	int3
402f7f:	cc                   	int3
402f80:	83 ec 28             	sub    $0x28,%esp
402f83:	a1 20 c5 41 00       	mov    0x41c520,%eax
402f88:	33 c4                	xor    %esp,%eax
402f8a:	89 44 24 24          	mov    %eax,0x24(%esp)
402f8e:	8b 4c 24 30          	mov    0x30(%esp),%ecx
402f92:	83 e9 10             	sub    $0x10,%ecx
402f95:	8b 44 24 2c          	mov    0x2c(%esp),%eax
402f99:	0f 84 62 02 00 00    	je     0x403201
402f9f:	81 e9 00 01 00 00    	sub    $0x100,%ecx
402fa5:	56                   	push   %esi
402fa6:	0f 84 4b 01 00 00    	je     0x4030f7
402fac:	83 e9 01             	sub    $0x1,%ecx
402faf:	0f 85 2e 01 00 00    	jne    0x4030e3
402fb5:	8b 44 24 3c          	mov    0x3c(%esp),%eax
402fb9:	3b 05 1c d7 41 00    	cmp    0x41d71c,%eax
402fbf:	75 25                	jne    0x402fe6
402fc1:	a1 20 d7 41 00       	mov    0x41d720,%eax
402fc6:	6a 01                	push   $0x1
402fc8:	50                   	push   %eax
402fc9:	ff 15 88 71 41 00    	call   *0x417188
402fcf:	b8 01 00 00 00       	mov    $0x1,%eax
402fd4:	5e                   	pop    %esi
402fd5:	8b 4c 24 24          	mov    0x24(%esp),%ecx
402fd9:	33 cc                	xor    %esp,%ecx
402fdb:	e8 55 2f 00 00       	call   0x405f35
402fe0:	83 c4 28             	add    $0x28,%esp
402fe3:	c2 10 00             	ret    $0x10
402fe6:	3b 05 18 d7 41 00    	cmp    0x41d718,%eax
402fec:	0f 85 f1 00 00 00    	jne    0x4030e3
402ff2:	8b 15 20 d7 41 00    	mov    0x41d720,%edx
402ff8:	8b 35 98 71 41 00    	mov    0x417198,%esi