40828a:	5d                   	pop    %ebp
40828b:	c2 04 00             	ret    $0x4
40828e:	8b ff                	mov    %edi,%edi
408290:	55                   	push   %ebp
408291:	8b ec                	mov    %esp,%ebp
408293:	56                   	push   %esi
408294:	8b f1                	mov    %ecx,%esi
408296:	57                   	push   %edi
408297:	8b 7e 08             	mov    0x8(%esi),%edi
40829a:	8b c7                	mov    %edi,%eax
40829c:	8b 56 04             	mov    0x4(%esi),%edx
40829f:	2b c2                	sub    %edx,%eax
4082a1:	3b 45 08             	cmp    0x8(%ebp),%eax
4082a4:	73 31                	jae    0x4082d7
4082a6:	8b 06                	mov    (%esi),%eax
4082a8:	2b c2                	sub    %edx,%eax
4082aa:	48                   	dec    %eax
4082ab:	3b 45 08             	cmp    0x8(%ebp),%eax
4082ae:	72 2d                	jb     0x4082dd
4082b0:	2b 3e                	sub    (%esi),%edi
4082b2:	2b 16                	sub    (%esi),%edx
4082b4:	8b cf                	mov    %edi,%ecx
4082b6:	03 55 08             	add    0x8(%ebp),%edx
4082b9:	d1 e9                	shr    $1,%ecx
4082bb:	8b c1                	mov    %ecx,%eax
4082bd:	03 cf                	add    %edi,%ecx
4082bf:	f7 d0                	not    %eax
4082c1:	3b c7                	cmp    %edi,%eax
4082c3:	1b c0                	sbb    %eax,%eax
4082c5:	f7 d0                	not    %eax
4082c7:	23 c1                	and    %ecx,%eax
4082c9:	3b c2                	cmp    %edx,%eax
4082cb:	73 02                	jae    0x4082cf
4082cd:	8b c2                	mov    %edx,%eax
4082cf:	50                   	push   %eax
4082d0:	8b ce                	mov    %esi,%ecx
4082d2:	e8 0c 00 00 00       	call   0x4082e3
4082d7:	5f                   	pop    %edi
4082d8:	5e                   	pop    %esi
4082d9:	5d                   	pop    %ebp
4082da:	c2 04 00             	ret    $0x4
4082dd:	e8 68 ea ff ff       	call   0x406d4a
4082e2:	cc                   	int3
4082e3:	8b ff                	mov    %edi,%edi
4082e5:	55                   	push   %ebp
4082e6:	8b ec                	mov    %esp,%ebp
4082e8:	51                   	push   %ecx
4082e9:	53                   	push   %ebx
4082ea:	8b 5d 08             	mov    0x8(%ebp),%ebx
4082ed:	56                   	push   %esi
4082ee:	33 f6                	xor    %esi,%esi
4082f0:	57                   	push   %edi
4082f1:	8b f9                	mov    %ecx,%edi
4082f3:	85 db                	test   %ebx,%ebx
4082f5:	74 0d                	je     0x408304
4082f7:	53                   	push   %ebx
4082f8:	e8 cb 5b 00 00       	call   0x40dec8
4082fd:	8b f0                	mov    %eax,%esi
4082ff:	59                   	pop    %ecx
408300:	85 f6                	test   %esi,%esi
408302:	74 3e                	je     0x408342
408304:	8b 47 04             	mov    0x4(%edi),%eax
408307:	2b 07                	sub    (%edi),%eax
408309:	50                   	push   %eax
40830a:	ff 37                	push   (%edi)
40830c:	56                   	push   %esi
40830d:	e8 1a 64 00 00       	call   0x40e72c
408312:	8b 47 04             	mov    0x4(%edi),%eax
408315:	83 c4 0c             	add    $0xc,%esp
408318:	2b 07                	sub    (%edi),%eax
40831a:	83 3f 00             	cmpl   $0x0,(%edi)
40831d:	89 45 fc             	mov    %eax,-0x4(%ebp)
408320:	74 09                	je     0x40832b
408322:	ff 37                	push   (%edi)
408324:	ff 15 e4 21 41 00    	call   *0x4121e4
40832a:	59                   	pop    %ecx
40832b:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
40832e:	89 37                	mov    %esi,(%edi)
408330:	89 47 08             	mov    %eax,0x8(%edi)
408333:	8b 45 fc             	mov    -0x4(%ebp),%eax
408336:	03 c6                	add    %esi,%eax
408338:	89 47 04             	mov    %eax,0x4(%edi)
40833b:	5f                   	pop    %edi
40833c:	5e                   	pop    %esi
40833d:	5b                   	pop    %ebx
40833e:	c9                   	leave
40833f:	c2 04 00             	ret    $0x4
408342:	e8 ca 5c 00 00       	call   0x40e011
408347:	cc                   	int3
408348:	8b ff                	mov    %edi,%edi
40834a:	55                   	push   %ebp
40834b:	8b ec                	mov    %esp,%ebp
40834d:	8b 4d 08             	mov    0x8(%ebp),%ecx
408350:	8d 45 10             	lea    0x10(%ebp),%eax
408353:	8b 55 0c             	mov    0xc(%ebp),%edx
408356:	50                   	push   %eax
408357:	8b 49 10             	mov    0x10(%ecx),%ecx
40835a:	e8 e9 f0 ff ff       	call   0x407448
40835f:	59                   	pop    %ecx
408360:	5d                   	pop    %ebp
408361:	c3                   	ret
408362:	cc                   	int3
408363:	cc                   	int3
408364:	cc                   	int3
408365:	cc                   	int3
408366:	cc                   	int3
408367:	cc                   	int3
408368:	cc                   	int3
408369:	cc                   	int3
40836a:	cc                   	int3
40836b:	cc                   	int3
40836c:	cc                   	int3
40836d:	cc                   	int3
40836e:	cc                   	int3
40836f:	cc                   	int3
408370:	6a 2a                	push   $0x2a
408372:	e8 c5 e1 ff ff       	call   0x40653c
408377:	c3                   	ret
408378:	cc                   	int3
408379:	cc                   	int3
40837a:	cc                   	int3
40837b:	cc                   	int3
40837c:	cc                   	int3
40837d:	cc                   	int3
40837e:	cc                   	int3
40837f:	cc                   	int3
408380:	8b ff                	mov    %edi,%edi
408382:	56                   	push   %esi
408383:	8b f1                	mov    %ecx,%esi
408385:	6a 01                	push   $0x1
408387:	6a 01                	push   $0x1
408389:	8b 4e 08             	mov    0x8(%esi),%ecx
40838c:	e8 30 e8 ff ff       	call   0x406bc1
408391:	8b 4e 08             	mov    0x8(%esi),%ecx
408394:	6a 00                	push   $0x0
408396:	e8 f5 e6 ff ff       	call   0x406a90
40839b:	5e                   	pop    %esi
40839c:	c3                   	ret
40839d:	cc                   	int3
40839e:	cc                   	int3
40839f:	cc                   	int3
4083a0:	6a 20                	push   $0x20
4083a2:	b8 d2 ef 40 00       	mov    $0x40efd2,%eax
4083a7:	e8 a2 62 00 00       	call   0x40e64e
4083ac:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4083af:	6a 00                	push   $0x0
4083b1:	ff 15 34 20 41 00    	call   *0x412034
4083b7:	8b d8                	mov    %eax,%ebx
4083b9:	85 db                	test   %ebx,%ebx
4083bb:	0f 84 c1 00 00 00    	je     0x408482
4083c1:	a1 30 20 41 00       	mov    0x412030,%eax
4083c6:	33 c9                	xor    %ecx,%ecx
4083c8:	88 4d d4             	mov    %cl,-0x2c(%ebp)
4083cb:	89 45 d8             	mov    %eax,-0x28(%ebp)
4083ce:	89 5d dc             	mov    %ebx,-0x24(%ebp)
4083d1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4083d4:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4083d7:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4083da:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4083dd:	68 00 02 00 00       	push   $0x200
4083e2:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4083e5:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4083e9:	e8 ff f4 ff ff       	call   0x4078ed
4083ee:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4083f1:	8b 7d e0             	mov    -0x20(%ebp),%edi
4083f4:	2b f7                	sub    %edi,%esi
4083f6:	d1 fe                	sar    $1,%esi
4083f8:	8d 45 f0             	lea    -0x10(%ebp),%eax
4083fb:	89 75 f0             	mov    %esi,-0x10(%ebp)
4083fe:	50                   	push   %eax
4083ff:	57                   	push   %edi
408400:	56                   	push   %esi
408401:	53                   	push   %ebx
408402:	ff 15 2c 20 41 00    	call   *0x41202c
408408:	85 c0                	test   %eax,%eax
40840a:	75 45                	jne    0x408451
40840c:	ff 15 70 20 41 00    	call   *0x412070
408412:	83 f8 7a             	cmp    $0x7a,%eax
408415:	75 2f                	jne    0x408446
408417:	ff 75 f0             	push   -0x10(%ebp)
40841a:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40841d:	e8 cb f4 ff ff       	call   0x4078ed
408422:	8b 75 e4             	mov    -0x1c(%ebp),%esi
408425:	8d 45 f0             	lea    -0x10(%ebp),%eax
408428:	8b 7d e0             	mov    -0x20(%ebp),%edi
40842b:	2b f7                	sub    %edi,%esi
40842d:	50                   	push   %eax
40842e:	57                   	push   %edi
40842f:	d1 fe                	sar    $1,%esi
408431:	56                   	push   %esi
408432:	53                   	push   %ebx
408433:	89 75 f0             	mov    %esi,-0x10(%ebp)
408436:	ff 15 2c 20 41 00    	call   *0x41202c
40843c:	85 c0                	test   %eax,%eax
40843e:	75 11                	jne    0x408451
408440:	ff 15 70 20 41 00    	call   *0x412070
408446:	3d 03 01 00 00       	cmp    $0x103,%eax
40844b:	74 1b                	je     0x408468
40844d:	85 c0                	test   %eax,%eax
40844f:	75 13                	jne    0x408464
408451:	57                   	push   %edi
408452:	68 2c 26 40 00       	push   $0x40262c
408457:	ff 75 ec             	push   -0x14(%ebp)
40845a:	e8 e9 fe ff ff       	call   0x408348
40845f:	83 c4 0c             	add    $0xc,%esp
408462:	eb 94                	jmp    0x4083f8
408464:	6a 0d                	push   $0xd
408466:	eb 22                	jmp    0x40848a
408468:	85 ff                	test   %edi,%edi
40846a:	74 08                	je     0x408474
40846c:	57                   	push   %edi
40846d:	ff 15 e4 21 41 00    	call   *0x4121e4
408473:	59                   	pop    %ecx
408474:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
408477:	e8 e7 d9 ff ff       	call   0x405e63
40847c:	e8 9b 61 00 00       	call   0x40e61c
408481:	c3                   	ret
408482:	ff 15 70 20 41 00    	call   *0x412070
408488:	6a 0c                	push   $0xc
40848a:	5a                   	pop    %edx
40848b:	8b c8                	mov    %eax,%ecx
40848d:	e8 51 f1 ff ff       	call   0x4075e3
408492:	cc                   	int3
408493:	8b ff                	mov    %edi,%edi
408495:	55                   	push   %ebp
408496:	8b ec                	mov    %esp,%ebp
408498:	51                   	push   %ecx
408499:	56                   	push   %esi
40849a:	8b 75 08             	mov    0x8(%ebp),%esi
40849d:	57                   	push   %edi
40849e:	8b f9                	mov    %ecx,%edi
4084a0:	0f b7 06             	movzwl (%esi),%eax
4084a3:	66 85 c0             	test   %ax,%ax
4084a6:	74 64                	je     0x40850c
4084a8:	8b d0                	mov    %eax,%edx
4084aa:	8b 4f 10             	mov    0x10(%edi),%ecx
4084ad:	0f b7 c2             	movzwl %dx,%eax
4084b0:	83 e8 0a             	sub    $0xa,%eax
4084b3:	74 40                	je     0x4084f5
4084b5:	83 e8 03             	sub    $0x3,%eax
4084b8:	74 34                	je     0x4084ee
4084ba:	83 e8 19             	sub    $0x19,%eax
4084bd:	74 28                	je     0x4084e7
4084bf:	83 e8 16             	sub    $0x16,%eax
4084c2:	74 1c                	je     0x4084e0
4084c4:	48                   	dec    %eax
4084c5:	83 e8 01             	sub    $0x1,%eax
4084c8:	74 0f                	je     0x4084d9
4084ca:	33 c0                	xor    %eax,%eax
4084cc:	66 89 55 fc          	mov    %dx,-0x4(%ebp)
4084d0:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
4084d4:	8d 55 fc             	lea    -0x4(%ebp),%edx
4084d7:	eb 21                	jmp    0x4084fa
4084d9:	ba 44 26 40 00       	mov    $0x402644,%edx
4084de:	eb 1a                	jmp    0x4084fa
4084e0:	ba 50 26 40 00       	mov    $0x402650,%edx
4084e5:	eb 13                	jmp    0x4084fa
4084e7:	ba 38 26 40 00       	mov    $0x402638,%edx
4084ec:	eb 0c                	jmp    0x4084fa
4084ee:	ba 5c 26 40 00       	mov    $0x40265c,%edx
4084f3:	eb 05                	jmp    0x4084fa
4084f5:	ba 68 26 40 00       	mov    $0x402668,%edx
4084fa:	e8 15 ee ff ff       	call   0x407314
4084ff:	83 c6 02             	add    $0x2,%esi
408502:	0f b7 06             	movzwl (%esi),%eax
408505:	8b d0                	mov    %eax,%edx
408507:	66 85 c0             	test   %ax,%ax
40850a:	75 9e                	jne    0x4084aa
40850c:	5f                   	pop    %edi
40850d:	5e                   	pop    %esi
40850e:	c9                   	leave
40850f:	c2 04 00             	ret    $0x4
408512:	8b ff                	mov    %edi,%edi
408514:	55                   	push   %ebp
408515:	8b ec                	mov    %esp,%ebp
408517:	51                   	push   %ecx
408518:	56                   	push   %esi
408519:	8b 75 08             	mov    0x8(%ebp),%esi
40851c:	57                   	push   %edi
40851d:	8b f9                	mov    %ecx,%edi
40851f:	0f b7 06             	movzwl (%esi),%eax
408522:	66 85 c0             	test   %ax,%ax
408525:	74 64                	je     0x40858b
408527:	8b d0                	mov    %eax,%edx
408529:	8b 4f 10             	mov    0x10(%edi),%ecx
40852c:	0f b7 c2             	movzwl %dx,%eax
40852f:	83 e8 22             	sub    $0x22,%eax
408532:	74 40                	je     0x408574
408534:	83 e8 04             	sub    $0x4,%eax
408537:	74 34                	je     0x40856d
408539:	83 e8 01             	sub    $0x1,%eax
40853c:	74 28                	je     0x408566
40853e:	83 e8 15             	sub    $0x15,%eax
408541:	74 1c                	je     0x40855f
408543:	48                   	dec    %eax
408544:	83 e8 01             	sub    $0x1,%eax
408547:	74 0f                	je     0x408558
408549:	33 c0                	xor    %eax,%eax
40854b:	66 89 55 fc          	mov    %dx,-0x4(%ebp)
40854f:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
408553:	8d 55 fc             	lea    -0x4(%ebp),%edx
408556:	eb 21                	jmp    0x408579
408558:	ba 44 26 40 00       	mov    $0x402644,%edx
40855d:	eb 1a                	jmp    0x408579
40855f:	ba 50 26 40 00       	mov    $0x402650,%edx
408564:	eb 13                	jmp    0x408579
408566:	ba 74 26 40 00       	mov    $0x402674,%edx
40856b:	eb 0c                	jmp    0x408579
40856d:	ba 38 26 40 00       	mov    $0x402638,%edx
408572:	eb 05                	jmp    0x408579
408574:	ba 84 26 40 00       	mov    $0x402684,%edx
408579:	e8 96 ed ff ff       	call   0x407314
40857e:	83 c6 02             	add    $0x2,%esi
408581:	0f b7 06             	movzwl (%esi),%eax
408584:	8b d0                	mov    %eax,%edx
408586:	66 85 c0             	test   %ax,%ax
408589:	75 9e                	jne    0x408529
40858b:	5f                   	pop    %edi
40858c:	5e                   	pop    %esi
40858d:	c9                   	leave
40858e:	c2 04 00             	ret    $0x4
408591:	cc                   	int3
408592:	cc                   	int3
408593:	cc                   	int3
408594:	cc                   	int3
408595:	cc                   	int3
408596:	cc                   	int3
408597:	cc                   	int3
408598:	cc                   	int3
408599:	cc                   	int3
40859a:	cc                   	int3
40859b:	cc                   	int3
40859c:	cc                   	int3
40859d:	cc                   	int3
40859e:	cc                   	int3
40859f:	cc                   	int3
4085a0:	6a 2b                	push   $0x2b
4085a2:	e8 95 df ff ff       	call   0x40653c
4085a7:	c3                   	ret
4085a8:	cc                   	int3
4085a9:	cc                   	int3
4085aa:	cc                   	int3
4085ab:	cc                   	int3
4085ac:	cc                   	int3
4085ad:	cc                   	int3
4085ae:	cc                   	int3
4085af:	cc                   	int3
4085b0:	6a 20                	push   $0x20
4085b2:	b8 f5 ef 40 00       	mov    $0x40eff5,%eax
4085b7:	e8 c5 60 00 00       	call   0x40e681