516ddd:	8b d8                	mov    %eax,%ebx
516ddf:	8b ca                	mov    %edx,%ecx
516de1:	0f b6 47 01          	movzbl 0x1(%edi),%eax
516de5:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
516de9:	99                   	cltd
516dea:	0b ca                	or     %edx,%ecx
516dec:	c1 e3 08             	shl    $0x8,%ebx
516def:	0b d8                	or     %eax,%ebx
516df1:	0f b6 47 02          	movzbl 0x2(%edi),%eax
516df5:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
516df9:	99                   	cltd
516dfa:	0b ca                	or     %edx,%ecx
516dfc:	c1 e3 08             	shl    $0x8,%ebx
516dff:	0b d8                	or     %eax,%ebx
516e01:	0f b6 47 03          	movzbl 0x3(%edi),%eax
516e05:	0f a4 d9 08          	shld   $0x8,%ebx,%ecx
516e09:	99                   	cltd
516e0a:	c1 e3 08             	shl    $0x8,%ebx
516e0d:	0b d8                	or     %eax,%ebx
516e0f:	0f b6 47 04          	movzbl 0x4(%edi),%eax
516e13:	99                   	cltd
516e14:	8b c8                	mov    %eax,%ecx
516e16:	8b f2                	mov    %edx,%esi
516e18:	0f b6 47 05          	movzbl 0x5(%edi),%eax
516e1c:	0f a4 ce 08          	shld   $0x8,%ecx,%esi
516e20:	99                   	cltd
516e21:	c1 e1 08             	shl    $0x8,%ecx
516e24:	0b f2                	or     %edx,%esi
516e26:	0b c8                	or     %eax,%ecx
516e28:	0f b6 47 06          	movzbl 0x6(%edi),%eax
516e2c:	0f a4 ce 08          	shld   $0x8,%ecx,%esi
516e30:	99                   	cltd
516e31:	c1 e1 08             	shl    $0x8,%ecx
516e34:	0b f2                	or     %edx,%esi
516e36:	0b c8                	or     %eax,%ecx
516e38:	0f b6 47 07          	movzbl 0x7(%edi),%eax
516e3c:	0f a4 ce 08          	shld   $0x8,%ecx,%esi
516e40:	99                   	cltd
516e41:	c1 e1 08             	shl    $0x8,%ecx
516e44:	0b f2                	or     %edx,%esi
516e46:	0b c8                	or     %eax,%ecx
516e48:	33 d2                	xor    %edx,%edx
516e4a:	03 d1                	add    %ecx,%edx
516e4c:	13 de                	adc    %esi,%ebx
516e4e:	83 7d 0c 06          	cmpl   $0x6,0xc(%ebp)
516e52:	75 19                	jne    0x516e6d
516e54:	8b 45 10             	mov    0x10(%ebp),%eax
516e57:	b9 04 00 00 00       	mov    $0x4,%ecx
516e5c:	5f                   	pop    %edi
516e5d:	5e                   	pop    %esi
516e5e:	89 58 04             	mov    %ebx,0x4(%eax)
516e61:	89 10                	mov    %edx,(%eax)
516e63:	66 89 48 08          	mov    %cx,0x8(%eax)
516e67:	8d 41 04             	lea    0x4(%ecx),%eax
516e6a:	5b                   	pop    %ebx
516e6b:	5d                   	pop    %ebp
516e6c:	c3                   	ret
516e6d:	8b 4d 10             	mov    0x10(%ebp),%ecx
516e70:	8b c3                	mov    %ebx,%eax
516e72:	25 00 00 f0 7f       	and    $0x7ff00000,%eax
516e77:	33 f6                	xor    %esi,%esi
516e79:	89 11                	mov    %edx,(%ecx)
516e7b:	89 59 04             	mov    %ebx,0x4(%ecx)
516e7e:	75 14                	jne    0x516e94
516e80:	3d 00 00 f0 7f       	cmp    $0x7ff00000,%eax
516e85:	75 0d                	jne    0x516e94
516e87:	81 e3 ff ff 0f 00    	and    $0xfffff,%ebx
516e8d:	8d 46 01             	lea    0x1(%esi),%eax
516e90:	0b d3                	or     %ebx,%edx
516e92:	75 05                	jne    0x516e99
516e94:	b8 08 00 00 00       	mov    $0x8,%eax
516e99:	5f                   	pop    %edi
516e9a:	5e                   	pop    %esi
516e9b:	66 89 41 08          	mov    %ax,0x8(%ecx)
516e9f:	b8 08 00 00 00       	mov    $0x8,%eax
516ea4:	5b                   	pop    %ebx
516ea5:	5d                   	pop    %ebp
516ea6:	c3                   	ret
516ea7:	cc                   	int3
516ea8:	cc                   	int3
516ea9:	cc                   	int3
516eaa:	cc                   	int3
516eab:	cc                   	int3
516eac:	cc                   	int3
516ead:	cc                   	int3
516eae:	cc                   	int3
516eaf:	cc                   	int3
516eb0:	55                   	push   %ebp
516eb1:	8b ec                	mov    %esp,%ebp
516eb3:	8b 45 08             	mov    0x8(%ebp),%eax
516eb6:	83 ec 08             	sub    $0x8,%esp
516eb9:	80 78 4f 00          	cmpb   $0x0,0x4f(%eax)
516ebd:	74 78                	je     0x516f37
516ebf:	53                   	push   %ebx
516ec0:	8b 58 14             	mov    0x14(%eax),%ebx
516ec3:	57                   	push   %edi
516ec4:	8b 78 10             	mov    0x10(%eax),%edi
516ec7:	85 db                	test   %ebx,%ebx
516ec9:	7e 6a                	jle    0x516f35
516ecb:	83 c7 04             	add    $0x4,%edi
516ece:	56                   	push   %esi
516ecf:	90                   	nop
516ed0:	8b 37                	mov    (%edi),%esi
516ed2:	4b                   	dec    %ebx
516ed3:	85 f6                	test   %esi,%esi
516ed5:	74 56                	je     0x516f2d
516ed7:	8b 40 20             	mov    0x20(%eax),%eax
516eda:	0f b6 4f 04          	movzbl 0x4(%edi),%ecx
516ede:	83 e0 38             	and    $0x38,%eax
516ee1:	0b c8                	or     %eax,%ecx
516ee3:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
516ee7:	8b 46 04             	mov    0x4(%esi),%eax
516eea:	89 4d fc             	mov    %ecx,-0x4(%ebp)
516eed:	89 45 f8             	mov    %eax,-0x8(%ebp)
516ef0:	74 18                	je     0x516f0a
516ef2:	ff 46 0c             	incl   0xc(%esi)
516ef5:	80 7e 0a 00          	cmpb   $0x0,0xa(%esi)
516ef9:	75 0f                	jne    0x516f0a
516efb:	56                   	push   %esi
516efc:	e8 cf 00 fe ff       	call   0x4f6fd0
516f01:	8b 4d fc             	mov    -0x4(%ebp),%ecx
516f04:	83 c4 04             	add    $0x4,%esp
516f07:	8b 45 f8             	mov    -0x8(%ebp),%eax
516f0a:	51                   	push   %ecx
516f0b:	ff 30                	push   (%eax)
516f0d:	e8 ee c3 01 00       	call   0x533300
516f12:	83 c4 08             	add    $0x8,%esp
516f15:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
516f19:	74 0f                	je     0x516f2a
516f1b:	83 46 0c ff          	addl   $0xffffffff,0xc(%esi)
516f1f:	75 09                	jne    0x516f2a
516f21:	56                   	push   %esi
516f22:	e8 a9 1a 04 00       	call   0x5589d0
516f27:	83 c4 04             	add    $0x4,%esp
516f2a:	8b 45 08             	mov    0x8(%ebp),%eax
516f2d:	83 c7 10             	add    $0x10,%edi
516f30:	85 db                	test   %ebx,%ebx
516f32:	7f 9c                	jg     0x516ed0
516f34:	5e                   	pop    %esi
516f35:	5f                   	pop    %edi
516f36:	5b                   	pop    %ebx
516f37:	8b e5                	mov    %ebp,%esp
516f39:	5d                   	pop    %ebp
516f3a:	c3                   	ret
516f3b:	cc                   	int3
516f3c:	cc                   	int3
516f3d:	cc                   	int3
516f3e:	cc                   	int3
516f3f:	cc                   	int3
516f40:	55                   	push   %ebp
516f41:	8b ec                	mov    %esp,%ebp
516f43:	83 ec 30             	sub    $0x30,%esp
516f46:	a1 d4 89 72 00       	mov    0x7289d4,%eax
516f4b:	33 c5                	xor    %ebp,%eax
516f4d:	89 45 fc             	mov    %eax,-0x4(%ebp)
516f50:	53                   	push   %ebx
516f51:	56                   	push   %esi
516f52:	8b 75 08             	mov    0x8(%ebp),%esi
516f55:	57                   	push   %edi
516f56:	80 3e 00             	cmpb   $0x0,(%esi)
516f59:	8b 5e 34             	mov    0x34(%esi),%ebx
516f5c:	8b 46 04             	mov    0x4(%esi),%eax
516f5f:	89 5d dc             	mov    %ebx,-0x24(%ebp)
516f62:	89 45 d4             	mov    %eax,-0x2c(%ebp)
516f65:	74 07                	je     0x516f6e
516f67:	33 ff                	xor    %edi,%edi
516f69:	89 7d e0             	mov    %edi,-0x20(%ebp)
516f6c:	eb 16                	jmp    0x516f84
516f6e:	56                   	push   %esi
516f6f:	e8 9c fe fd ff       	call   0x4f6e10
516f74:	8b f8                	mov    %eax,%edi
516f76:	83 c4 04             	add    $0x4,%esp
516f79:	89 7d e0             	mov    %edi,-0x20(%ebp)
516f7c:	85 ff                	test   %edi,%edi
516f7e:	0f 85 05 01 00 00    	jne    0x517089
516f84:	0f b7 46 18          	movzwl 0x18(%esi),%eax
516f88:	33 c9                	xor    %ecx,%ecx
516f8a:	89 45 d0             	mov    %eax,-0x30(%ebp)
516f8d:	89 4d d8             	mov    %ecx,-0x28(%ebp)
516f90:	85 c0                	test   %eax,%eax
516f92:	0f 84 c6 00 00 00    	je     0x51705e
516f98:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
516f9f:	00
516fa0:	8b 46 40             	mov    0x40(%esi),%eax
516fa3:	66 8b 04 48          	mov    (%eax,%ecx,2),%ax
516fa7:	8a e8                	mov    %al,%ch
516fa9:	8a cc                	mov    %ah,%cl
516fab:	0f b7 46 1a          	movzwl 0x1a(%esi),%eax
516faf:	0f b7 d9             	movzwl %cx,%ebx
516fb2:	23 d8                	and    %eax,%ebx
516fb4:	03 5e 38             	add    0x38(%esi),%ebx
516fb7:	85 ff                	test   %edi,%edi
516fb9:	75 6b                	jne    0x517026
516fbb:	8d 45 e4             	lea    -0x1c(%ebp),%eax
516fbe:	50                   	push   %eax
516fbf:	8b 46 50             	mov    0x50(%esi),%eax
516fc2:	53                   	push   %ebx
516fc3:	56                   	push   %esi
516fc4:	ff d0                	call   *%eax
516fc6:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
516fca:	83 c4 0c             	add    $0xc,%esp
516fcd:	3b 45 f0             	cmp    -0x10(%ebp),%eax
516fd0:	73 54                	jae    0x517026
516fd2:	8b 4e 3c             	mov    0x3c(%esi),%ecx
516fd5:	3b cb                	cmp    %ebx,%ecx
516fd7:	72 2b                	jb     0x517004
516fd9:	03 c3                	add    %ebx,%eax
516fdb:	3b c8                	cmp    %eax,%ecx
516fdd:	73 25                	jae    0x517004
516fdf:	68 fc c4 6b 00       	push   $0x6bc4fc
516fe4:	68 c8 ff 00 00       	push   $0xffc8
516fe9:	68 94 c4 6b 00       	push   $0x6bc494
516fee:	68 78 c4 6b 00       	push   $0x6bc478
516ff3:	6a 0b                	push   $0xb
516ff5:	e8 e6 8f fc ff       	call   0x4dffe0
516ffa:	bf 0b 00 00 00       	mov    $0xb,%edi
516fff:	89 7d e0             	mov    %edi,-0x20(%ebp)
517002:	eb 1f                	jmp    0x517023
517004:	8d 45 e0             	lea    -0x20(%ebp),%eax
517007:	50                   	push   %eax
517008:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
51700c:	ff 76 04             	push   0x4(%esi)
51700f:	6a 03                	push   $0x3
517011:	8b 44 18 fc          	mov    -0x4(%eax,%ebx,1),%eax
517015:	0f c8                	bswap  %eax
517017:	50                   	push   %eax
517018:	ff 76 34             	push   0x34(%esi)
51701b:	e8 70 9a ff ff       	call   0x510a90
517020:	8b 7d e0             	mov    -0x20(%ebp),%edi
517023:	83 c4 14             	add    $0x14,%esp
517026:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
51702a:	75 1f                	jne    0x51704b
51702c:	8d 45 e0             	lea    -0x20(%ebp),%eax
51702f:	50                   	push   %eax
517030:	ff 75 d4             	push   -0x2c(%ebp)
517033:	8b 03                	mov    (%ebx),%eax
517035:	8b 5d dc             	mov    -0x24(%ebp),%ebx
517038:	6a 05                	push   $0x5
51703a:	0f c8                	bswap  %eax
51703c:	50                   	push   %eax
51703d:	53                   	push   %ebx
51703e:	e8 4d 9a ff ff       	call   0x510a90
517043:	8b 7d e0             	mov    -0x20(%ebp),%edi
517046:	83 c4 14             	add    $0x14,%esp
517049:	eb 03                	jmp    0x51704e
51704b:	8b 5d dc             	mov    -0x24(%ebp),%ebx
51704e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
517051:	41                   	inc    %ecx
517052:	89 4d d8             	mov    %ecx,-0x28(%ebp)
517055:	3b 4d d0             	cmp    -0x30(%ebp),%ecx
517058:	0f 8c 42 ff ff ff    	jl     0x516fa0
51705e:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
517062:	75 23                	jne    0x517087
517064:	0f b6 4e 09          	movzbl 0x9(%esi),%ecx
517068:	8d 45 e0             	lea    -0x20(%ebp),%eax
51706b:	50                   	push   %eax
51706c:	8b 46 38             	mov    0x38(%esi),%eax
51706f:	ff 75 d4             	push   -0x2c(%ebp)
517072:	6a 05                	push   $0x5
517074:	8b 44 01 08          	mov    0x8(%ecx,%eax,1),%eax
517078:	0f c8                	bswap  %eax
51707a:	50                   	push   %eax
51707b:	53                   	push   %ebx
51707c:	e8 0f 9a ff ff       	call   0x510a90
517081:	8b 7d e0             	mov    -0x20(%ebp),%edi
517084:	83 c4 14             	add    $0x14,%esp
517087:	8b c7                	mov    %edi,%eax
517089:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51708c:	5f                   	pop    %edi
51708d:	5e                   	pop    %esi
51708e:	33 cd                	xor    %ebp,%ecx
517090:	5b                   	pop    %ebx
517091:	e8 44 a4 0c 00       	call   0x5e14da
517096:	8b e5                	mov    %ebp,%esp
517098:	5d                   	pop    %ebp
517099:	c3                   	ret
51709a:	cc                   	int3
51709b:	cc                   	int3
51709c:	cc                   	int3
51709d:	cc                   	int3
51709e:	cc                   	int3
51709f:	cc                   	int3
5170a0:	55                   	push   %ebp
5170a1:	8b ec                	mov    %esp,%ebp
5170a3:	ff 75 08             	push   0x8(%ebp)
5170a6:	e8 35 69 02 00       	call   0x53d9e0
5170ab:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5170ae:	83 c4 04             	add    $0x4,%esp
5170b1:	89 01                	mov    %eax,(%ecx)
5170b3:	89 51 04             	mov    %edx,0x4(%ecx)
5170b6:	85 d2                	test   %edx,%edx
5170b8:	7c 0e                	jl     0x5170c8
5170ba:	7f 04                	jg     0x5170c0
5170bc:	85 c0                	test   %eax,%eax
5170be:	76 08                	jbe    0x5170c8
5170c0:	c6 41 28 01          	movb   $0x1,0x28(%ecx)
5170c4:	33 c0                	xor    %eax,%eax
5170c6:	5d                   	pop    %ebp
5170c7:	c3                   	ret
5170c8:	b8 01 00 00 00       	mov    $0x1,%eax
5170cd:	5d                   	pop    %ebp
5170ce:	c3                   	ret
5170cf:	cc                   	int3
5170d0:	55                   	push   %ebp
5170d1:	8b ec                	mov    %esp,%ebp
5170d3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5170d6:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
5170da:	74 0c                	je     0x5170e8
5170dc:	c7 81 cc 00 00 00 60 	movl   $0x505f60,0xcc(%ecx)
5170e3:	5f 50 00
5170e6:	5d                   	pop    %ebp
5170e7:	c3                   	ret
5170e8:	80 79 16 00          	cmpb   $0x0,0x16(%ecx)
5170ec:	b8 60 61 50 00       	mov    $0x506160,%eax
5170f1:	ba 80 5f 50 00       	mov    $0x505f80,%edx
5170f6:	0f 45 c2             	cmovne %edx,%eax
5170f9:	89 81 cc 00 00 00    	mov    %eax,0xcc(%ecx)
5170ff:	5d                   	pop    %ebp
517100:	c3                   	ret
517101:	cc                   	int3
517102:	cc                   	int3
517103:	cc                   	int3
517104:	cc                   	int3
517105:	cc                   	int3
517106:	cc                   	int3
517107:	cc                   	int3
517108:	cc                   	int3
517109:	cc                   	int3
51710a:	cc                   	int3
51710b:	cc                   	int3
51710c:	cc                   	int3
51710d:	cc                   	int3
51710e:	cc                   	int3
51710f:	cc                   	int3
517110:	55                   	push   %ebp
517111:	8b ec                	mov    %esp,%ebp
517113:	83 ec 0c             	sub    $0xc,%esp
517116:	b8 01 00 00 00       	mov    $0x1,%eax
51711b:	53                   	push   %ebx
51711c:	56                   	push   %esi
51711d:	57                   	push   %edi
51711e:	8b 7d 0c             	mov    0xc(%ebp),%edi
517121:	8a 5f 07             	mov    0x7(%edi),%bl
517124:	84 db                	test   %bl,%bl
517126:	74 03                	je     0x51712b
517128:	0f b6 c3             	movzbl %bl,%eax
51712b:	8b 75 08             	mov    0x8(%ebp),%esi
51712e:	50                   	push   %eax
51712f:	56                   	push   %esi
517130:	e8 8b 5e 03 00       	call   0x54cfc0