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
517135:	83 c4 08             	add    $0x8,%esp
517138:	84 db                	test   %bl,%bl
51713a:	0f 85 8f 00 00 00    	jne    0x5171cf
517140:	8b 06                	mov    (%esi),%eax
517142:	8b 1f                	mov    (%edi),%ebx
517144:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
517148:	0f 85 51 01 00 00    	jne    0x51729f
51714e:	8b 7e 74             	mov    0x74(%esi),%edi
517151:	85 db                	test   %ebx,%ebx
517153:	75 2b                	jne    0x517180
517155:	b8 00 24 00 00       	mov    $0x2400,%eax
51715a:	66 85 47 08          	test   %ax,0x8(%edi)
51715e:	74 10                	je     0x517170
517160:	57                   	push   %edi
517161:	e8 ea 3c 04 00       	call   0x55ae50
517166:	83 c4 04             	add    $0x4,%esp
517169:	5f                   	pop    %edi
51716a:	5e                   	pop    %esi
51716b:	5b                   	pop    %ebx
51716c:	8b e5                	mov    %ebp,%esp
51716e:	5d                   	pop    %ebp
51716f:	c3                   	ret
517170:	b8 01 00 00 00       	mov    $0x1,%eax
517175:	66 89 47 08          	mov    %ax,0x8(%edi)
517179:	5f                   	pop    %edi
51717a:	5e                   	pop    %esi
51717b:	5b                   	pop    %ebx
51717c:	8b e5                	mov    %ebp,%esp
51717e:	5d                   	pop    %ebp
51717f:	c3                   	ret
517180:	8b f3                	mov    %ebx,%esi
517182:	8d 4e 01             	lea    0x1(%esi),%ecx
517185:	8a 06                	mov    (%esi),%al
517187:	46                   	inc    %esi
517188:	84 c0                	test   %al,%al
51718a:	75 f9                	jne    0x517185
51718c:	2b f1                	sub    %ecx,%esi
51718e:	b8 00 24 00 00       	mov    $0x2400,%eax
517193:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
517199:	66 85 47 08          	test   %ax,0x8(%edi)
51719d:	75 06                	jne    0x5171a5
51719f:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
5171a3:	74 09                	je     0x5171ae
5171a5:	57                   	push   %edi
5171a6:	e8 65 3c 04 00       	call   0x55ae10
5171ab:	83 c4 04             	add    $0x4,%esp
5171ae:	b8 02 0a 00 00       	mov    $0xa02,%eax
5171b3:	89 5f 10             	mov    %ebx,0x10(%edi)
5171b6:	89 77 0c             	mov    %esi,0xc(%edi)
5171b9:	c7 47 24 00 00 00 00 	movl   $0x0,0x24(%edi)
5171c0:	66 89 47 08          	mov    %ax,0x8(%edi)
5171c4:	c6 47 0a 01          	movb   $0x1,0xa(%edi)
5171c8:	5f                   	pop    %edi
5171c9:	5e                   	pop    %esi
5171ca:	5b                   	pop    %ebx
5171cb:	8b e5                	mov    %ebp,%esp
5171cd:	5d                   	pop    %ebp
5171ce:	c3                   	ret
5171cf:	0f b6 47 06          	movzbl 0x6(%edi),%eax
5171d3:	0f b6 d3             	movzbl %bl,%edx
5171d6:	89 55 fc             	mov    %edx,-0x4(%ebp)
5171d9:	84 db                	test   %bl,%bl
5171db:	0f 84 be 00 00 00    	je     0x51729f
5171e1:	33 c9                	xor    %ecx,%ecx
5171e3:	8d 04 85 80 1d 6b 00 	lea    0x6b1d80(,%eax,4),%eax
5171ea:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5171ed:	bf 00 24 00 00       	mov    $0x2400,%edi
5171f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
5171f5:	8b 18                	mov    (%eax),%ebx
5171f7:	8b 06                	mov    (%esi),%eax
5171f9:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5171fd:	0f 85 81 00 00 00    	jne    0x517284
517203:	8b 76 74             	mov    0x74(%esi),%esi
517206:	03 f1                	add    %ecx,%esi
517208:	85 db                	test   %ebx,%ebx
51720a:	75 1e                	jne    0x51722a
51720c:	66 85 7e 08          	test   %di,0x8(%esi)
517210:	74 11                	je     0x517223
517212:	56                   	push   %esi
517213:	e8 38 3c 04 00       	call   0x55ae50
517218:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51721b:	83 c4 04             	add    $0x4,%esp
51721e:	8b 55 fc             	mov    -0x4(%ebp),%edx
517221:	eb 5e                	jmp    0x517281
517223:	b8 01 00 00 00       	mov    $0x1,%eax
517228:	eb 53                	jmp    0x51727d
51722a:	8b fb                	mov    %ebx,%edi
51722c:	8d 47 01             	lea    0x1(%edi),%eax
51722f:	89 45 f4             	mov    %eax,-0xc(%ebp)
517232:	8a 07                	mov    (%edi),%al
517234:	47                   	inc    %edi
517235:	84 c0                	test   %al,%al
517237:	75 f9                	jne    0x517232
517239:	2b 7d f4             	sub    -0xc(%ebp),%edi
51723c:	b8 00 24 00 00       	mov    $0x2400,%eax
517241:	81 e7 ff ff ff 7f    	and    $0x7fffffff,%edi
517247:	66 85 46 08          	test   %ax,0x8(%esi)
51724b:	75 06                	jne    0x517253
51724d:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
517251:	74 0f                	je     0x517262
517253:	56                   	push   %esi
517254:	e8 b7 3b 04 00       	call   0x55ae10
517259:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51725c:	83 c4 04             	add    $0x4,%esp
51725f:	8b 55 fc             	mov    -0x4(%ebp),%edx
517262:	89 7e 0c             	mov    %edi,0xc(%esi)
517265:	b8 02 0a 00 00       	mov    $0xa02,%eax
51726a:	89 5e 10             	mov    %ebx,0x10(%esi)
51726d:	bf 00 24 00 00       	mov    $0x2400,%edi
517272:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
517279:	c6 46 0a 01          	movb   $0x1,0xa(%esi)
51727d:	66 89 46 08          	mov    %ax,0x8(%esi)
517281:	8b 75 08             	mov    0x8(%ebp),%esi
517284:	8b 45 f8             	mov    -0x8(%ebp),%eax
517287:	83 c1 28             	add    $0x28,%ecx
51728a:	83 c0 04             	add    $0x4,%eax
51728d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
517290:	83 ea 01             	sub    $0x1,%edx
517293:	89 45 f8             	mov    %eax,-0x8(%ebp)
517296:	89 55 fc             	mov    %edx,-0x4(%ebp)
517299:	0f 85 56 ff ff ff    	jne    0x5171f5
51729f:	5f                   	pop    %edi
5172a0:	5e                   	pop    %esi
5172a1:	5b                   	pop    %ebx
5172a2:	8b e5                	mov    %ebp,%esp
5172a4:	5d                   	pop    %ebp
5172a5:	c3                   	ret
5172a6:	cc                   	int3
5172a7:	cc                   	int3
5172a8:	cc                   	int3
5172a9:	cc                   	int3
5172aa:	cc                   	int3
5172ab:	cc                   	int3
5172ac:	cc                   	int3
5172ad:	cc                   	int3
5172ae:	cc                   	int3
5172af:	cc                   	int3
5172b0:	55                   	push   %ebp
5172b1:	8b ec                	mov    %esp,%ebp
5172b3:	56                   	push   %esi
5172b4:	ff 75 18             	push   0x18(%ebp)
5172b7:	8b 75 08             	mov    0x8(%ebp),%esi
5172ba:	ff 75 14             	push   0x14(%ebp)
5172bd:	ff 75 10             	push   0x10(%ebp)
5172c0:	ff 75 0c             	push   0xc(%ebp)
5172c3:	ff 36                	push   (%esi)
5172c5:	e8 16 48 03 00       	call   0x54bae0
5172ca:	83 c4 14             	add    $0x14,%esp
5172cd:	83 f8 12             	cmp    $0x12,%eax
5172d0:	75 41                	jne    0x517313
5172d2:	89 46 14             	mov    %eax,0x14(%esi)
5172d5:	b8 00 24 00 00       	mov    $0x2400,%eax
5172da:	8b 36                	mov    (%esi),%esi
5172dc:	66 85 46 08          	test   %ax,0x8(%esi)
5172e0:	75 06                	jne    0x5172e8
5172e2:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
5172e6:	74 09                	je     0x5172f1
5172e8:	56                   	push   %esi
5172e9:	e8 22 3b 04 00       	call   0x55ae10
5172ee:	83 c4 04             	add    $0x4,%esp
5172f1:	b8 02 0a 00 00       	mov    $0xa02,%eax
5172f6:	c7 46 10 00 88 6b 00 	movl   $0x6b8800,0x10(%esi)
5172fd:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
517304:	c7 46 0c 16 00 00 00 	movl   $0x16,0xc(%esi)
51730b:	66 89 46 08          	mov    %ax,0x8(%esi)
51730f:	c6 46 0a 01          	movb   $0x1,0xa(%esi)
517313:	5e                   	pop    %esi
517314:	5d                   	pop    %ebp
517315:	c3                   	ret
517316:	cc                   	int3
517317:	cc                   	int3
517318:	cc                   	int3
517319:	cc                   	int3
51731a:	cc                   	int3
51731b:	cc                   	int3