503d94:	e8 d7 d5 01 00       	call   0x521370
503d99:	83 c4 08             	add    $0x8,%esp
503d9c:	57                   	push   %edi
503d9d:	ff 75 08             	push   0x8(%ebp)
503da0:	e8 cb d5 01 00       	call   0x521370
503da5:	83 c4 08             	add    $0x8,%esp
503da8:	5f                   	pop    %edi
503da9:	5d                   	pop    %ebp
503daa:	c3                   	ret
503dab:	cc                   	int3
503dac:	cc                   	int3
503dad:	cc                   	int3
503dae:	cc                   	int3
503daf:	cc                   	int3
503db0:	55                   	push   %ebp
503db1:	8b ec                	mov    %esp,%ebp
503db3:	56                   	push   %esi
503db4:	8b 75 0c             	mov    0xc(%ebp),%esi
503db7:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
503dbb:	74 13                	je     0x503dd0
503dbd:	8b 46 14             	mov    0x14(%esi),%eax
503dc0:	85 c0                	test   %eax,%eax
503dc2:	74 0c                	je     0x503dd0
503dc4:	50                   	push   %eax
503dc5:	ff 75 08             	push   0x8(%ebp)
503dc8:	e8 a3 d5 01 00       	call   0x521370
503dcd:	83 c4 08             	add    $0x8,%esp
503dd0:	56                   	push   %esi
503dd1:	ff 75 08             	push   0x8(%ebp)
503dd4:	e8 97 d5 01 00       	call   0x521370
503dd9:	83 c4 08             	add    $0x8,%esp
503ddc:	5e                   	pop    %esi
503ddd:	5d                   	pop    %ebp
503dde:	c3                   	ret
503ddf:	cc                   	int3
503de0:	55                   	push   %ebp
503de1:	8b ec                	mov    %esp,%ebp
503de3:	56                   	push   %esi
503de4:	8b 75 0c             	mov    0xc(%ebp),%esi
503de7:	83 3e 00             	cmpl   $0x0,(%esi)
503dea:	75 14                	jne    0x503e00
503dec:	8b 45 08             	mov    0x8(%ebp),%eax
503def:	ff 70 04             	push   0x4(%eax)
503df2:	50                   	push   %eax
503df3:	ff 70 34             	push   0x34(%eax)
503df6:	e8 15 00 00 00       	call   0x503e10
503dfb:	83 c4 0c             	add    $0xc,%esp
503dfe:	89 06                	mov    %eax,(%esi)
503e00:	5e                   	pop    %esi
503e01:	5d                   	pop    %ebp
503e02:	c3                   	ret
503e03:	cc                   	int3
503e04:	cc                   	int3
503e05:	cc                   	int3
503e06:	cc                   	int3
503e07:	cc                   	int3
503e08:	cc                   	int3
503e09:	cc                   	int3
503e0a:	cc                   	int3
503e0b:	cc                   	int3
503e0c:	cc                   	int3
503e0d:	cc                   	int3
503e0e:	cc                   	int3
503e0f:	cc                   	int3
503e10:	55                   	push   %ebp
503e11:	8b ec                	mov    %esp,%ebp
503e13:	83 ec 14             	sub    $0x14,%esp
503e16:	8b 45 10             	mov    0x10(%ebp),%eax
503e19:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
503e20:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
503e27:	53                   	push   %ebx
503e28:	8b 5d 08             	mov    0x8(%ebp),%ebx
503e2b:	57                   	push   %edi
503e2c:	8b 7b 0c             	mov    0xc(%ebx),%edi
503e2f:	89 7d f4             	mov    %edi,-0xc(%ebp)
503e32:	83 f8 02             	cmp    $0x2,%eax
503e35:	0f 82 28 02 00 00    	jb     0x504063
503e3b:	3b 43 2c             	cmp    0x2c(%ebx),%eax
503e3e:	0f 87 1f 02 00 00    	ja     0x504063
503e44:	56                   	push   %esi
503e45:	8b 75 0c             	mov    0xc(%ebp),%esi
503e48:	85 f6                	test   %esi,%esi
503e4a:	74 0f                	je     0x503e5b
503e4c:	8b 46 48             	mov    0x48(%esi),%eax
503e4f:	66 ff 40 1e          	incw   0x1e(%eax)
503e53:	8b 40 0c             	mov    0xc(%eax),%eax
503e56:	ff 40 0c             	incl   0xc(%eax)
503e59:	eb 0c                	jmp    0x503e67
503e5b:	50                   	push   %eax
503e5c:	53                   	push   %ebx
503e5d:	e8 fe 36 ff ff       	call   0x4f7560
503e62:	83 c4 08             	add    $0x8,%esp
503e65:	8b f0                	mov    %eax,%esi
503e67:	ff 77 48             	push   0x48(%edi)
503e6a:	89 75 08             	mov    %esi,0x8(%ebp)
503e6d:	e8 ce fa 02 00       	call   0x533940
503e72:	8b f8                	mov    %eax,%edi
503e74:	83 c4 04             	add    $0x4,%esp
503e77:	89 7d f8             	mov    %edi,-0x8(%ebp)
503e7a:	85 ff                	test   %edi,%edi
503e7c:	0f 85 b3 01 00 00    	jne    0x504035
503e82:	8b 4d f4             	mov    -0xc(%ebp),%ecx
503e85:	8b 49 38             	mov    0x38(%ecx),%ecx
503e88:	8b 41 24             	mov    0x24(%ecx),%eax
503e8b:	0f c8                	bswap  %eax
503e8d:	89 45 ec             	mov    %eax,-0x14(%ebp)
503e90:	40                   	inc    %eax
503e91:	0f c8                	bswap  %eax
503e93:	89 41 24             	mov    %eax,0x24(%ecx)
503e96:	f6 43 16 04          	testb  $0x4,0x16(%ebx)
503e9a:	74 4c                	je     0x503ee8
503e9c:	85 f6                	test   %esi,%esi
503e9e:	75 1e                	jne    0x503ebe
503ea0:	57                   	push   %edi
503ea1:	8d 45 08             	lea    0x8(%ebp),%eax
503ea4:	50                   	push   %eax
503ea5:	ff 75 10             	push   0x10(%ebp)
503ea8:	53                   	push   %ebx
503ea9:	e8 52 2d ff ff       	call   0x4f6c00
503eae:	8b f8                	mov    %eax,%edi
503eb0:	83 c4 10             	add    $0x10,%esp
503eb3:	85 ff                	test   %edi,%edi
503eb5:	0f 85 a3 01 00 00    	jne    0x50405e
503ebb:	8b 75 08             	mov    0x8(%ebp),%esi
503ebe:	ff 76 48             	push   0x48(%esi)
503ec1:	e8 7a fa 02 00       	call   0x533940
503ec6:	8b f8                	mov    %eax,%edi
503ec8:	83 c4 04             	add    $0x4,%esp
503ecb:	89 7d f8             	mov    %edi,-0x8(%ebp)
503ece:	85 ff                	test   %edi,%edi
503ed0:	0f 85 5f 01 00 00    	jne    0x504035
503ed6:	8b 46 34             	mov    0x34(%esi),%eax
503ed9:	ff 70 20             	push   0x20(%eax)
503edc:	57                   	push   %edi
503edd:	ff 76 38             	push   0x38(%esi)
503ee0:	e8 1b fb 0d 00       	call   0x5e3a00
503ee5:	83 c4 0c             	add    $0xc,%esp
503ee8:	80 7b 11 00          	cmpb   $0x0,0x11(%ebx)
503eec:	74 1f                	je     0x503f0d
503eee:	8d 45 f8             	lea    -0x8(%ebp),%eax
503ef1:	50                   	push   %eax
503ef2:	6a 00                	push   $0x0
503ef4:	6a 02                	push   $0x2
503ef6:	ff 75 10             	push   0x10(%ebp)
503ef9:	53                   	push   %ebx
503efa:	e8 91 cb 00 00       	call   0x510a90
503eff:	8b 7d f8             	mov    -0x8(%ebp),%edi
503f02:	83 c4 14             	add    $0x14,%esp
503f05:	85 ff                	test   %edi,%edi
503f07:	0f 85 28 01 00 00    	jne    0x504035
503f0d:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
503f11:	0f 84 d1 00 00 00    	je     0x503fe8
503f17:	8b 45 f4             	mov    -0xc(%ebp),%eax
503f1a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
503f1d:	6a 00                	push   $0x0
503f1f:	51                   	push   %ecx
503f20:	8b 40 38             	mov    0x38(%eax),%eax
503f23:	8b 40 20             	mov    0x20(%eax),%eax
503f26:	0f c8                	bswap  %eax
503f28:	50                   	push   %eax
503f29:	53                   	push   %ebx
503f2a:	89 45 f0             	mov    %eax,-0x10(%ebp)
503f2d:	e8 ce 2c ff ff       	call   0x4f6c00
503f32:	8b f8                	mov    %eax,%edi
503f34:	83 c4 10             	add    $0x10,%esp
503f37:	85 ff                	test   %edi,%edi
503f39:	0f 85 f6 00 00 00    	jne    0x504035
503f3f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
503f42:	8b 7b 24             	mov    0x24(%ebx),%edi
503f45:	c1 ef 02             	shr    $0x2,%edi
503f48:	8b 41 38             	mov    0x38(%ecx),%eax
503f4b:	8b 50 04             	mov    0x4(%eax),%edx
503f4e:	8d 47 fe             	lea    -0x2(%edi),%eax
503f51:	0f ca                	bswap  %edx
503f53:	89 55 f8             	mov    %edx,-0x8(%ebp)
503f56:	3b d0                	cmp    %eax,%edx
503f58:	76 14                	jbe    0x503f6e
503f5a:	68 ef 12 01 00       	push   $0x112ef
503f5f:	e8 4c be 01 00       	call   0x51fdb0
503f64:	83 c4 04             	add    $0x4,%esp
503f67:	8b f8                	mov    %eax,%edi
503f69:	e9 c7 00 00 00       	jmp    0x504035
503f6e:	8d 47 f8             	lea    -0x8(%edi),%eax
503f71:	3b d0                	cmp    %eax,%edx
503f73:	73 73                	jae    0x503fe8
503f75:	ff 71 48             	push   0x48(%ecx)
503f78:	e8 c3 f9 02 00       	call   0x533940
503f7d:	8b f8                	mov    %eax,%edi
503f7f:	83 c4 04             	add    $0x4,%esp
503f82:	85 ff                	test   %edi,%edi
503f84:	0f 85 ab 00 00 00    	jne    0x504035
503f8a:	8b 7d fc             	mov    -0x4(%ebp),%edi
503f8d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
503f90:	8b 55 10             	mov    0x10(%ebp),%edx
503f93:	41                   	inc    %ecx
503f94:	0f c9                	bswap  %ecx
503f96:	8b 47 38             	mov    0x38(%edi),%eax
503f99:	89 48 04             	mov    %ecx,0x4(%eax)
503f9c:	8b ca                	mov    %edx,%ecx
503f9e:	8b 47 38             	mov    0x38(%edi),%eax
503fa1:	8b 7d f8             	mov    -0x8(%ebp),%edi
503fa4:	0f c9                	bswap  %ecx
503fa6:	89 4c b8 08          	mov    %ecx,0x8(%eax,%edi,4)
503faa:	85 f6                	test   %esi,%esi
503fac:	74 2c                	je     0x503fda
503fae:	f6 43 16 04          	testb  $0x4,0x16(%ebx)
503fb2:	75 26                	jne    0x503fda
503fb4:	8b 4e 48             	mov    0x48(%esi),%ecx
503fb7:	8b 79 14             	mov    0x14(%ecx),%edi
503fba:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
503fbe:	75 1a                	jne    0x503fda
503fc0:	0f b7 41 1c          	movzwl 0x1c(%ecx),%eax
503fc4:	a8 02                	test   $0x2,%al
503fc6:	74 12                	je     0x503fda
503fc8:	83 7f 60 00          	cmpl   $0x0,0x60(%edi)
503fcc:	75 0c                	jne    0x503fda
503fce:	25 fb ff 00 00       	and    $0xfffb,%eax
503fd3:	83 c8 10             	or     $0x10,%eax
503fd6:	66 89 41 1c          	mov    %ax,0x1c(%ecx)
503fda:	52                   	push   %edx
503fdb:	53                   	push   %ebx
503fdc:	e8 af 3a ff ff       	call   0x4f7a90
503fe1:	83 c4 08             	add    $0x8,%esp
503fe4:	8b f8                	mov    %eax,%edi
503fe6:	eb 4d                	jmp    0x504035
503fe8:	85 f6                	test   %esi,%esi
503fea:	75 1a                	jne    0x504006
503fec:	56                   	push   %esi
503fed:	8d 45 08             	lea    0x8(%ebp),%eax
503ff0:	50                   	push   %eax
503ff1:	ff 75 10             	push   0x10(%ebp)
503ff4:	53                   	push   %ebx
503ff5:	e8 06 2c ff ff       	call   0x4f6c00
503ffa:	8b f8                	mov    %eax,%edi
503ffc:	83 c4 10             	add    $0x10,%esp
503fff:	85 ff                	test   %edi,%edi
504001:	75 5b                	jne    0x50405e
504003:	8b 75 08             	mov    0x8(%ebp),%esi
504006:	ff 76 48             	push   0x48(%esi)
504009:	e8 32 f9 02 00       	call   0x533940
50400e:	8b f8                	mov    %eax,%edi
504010:	83 c4 04             	add    $0x4,%esp
504013:	85 ff                	test   %edi,%edi
504015:	75 1e                	jne    0x504035
504017:	8b 46 38             	mov    0x38(%esi),%eax
50401a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50401d:	0f c9                	bswap  %ecx
50401f:	89 08                	mov    %ecx,(%eax)
504021:	8b 46 38             	mov    0x38(%esi),%eax
504024:	8b 4d 10             	mov    0x10(%ebp),%ecx
504027:	0f c9                	bswap  %ecx
504029:	89 78 04             	mov    %edi,0x4(%eax)
50402c:	8b 45 f4             	mov    -0xc(%ebp),%eax
50402f:	8b 40 38             	mov    0x38(%eax),%eax
504032:	89 48 20             	mov    %ecx,0x20(%eax)
504035:	85 f6                	test   %esi,%esi
504037:	74 0c                	je     0x504045
504039:	56                   	push   %esi
50403a:	c6 06 00             	movb   $0x0,(%esi)
50403d:	e8 7e e0 00 00       	call   0x5120c0
504042:	83 c4 04             	add    $0x4,%esp
504045:	8b 45 fc             	mov    -0x4(%ebp),%eax
504048:	5e                   	pop    %esi
504049:	85 c0                	test   %eax,%eax
50404b:	74 09                	je     0x504056
50404d:	50                   	push   %eax
50404e:	e8 6d e0 00 00       	call   0x5120c0
504053:	83 c4 04             	add    $0x4,%esp
504056:	8b c7                	mov    %edi,%eax
504058:	5f                   	pop    %edi
504059:	5b                   	pop    %ebx
50405a:	8b e5                	mov    %ebp,%esp
50405c:	5d                   	pop    %ebp
50405d:	c3                   	ret
50405e:	8b 75 08             	mov    0x8(%ebp),%esi
504061:	eb d2                	jmp    0x504035
504063:	68 fc c4 6b 00       	push   $0x6bc4fc
504068:	68 b9 12 01 00       	push   $0x112b9
50406d:	68 94 c4 6b 00       	push   $0x6bc494
504072:	68 78 c4 6b 00       	push   $0x6bc478
504077:	6a 0b                	push   $0xb
504079:	e8 62 bf fd ff       	call   0x4dffe0
50407e:	83 c4 14             	add    $0x14,%esp
504081:	b8 0b 00 00 00       	mov    $0xb,%eax
504086:	5f                   	pop    %edi
504087:	5b                   	pop    %ebx
504088:	8b e5                	mov    %ebp,%esp
50408a:	5d                   	pop    %ebp
50408b:	c3                   	ret
50408c:	cc                   	int3
50408d:	cc                   	int3
50408e:	cc                   	int3
50408f:	cc                   	int3
504090:	55                   	push   %ebp
504091:	8b ec                	mov    %esp,%ebp
504093:	83 ec 1c             	sub    $0x1c,%esp
504096:	8b 45 10             	mov    0x10(%ebp),%eax
504099:	8b 55 0c             	mov    0xc(%ebp),%edx
50409c:	0f b7 c0             	movzwl %ax,%eax
50409f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5040a2:	0f b7 ca             	movzwl %dx,%ecx
5040a5:	03 c1                	add    %ecx,%eax
5040a7:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
5040ab:	89 45 f0             	mov    %eax,-0x10(%ebp)
5040ae:	8b 45 08             	mov    0x8(%ebp),%eax
5040b1:	53                   	push   %ebx
5040b2:	56                   	push   %esi
5040b3:	57                   	push   %edi
5040b4:	8b 70 38             	mov    0x38(%eax),%esi
5040b7:	8a 40 09             	mov    0x9(%eax),%al
5040ba:	88 45 fe             	mov    %al,-0x2(%ebp)
5040bd:	0f b6 c0             	movzbl %al,%eax
5040c0:	66 40                	inc    %ax
5040c2:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5040c5:	0f b7 f8             	movzwl %ax,%edi
5040c8:	8b c7                	mov    %edi,%eax
5040ca:	89 7d f8             	mov    %edi,-0x8(%ebp)
5040cd:	8a 5c 30 01          	mov    0x1(%eax,%esi,1),%bl
5040d1:	84 db                	test   %bl,%bl
5040d3:	75 0c                	jne    0x5040e1
5040d5:	38 1c 30             	cmp    %bl,(%eax,%esi,1)
5040d8:	75 07                	jne    0x5040e1
5040da:	33 db                	xor    %ebx,%ebx
5040dc:	e9 e4 01 00 00       	jmp    0x5042c5
5040e1:	0f b6 0c 30          	movzbl (%eax,%esi,1),%ecx
5040e5:	66 c1 e1 08          	shl    $0x8,%cx
5040e9:	0f b6 c3             	movzbl %bl,%eax
5040ec:	66 0b c8             	or     %ax,%cx
5040ef:	0f b7 d9             	movzwl %cx,%ebx
5040f2:	66 3b da             	cmp    %dx,%bx
5040f5:	73 5f                	jae    0x504156
5040f7:	0f b7 c7             	movzwl %di,%eax
5040fa:	0f b7 d3             	movzwl %bx,%edx
5040fd:	83 c0 04             	add    $0x4,%eax
504100:	3b d0                	cmp    %eax,%edx
504102:	72 20                	jb     0x504124
504104:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
504108:	0f b6 44 32 01       	movzbl 0x1(%edx,%esi,1),%eax
50410d:	8b 55 0c             	mov    0xc(%ebp),%edx
504110:	66 c1 e1 08          	shl    $0x8,%cx
504114:	66 0b c8             	or     %ax,%cx
504117:	0f b7 fb             	movzwl %bx,%edi
50411a:	0f b7 d9             	movzwl %cx,%ebx
50411d:	66 3b da             	cmp    %dx,%bx
504120:	72 d5                	jb     0x5040f7
504122:	eb 32                	jmp    0x504156
504124:	66 85 db             	test   %bx,%bx
504127:	74 2a                	je     0x504153
504129:	68 fc c4 6b 00       	push   $0x6bc4fc
50412e:	68 27 01 01 00       	push   $0x10127