415336:	49                   	dec    %ecx
415337:	8b f9                	mov    %ecx,%edi
415339:	8b cb                	mov    %ebx,%ecx
41533b:	57                   	push   %edi
41533c:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
415340:	e8 81 56 ff ff       	call   0x40a9c6
415345:	84 c0                	test   %al,%al
415347:	74 1d                	je     0x415366
415349:	8b cf                	mov    %edi,%ecx
41534b:	8b 7b 04             	mov    0x4(%ebx),%edi
41534e:	8b d1                	mov    %ecx,%edx
415350:	c1 e9 02             	shr    $0x2,%ecx
415353:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
415355:	8b ca                	mov    %edx,%ecx
415357:	8b c2                	mov    %edx,%eax
415359:	83 e1 03             	and    $0x3,%ecx
41535c:	50                   	push   %eax
41535d:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
41535f:	8b cb                	mov    %ebx,%ecx
415361:	e8 8a e1 ff ff       	call   0x4134f0
415366:	8b 7c 24 10          	mov    0x10(%esp),%edi
41536a:	8b 43 08             	mov    0x8(%ebx),%eax
41536d:	3b c5                	cmp    %ebp,%eax
41536f:	73 02                	jae    0x415373
415371:	8b e8                	mov    %eax,%ebp
415373:	85 ed                	test   %ebp,%ebp
415375:	76 35                	jbe    0x4153ac
415377:	8b 4b 04             	mov    0x4(%ebx),%ecx
41537a:	2b c5                	sub    %ebp,%eax
41537c:	50                   	push   %eax
41537d:	8d 54 0d 00          	lea    0x0(%ebp,%ecx,1),%edx
415381:	52                   	push   %edx
415382:	51                   	push   %ecx
415383:	e8 18 7c ff ff       	call   0x40cfa0
415388:	8b 73 08             	mov    0x8(%ebx),%esi
41538b:	83 c4 0c             	add    $0xc,%esp
41538e:	2b f5                	sub    %ebp,%esi
415390:	8b cb                	mov    %ebx,%ecx
415392:	6a 00                	push   $0x0
415394:	56                   	push   %esi
415395:	e8 2c 56 ff ff       	call   0x40a9c6
41539a:	84 c0                	test   %al,%al
41539c:	74 0a                	je     0x4153a8
41539e:	8b 43 04             	mov    0x4(%ebx),%eax
4153a1:	89 73 08             	mov    %esi,0x8(%ebx)
4153a4:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
4153a8:	8b 7c 24 10          	mov    0x10(%esp),%edi
4153ac:	8b 44 24 20          	mov    0x20(%esp),%eax
4153b0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4153b4:	8b 7f 40             	mov    0x40(%edi),%edi
4153b7:	8b 54 24 18          	mov    0x18(%esp),%edx
4153bb:	89 48 08             	mov    %ecx,0x8(%eax)
4153be:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4153c4:	89 50 0c             	mov    %edx,0xc(%eax)
4153c7:	89 78 10             	mov    %edi,0x10(%eax)
4153ca:	5f                   	pop    %edi
4153cb:	5e                   	pop    %esi
4153cc:	5d                   	pop    %ebp
4153cd:	5b                   	pop    %ebx
4153ce:	83 c4 0c             	add    $0xc,%esp
4153d1:	c2 20 00             	ret    $0x20
4153d4:	8b 74 24 20          	mov    0x20(%esp),%esi
4153d8:	6a ff                	push   $0xffffffff
4153da:	8b ce                	mov    %esi,%ecx
4153dc:	e8 af e6 ff ff       	call   0x413a90
4153e1:	8b c6                	mov    %esi,%eax
4153e3:	5f                   	pop    %edi
4153e4:	5e                   	pop    %esi
4153e5:	5d                   	pop    %ebp
4153e6:	5b                   	pop    %ebx
4153e7:	83 c4 0c             	add    $0xc,%esp
4153ea:	c2 20 00             	ret    $0x20
4153ed:	90                   	nop
4153ee:	90                   	nop
4153ef:	90                   	nop
4153f0:	56                   	push   %esi
4153f1:	8b f1                	mov    %ecx,%esi
4153f3:	8b 46 50             	mov    0x50(%esi),%eax
4153f6:	85 c0                	test   %eax,%eax
4153f8:	74 22                	je     0x41541c
4153fa:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4153fe:	8d 14 09             	lea    (%ecx,%ecx,1),%edx
415401:	8b 4c 24 08          	mov    0x8(%esp),%ecx
415405:	52                   	push   %edx
415406:	6a 00                	push   $0x0
415408:	51                   	push   %ecx
415409:	50                   	push   %eax
41540a:	e8 e1 2c 00 00       	call   0x4180f0
41540f:	83 c4 10             	add    $0x10,%esp
415412:	85 c0                	test   %eax,%eax
415414:	75 06                	jne    0x41541c
415416:	8b c6                	mov    %esi,%eax
415418:	5e                   	pop    %esi
415419:	c2 08 00             	ret    $0x8
41541c:	33 c0                	xor    %eax,%eax
41541e:	5e                   	pop    %esi
41541f:	c2 08 00             	ret    $0x8
415422:	90                   	nop
415423:	90                   	nop
415424:	90                   	nop
415425:	90                   	nop
415426:	90                   	nop
415427:	90                   	nop
415428:	90                   	nop
415429:	90                   	nop
41542a:	90                   	nop
41542b:	90                   	nop
41542c:	90                   	nop
41542d:	90                   	nop
41542e:	90                   	nop
41542f:	90                   	nop
415430:	68 40 54 41 00       	push   $0x415440
415435:	e8 a6 68 ff ff       	call   0x40bce0
41543a:	83 c4 04             	add    $0x4,%esp
41543d:	c3                   	ret
41543e:	90                   	nop
41543f:	90                   	nop
415440:	b9 e0 77 43 00       	mov    $0x4377e0,%ecx
415445:	e9 06 00 00 00       	jmp    0x415450
41544a:	90                   	nop
41544b:	90                   	nop
41544c:	90                   	nop
41544d:	90                   	nop
41544e:	90                   	nop
41544f:	90                   	nop
415450:	6a ff                	push   $0xffffffff
415452:	68 c3 7e 42 00       	push   $0x427ec3
415457:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41545d:	50                   	push   %eax
41545e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
415465:	83 ec 08             	sub    $0x8,%esp
415468:	53                   	push   %ebx
415469:	55                   	push   %ebp
41546a:	56                   	push   %esi
41546b:	57                   	push   %edi
41546c:	8b f9                	mov    %ecx,%edi
41546e:	89 7c 24 14          	mov    %edi,0x14(%esp)
415472:	c7 07 04 cb 42 00    	movl   $0x42cb04,(%edi)
415478:	8a 47 48             	mov    0x48(%edi),%al
41547b:	33 db                	xor    %ebx,%ebx
41547d:	3a c3                	cmp    %bl,%al
41547f:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%esp)
415486:	00
415487:	74 35                	je     0x4154be
415489:	8b 47 50             	mov    0x50(%edi),%eax
41548c:	3b c3                	cmp    %ebx,%eax
41548e:	74 2e                	je     0x4154be
415490:	50                   	push   %eax
415491:	e8 5a d9 ff ff       	call   0x412df0
415496:	83 c4 04             	add    $0x4,%esp
415499:	85 c0                	test   %eax,%eax
41549b:	75 21                	jne    0x4154be
41549d:	8b cf                	mov    %edi,%ecx
41549f:	88 5f 48             	mov    %bl,0x48(%edi)
4154a2:	e8 99 e8 ff ff       	call   0x413d40
4154a7:	89 5f 50             	mov    %ebx,0x50(%edi)
4154aa:	a1 c0 8a 43 00       	mov    0x438ac0,%eax
4154af:	89 47 40             	mov    %eax,0x40(%edi)
4154b2:	8b 0d c0 8a 43 00    	mov    0x438ac0,%ecx
4154b8:	89 4f 3c             	mov    %ecx,0x3c(%edi)
4154bb:	89 5f 38             	mov    %ebx,0x38(%edi)
4154be:	8b 77 44             	mov    0x44(%edi),%esi
4154c1:	3b f3                	cmp    %ebx,%esi
4154c3:	74 36                	je     0x4154fb
4154c5:	8b 46 04             	mov    0x4(%esi),%eax
4154c8:	3b c3                	cmp    %ebx,%eax
4154ca:	74 1d                	je     0x4154e9
4154cc:	8d 48 ff             	lea    -0x1(%eax),%ecx
4154cf:	8a 40 ff             	mov    -0x1(%eax),%al
4154d2:	3a c3                	cmp    %bl,%al
4154d4:	74 0a                	je     0x4154e0
4154d6:	3c ff                	cmp    $0xff,%al
4154d8:	74 06                	je     0x4154e0
4154da:	fe c8                	dec    %al
4154dc:	88 01                	mov    %al,(%ecx)
4154de:	eb 09                	jmp    0x4154e9
4154e0:	51                   	push   %ecx
4154e1:	e8 57 78 00 00       	call   0x41cd3d
4154e6:	83 c4 04             	add    $0x4,%esp
4154e9:	56                   	push   %esi
4154ea:	89 5e 04             	mov    %ebx,0x4(%esi)
4154ed:	89 5e 08             	mov    %ebx,0x8(%esi)
4154f0:	89 5e 0c             	mov    %ebx,0xc(%esi)
4154f3:	e8 45 78 00 00       	call   0x41cd3d
4154f8:	83 c4 04             	add    $0x4,%esp
4154fb:	8b 6f 4c             	mov    0x4c(%edi),%ebp
4154fe:	88 5c 24 20          	mov    %bl,0x20(%esp)
415502:	3b eb                	cmp    %ebx,%ebp
415504:	74 39                	je     0x41553f
415506:	8d 4c 24 10          	lea    0x10(%esp),%ecx
41550a:	e8 a1 1d 00 00       	call   0x4172b0
41550f:	8b 45 04             	mov    0x4(%ebp),%eax
415512:	3b c3                	cmp    %ebx,%eax
415514:	76 09                	jbe    0x41551f
415516:	83 f8 ff             	cmp    $0xffffffff,%eax
415519:	73 04                	jae    0x41551f
41551b:	48                   	dec    %eax
41551c:	89 45 04             	mov    %eax,0x4(%ebp)
41551f:	8b 75 04             	mov    0x4(%ebp),%esi
415522:	8d 4c 24 10          	lea    0x10(%esp),%ecx
415526:	f7 de                	neg    %esi
415528:	1b f6                	sbb    %esi,%esi
41552a:	f7 d6                	not    %esi
41552c:	23 f5                	and    %ebp,%esi
41552e:	e8 3d 1e 00 00       	call   0x417370
415533:	3b f3                	cmp    %ebx,%esi
415535:	74 08                	je     0x41553f
415537:	8b 16                	mov    (%esi),%edx
415539:	6a 01                	push   $0x1
41553b:	8b ce                	mov    %esi,%ecx
41553d:	ff 12                	call   *(%edx)
41553f:	c7 07 3c cb 42 00    	movl   $0x42cb3c,(%edi)
415545:	8b 7f 34             	mov    0x34(%edi),%edi
415548:	3b fb                	cmp    %ebx,%edi
41554a:	c7 44 24 20 ff ff ff 	movl   $0xffffffff,0x20(%esp)
415551:	ff
415552:	74 39                	je     0x41558d
415554:	8d 4c 24 10          	lea    0x10(%esp),%ecx
415558:	e8 53 1d 00 00       	call   0x4172b0
41555d:	8b 47 04             	mov    0x4(%edi),%eax
415560:	3b c3                	cmp    %ebx,%eax
415562:	76 09                	jbe    0x41556d
415564:	83 f8 ff             	cmp    $0xffffffff,%eax
415567:	73 04                	jae    0x41556d
415569:	48                   	dec    %eax
41556a:	89 47 04             	mov    %eax,0x4(%edi)
41556d:	8b 77 04             	mov    0x4(%edi),%esi
415570:	8d 4c 24 10          	lea    0x10(%esp),%ecx
415574:	f7 de                	neg    %esi
415576:	1b f6                	sbb    %esi,%esi
415578:	f7 d6                	not    %esi
41557a:	23 f7                	and    %edi,%esi
41557c:	e8 ef 1d 00 00       	call   0x417370
415581:	3b f3                	cmp    %ebx,%esi
415583:	74 08                	je     0x41558d
415585:	8b 06                	mov    (%esi),%eax
415587:	6a 01                	push   $0x1
415589:	8b ce                	mov    %esi,%ecx
41558b:	ff 10                	call   *(%eax)
41558d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
415591:	5f                   	pop    %edi
415592:	5e                   	pop    %esi
415593:	5d                   	pop    %ebp
415594:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41559b:	5b                   	pop    %ebx
41559c:	83 c4 14             	add    $0x14,%esp
41559f:	c3                   	ret
4155a0:	51                   	push   %ecx
4155a1:	56                   	push   %esi
4155a2:	57                   	push   %edi
4155a3:	c7 01 3c cb 42 00    	movl   $0x42cb3c,(%ecx)
4155a9:	8b 79 34             	mov    0x34(%ecx),%edi
4155ac:	85 ff                	test   %edi,%edi
4155ae:	74 39                	je     0x4155e9
4155b0:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4155b4:	e8 f7 1c 00 00       	call   0x4172b0
4155b9:	8b 47 04             	mov    0x4(%edi),%eax
4155bc:	85 c0                	test   %eax,%eax
4155be:	76 09                	jbe    0x4155c9
4155c0:	83 f8 ff             	cmp    $0xffffffff,%eax
4155c3:	73 04                	jae    0x4155c9
4155c5:	48                   	dec    %eax
4155c6:	89 47 04             	mov    %eax,0x4(%edi)
4155c9:	8b 77 04             	mov    0x4(%edi),%esi
4155cc:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4155d0:	f7 de                	neg    %esi
4155d2:	1b f6                	sbb    %esi,%esi
4155d4:	f7 d6                	not    %esi
4155d6:	23 f7                	and    %edi,%esi
4155d8:	e8 93 1d 00 00       	call   0x417370
4155dd:	85 f6                	test   %esi,%esi
4155df:	74 08                	je     0x4155e9
4155e1:	8b 06                	mov    (%esi),%eax
4155e3:	6a 01                	push   $0x1
4155e5:	8b ce                	mov    %esi,%ecx
4155e7:	ff 10                	call   *(%eax)
4155e9:	5f                   	pop    %edi
4155ea:	5e                   	pop    %esi
4155eb:	59                   	pop    %ecx
4155ec:	c3                   	ret
4155ed:	90                   	nop
4155ee:	90                   	nop
4155ef:	90                   	nop
4155f0:	66 0d ff ff          	or     $0xffff,%ax
4155f4:	c2 04 00             	ret    $0x4
4155f7:	90                   	nop
4155f8:	90                   	nop
4155f9:	90                   	nop
4155fa:	90                   	nop
4155fb:	90                   	nop
4155fc:	90                   	nop
4155fd:	90                   	nop
4155fe:	90                   	nop
4155ff:	90                   	nop
415600:	66 0d ff ff          	or     $0xffff,%ax
415604:	c3                   	ret
415605:	90                   	nop
415606:	90                   	nop
415607:	90                   	nop
415608:	90                   	nop
415609:	90                   	nop
41560a:	90                   	nop
41560b:	90                   	nop
41560c:	90                   	nop
41560d:	90                   	nop
41560e:	90                   	nop
41560f:	90                   	nop
415610:	56                   	push   %esi
415611:	8b f1                	mov    %ecx,%esi
415613:	8b 06                	mov    (%esi),%eax
415615:	ff 50 10             	call   *0x10(%eax)
415618:	33 c9                	xor    %ecx,%ecx
41561a:	66 3d ff ff          	cmp    $0xffff,%ax
41561e:	0f 94 c1             	sete   %cl
415621:	84 c9                	test   %cl,%cl
415623:	74 07                	je     0x41562c
415625:	b8 ff ff 00 00       	mov    $0xffff,%eax
41562a:	5e                   	pop    %esi
41562b:	c3                   	ret
41562c:	8b 46 2c             	mov    0x2c(%esi),%eax
41562f:	8b 08                	mov    (%eax),%ecx
415631:	49                   	dec    %ecx
415632:	89 08                	mov    %ecx,(%eax)
415634:	8b 76 1c             	mov    0x1c(%esi),%esi
415637:	8b 06                	mov    (%esi),%eax
415639:	8d 50 02             	lea    0x2(%eax),%edx
41563c:	89 16                	mov    %edx,(%esi)
41563e:	66 8b 00             	mov    (%eax),%ax
415641:	5e                   	pop    %esi
415642:	c3                   	ret
415643:	90                   	nop
415644:	90                   	nop
415645:	90                   	nop
415646:	90                   	nop
415647:	90                   	nop
415648:	90                   	nop
415649:	90                   	nop
41564a:	90                   	nop
41564b:	90                   	nop
41564c:	90                   	nop
41564d:	90                   	nop
41564e:	90                   	nop
41564f:	90                   	nop
415650:	56                   	push   %esi
415651:	8b 74 24 08          	mov    0x8(%esp),%esi
415655:	6a ff                	push   $0xffffffff
415657:	8b ce                	mov    %esi,%ecx
415659:	e8 32 e4 ff ff       	call   0x413a90
41565e:	8b c6                	mov    %esi,%eax
415660:	5e                   	pop    %esi