4113f4:	5b                   	pop    %ebx
4113f5:	c9                   	leave
4113f6:	c2 04 00             	ret    $0x4
4113f9:	8b ff                	mov    %edi,%edi
4113fb:	55                   	push   %ebp
4113fc:	8b ec                	mov    %esp,%ebp
4113fe:	56                   	push   %esi
4113ff:	33 f6                	xor    %esi,%esi
411401:	b8 57 00 07 80       	mov    $0x80070057,%eax
411406:	57                   	push   %edi
411407:	85 d2                	test   %edx,%edx
411409:	74 08                	je     0x411413
41140b:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
411411:	76 02                	jbe    0x411415
411413:	8b f0                	mov    %eax,%esi
411415:	85 f6                	test   %esi,%esi
411417:	78 52                	js     0x41146b
411419:	8b 7d 0c             	mov    0xc(%ebp),%edi
41141c:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
411422:	76 04                	jbe    0x411428
411424:	8b f0                	mov    %eax,%esi
411426:	eb 47                	jmp    0x41146f
411428:	8b f2                	mov    %edx,%esi
41142a:	85 d2                	test   %edx,%edx
41142c:	74 26                	je     0x411454
41142e:	2b fa                	sub    %edx,%edi
411430:	8b 55 08             	mov    0x8(%ebp),%edx
411433:	2b d1                	sub    %ecx,%edx
411435:	8d 04 37             	lea    (%edi,%esi,1),%eax
411438:	85 c0                	test   %eax,%eax
41143a:	74 14                	je     0x411450
41143c:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
411440:	66 85 c0             	test   %ax,%ax
411443:	74 0b                	je     0x411450
411445:	66 89 01             	mov    %ax,(%ecx)
411448:	83 c1 02             	add    $0x2,%ecx
41144b:	83 ee 01             	sub    $0x1,%esi
41144e:	75 e5                	jne    0x411435
411450:	85 f6                	test   %esi,%esi
411452:	75 03                	jne    0x411457
411454:	83 e9 02             	sub    $0x2,%ecx
411457:	33 c0                	xor    %eax,%eax
411459:	f7 de                	neg    %esi
41145b:	1b f6                	sbb    %esi,%esi
41145d:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
411463:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
411469:	eb 06                	jmp    0x411471
41146b:	85 d2                	test   %edx,%edx
41146d:	74 05                	je     0x411474
41146f:	33 c0                	xor    %eax,%eax
411471:	66 89 01             	mov    %ax,(%ecx)
411474:	5f                   	pop    %edi
411475:	8b c6                	mov    %esi,%eax
411477:	5e                   	pop    %esi
411478:	5d                   	pop    %ebp
411479:	c2 08 00             	ret    $0x8
41147c:	8b ff                	mov    %edi,%edi
41147e:	55                   	push   %ebp
41147f:	8b ec                	mov    %esp,%ebp
411481:	ff 35 3c 46 40 00    	push   0x40463c
411487:	ff 75 0c             	push   0xc(%ebp)
41148a:	ff 35 74 61 41 00    	push   0x416174
411490:	ff 35 3c 46 40 00    	push   0x40463c
411496:	ff 75 08             	push   0x8(%ebp)
411499:	68 00 00 40 00       	push   $0x400000
41149e:	ff 15 28 61 41 00    	call   *0x416128
4114a4:	5d                   	pop    %ebp
4114a5:	c2 08 00             	ret    $0x8
4114a8:	8b ff                	mov    %edi,%edi
4114aa:	55                   	push   %ebp
4114ab:	8b ec                	mov    %esp,%ebp
4114ad:	eb 0d                	jmp    0x4114bc
4114af:	ff 75 08             	push   0x8(%ebp)
4114b2:	e8 46 10 00 00       	call   0x4124fd
4114b7:	59                   	pop    %ecx
4114b8:	85 c0                	test   %eax,%eax
4114ba:	74 10                	je     0x4114cc
4114bc:	ff 75 08             	push   0x8(%ebp)
4114bf:	ff 15 b8 62 41 00    	call   *0x4162b8
4114c5:	59                   	pop    %ecx
4114c6:	85 c0                	test   %eax,%eax
4114c8:	74 e5                	je     0x4114af
4114ca:	5d                   	pop    %ebp
4114cb:	c3                   	ret
4114cc:	e9 8b 03 00 00       	jmp    0x41185c
4114d1:	8b ff                	mov    %edi,%edi
4114d3:	55                   	push   %ebp
4114d4:	8b ec                	mov    %esp,%ebp
4114d6:	5d                   	pop    %ebp
4114d7:	e9 cc ff ff ff       	jmp    0x4114a8
4114dc:	8b ff                	mov    %edi,%edi
4114de:	55                   	push   %ebp
4114df:	8b ec                	mov    %esp,%ebp
4114e1:	33 c0                	xor    %eax,%eax
4114e3:	39 45 08             	cmp    %eax,0x8(%ebp)
4114e6:	74 11                	je     0x4114f9
4114e8:	ff 75 08             	push   0x8(%ebp)
4114eb:	e8 b8 ff ff ff       	call   0x4114a8
4114f0:	59                   	pop    %ecx
4114f1:	85 c0                	test   %eax,%eax
4114f3:	0f 84 63 03 00 00    	je     0x41185c
4114f9:	5d                   	pop    %ebp
4114fa:	c3                   	ret
4114fb:	8b ff                	mov    %edi,%edi
4114fd:	55                   	push   %ebp
4114fe:	8b ec                	mov    %esp,%ebp
411500:	56                   	push   %esi
411501:	ff 75 08             	push   0x8(%ebp)
411504:	8b f1                	mov    %ecx,%esi
411506:	83 66 10 00          	andl   $0x0,0x10(%esi)
41150a:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
411511:	c6 06 00             	movb   $0x0,(%esi)
411514:	e8 2f 06 00 00       	call   0x411b48
411519:	59                   	pop    %ecx
41151a:	50                   	push   %eax
41151b:	ff 75 08             	push   0x8(%ebp)
41151e:	8b ce                	mov    %esi,%ecx
411520:	e8 46 04 00 00       	call   0x41196b
411525:	8b c6                	mov    %esi,%eax
411527:	5e                   	pop    %esi
411528:	5d                   	pop    %ebp
411529:	c2 04 00             	ret    $0x4
41152c:	cc                   	int3
41152d:	cc                   	int3
41152e:	cc                   	int3
41152f:	cc                   	int3
411530:	8b ff                	mov    %edi,%edi
411532:	55                   	push   %ebp
411533:	8b ec                	mov    %esp,%ebp
411535:	51                   	push   %ecx
411536:	56                   	push   %esi
411537:	ff 75 08             	push   0x8(%ebp)
41153a:	8b f1                	mov    %ecx,%esi
41153c:	89 75 fc             	mov    %esi,-0x4(%ebp)
41153f:	e8 cc 0f 00 00       	call   0x412510
411544:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
41154a:	8b c6                	mov    %esi,%eax
41154c:	5e                   	pop    %esi
41154d:	c9                   	leave
41154e:	c2 04 00             	ret    $0x4
411551:	8b ff                	mov    %edi,%edi
411553:	55                   	push   %ebp
411554:	8b ec                	mov    %esp,%ebp
411556:	51                   	push   %ecx
411557:	56                   	push   %esi
411558:	6a 01                	push   $0x1
41155a:	8d 45 fc             	lea    -0x4(%ebp),%eax
41155d:	c7 45 fc f4 1d 40 00 	movl   $0x401df4,-0x4(%ebp)
411564:	50                   	push   %eax
411565:	8b f1                	mov    %ecx,%esi
411567:	e8 9d 0f 00 00       	call   0x412509
41156c:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
411572:	8b c6                	mov    %esi,%eax
411574:	5e                   	pop    %esi
411575:	c9                   	leave
411576:	c3                   	ret
411577:	cc                   	int3
411578:	cc                   	int3
411579:	cc                   	int3
41157a:	cc                   	int3
41157b:	cc                   	int3
41157c:	cc                   	int3
41157d:	cc                   	int3
41157e:	cc                   	int3
41157f:	cc                   	int3
411580:	8b ff                	mov    %edi,%edi
411582:	55                   	push   %ebp
411583:	8b ec                	mov    %esp,%ebp
411585:	51                   	push   %ecx
411586:	56                   	push   %esi
411587:	ff 75 08             	push   0x8(%ebp)
41158a:	8b f1                	mov    %ecx,%esi
41158c:	89 75 fc             	mov    %esi,-0x4(%ebp)
41158f:	e8 7c 0f 00 00       	call   0x412510
411594:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
41159a:	8b c6                	mov    %esi,%eax
41159c:	5e                   	pop    %esi
41159d:	c9                   	leave
41159e:	c2 04 00             	ret    $0x4
4115a1:	8b ff                	mov    %edi,%edi
4115a3:	55                   	push   %ebp
4115a4:	8b ec                	mov    %esp,%ebp
4115a6:	51                   	push   %ecx
4115a7:	8b 45 08             	mov    0x8(%ebp),%eax
4115aa:	56                   	push   %esi
4115ab:	8b f1                	mov    %ecx,%esi
4115ad:	89 75 fc             	mov    %esi,-0x4(%ebp)
4115b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4115b3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4115b6:	50                   	push   %eax
4115b7:	e8 47 0f 00 00       	call   0x412503
4115bc:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
4115c2:	8b c6                	mov    %esi,%eax
4115c4:	5e                   	pop    %esi
4115c5:	c9                   	leave
4115c6:	c2 04 00             	ret    $0x4
4115c9:	cc                   	int3
4115ca:	cc                   	int3
4115cb:	cc                   	int3
4115cc:	cc                   	int3
4115cd:	cc                   	int3
4115ce:	cc                   	int3
4115cf:	cc                   	int3
4115d0:	c7 01 00 10 40 00    	movl   $0x401000,(%ecx)
4115d6:	e9 3b 0f 00 00       	jmp    0x412516
4115db:	cc                   	int3
4115dc:	cc                   	int3
4115dd:	cc                   	int3
4115de:	cc                   	int3
4115df:	cc                   	int3
4115e0:	e9 31 0f 00 00       	jmp    0x412516
4115e5:	8b ff                	mov    %edi,%edi
4115e7:	55                   	push   %ebp
4115e8:	8b ec                	mov    %esp,%ebp
4115ea:	8b 55 08             	mov    0x8(%ebp),%edx
4115ed:	8b 41 04             	mov    0x4(%ecx),%eax
4115f0:	3b 42 04             	cmp    0x4(%edx),%eax
4115f3:	75 0a                	jne    0x4115ff
4115f5:	8b 01                	mov    (%ecx),%eax
4115f7:	3b 02                	cmp    (%edx),%eax
4115f9:	75 04                	jne    0x4115ff
4115fb:	b0 01                	mov    $0x1,%al
4115fd:	eb 02                	jmp    0x411601
4115ff:	32 c0                	xor    %al,%al
411601:	5d                   	pop    %ebp
411602:	c2 04 00             	ret    $0x4
411605:	cc                   	int3
411606:	cc                   	int3
411607:	cc                   	int3
411608:	cc                   	int3
411609:	cc                   	int3
41160a:	cc                   	int3
41160b:	cc                   	int3
41160c:	cc                   	int3
41160d:	cc                   	int3
41160e:	cc                   	int3
41160f:	cc                   	int3
411610:	8b ff                	mov    %edi,%edi
411612:	55                   	push   %ebp
411613:	8b ec                	mov    %esp,%ebp
411615:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
411619:	56                   	push   %esi
41161a:	8b f1                	mov    %ecx,%esi
41161c:	c7 06 10 10 40 00    	movl   $0x401010,(%esi)
411622:	74 07                	je     0x41162b
411624:	56                   	push   %esi
411625:	e8 80 09 00 00       	call   0x411faa
41162a:	59                   	pop    %ecx
41162b:	8b c6                	mov    %esi,%eax
41162d:	5e                   	pop    %esi
41162e:	5d                   	pop    %ebp
41162f:	c2 04 00             	ret    $0x4
411632:	cc                   	int3
411633:	cc                   	int3
411634:	cc                   	int3
411635:	cc                   	int3
411636:	cc                   	int3
411637:	cc                   	int3
411638:	cc                   	int3
411639:	cc                   	int3
41163a:	cc                   	int3
41163b:	cc                   	int3
41163c:	cc                   	int3
41163d:	cc                   	int3
41163e:	cc                   	int3
41163f:	cc                   	int3
411640:	8b ff                	mov    %edi,%edi
411642:	55                   	push   %ebp
411643:	8b ec                	mov    %esp,%ebp
411645:	56                   	push   %esi
411646:	8b f1                	mov    %ecx,%esi
411648:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
41164e:	e8 c3 0e 00 00       	call   0x412516
411653:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
411657:	74 07                	je     0x411660
411659:	56                   	push   %esi
41165a:	e8 4b 09 00 00       	call   0x411faa
41165f:	59                   	pop    %ecx
411660:	8b c6                	mov    %esi,%eax
411662:	5e                   	pop    %esi
411663:	5d                   	pop    %ebp
411664:	c2 04 00             	ret    $0x4
411667:	cc                   	int3
411668:	cc                   	int3
411669:	cc                   	int3
41166a:	cc                   	int3
41166b:	cc                   	int3
41166c:	cc                   	int3
41166d:	cc                   	int3
41166e:	cc                   	int3
41166f:	cc                   	int3
411670:	8b ff                	mov    %edi,%edi
411672:	55                   	push   %ebp
411673:	8b ec                	mov    %esp,%ebp
411675:	56                   	push   %esi
411676:	8b f1                	mov    %ecx,%esi
411678:	e8 99 0e 00 00       	call   0x412516
41167d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
411681:	74 07                	je     0x41168a
411683:	56                   	push   %esi
411684:	e8 21 09 00 00       	call   0x411faa
411689:	59                   	pop    %ecx
41168a:	8b c6                	mov    %esi,%eax
41168c:	5e                   	pop    %esi
41168d:	5d                   	pop    %ebp
41168e:	c2 04 00             	ret    $0x4
411691:	6a 10                	push   $0x10
411693:	b8 fe 31 41 00       	mov    $0x4131fe,%eax
411698:	e8 2a 0f 00 00       	call   0x4125c7
41169d:	8b f9                	mov    %ecx,%edi
41169f:	89 7d e8             	mov    %edi,-0x18(%ebp)
4116a2:	8b 75 08             	mov    0x8(%ebp),%esi
4116a5:	83 ce 0f             	or     $0xf,%esi
4116a8:	83 fe fe             	cmp    $0xfffffffe,%esi
4116ab:	76 05                	jbe    0x4116b2
4116ad:	8b 75 08             	mov    0x8(%ebp),%esi
4116b0:	eb 2a                	jmp    0x4116dc
4116b2:	33 d2                	xor    %edx,%edx
4116b4:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
4116bb:	8b c6                	mov    %esi,%eax
4116bd:	8b 5f 14             	mov    0x14(%edi),%ebx
4116c0:	f7 75 ec             	divl   -0x14(%ebp)
4116c3:	8b cb                	mov    %ebx,%ecx
4116c5:	d1 e9                	shr    $1,%ecx
4116c7:	3b c8                	cmp    %eax,%ecx
4116c9:	76 11                	jbe    0x4116dc
4116cb:	6a fe                	push   $0xfffffffe
4116cd:	58                   	pop    %eax
4116ce:	2b c1                	sub    %ecx,%eax
4116d0:	3b d8                	cmp    %eax,%ebx
4116d2:	77 05                	ja     0x4116d9
4116d4:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
4116d7:	eb 03                	jmp    0x4116dc
4116d9:	6a fe                	push   $0xfffffffe
4116db:	5e                   	pop    %esi
4116dc:	33 db                	xor    %ebx,%ebx
4116de:	8d 46 01             	lea    0x1(%esi),%eax
4116e1:	53                   	push   %ebx
4116e2:	50                   	push   %eax
4116e3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4116e6:	e8 f1 fd ff ff       	call   0x4114dc
4116eb:	59                   	pop    %ecx
4116ec:	59                   	pop    %ecx
4116ed:	eb 2c                	jmp    0x41171b
4116ef:	8b 45 08             	mov    0x8(%ebp),%eax
4116f2:	89 65 f0             	mov    %esp,-0x10(%ebp)
4116f5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4116f8:	40                   	inc    %eax
4116f9:	6a 00                	push   $0x0
4116fb:	50                   	push   %eax