4016b6:	50                   	push   %eax
4016b7:	eb 3d                	jmp    0x4016f6
4016b9:	f6 c1 02             	test   $0x2,%cl
4016bc:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4016c0:	74 15                	je     0x4016d7
4016c2:	68 20 d4 41 00       	push   $0x41d420
4016c7:	e8 51 ff ff ff       	call   0x40161d
4016cc:	68 24 e8 41 00       	push   $0x41e824
4016d1:	8d 44 24 10          	lea    0x10(%esp),%eax
4016d5:	eb df                	jmp    0x4016b6
4016d7:	68 38 d4 41 00       	push   $0x41d438
4016dc:	e8 3c ff ff ff       	call   0x40161d
4016e1:	68 24 e8 41 00       	push   $0x41e824
4016e6:	8d 44 24 10          	lea    0x10(%esp),%eax
4016ea:	eb ca                	jmp    0x4016b6
4016ec:	8b e5                	mov    %ebp,%esp
4016ee:	5d                   	pop    %ebp
4016ef:	c2 08 00             	ret    $0x8
4016f2:	6a 00                	push   $0x0
4016f4:	6a 00                	push   $0x0
4016f6:	e8 80 46 00 00       	call   0x405d7b
4016fb:	cc                   	int3
4016fc:	55                   	push   %ebp
4016fd:	8b ec                	mov    %esp,%ebp
4016ff:	56                   	push   %esi
401700:	ff 75 08             	push   0x8(%ebp)
401703:	8b f1                	mov    %ecx,%esi
401705:	e8 0d 00 00 00       	call   0x401717
40170a:	c7 06 5c a0 41 00    	movl   $0x41a05c,(%esi)
401710:	8b c6                	mov    %esi,%eax
401712:	5e                   	pop    %esi
401713:	5d                   	pop    %ebp
401714:	c2 04 00             	ret    $0x4
401717:	55                   	push   %ebp
401718:	8b ec                	mov    %esp,%ebp
40171a:	56                   	push   %esi
40171b:	8b 75 08             	mov    0x8(%ebp),%esi
40171e:	57                   	push   %edi
40171f:	56                   	push   %esi
401720:	8b f9                	mov    %ecx,%edi
401722:	e8 e7 38 00 00       	call   0x40500e
401727:	c7 07 50 a0 41 00    	movl   $0x41a050,(%edi)
40172d:	8b 46 0c             	mov    0xc(%esi),%eax
401730:	89 47 0c             	mov    %eax,0xc(%edi)
401733:	8b 46 10             	mov    0x10(%esi),%eax
401736:	89 47 10             	mov    %eax,0x10(%edi)
401739:	8b c7                	mov    %edi,%eax
40173b:	5f                   	pop    %edi
40173c:	5e                   	pop    %esi
40173d:	5d                   	pop    %ebp
40173e:	c2 04 00             	ret    $0x4
401741:	55                   	push   %ebp
401742:	8b ec                	mov    %esp,%ebp
401744:	83 e4 f8             	and    $0xfffffff8,%esp
401747:	51                   	push   %ecx
401748:	8b 4d 08             	mov    0x8(%ebp),%ecx
40174b:	e8 90 03 00 00       	call   0x401ae0
401750:	8b 4d 08             	mov    0x8(%ebp),%ecx
401753:	e8 48 04 00 00       	call   0x401ba0
401758:	8b 45 08             	mov    0x8(%ebp),%eax
40175b:	8b e5                	mov    %ebp,%esp
40175d:	5d                   	pop    %ebp
40175e:	c3                   	ret
40175f:	55                   	push   %ebp
401760:	8b ec                	mov    %esp,%ebp
401762:	b8 b4 15 00 00       	mov    $0x15b4,%eax
401767:	e8 24 27 01 00       	call   0x413e90
40176c:	a1 90 08 42 00       	mov    0x420890,%eax
401771:	33 c5                	xor    %ebp,%eax
401773:	89 45 fc             	mov    %eax,-0x4(%ebp)
401776:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40177a:	8b 45 08             	mov    0x8(%ebp),%eax
40177d:	53                   	push   %ebx
40177e:	56                   	push   %esi
40177f:	57                   	push   %edi
401780:	89 8d 50 ea ff ff    	mov    %ecx,-0x15b0(%ebp)
401786:	89 85 4c ea ff ff    	mov    %eax,-0x15b4(%ebp)
40178c:	0f 86 0b 01 00 00    	jbe    0x40189d
401792:	33 f6                	xor    %esi,%esi
401794:	8b c6                	mov    %esi,%eax
401796:	ba 9d 15 00 00       	mov    $0x159d,%edx
40179b:	88 84 05 58 ea ff ff 	mov    %al,-0x15a8(%ebp,%eax,1)
4017a2:	40                   	inc    %eax
4017a3:	3b c2                	cmp    %edx,%eax
4017a5:	72 f4                	jb     0x40179b
4017a7:	8b fe                	mov    %esi,%edi
4017a9:	33 d2                	xor    %edx,%edx
4017ab:	8b c7                	mov    %edi,%eax
4017ad:	c7 85 54 ea ff ff 22 	movl   $0x22,-0x15ac(%ebp)
4017b4:	00 00 00
4017b7:	f7 b5 54 ea ff ff    	divl   -0x15ac(%ebp)
4017bd:	8a 9c 3d 58 ea ff ff 	mov    -0x15a8(%ebp,%edi,1),%bl
4017c4:	0f b6 04 0a          	movzbl (%edx,%ecx,1),%eax
4017c8:	03 c6                	add    %esi,%eax
4017ca:	0f b6 cb             	movzbl %bl,%ecx
4017cd:	03 c1                	add    %ecx,%eax
4017cf:	33 d2                	xor    %edx,%edx
4017d1:	b9 9d 15 00 00       	mov    $0x159d,%ecx
4017d6:	f7 f1                	div    %ecx
4017d8:	47                   	inc    %edi
4017d9:	3b f9                	cmp    %ecx,%edi
4017db:	8b 8d 50 ea ff ff    	mov    -0x15b0(%ebp),%ecx
4017e1:	8b f2                	mov    %edx,%esi
4017e3:	8a 84 35 58 ea ff ff 	mov    -0x15a8(%ebp,%esi,1),%al
4017ea:	88 84 3d 57 ea ff ff 	mov    %al,-0x15a9(%ebp,%edi,1)
4017f1:	88 9c 35 58 ea ff ff 	mov    %bl,-0x15a8(%ebp,%esi,1)
4017f8:	72 af                	jb     0x4017a9
4017fa:	8b bd 4c ea ff ff    	mov    -0x15b4(%ebp),%edi
401800:	33 f6                	xor    %esi,%esi
401802:	89 bd 50 ea ff ff    	mov    %edi,-0x15b0(%ebp)
401808:	8b 7d 0c             	mov    0xc(%ebp),%edi
40180b:	8b c6                	mov    %esi,%eax
40180d:	40                   	inc    %eax
40180e:	33 d2                	xor    %edx,%edx
401810:	b9 9d 15 00 00       	mov    $0x159d,%ecx
401815:	f7 f1                	div    %ecx
401817:	8b ca                	mov    %edx,%ecx
401819:	33 d2                	xor    %edx,%edx
40181b:	8a 9c 0d 58 ea ff ff 	mov    -0x15a8(%ebp,%ecx,1),%bl
401822:	0f b6 c3             	movzbl %bl,%eax
401825:	03 c6                	add    %esi,%eax
401827:	be 9d 15 00 00       	mov    $0x159d,%esi
40182c:	f7 f6                	div    %esi
40182e:	89 8d 54 ea ff ff    	mov    %ecx,-0x15ac(%ebp)
401834:	8b f2                	mov    %edx,%esi
401836:	8a 84 35 58 ea ff ff 	mov    -0x15a8(%ebp,%esi,1),%al
40183d:	88 84 0d 58 ea ff ff 	mov    %al,-0x15a8(%ebp,%ecx,1)
401844:	88 9c 35 58 ea ff ff 	mov    %bl,-0x15a8(%ebp,%esi,1)
40184b:	e8 28 05 00 00       	call   0x401d78
401850:	50                   	push   %eax
401851:	e8 eb fe ff ff       	call   0x401741
401856:	8b 85 54 ea ff ff    	mov    -0x15ac(%ebp),%eax
40185c:	59                   	pop    %ecx
40185d:	0f b6 8c 05 58 ea ff 	movzbl -0x15a8(%ebp,%eax,1),%ecx
401864:	ff
401865:	0f b6 c3             	movzbl %bl,%eax
401868:	03 c1                	add    %ecx,%eax
40186a:	99                   	cltd
40186b:	b9 9d 15 00 00       	mov    $0x159d,%ecx
401870:	f7 f9                	idiv   %ecx
401872:	8b 85 50 ea ff ff    	mov    -0x15b0(%ebp),%eax
401878:	8a 8c 15 58 ea ff ff 	mov    -0x15a8(%ebp,%edx,1),%cl
40187f:	30 08                	xor    %cl,(%eax)
401881:	40                   	inc    %eax
401882:	89 85 50 ea ff ff    	mov    %eax,-0x15b0(%ebp)
401888:	8b 85 54 ea ff ff    	mov    -0x15ac(%ebp),%eax
40188e:	4f                   	dec    %edi
40188f:	0f 85 78 ff ff ff    	jne    0x40180d
401895:	8b 85 4c ea ff ff    	mov    -0x15b4(%ebp),%eax
40189b:	eb 02                	jmp    0x40189f
40189d:	33 c0                	xor    %eax,%eax
40189f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4018a2:	5f                   	pop    %edi
4018a3:	5e                   	pop    %esi
4018a4:	33 cd                	xor    %ebp,%ecx
4018a6:	5b                   	pop    %ebx
4018a7:	e8 8d 2e 00 00       	call   0x404739
4018ac:	c9                   	leave
4018ad:	c3                   	ret
4018ae:	55                   	push   %ebp
4018af:	8b ec                	mov    %esp,%ebp
4018b1:	83 ec 10             	sub    $0x10,%esp
4018b4:	53                   	push   %ebx
4018b5:	56                   	push   %esi
4018b6:	57                   	push   %edi
4018b7:	8b f9                	mov    %ecx,%edi
4018b9:	89 55 fc             	mov    %edx,-0x4(%ebp)
4018bc:	8b 47 3c             	mov    0x3c(%edi),%eax
4018bf:	8b 44 38 78          	mov    0x78(%eax,%edi,1),%eax
4018c3:	03 c7                	add    %edi,%eax
4018c5:	8b 48 24             	mov    0x24(%eax),%ecx
4018c8:	8b 50 20             	mov    0x20(%eax),%edx
4018cb:	8b 58 1c             	mov    0x1c(%eax),%ebx
4018ce:	8b 40 18             	mov    0x18(%eax),%eax
4018d1:	03 cf                	add    %edi,%ecx
4018d3:	03 d7                	add    %edi,%edx
4018d5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4018d8:	03 df                	add    %edi,%ebx
4018da:	33 c9                	xor    %ecx,%ecx
4018dc:	89 55 f4             	mov    %edx,-0xc(%ebp)
4018df:	89 45 f8             	mov    %eax,-0x8(%ebp)
4018e2:	85 c0                	test   %eax,%eax
4018e4:	74 2d                	je     0x401913
4018e6:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
4018e9:	03 d7                	add    %edi,%edx
4018eb:	33 f6                	xor    %esi,%esi
4018ed:	eb 10                	jmp    0x4018ff
4018ef:	c1 ce 0d             	ror    $0xd,%esi
4018f2:	3c 61                	cmp    $0x61,%al
4018f4:	0f be c0             	movsbl %al,%eax
4018f7:	7c 03                	jl     0x4018fc
4018f9:	83 e8 20             	sub    $0x20,%eax
4018fc:	03 f0                	add    %eax,%esi
4018fe:	42                   	inc    %edx
4018ff:	8a 02                	mov    (%edx),%al
401901:	84 c0                	test   %al,%al
401903:	75 ea                	jne    0x4018ef
401905:	3b 75 fc             	cmp    -0x4(%ebp),%esi
401908:	74 10                	je     0x40191a
40190a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40190d:	41                   	inc    %ecx
40190e:	3b 4d f8             	cmp    -0x8(%ebp),%ecx
401911:	72 d3                	jb     0x4018e6
401913:	33 c0                	xor    %eax,%eax
401915:	5f                   	pop    %edi
401916:	5e                   	pop    %esi
401917:	5b                   	pop    %ebx
401918:	c9                   	leave
401919:	c3                   	ret
40191a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40191d:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
401921:	8b 04 83             	mov    (%ebx,%eax,4),%eax
401924:	03 c7                	add    %edi,%eax
401926:	eb ed                	jmp    0x401915
401928:	55                   	push   %ebp
401929:	8b ec                	mov    %esp,%ebp
40192b:	83 e4 f8             	and    $0xfffffff8,%esp
40192e:	6a ff                	push   $0xffffffff
401930:	68 d6 7c 41 00       	push   $0x417cd6
401935:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40193b:	50                   	push   %eax
40193c:	83 ec 48             	sub    $0x48,%esp
40193f:	a1 90 08 42 00       	mov    0x420890,%eax
401944:	33 c4                	xor    %esp,%eax
401946:	89 44 24 40          	mov    %eax,0x40(%esp)
40194a:	53                   	push   %ebx
40194b:	56                   	push   %esi
40194c:	57                   	push   %edi
40194d:	a1 90 08 42 00       	mov    0x420890,%eax
401952:	33 c4                	xor    %esp,%eax
401954:	50                   	push   %eax
401955:	8d 44 24 58          	lea    0x58(%esp),%eax
401959:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40195f:	89 4c 24 14          	mov    %ecx,0x14(%esp)
401963:	68 74 d4 41 00       	push   $0x41d474
401968:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
40196c:	e8 fc f7 ff ff       	call   0x40116d
401971:	33 db                	xor    %ebx,%ebx
401973:	53                   	push   %ebx
401974:	53                   	push   %ebx
401975:	68 80 d4 41 00       	push   $0x41d480
40197a:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
40197e:	ff 15 00 90 41 00    	call   *0x419000
401984:	85 c0                	test   %eax,%eax
401986:	0f 84 bb 00 00 00    	je     0x401a47
40198c:	68 98 d4 41 00       	push   $0x41d498
401991:	8d 4c 24 24          	lea    0x24(%esp),%ecx
401995:	e8 d3 f7 ff ff       	call   0x40116d
40199a:	c6 44 24 60 01       	movb   $0x1,0x60(%esp)
40199f:	83 7c 24 34 10       	cmpl   $0x10,0x34(%esp)
4019a4:	53                   	push   %ebx
4019a5:	8d 44 24 24          	lea    0x24(%esp),%eax
4019a9:	0f 43 44 24 24       	cmovae 0x24(%esp),%eax
4019ae:	53                   	push   %ebx
4019af:	50                   	push   %eax
4019b0:	ff 15 10 90 41 00    	call   *0x419010
4019b6:	68 a8 d4 41 00       	push   $0x41d4a8
4019bb:	8b f0                	mov    %eax,%esi
4019bd:	e8 39 37 00 00       	call   0x4050fb
4019c2:	59                   	pop    %ecx
4019c3:	8b d0                	mov    %eax,%edx
4019c5:	8b ce                	mov    %esi,%ecx
4019c7:	e8 e2 fe ff ff       	call   0x4018ae
4019cc:	6a 0a                	push   $0xa
4019ce:	68 9b 08 00 00       	push   $0x89b
4019d3:	53                   	push   %ebx
4019d4:	89 44 24 24          	mov    %eax,0x24(%esp)
4019d8:	ff 15 3c 90 41 00    	call   *0x41903c
4019de:	8b f0                	mov    %eax,%esi
4019e0:	85 f6                	test   %esi,%esi
4019e2:	74 5a                	je     0x401a3e
4019e4:	56                   	push   %esi
4019e5:	53                   	push   %ebx
4019e6:	ff 15 28 90 41 00    	call   *0x419028
4019ec:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4019f0:	85 c0                	test   %eax,%eax
4019f2:	74 4a                	je     0x401a3e
4019f4:	56                   	push   %esi
4019f5:	53                   	push   %ebx
4019f6:	ff 15 08 90 41 00    	call   *0x419008
4019fc:	8b 4c 24 48          	mov    0x48(%esp),%ecx
401a00:	53                   	push   %ebx
401a01:	c1 e1 03             	shl    $0x3,%ecx
401a04:	51                   	push   %ecx
401a05:	68 00 30 00 00       	push   $0x3000
401a0a:	8b f8                	mov    %eax,%edi
401a0c:	57                   	push   %edi
401a0d:	53                   	push   %ebx
401a0e:	ff 15 04 90 41 00    	call   *0x419004
401a14:	50                   	push   %eax
401a15:	ff 54 24 30          	call   *0x30(%esp)
401a19:	8b f0                	mov    %eax,%esi
401a1b:	85 f6                	test   %esi,%esi
401a1d:	74 1f                	je     0x401a3e
401a1f:	57                   	push   %edi
401a20:	ff 74 24 20          	push   0x20(%esp)
401a24:	56                   	push   %esi
401a25:	e8 76 3c 00 00       	call   0x4056a0
401a2a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
401a2e:	83 c4 0c             	add    $0xc,%esp
401a31:	57                   	push   %edi
401a32:	56                   	push   %esi
401a33:	e8 27 fd ff ff       	call   0x40175f
401a38:	59                   	pop    %ecx
401a39:	59                   	pop    %ecx
401a3a:	ff d6                	call   *%esi
401a3c:	b3 01                	mov    $0x1,%bl
401a3e:	8d 4c 24 20          	lea    0x20(%esp),%ecx
401a42:	e8 55 f7 ff ff       	call   0x40119c
401a47:	8d 4c 24 38          	lea    0x38(%esp),%ecx
401a4b:	e8 4c f7 ff ff       	call   0x40119c
401a50:	8a c3                	mov    %bl,%al
401a52:	8b 4c 24 58          	mov    0x58(%esp),%ecx
401a56:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401a5d:	59                   	pop    %ecx
401a5e:	5f                   	pop    %edi
401a5f:	5e                   	pop    %esi
401a60:	5b                   	pop    %ebx
401a61:	8b 4c 24 40          	mov    0x40(%esp),%ecx
401a65:	33 cc                	xor    %esp,%ecx
401a67:	e8 cd 2c 00 00       	call   0x404739
401a6c:	8b e5                	mov    %ebp,%esp
401a6e:	5d                   	pop    %ebp
401a6f:	c3                   	ret
401a70:	55                   	push   %ebp
401a71:	8b ec                	mov    %esp,%ebp
401a73:	83 ec 28             	sub    $0x28,%esp
401a76:	a1 90 08 42 00       	mov    0x420890,%eax
401a7b:	33 c5                	xor    %ebp,%eax
401a7d:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a80:	53                   	push   %ebx
401a81:	56                   	push   %esi
401a82:	57                   	push   %edi
401a83:	ff 15 0c 90 41 00    	call   *0x41900c
401a89:	6a 20                	push   $0x20
401a8b:	e8 b8 34 00 00       	call   0x404f48
401a90:	8b d8                	mov    %eax,%ebx
401a92:	59                   	pop    %ecx
401a93:	85 db                	test   %ebx,%ebx
401a95:	74 0b                	je     0x401aa2
401a97:	6a 08                	push   $0x8
401a99:	59                   	pop    %ecx
401a9a:	33 c0                	xor    %eax,%eax
401a9c:	8b fb                	mov    %ebx,%edi
401a9e:	f3 ab                	rep stos %eax,%es:(%edi)
401aa0:	eb 02                	jmp    0x401aa4
401aa2:	33 db                	xor    %ebx,%ebx
401aa4:	6a 08                	push   $0x8
401aa6:	59                   	pop    %ecx
401aa7:	be b4 d4 41 00       	mov    $0x41d4b4,%esi