4096cb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4096ce:	6a 20                	push   $0x20
4096d0:	5e                   	pop    %esi
4096d1:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4096d4:	0f b7 01             	movzwl (%ecx),%eax
4096d7:	66 3b c6             	cmp    %si,%ax
4096da:	77 4f                	ja     0x40972b
4096dc:	66 85 c0             	test   %ax,%ax
4096df:	74 19                	je     0x4096fa
4096e1:	85 d2                	test   %edx,%edx
4096e3:	75 46                	jne    0x40972b
4096e5:	66 85 c0             	test   %ax,%ax
4096e8:	74 10                	je     0x4096fa
4096ea:	66 3b c6             	cmp    %si,%ax
4096ed:	77 0b                	ja     0x4096fa
4096ef:	83 c1 02             	add    $0x2,%ecx
4096f2:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4096f5:	0f b7 01             	movzwl (%ecx),%eax
4096f8:	eb eb                	jmp    0x4096e5
4096fa:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
4096fe:	74 06                	je     0x409706
409700:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
409704:	eb 03                	jmp    0x409709
409706:	6a 0a                	push   $0xa
409708:	58                   	pop    %eax
409709:	50                   	push   %eax
40970a:	51                   	push   %ecx
40970b:	53                   	push   %ebx
40970c:	68 00 00 40 00       	push   $0x400000
409711:	e8 3b a3 ff ff       	call   0x403a51
409716:	a3 4c c2 40 00       	mov    %eax,0x40c24c
40971b:	83 3d 64 c2 40 00 00 	cmpl   $0x0,0x40c264
409722:	75 4f                	jne    0x409773
409724:	50                   	push   %eax
409725:	ff 15 10 f2 40 00    	call   *0x40f210
40972b:	83 f8 22             	cmp    $0x22,%eax
40972e:	75 0c                	jne    0x40973c
409730:	33 c0                	xor    %eax,%eax
409732:	85 d2                	test   %edx,%edx
409734:	0f 94 c0             	sete   %al
409737:	8b d0                	mov    %eax,%edx
409739:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40973c:	83 c1 02             	add    $0x2,%ecx
40973f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
409742:	eb 90                	jmp    0x4096d4
409744:	8b 4d ec             	mov    -0x14(%ebp),%ecx
409747:	8b 01                	mov    (%ecx),%eax
409749:	8b 00                	mov    (%eax),%eax
40974b:	89 45 dc             	mov    %eax,-0x24(%ebp)
40974e:	51                   	push   %ecx
40974f:	50                   	push   %eax
409750:	e8 d9 07 00 00       	call   0x409f2e
409755:	59                   	pop    %ecx
409756:	59                   	pop    %ecx
409757:	c3                   	ret
409758:	8b 65 e8             	mov    -0x18(%ebp),%esp
40975b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40975e:	a3 4c c2 40 00       	mov    %eax,0x40c24c
409763:	83 3d 64 c2 40 00 00 	cmpl   $0x0,0x40c264
40976a:	75 07                	jne    0x409773
40976c:	50                   	push   %eax
40976d:	ff 15 84 f1 40 00    	call   *0x40f184
409773:	83 3d 50 c2 40 00 00 	cmpl   $0x0,0x40c250
40977a:	75 0b                	jne    0x409787
40977c:	ff 15 9c f1 40 00    	call   *0x40f19c
409782:	a1 4c c2 40 00       	mov    0x40c24c,%eax
409787:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40978e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409791:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409798:	59                   	pop    %ecx
409799:	5f                   	pop    %edi
40979a:	5e                   	pop    %esi
40979b:	5b                   	pop    %ebx
40979c:	c9                   	leave
40979d:	c3                   	ret
40979e:	8b ff                	mov    %edi,%edi
4097a0:	55                   	push   %ebp
4097a1:	8b ec                	mov    %esp,%ebp
4097a3:	56                   	push   %esi
4097a4:	8b 75 08             	mov    0x8(%ebp),%esi
4097a7:	33 c0                	xor    %eax,%eax
4097a9:	3b 75 0c             	cmp    0xc(%ebp),%esi
4097ac:	73 1e                	jae    0x4097cc
4097ae:	57                   	push   %edi
4097af:	85 c0                	test   %eax,%eax
4097b1:	75 18                	jne    0x4097cb
4097b3:	8b 3e                	mov    (%esi),%edi
4097b5:	85 ff                	test   %edi,%edi
4097b7:	74 0a                	je     0x4097c3
4097b9:	8b cf                	mov    %edi,%ecx
4097bb:	ff 15 20 f2 40 00    	call   *0x40f220
4097c1:	ff d7                	call   *%edi
4097c3:	83 c6 04             	add    $0x4,%esi
4097c6:	3b 75 0c             	cmp    0xc(%ebp),%esi
4097c9:	72 e4                	jb     0x4097af
4097cb:	5f                   	pop    %edi
4097cc:	5e                   	pop    %esi
4097cd:	5d                   	pop    %ebp
4097ce:	c3                   	ret
4097cf:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
4097d4:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
4097db:	75 55                	jne    0x409832
4097dd:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
4097e3:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
4097ea:	45 00 00
4097ed:	75 43                	jne    0x409832
4097ef:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
4097f6:	ba 0b 01 00 00       	mov    $0x10b,%edx
4097fb:	66 3b c2             	cmp    %dx,%ax
4097fe:	74 1f                	je     0x40981f
409800:	ba 0b 02 00 00       	mov    $0x20b,%edx
409805:	66 3b c2             	cmp    %dx,%ax
409808:	75 28                	jne    0x409832
40980a:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
409811:	76 1f                	jbe    0x409832
409813:	33 c0                	xor    %eax,%eax
409815:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
40981b:	0f 95 c0             	setne  %al
40981e:	c3                   	ret
40981f:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
409826:	76 0a                	jbe    0x409832
409828:	33 c0                	xor    %eax,%eax
40982a:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
409830:	eb e9                	jmp    0x40981b
409832:	33 c0                	xor    %eax,%eax
409834:	c3                   	ret
409835:	cc                   	int3
409836:	cc                   	int3
409837:	cc                   	int3
409838:	cc                   	int3
409839:	cc                   	int3
40983a:	cc                   	int3
40983b:	cc                   	int3
40983c:	cc                   	int3
40983d:	cc                   	int3
40983e:	cc                   	int3
40983f:	cc                   	int3
409840:	e8 f0 08 00 00       	call   0x40a135
409845:	e9 79 fd ff ff       	jmp    0x4095c3
40984a:	ff 25 04 f2 40 00    	jmp    *0x40f204
409850:	ff 25 00 f2 40 00    	jmp    *0x40f200
409856:	cc                   	int3
409857:	cc                   	int3
409858:	cc                   	int3
409859:	cc                   	int3
40985a:	cc                   	int3
40985b:	cc                   	int3
40985c:	cc                   	int3
40985d:	cc                   	int3
40985e:	cc                   	int3
40985f:	cc                   	int3
409860:	3b 0d e4 c1 40 00    	cmp    0x40c1e4,%ecx
409866:	75 03                	jne    0x40986b
409868:	c2 00 00             	ret    $0x0
40986b:	e9 e1 01 00 00       	jmp    0x409a51
409870:	6a 0c                	push   $0xc
409872:	68 b0 ae 40 00       	push   $0x40aeb0
409877:	e8 6c 09 00 00       	call   0x40a1e8
40987c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
409880:	8b 5d 0c             	mov    0xc(%ebp),%ebx
409883:	8b c3                	mov    %ebx,%eax
409885:	8b 7d 10             	mov    0x10(%ebp),%edi
409888:	0f af c7             	imul   %edi,%eax
40988b:	8b 75 08             	mov    0x8(%ebp),%esi
40988e:	03 f0                	add    %eax,%esi
409890:	89 75 08             	mov    %esi,0x8(%ebp)
409893:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409897:	83 ef 01             	sub    $0x1,%edi
40989a:	89 7d 10             	mov    %edi,0x10(%ebp)
40989d:	78 15                	js     0x4098b4
40989f:	2b f3                	sub    %ebx,%esi
4098a1:	89 75 08             	mov    %esi,0x8(%ebp)
4098a4:	8b 4d 14             	mov    0x14(%ebp),%ecx
4098a7:	ff 15 20 f2 40 00    	call   *0x40f220
4098ad:	8b ce                	mov    %esi,%ecx
4098af:	ff 55 14             	call   *0x14(%ebp)
4098b2:	eb e3                	jmp    0x409897
4098b4:	33 c0                	xor    %eax,%eax
4098b6:	40                   	inc    %eax
4098b7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4098ba:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4098c1:	e8 1e 00 00 00       	call   0x4098e4
4098c6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4098c9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4098d0:	59                   	pop    %ecx
4098d1:	5f                   	pop    %edi
4098d2:	5e                   	pop    %esi
4098d3:	5b                   	pop    %ebx
4098d4:	c9                   	leave
4098d5:	c2 10 00             	ret    $0x10
4098d8:	8b 7d 10             	mov    0x10(%ebp),%edi
4098db:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4098de:	8b 75 08             	mov    0x8(%ebp),%esi
4098e1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4098e4:	85 c0                	test   %eax,%eax
4098e6:	75 0b                	jne    0x4098f3
4098e8:	ff 75 14             	push   0x14(%ebp)
4098eb:	57                   	push   %edi
4098ec:	53                   	push   %ebx
4098ed:	56                   	push   %esi
4098ee:	e8 06 00 00 00       	call   0x4098f9
4098f3:	c3                   	ret
4098f4:	e9 77 ff ff ff       	jmp    0x409870
4098f9:	6a 14                	push   $0x14
4098fb:	68 90 ae 40 00       	push   $0x40ae90
409900:	e8 e3 08 00 00       	call   0x40a1e8
409905:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409909:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
40990d:	78 46                	js     0x409955
40990f:	8b 75 08             	mov    0x8(%ebp),%esi
409912:	2b 75 0c             	sub    0xc(%ebp),%esi
409915:	89 75 08             	mov    %esi,0x8(%ebp)
409918:	8b 4d 14             	mov    0x14(%ebp),%ecx
40991b:	ff 15 20 f2 40 00    	call   *0x40f220
409921:	8b ce                	mov    %esi,%ecx
409923:	ff 55 14             	call   *0x14(%ebp)
409926:	eb e1                	jmp    0x409909
409928:	8b 45 ec             	mov    -0x14(%ebp),%eax
40992b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40992e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409931:	8b 00                	mov    (%eax),%eax
409933:	89 45 e0             	mov    %eax,-0x20(%ebp)
409936:	8b 45 e0             	mov    -0x20(%ebp),%eax
409939:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40993f:	74 0b                	je     0x40994c
409941:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
409948:	8b 45 dc             	mov    -0x24(%ebp),%eax
40994b:	c3                   	ret
40994c:	ff 15 88 f1 40 00    	call   *0x40f188
409952:	8b 65 e8             	mov    -0x18(%ebp),%esp
409955:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40995c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40995f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409966:	59                   	pop    %ecx
409967:	5f                   	pop    %edi
409968:	5e                   	pop    %esi
409969:	5b                   	pop    %ebx
40996a:	c9                   	leave
40996b:	c2 10 00             	ret    $0x10
40996e:	cc                   	int3
40996f:	cc                   	int3
409970:	ff 25 88 f1 40 00    	jmp    *0x40f188
409976:	cc                   	int3
409977:	cc                   	int3
409978:	cc                   	int3
409979:	cc                   	int3
40997a:	cc                   	int3
40997b:	cc                   	int3
40997c:	cc                   	int3
40997d:	cc                   	int3
40997e:	cc                   	int3
40997f:	cc                   	int3
409980:	8b ff                	mov    %edi,%edi
409982:	55                   	push   %ebp
409983:	8b ec                	mov    %esp,%ebp
409985:	ff 75 14             	push   0x14(%ebp)
409988:	ff 75 10             	push   0x10(%ebp)
40998b:	ff 75 0c             	push   0xc(%ebp)
40998e:	ff 75 08             	push   0x8(%ebp)
409991:	68 60 98 40 00       	push   $0x409860
409996:	68 e4 c1 40 00       	push   $0x40c1e4
40999b:	e8 a1 08 00 00       	call   0x40a241
4099a0:	83 c4 18             	add    $0x18,%esp
4099a3:	5d                   	pop    %ebp
4099a4:	c3                   	ret
4099a5:	cc                   	int3
4099a6:	cc                   	int3
4099a7:	cc                   	int3
4099a8:	cc                   	int3
4099a9:	cc                   	int3
4099aa:	cc                   	int3
4099ab:	cc                   	int3
4099ac:	cc                   	int3
4099ad:	cc                   	int3
4099ae:	cc                   	int3
4099af:	cc                   	int3
4099b0:	8b ff                	mov    %edi,%edi
4099b2:	55                   	push   %ebp
4099b3:	8b ec                	mov    %esp,%ebp
4099b5:	56                   	push   %esi
4099b6:	8b f1                	mov    %ecx,%esi
4099b8:	ff 15 94 f1 40 00    	call   *0x40f194
4099be:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4099c2:	74 07                	je     0x4099cb
4099c4:	56                   	push   %esi
4099c5:	e8 80 fe ff ff       	call   0x40984a
4099ca:	59                   	pop    %ecx
4099cb:	8b c6                	mov    %esi,%eax
4099cd:	5e                   	pop    %esi
4099ce:	5d                   	pop    %ebp
4099cf:	c2 04 00             	ret    $0x4
4099d2:	cc                   	int3
4099d3:	cc                   	int3
4099d4:	cc                   	int3
4099d5:	cc                   	int3
4099d6:	cc                   	int3
4099d7:	cc                   	int3
4099d8:	cc                   	int3
4099d9:	cc                   	int3
4099da:	cc                   	int3
4099db:	cc                   	int3
4099dc:	cc                   	int3
4099dd:	cc                   	int3
4099de:	cc                   	int3
4099df:	cc                   	int3
4099e0:	8b ff                	mov    %edi,%edi
4099e2:	55                   	push   %ebp
4099e3:	8b ec                	mov    %esp,%ebp
4099e5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4099e8:	85 c9                	test   %ecx,%ecx
4099ea:	74 2a                	je     0x409a16
4099ec:	6a e0                	push   $0xffffffe0
4099ee:	33 d2                	xor    %edx,%edx
4099f0:	58                   	pop    %eax
4099f1:	f7 f1                	div    %ecx
4099f3:	3b 45 10             	cmp    0x10(%ebp),%eax
4099f6:	73 1e                	jae    0x409a16
4099f8:	e8 4a 08 00 00       	call   0x40a247
4099fd:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
409a03:	33 c0                	xor    %eax,%eax
409a05:	50                   	push   %eax
409a06:	50                   	push   %eax
409a07:	50                   	push   %eax
409a08:	50                   	push   %eax
409a09:	50                   	push   %eax
409a0a:	e8 3e 08 00 00       	call   0x40a24d
409a0f:	83 c4 14             	add    $0x14,%esp
409a12:	33 c0                	xor    %eax,%eax
409a14:	5d                   	pop    %ebp
409a15:	c3                   	ret
409a16:	0f af 4d 10          	imul   0x10(%ebp),%ecx
409a1a:	51                   	push   %ecx
409a1b:	ff 75 08             	push   0x8(%ebp)
409a1e:	e8 d5 08 00 00       	call   0x40a2f8
409a23:	59                   	pop    %ecx
409a24:	59                   	pop    %ecx
409a25:	5d                   	pop    %ebp
409a26:	c3                   	ret
409a27:	8b ff                	mov    %edi,%edi
409a29:	55                   	push   %ebp
409a2a:	8b ec                	mov    %esp,%ebp
409a2c:	6a 00                	push   $0x0
409a2e:	ff 15 3c f1 40 00    	call   *0x40f13c
409a34:	ff 75 08             	push   0x8(%ebp)
409a37:	ff 15 40 f1 40 00    	call   *0x40f140
409a3d:	68 09 04 00 c0       	push   $0xc0000409
409a42:	ff 15 70 f0 40 00    	call   *0x40f070
409a48:	50                   	push   %eax
409a49:	ff 15 50 f1 40 00    	call   *0x40f150
409a4f:	5d                   	pop    %ebp