56209a:	6a 00                	push   $0x0
56209c:	8d 4d 08             	lea    0x8(%ebp),%ecx
56209f:	8b d6                	mov    %esi,%edx
5620a1:	8b c3                	mov    %ebx,%eax
5620a3:	e8 40 00 00 00       	call   0x5620e8
5620a8:	47                   	inc    %edi
5620a9:	81 c6 1c 01 00 00    	add    $0x11c,%esi
5620af:	0f b7 43 0e          	movzwl 0xe(%ebx),%eax
5620b3:	3b f8                	cmp    %eax,%edi
5620b5:	7c e3                	jl     0x56209a
5620b7:	83 0b 01             	orl    $0x1,(%ebx)
5620ba:	33 c0                	xor    %eax,%eax
5620bc:	5d                   	pop    %ebp
5620bd:	5f                   	pop    %edi
5620be:	5e                   	pop    %esi
5620bf:	5b                   	pop    %ebx
5620c0:	c3                   	ret
5620c1:	90                   	nop
5620c2:	90                   	nop
5620c3:	90                   	nop
5620c4:	53                   	push   %ebx
5620c5:	6a 04                	push   $0x4
5620c7:	8d 4a 04             	lea    0x4(%edx),%ecx
5620ca:	0f b7 12             	movzwl (%edx),%edx
5620cd:	8b da                	mov    %edx,%ebx
5620cf:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
5620d2:	c1 e2 03             	shl    $0x3,%edx
5620d5:	2b d3                	sub    %ebx,%edx
5620d7:	c1 e2 02             	shl    $0x2,%edx
5620da:	8b 58 10             	mov    0x10(%eax),%ebx
5620dd:	03 d3                	add    %ebx,%edx
5620df:	e8 04 00 00 00       	call   0x5620e8
5620e4:	33 c0                	xor    %eax,%eax
5620e6:	5b                   	pop    %ebx
5620e7:	c3                   	ret
5620e8:	55                   	push   %ebp
5620e9:	8b ec                	mov    %esp,%ebp
5620eb:	53                   	push   %ebx
5620ec:	56                   	push   %esi
5620ed:	57                   	push   %edi
5620ee:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
5620f2:	75 05                	jne    0x5620f9
5620f4:	f6 02 04             	testb  $0x4,(%edx)
5620f7:	75 58                	jne    0x562151
5620f9:	8a 41 01             	mov    0x1(%ecx),%al
5620fc:	8d b2 d7 00 00 00    	lea    0xd7(%edx),%esi
562102:	40                   	inc    %eax
562103:	88 42 05             	mov    %al,0x5(%edx)
562106:	8a 41 02             	mov    0x2(%ecx),%al
562109:	04 02                	add    $0x2,%al
56210b:	88 42 06             	mov    %al,0x6(%edx)
56210e:	8a 41 03             	mov    0x3(%ecx),%al
562111:	04 02                	add    $0x2,%al
562113:	88 42 07             	mov    %al,0x7(%edx)
562116:	8a 41 05             	mov    0x5(%ecx),%al
562119:	88 42 08             	mov    %al,0x8(%edx)
56211c:	8a 41 04             	mov    0x4(%ecx),%al
56211f:	88 82 d6 00 00 00    	mov    %al,0xd6(%edx)
562125:	8a 01                	mov    (%ecx),%al
562127:	24 01                	and    $0x1,%al
562129:	33 ff                	xor    %edi,%edi
56212b:	88 42 04             	mov    %al,0x4(%edx)
56212e:	8d 41 0c             	lea    0xc(%ecx),%eax
562131:	eb 0f                	jmp    0x562142
562133:	8a 18                	mov    (%eax),%bl
562135:	47                   	inc    %edi
562136:	88 1e                	mov    %bl,(%esi)
562138:	8a 58 01             	mov    0x1(%eax),%bl
56213b:	88 5e 21             	mov    %bl,0x21(%esi)
56213e:	46                   	inc    %esi
56213f:	83 c0 02             	add    $0x2,%eax
562142:	8b 59 08             	mov    0x8(%ecx),%ebx
562145:	3b fb                	cmp    %ebx,%edi
562147:	7c ea                	jl     0x562133
562149:	8b 45 08             	mov    0x8(%ebp),%eax
56214c:	83 c8 01             	or     $0x1,%eax
56214f:	09 02                	or     %eax,(%edx)
562151:	33 c0                	xor    %eax,%eax
562153:	5f                   	pop    %edi
562154:	5e                   	pop    %esi
562155:	5b                   	pop    %ebx
562156:	5d                   	pop    %ebp
562157:	c2 04 00             	ret    $0x4
56215a:	90                   	nop
56215b:	90                   	nop
56215c:	53                   	push   %ebx
56215d:	8b d8                	mov    %eax,%ebx
56215f:	56                   	push   %esi
562160:	57                   	push   %edi
562161:	55                   	push   %ebp
562162:	8b ea                	mov    %edx,%ebp
562164:	8b 73 10             	mov    0x10(%ebx),%esi
562167:	33 ff                	xor    %edi,%edi
562169:	eb 14                	jmp    0x56217f
56216b:	6a 00                	push   $0x0
56216d:	8b cd                	mov    %ebp,%ecx
56216f:	8b d6                	mov    %esi,%edx
562171:	8b c3                	mov    %ebx,%eax
562173:	e8 40 00 00 00       	call   0x5621b8
562178:	47                   	inc    %edi
562179:	81 c6 1c 01 00 00    	add    $0x11c,%esi
56217f:	0f b7 43 0e          	movzwl 0xe(%ebx),%eax
562183:	3b f8                	cmp    %eax,%edi
562185:	7c e4                	jl     0x56216b
562187:	83 0b 02             	orl    $0x2,(%ebx)
56218a:	33 c0                	xor    %eax,%eax
56218c:	5d                   	pop    %ebp
56218d:	5f                   	pop    %edi
56218e:	5e                   	pop    %esi
56218f:	5b                   	pop    %ebx
562190:	c3                   	ret
562191:	90                   	nop
562192:	90                   	nop
562193:	90                   	nop
562194:	53                   	push   %ebx
562195:	6a 08                	push   $0x8
562197:	8d 4a 04             	lea    0x4(%edx),%ecx
56219a:	0f b7 12             	movzwl (%edx),%edx
56219d:	8b da                	mov    %edx,%ebx
56219f:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
5621a2:	c1 e2 03             	shl    $0x3,%edx
5621a5:	2b d3                	sub    %ebx,%edx
5621a7:	c1 e2 02             	shl    $0x2,%edx
5621aa:	8b 58 10             	mov    0x10(%eax),%ebx
5621ad:	03 d3                	add    %ebx,%edx
5621af:	e8 04 00 00 00       	call   0x5621b8
5621b4:	5b                   	pop    %ebx
5621b5:	c3                   	ret
5621b6:	90                   	nop
5621b7:	90                   	nop
5621b8:	55                   	push   %ebp
5621b9:	8b ec                	mov    %esp,%ebp
5621bb:	53                   	push   %ebx
5621bc:	56                   	push   %esi
5621bd:	8b 45 08             	mov    0x8(%ebp),%eax
5621c0:	a8 08                	test   $0x8,%al
5621c2:	75 05                	jne    0x5621c9
5621c4:	f6 02 08             	testb  $0x8,(%edx)
5621c7:	75 37                	jne    0x562200
5621c9:	83 c8 02             	or     $0x2,%eax
5621cc:	09 02                	or     %eax,(%edx)
5621ce:	33 c0                	xor    %eax,%eax
5621d0:	8d 5a 0c             	lea    0xc(%edx),%ebx
5621d3:	eb 0e                	jmp    0x5621e3
5621d5:	8b 71 08             	mov    0x8(%ecx),%esi
5621d8:	66 8b 34 46          	mov    (%esi,%eax,2),%si
5621dc:	40                   	inc    %eax
5621dd:	66 89 33             	mov    %si,(%ebx)
5621e0:	83 c3 02             	add    $0x2,%ebx
5621e3:	8b 71 04             	mov    0x4(%ecx),%esi
5621e6:	3b c6                	cmp    %esi,%eax
5621e8:	7c eb                	jl     0x5621d5
5621ea:	66 8b 41 04          	mov    0x4(%ecx),%ax
5621ee:	66 89 42 0a          	mov    %ax,0xa(%edx)
5621f2:	8a 41 0c             	mov    0xc(%ecx),%al
5621f5:	88 82 d4 00 00 00    	mov    %al,0xd4(%edx)
5621fb:	8a 09                	mov    (%ecx),%cl
5621fd:	88 4a 09             	mov    %cl,0x9(%edx)
562200:	33 c0                	xor    %eax,%eax
562202:	5e                   	pop    %esi
562203:	5b                   	pop    %ebx
562204:	5d                   	pop    %ebp
562205:	c2 04 00             	ret    $0x4
562208:	53                   	push   %ebx
562209:	0f b7 0a             	movzwl (%edx),%ecx
56220c:	8b d9                	mov    %ecx,%ebx
56220e:	8b 40 10             	mov    0x10(%eax),%eax
562211:	8a 52 03             	mov    0x3(%edx),%dl
562214:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
562217:	c1 e1 03             	shl    $0x3,%ecx
56221a:	2b cb                	sub    %ebx,%ecx
56221c:	c1 e1 02             	shl    $0x2,%ecx
56221f:	03 c1                	add    %ecx,%eax
562221:	88 90 d5 00 00 00    	mov    %dl,0xd5(%eax)
562227:	33 c0                	xor    %eax,%eax
562229:	5b                   	pop    %ebx
56222a:	c3                   	ret
56222b:	90                   	nop
56222c:	53                   	push   %ebx
56222d:	56                   	push   %esi
56222e:	57                   	push   %edi
56222f:	55                   	push   %ebp
562230:	8b fa                	mov    %edx,%edi
562232:	8b e8                	mov    %eax,%ebp
562234:	33 db                	xor    %ebx,%ebx
562236:	eb 33                	jmp    0x56226b
562238:	8b 47 04             	mov    0x4(%edi),%eax
56223b:	8b d3                	mov    %ebx,%edx
56223d:	03 d2                	add    %edx,%edx
56223f:	8d 14 92             	lea    (%edx,%edx,4),%edx
562242:	03 c2                	add    %edx,%eax
562244:	e8 ab aa 00 00       	call   0x56ccf4
562249:	8b f0                	mov    %eax,%esi
56224b:	85 c0                	test   %eax,%eax
56224d:	75 05                	jne    0x562254
56224f:	83 c8 ff             	or     $0xffffffff,%eax
562252:	eb 1f                	jmp    0x562273
562254:	8b 45 4c             	mov    0x4c(%ebp),%eax
562257:	8b ce                	mov    %esi,%ecx
562259:	83 ca ff             	or     $0xffffffff,%edx
56225c:	e8 df a9 00 00       	call   0x56cc40
562261:	85 c0                	test   %eax,%eax
562263:	74 05                	je     0x56226a
562265:	83 c8 ff             	or     $0xffffffff,%eax
562268:	eb 09                	jmp    0x562273
56226a:	43                   	inc    %ebx
56226b:	8b 17                	mov    (%edi),%edx
56226d:	3b da                	cmp    %edx,%ebx
56226f:	7c c7                	jl     0x562238
562271:	33 c0                	xor    %eax,%eax
562273:	5d                   	pop    %ebp
562274:	5f                   	pop    %edi
562275:	5e                   	pop    %esi
562276:	5b                   	pop    %ebx
562277:	c3                   	ret
562278:	53                   	push   %ebx
562279:	56                   	push   %esi
56227a:	57                   	push   %edi
56227b:	55                   	push   %ebp
56227c:	51                   	push   %ecx
56227d:	89 0c 24             	mov    %ecx,(%esp)
562280:	8b ea                	mov    %edx,%ebp
562282:	8b f8                	mov    %eax,%edi
562284:	8b 04 24             	mov    (%esp),%eax
562287:	85 c0                	test   %eax,%eax
562289:	74 21                	je     0x5622ac
56228b:	eb 13                	jmp    0x5622a0
56228d:	8b 47 04             	mov    0x4(%edi),%eax
562290:	33 d2                	xor    %edx,%edx
562292:	e8 15 aa 00 00       	call   0x56ccac
562297:	8b f0                	mov    %eax,%esi
562299:	8b c6                	mov    %esi,%eax
56229b:	e8 0c ab 00 00       	call   0x56cdac
5622a0:	8b 47 04             	mov    0x4(%edi),%eax
5622a3:	e8 14 ab 00 00       	call   0x56cdbc
5622a8:	85 c0                	test   %eax,%eax
5622aa:	7f e1                	jg     0x56228d
5622ac:	33 db                	xor    %ebx,%ebx
5622ae:	eb 33                	jmp    0x5622e3
5622b0:	8b 45 04             	mov    0x4(%ebp),%eax
5622b3:	8b d3                	mov    %ebx,%edx
5622b5:	03 d2                	add    %edx,%edx
5622b7:	8d 14 92             	lea    (%edx,%edx,4),%edx
5622ba:	03 c2                	add    %edx,%eax
5622bc:	e8 33 aa 00 00       	call   0x56ccf4
5622c1:	8b f0                	mov    %eax,%esi
5622c3:	85 c0                	test   %eax,%eax
5622c5:	75 05                	jne    0x5622cc
5622c7:	83 c8 ff             	or     $0xffffffff,%eax
5622ca:	eb 20                	jmp    0x5622ec
5622cc:	8b 47 04             	mov    0x4(%edi),%eax
5622cf:	8b ce                	mov    %esi,%ecx
5622d1:	83 ca ff             	or     $0xffffffff,%edx
5622d4:	e8 67 a9 00 00       	call   0x56cc40
5622d9:	85 c0                	test   %eax,%eax
5622db:	74 05                	je     0x5622e2
5622dd:	83 c8 ff             	or     $0xffffffff,%eax
5622e0:	eb 0a                	jmp    0x5622ec
5622e2:	43                   	inc    %ebx
5622e3:	8b 55 00             	mov    0x0(%ebp),%edx
5622e6:	3b da                	cmp    %edx,%ebx
5622e8:	7c c6                	jl     0x5622b0
5622ea:	33 c0                	xor    %eax,%eax
5622ec:	5a                   	pop    %edx
5622ed:	5d                   	pop    %ebp
5622ee:	5f                   	pop    %edi
5622ef:	5e                   	pop    %esi
5622f0:	5b                   	pop    %ebx
5622f1:	c3                   	ret
5622f2:	90                   	nop
5622f3:	90                   	nop
5622f4:	53                   	push   %ebx
5622f5:	56                   	push   %esi
5622f6:	57                   	push   %edi
5622f7:	be 00 20 00 00       	mov    $0x2000,%esi
5622fc:	bb 02 00 00 00       	mov    $0x2,%ebx
562301:	85 db                	test   %ebx,%ebx
562303:	7c 0e                	jl     0x562313
562305:	8b cb                	mov    %ebx,%ecx
562307:	8b f8                	mov    %eax,%edi
562309:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
56230f:	d3 e7                	shl    %cl,%edi
562311:	eb 0e                	jmp    0x562321
562313:	8b cb                	mov    %ebx,%ecx
562315:	8b f8                	mov    %eax,%edi
562317:	f7 d9                	neg    %ecx
562319:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
56231f:	d3 ff                	sar    %cl,%edi
562321:	c1 f8 0b             	sar    $0xb,%eax
562324:	8b da                	mov    %edx,%ebx
562326:	2b d8                	sub    %eax,%ebx
562328:	0b f7                	or     %edi,%esi
56232a:	85 db                	test   %ebx,%ebx
56232c:	7c 08                	jl     0x562336
56232e:	8b cb                	mov    %ebx,%ecx
562330:	8b c6                	mov    %esi,%eax
562332:	d3 e0                	shl    %cl,%eax
562334:	eb 08                	jmp    0x56233e
562336:	8b cb                	mov    %ebx,%ecx
562338:	8b c6                	mov    %esi,%eax
56233a:	f7 d9                	neg    %ecx
56233c:	d3 f8                	sar    %cl,%eax
56233e:	8b f0                	mov    %eax,%esi
562340:	8b c6                	mov    %esi,%eax
562342:	5f                   	pop    %edi
562343:	5e                   	pop    %esi
562344:	5b                   	pop    %ebx
562345:	c3                   	ret
562346:	90                   	nop
562347:	90                   	nop
562348:	53                   	push   %ebx
562349:	56                   	push   %esi
56234a:	57                   	push   %edi
56234b:	55                   	push   %ebp
56234c:	51                   	push   %ecx
56234d:	89 14 24             	mov    %edx,(%esp)
562350:	8b f8                	mov    %eax,%edi
562352:	8b 04 24             	mov    (%esp),%eax
562355:	85 c0                	test   %eax,%eax
562357:	7d 17                	jge    0x562370
562359:	68 0d 07 00 00       	push   $0x70d
56235e:	68 b1 ef 69 00       	push   $0x69efb1
562363:	68 a0 ef 69 00       	push   $0x69efa0
562368:	e8 d3 87 ff ff       	call   0x55ab40
56236d:	83 c4 0c             	add    $0xc,%esp
562370:	8b 14 24             	mov    (%esp),%edx
562373:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
562379:	74 49                	je     0x5623c4
56237b:	33 ed                	xor    %ebp,%ebp
56237d:	eb 3e                	jmp    0x5623bd
56237f:	33 f6                	xor    %esi,%esi
562381:	eb 32                	jmp    0x5623b5
562383:	8b 47 1c             	mov    0x1c(%edi),%eax
562386:	8b 14 a8             	mov    (%eax,%ebp,4),%edx
562389:	8b 1c b2             	mov    (%edx,%esi,4),%ebx
56238c:	85 db                	test   %ebx,%ebx
56238e:	74 19                	je     0x5623a9
562390:	8b 04 24             	mov    (%esp),%eax
562393:	99                   	cltd
562394:	52                   	push   %edx
562395:	50                   	push   %eax
562396:	8b c3                	mov    %ebx,%eax
562398:	99                   	cltd
562399:	e8 e6 8c ff ff       	call   0x55b084
56239e:	0f ac d0 0d          	shrd   $0xd,%edx,%eax
5623a2:	c1 fa 0d             	sar    $0xd,%edx
5623a5:	8b d8                	mov    %eax,%ebx
5623a7:	eb 02                	jmp    0x5623ab
5623a9:	33 db                	xor    %ebx,%ebx
5623ab:	8b 47 1c             	mov    0x1c(%edi),%eax