4066de:	56                   	push   %esi
4066df:	ff d3                	call   *%ebx
4066e1:	2b c6                	sub    %esi,%eax
4066e3:	d1 f8                	sar    $1,%eax
4066e5:	50                   	push   %eax
4066e6:	56                   	push   %esi
4066e7:	57                   	push   %edi
4066e8:	e8 ac f7 ff ff       	call   0x405e99
4066ed:	57                   	push   %edi
4066ee:	ff d3                	call   *%ebx
4066f0:	8b f8                	mov    %eax,%edi
4066f2:	56                   	push   %esi
4066f3:	ff d3                	call   *%ebx
4066f5:	8b f0                	mov    %eax,%esi
4066f7:	66 8b 06             	mov    (%esi),%ax
4066fa:	66 85 c0             	test   %ax,%ax
4066fd:	75 c8                	jne    0x4066c7
4066ff:	5b                   	pop    %ebx
406700:	66 83 27 00          	andw   $0x0,(%edi)
406704:	57                   	push   %edi
406705:	55                   	push   %ebp
406706:	ff 15 f8 81 40 00    	call   *0x4081f8
40670c:	8b f8                	mov    %eax,%edi
40670e:	66 8b 07             	mov    (%edi),%ax
406711:	66 3d 20 00          	cmp    $0x20,%ax
406715:	74 06                	je     0x40671d
406717:	66 3d 5c 00          	cmp    $0x5c,%ax
40671b:	75 08                	jne    0x406725
40671d:	66 83 27 00          	andw   $0x0,(%edi)
406721:	3b ef                	cmp    %edi,%ebp
406723:	72 df                	jb     0x406704
406725:	5f                   	pop    %edi
406726:	5e                   	pop    %esi
406727:	5d                   	pop    %ebp
406728:	c2 04 00             	ret    $0x4
40672b:	56                   	push   %esi
40672c:	be 78 67 42 00       	mov    $0x426778,%esi
406731:	56                   	push   %esi
406732:	ff 74 24 0c          	push   0xc(%esp)
406736:	ff 15 38 81 40 00    	call   *0x408138
40673c:	83 f8 ff             	cmp    $0xffffffff,%eax
40673f:	74 0b                	je     0x40674c
406741:	50                   	push   %eax
406742:	ff 15 4c 81 40 00    	call   *0x40814c
406748:	8b c6                	mov    %esi,%eax
40674a:	eb 02                	jmp    0x40674e
40674c:	33 c0                	xor    %eax,%eax
40674e:	5e                   	pop    %esi
40674f:	c2 04 00             	ret    $0x4
406752:	55                   	push   %ebp
406753:	8b ec                	mov    %esp,%ebp
406755:	81 ec 3c 02 00 00    	sub    $0x23c,%esp
40675b:	56                   	push   %esi
40675c:	be 04 01 00 00       	mov    $0x104,%esi
406761:	8d 85 c4 fd ff ff    	lea    -0x23c(%ebp),%eax
406767:	56                   	push   %esi
406768:	50                   	push   %eax
406769:	ff 15 f0 80 40 00    	call   *0x4080f0
40676f:	3b c6                	cmp    %esi,%eax
406771:	5e                   	pop    %esi
406772:	76 02                	jbe    0x406776
406774:	33 c0                	xor    %eax,%eax
406776:	85 c0                	test   %eax,%eax
406778:	74 0f                	je     0x406789
40677a:	66 83 bc 45 c2 fd ff 	cmpw   $0x5c,-0x23e(%ebp,%eax,2)
406781:	ff 5c
406783:	74 04                	je     0x406789
406785:	33 c9                	xor    %ecx,%ecx
406787:	eb 03                	jmp    0x40678c
406789:	33 c9                	xor    %ecx,%ecx
40678b:	41                   	inc    %ecx
40678c:	ff 75 08             	push   0x8(%ebp)
40678f:	8d 0c 4d 14 a0 40 00 	lea    0x40a014(,%ecx,2),%ecx
406796:	8d 84 45 c4 fd ff ff 	lea    -0x23c(%ebp,%eax,2),%eax
40679d:	51                   	push   %ecx
40679e:	68 c0 a5 40 00       	push   $0x40a5c0
4067a3:	50                   	push   %eax
4067a4:	ff 15 90 82 40 00    	call   *0x408290
4067aa:	83 c4 10             	add    $0x10,%esp
4067ad:	8d 85 c4 fd ff ff    	lea    -0x23c(%ebp),%eax
4067b3:	6a 08                	push   $0x8
4067b5:	6a 00                	push   $0x0
4067b7:	50                   	push   %eax
4067b8:	ff 15 6c 81 40 00    	call   *0x40816c
4067be:	c9                   	leave
4067bf:	c2 04 00             	ret    $0x4
4067c2:	8b 44 24 04          	mov    0x4(%esp),%eax
4067c6:	56                   	push   %esi
4067c7:	8b f0                	mov    %eax,%esi
4067c9:	57                   	push   %edi
4067ca:	c1 e6 03             	shl    $0x3,%esi
4067cd:	8b be 10 a4 40 00    	mov    0x40a410(%esi),%edi
4067d3:	57                   	push   %edi
4067d4:	ff 15 f8 80 40 00    	call   *0x4080f8
4067da:	85 c0                	test   %eax,%eax
4067dc:	75 0a                	jne    0x4067e8
4067de:	57                   	push   %edi
4067df:	e8 6e ff ff ff       	call   0x406752
4067e4:	85 c0                	test   %eax,%eax
4067e6:	74 0f                	je     0x4067f7
4067e8:	ff b6 14 a4 40 00    	push   0x40a414(%esi)
4067ee:	50                   	push   %eax
4067ef:	ff 15 f4 80 40 00    	call   *0x4080f4
4067f5:	eb 02                	jmp    0x4067f9
4067f7:	33 c0                	xor    %eax,%eax
4067f9:	5f                   	pop    %edi
4067fa:	5e                   	pop    %esi
4067fb:	c2 04 00             	ret    $0x4
4067fe:	55                   	push   %ebp
4067ff:	8b ec                	mov    %esp,%ebp
406801:	83 ec 1c             	sub    $0x1c,%esp
406804:	56                   	push   %esi
406805:	8b 75 08             	mov    0x8(%ebp),%esi
406808:	57                   	push   %edi
406809:	8b 3d 08 82 40 00    	mov    0x408208,%edi
40680f:	eb 0a                	jmp    0x40681b
406811:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406814:	50                   	push   %eax
406815:	ff 15 04 82 40 00    	call   *0x408204
40681b:	6a 01                	push   $0x1
40681d:	56                   	push   %esi
40681e:	56                   	push   %esi
40681f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406822:	6a 00                	push   $0x0
406824:	50                   	push   %eax
406825:	ff d7                	call   *%edi
406827:	85 c0                	test   %eax,%eax
406829:	75 e6                	jne    0x406811
40682b:	5f                   	pop    %edi
40682c:	5e                   	pop    %esi
40682d:	c9                   	leave
40682e:	c2 04 00             	ret    $0x4
406831:	55                   	push   %ebp
406832:	8b ec                	mov    %esp,%ebp
406834:	81 ec 00 01 00 00    	sub    $0x100,%esp
40683a:	33 c0                	xor    %eax,%eax
40683c:	8d 8d 00 ff ff ff    	lea    -0x100(%ebp),%ecx
406842:	50                   	push   %eax
406843:	50                   	push   %eax
406844:	68 00 01 00 00       	push   $0x100
406849:	51                   	push   %ecx
40684a:	6a ff                	push   $0xffffffff
40684c:	ff 75 0c             	push   0xc(%ebp)
40684f:	50                   	push   %eax
406850:	50                   	push   %eax
406851:	ff 15 5c 81 40 00    	call   *0x40815c
406857:	85 c0                	test   %eax,%eax
406859:	74 12                	je     0x40686d
40685b:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
406861:	50                   	push   %eax
406862:	ff 75 08             	push   0x8(%ebp)
406865:	ff 15 f4 80 40 00    	call   *0x4080f4
40686b:	eb 02                	jmp    0x40686f
40686d:	33 c0                	xor    %eax,%eax
40686f:	c9                   	leave
406870:	c2 08 00             	ret    $0x8
406873:	55                   	push   %ebp
406874:	8b ec                	mov    %esp,%ebp
406876:	51                   	push   %ecx
406877:	56                   	push   %esi
406878:	8b 35 00 81 40 00    	mov    0x408100,%esi
40687e:	57                   	push   %edi
40687f:	6a 64                	push   $0x64
406881:	ff 75 08             	push   0x8(%ebp)
406884:	ff d6                	call   *%esi
406886:	bf 02 01 00 00       	mov    $0x102,%edi
40688b:	eb 0e                	jmp    0x40689b
40688d:	6a 0f                	push   $0xf
40688f:	e8 6a ff ff ff       	call   0x4067fe
406894:	6a 64                	push   $0x64
406896:	ff 75 08             	push   0x8(%ebp)
406899:	ff d6                	call   *%esi
40689b:	3b c7                	cmp    %edi,%eax
40689d:	74 ee                	je     0x40688d
40689f:	8d 45 fc             	lea    -0x4(%ebp),%eax
4068a2:	50                   	push   %eax
4068a3:	ff 75 08             	push   0x8(%ebp)
4068a6:	ff 15 fc 80 40 00    	call   *0x4080fc
4068ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
4068af:	5f                   	pop    %edi
4068b0:	5e                   	pop    %esi
4068b1:	c9                   	leave
4068b2:	c2 04 00             	ret    $0x4
4068b5:	83 3d cc 7d 42 00 00 	cmpl   $0x0,0x427dcc
4068bc:	56                   	push   %esi
4068bd:	75 2d                	jne    0x4068ec
4068bf:	33 c9                	xor    %ecx,%ecx
4068c1:	6a 08                	push   $0x8
4068c3:	8b c1                	mov    %ecx,%eax
4068c5:	5e                   	pop    %esi
4068c6:	8b d0                	mov    %eax,%edx
4068c8:	80 e2 01             	and    $0x1,%dl
4068cb:	f6 da                	neg    %dl
4068cd:	1b d2                	sbb    %edx,%edx
4068cf:	81 e2 20 83 b8 ed    	and    $0xedb88320,%edx
4068d5:	d1 e8                	shr    $1,%eax
4068d7:	33 c2                	xor    %edx,%eax
4068d9:	4e                   	dec    %esi
4068da:	75 ea                	jne    0x4068c6
4068dc:	89 04 8d c8 7d 42 00 	mov    %eax,0x427dc8(,%ecx,4)
4068e3:	41                   	inc    %ecx
4068e4:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4068ea:	7c d5                	jl     0x4068c1
4068ec:	8b 54 24 10          	mov    0x10(%esp),%edx
4068f0:	8b 44 24 08          	mov    0x8(%esp),%eax
4068f4:	85 d2                	test   %edx,%edx
4068f6:	f7 d0                	not    %eax
4068f8:	76 23                	jbe    0x40691d
4068fa:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4068fe:	57                   	push   %edi
4068ff:	0f b6 39             	movzbl (%ecx),%edi
406902:	8b f0                	mov    %eax,%esi
406904:	81 e6 ff 00 00 00    	and    $0xff,%esi
40690a:	33 f7                	xor    %edi,%esi
40690c:	c1 e8 08             	shr    $0x8,%eax
40690f:	8b 34 b5 c8 7d 42 00 	mov    0x427dc8(,%esi,4),%esi
406916:	33 c6                	xor    %esi,%eax
406918:	41                   	inc    %ecx
406919:	4a                   	dec    %edx
40691a:	75 e3                	jne    0x4068ff
40691c:	5f                   	pop    %edi
40691d:	f7 d0                	not    %eax
40691f:	5e                   	pop    %esi
406920:	c2 0c 00             	ret    $0xc
406923:	b8 80 00 00 00       	mov    $0x80,%eax
406928:	48                   	dec    %eax
406929:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
40692d:	75 f9                	jne    0x406928
40692f:	83 49 78 ff          	orl    $0xffffffff,0x78(%ecx)
406933:	33 c0                	xor    %eax,%eax
406935:	40                   	inc    %eax
406936:	89 41 68             	mov    %eax,0x68(%ecx)
406939:	89 41 64             	mov    %eax,0x64(%ecx)
40693c:	89 41 60             	mov    %eax,0x60(%ecx)
40693f:	89 41 5c             	mov    %eax,0x5c(%ecx)
406942:	c3                   	ret
406943:	55                   	push   %ebp
406944:	8b ec                	mov    %esp,%ebp
406946:	81 ec 90 00 00 00    	sub    $0x90,%esp
40694c:	53                   	push   %ebx
40694d:	56                   	push   %esi
40694e:	57                   	push   %edi
40694f:	6a 22                	push   $0x22
406951:	8b f1                	mov    %ecx,%esi
406953:	59                   	pop    %ecx
406954:	8d bd 78 ff ff ff    	lea    -0x88(%ebp),%edi
40695a:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
406960:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
406962:	83 7d d0 ff          	cmpl   $0xffffffff,-0x30(%ebp)
406966:	75 08                	jne    0x406970
406968:	33 c0                	xor    %eax,%eax
40696a:	40                   	inc    %eax
40696b:	e9 20 0a 00 00       	jmp    0x407390
406970:	8b 5d bc             	mov    -0x44(%ebp),%ebx
406973:	8b 75 ac             	mov    -0x54(%ebp),%esi
406976:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
40697c:	83 f8 1c             	cmp    $0x1c,%eax
40697f:	0f 87 08 0a 00 00    	ja     0x40738d
406985:	ff 24 85 95 73 40 00 	jmp    *0x407395(,%eax,4)
40698c:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406990:	0f 84 e2 09 00 00    	je     0x407378
406996:	8b 45 90             	mov    -0x70(%ebp),%eax
406999:	ff 4d 94             	decl   -0x6c(%ebp)
40699c:	ff 45 90             	incl   -0x70(%ebp)
40699f:	8a 00                	mov    (%eax),%al
4069a1:	3c e1                	cmp    $0xe1,%al
4069a3:	0f 87 e4 09 00 00    	ja     0x40738d
4069a9:	0f b6 c0             	movzbl %al,%eax
4069ac:	6a 2d                	push   $0x2d
4069ae:	99                   	cltd
4069af:	59                   	pop    %ecx
4069b0:	f7 f9                	idiv   %ecx
4069b2:	6a 09                	push   $0x9
4069b4:	59                   	pop    %ecx
4069b5:	8b f0                	mov    %eax,%esi
4069b7:	0f b6 c2             	movzbl %dl,%eax
4069ba:	99                   	cltd
4069bb:	f7 f9                	idiv   %ecx
4069bd:	8b ce                	mov    %esi,%ecx
4069bf:	0f b6 fa             	movzbl %dl,%edi
4069c2:	33 d2                	xor    %edx,%edx
4069c4:	89 7d c4             	mov    %edi,-0x3c(%ebp)
4069c7:	42                   	inc    %edx
4069c8:	d3 e2                	shl    %cl,%edx
4069ca:	8b c8                	mov    %eax,%ecx
4069cc:	4a                   	dec    %edx
4069cd:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4069d0:	33 d2                	xor    %edx,%edx
4069d2:	42                   	inc    %edx
4069d3:	d3 e2                	shl    %cl,%edx
4069d5:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
4069d8:	be 00 03 00 00       	mov    $0x300,%esi
4069dd:	d3 e6                	shl    %cl,%esi
4069df:	4a                   	dec    %edx
4069e0:	89 55 e8             	mov    %edx,-0x18(%ebp)
4069e3:	81 c6 36 07 00 00    	add    $0x736,%esi
4069e9:	8d 3c 36             	lea    (%esi,%esi,1),%edi
4069ec:	3b 7d 88             	cmp    -0x78(%ebp),%edi
4069ef:	74 26                	je     0x406a17
4069f1:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4069f5:	74 09                	je     0x406a00
4069f7:	ff 75 fc             	push   -0x4(%ebp)
4069fa:	ff 15 28 81 40 00    	call   *0x408128
406a00:	57                   	push   %edi
406a01:	6a 40                	push   $0x40
406a03:	ff 15 34 81 40 00    	call   *0x408134
406a09:	85 c0                	test   %eax,%eax
406a0b:	89 45 fc             	mov    %eax,-0x4(%ebp)
406a0e:	0f 84 79 09 00 00    	je     0x40738d
406a14:	89 7d 88             	mov    %edi,-0x78(%ebp)
406a17:	85 f6                	test   %esi,%esi
406a19:	74 0c                	je     0x406a27
406a1b:	8b 45 fc             	mov    -0x4(%ebp),%eax
406a1e:	4e                   	dec    %esi
406a1f:	66 c7 04 70 00 04    	movw   $0x400,(%eax,%esi,2)
406a25:	75 f4                	jne    0x406a1b
406a27:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
406a2b:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
406a2f:	eb 26                	jmp    0x406a57
406a31:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406a35:	0f 84 a6 08 00 00    	je     0x4072e1
406a3b:	8b 45 b8             	mov    -0x48(%ebp),%eax
406a3e:	ff 4d 94             	decl   -0x6c(%ebp)
406a41:	8b c8                	mov    %eax,%ecx
406a43:	8b 45 90             	mov    -0x70(%ebp),%eax
406a46:	c1 e1 03             	shl    $0x3,%ecx
406a49:	0f b6 00             	movzbl (%eax),%eax
406a4c:	d3 e0                	shl    %cl,%eax
406a4e:	09 45 c0             	or     %eax,-0x40(%ebp)
406a51:	ff 45 90             	incl   -0x70(%ebp)
406a54:	ff 45 b8             	incl   -0x48(%ebp)
406a57:	83 7d b8 04          	cmpl   $0x4,-0x48(%ebp)
406a5b:	7c d4                	jl     0x406a31
406a5d:	8b 45 c0             	mov    -0x40(%ebp),%eax
406a60:	3b 45 8c             	cmp    -0x74(%ebp),%eax
406a63:	74 28                	je     0x406a8d
406a65:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
406a69:	89 45 8c             	mov    %eax,-0x74(%ebp)
406a6c:	74 09                	je     0x406a77
406a6e:	ff 75 f8             	push   -0x8(%ebp)
406a71:	ff 15 28 81 40 00    	call   *0x408128
406a77:	ff 75 c0             	push   -0x40(%ebp)
406a7a:	6a 40                	push   $0x40
406a7c:	ff 15 34 81 40 00    	call   *0x408134
406a82:	85 c0                	test   %eax,%eax
406a84:	89 45 f8             	mov    %eax,-0x8(%ebp)
406a87:	0f 84 00 09 00 00    	je     0x40738d
406a8d:	8b 45 f8             	mov    -0x8(%ebp),%eax
406a90:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
406a93:	c7 45 b8 05 00 00 00 	movl   $0x5,-0x48(%ebp)