4065e0:	74 14                	je     0x4065f6
4065e2:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
4065e9:	8b 7c 90 44          	mov    0x44(%eax,%edx,4),%edi
4065ed:	23 4d f8             	and    -0x8(%ebp),%ecx
4065f0:	23 fe                	and    %esi,%edi
4065f2:	0b cf                	or     %edi,%ecx
4065f4:	75 29                	jne    0x40661f
4065f6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4065fa:	8b 90 c4 00 00 00    	mov    0xc4(%eax),%edx
406600:	8d 48 44             	lea    0x44(%eax),%ecx
406603:	8b 39                	mov    (%ecx),%edi
406605:	23 55 f8             	and    -0x8(%ebp),%edx
406608:	23 fe                	and    %esi,%edi
40660a:	0b d7                	or     %edi,%edx
40660c:	75 0e                	jne    0x40661c
40660e:	ff 45 fc             	incl   -0x4(%ebp)
406611:	8b 91 84 00 00 00    	mov    0x84(%ecx),%edx
406617:	83 c1 04             	add    $0x4,%ecx
40661a:	eb e7                	jmp    0x406603
40661c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40661f:	8b ca                	mov    %edx,%ecx
406621:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
406627:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
40662e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406631:	8b 4c 90 44          	mov    0x44(%eax,%edx,4),%ecx
406635:	33 ff                	xor    %edi,%edi
406637:	23 ce                	and    %esi,%ecx
406639:	75 12                	jne    0x40664d
40663b:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
406642:	23 4d f8             	and    -0x8(%ebp),%ecx
406645:	6a 20                	push   $0x20
406647:	5f                   	pop    %edi
406648:	eb 03                	jmp    0x40664d
40664a:	03 c9                	add    %ecx,%ecx
40664c:	47                   	inc    %edi
40664d:	85 c9                	test   %ecx,%ecx
40664f:	7d f9                	jge    0x40664a
406651:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406654:	8b 54 f9 04          	mov    0x4(%ecx,%edi,8),%edx
406658:	8b 0a                	mov    (%edx),%ecx
40665a:	2b 4d f0             	sub    -0x10(%ebp),%ecx
40665d:	8b f1                	mov    %ecx,%esi
40665f:	c1 fe 04             	sar    $0x4,%esi
406662:	4e                   	dec    %esi
406663:	83 fe 3f             	cmp    $0x3f,%esi
406666:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406669:	7e 03                	jle    0x40666e
40666b:	6a 3f                	push   $0x3f
40666d:	5e                   	pop    %esi
40666e:	3b f7                	cmp    %edi,%esi
406670:	0f 84 01 01 00 00    	je     0x406777
406676:	8b 4a 04             	mov    0x4(%edx),%ecx
406679:	3b 4a 08             	cmp    0x8(%edx),%ecx
40667c:	75 5c                	jne    0x4066da
40667e:	83 ff 20             	cmp    $0x20,%edi
406681:	bb 00 00 00 80       	mov    $0x80000000,%ebx
406686:	7d 26                	jge    0x4066ae
406688:	8b cf                	mov    %edi,%ecx
40668a:	d3 eb                	shr    %cl,%ebx
40668c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40668f:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
406693:	f7 d3                	not    %ebx
406695:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406698:	23 5c 88 44          	and    0x44(%eax,%ecx,4),%ebx
40669c:	89 5c 88 44          	mov    %ebx,0x44(%eax,%ecx,4)
4066a0:	fe 0f                	decb   (%edi)
4066a2:	75 33                	jne    0x4066d7
4066a4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4066a7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4066aa:	21 0b                	and    %ecx,(%ebx)
4066ac:	eb 2c                	jmp    0x4066da
4066ae:	8d 4f e0             	lea    -0x20(%edi),%ecx
4066b1:	d3 eb                	shr    %cl,%ebx
4066b3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4066b6:	8d 8c 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%ecx
4066bd:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
4066c1:	f7 d3                	not    %ebx
4066c3:	21 19                	and    %ebx,(%ecx)
4066c5:	fe 0f                	decb   (%edi)
4066c7:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4066ca:	75 0b                	jne    0x4066d7
4066cc:	8b 5d 08             	mov    0x8(%ebp),%ebx
4066cf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4066d2:	21 4b 04             	and    %ecx,0x4(%ebx)
4066d5:	eb 03                	jmp    0x4066da
4066d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4066da:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4066de:	8b 4a 08             	mov    0x8(%edx),%ecx
4066e1:	8b 7a 04             	mov    0x4(%edx),%edi
4066e4:	89 79 04             	mov    %edi,0x4(%ecx)
4066e7:	8b 4a 04             	mov    0x4(%edx),%ecx
4066ea:	8b 7a 08             	mov    0x8(%edx),%edi
4066ed:	89 79 08             	mov    %edi,0x8(%ecx)
4066f0:	0f 84 8d 00 00 00    	je     0x406783
4066f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4066f9:	8d 0c f1             	lea    (%ecx,%esi,8),%ecx
4066fc:	8b 79 04             	mov    0x4(%ecx),%edi
4066ff:	89 4a 08             	mov    %ecx,0x8(%edx)
406702:	89 7a 04             	mov    %edi,0x4(%edx)
406705:	89 51 04             	mov    %edx,0x4(%ecx)
406708:	8b 4a 04             	mov    0x4(%edx),%ecx
40670b:	89 51 08             	mov    %edx,0x8(%ecx)
40670e:	8b 4a 04             	mov    0x4(%edx),%ecx
406711:	3b 4a 08             	cmp    0x8(%edx),%ecx
406714:	75 5e                	jne    0x406774
406716:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
40671a:	88 4d 0b             	mov    %cl,0xb(%ebp)
40671d:	fe c1                	inc    %cl
40671f:	83 fe 20             	cmp    $0x20,%esi
406722:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
406726:	7d 23                	jge    0x40674b
406728:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
40672c:	75 0b                	jne    0x406739
40672e:	bf 00 00 00 80       	mov    $0x80000000,%edi
406733:	8b ce                	mov    %esi,%ecx
406735:	d3 ef                	shr    %cl,%edi
406737:	09 3b                	or     %edi,(%ebx)
406739:	8b ce                	mov    %esi,%ecx
40673b:	bf 00 00 00 80       	mov    $0x80000000,%edi
406740:	d3 ef                	shr    %cl,%edi
406742:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406745:	09 7c 88 44          	or     %edi,0x44(%eax,%ecx,4)
406749:	eb 29                	jmp    0x406774
40674b:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
40674f:	75 0d                	jne    0x40675e
406751:	8d 4e e0             	lea    -0x20(%esi),%ecx
406754:	bf 00 00 00 80       	mov    $0x80000000,%edi
406759:	d3 ef                	shr    %cl,%edi
40675b:	09 7b 04             	or     %edi,0x4(%ebx)
40675e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406761:	8d bc 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%edi
406768:	8d 4e e0             	lea    -0x20(%esi),%ecx
40676b:	be 00 00 00 80       	mov    $0x80000000,%esi
406770:	d3 ee                	shr    %cl,%esi
406772:	09 37                	or     %esi,(%edi)
406774:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406777:	85 c9                	test   %ecx,%ecx
406779:	74 0b                	je     0x406786
40677b:	89 0a                	mov    %ecx,(%edx)
40677d:	89 4c 11 fc          	mov    %ecx,-0x4(%ecx,%edx,1)
406781:	eb 03                	jmp    0x406786
406783:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406786:	8b 75 f0             	mov    -0x10(%ebp),%esi
406789:	03 d1                	add    %ecx,%edx
40678b:	8d 4e 01             	lea    0x1(%esi),%ecx
40678e:	89 0a                	mov    %ecx,(%edx)
406790:	89 4c 32 fc          	mov    %ecx,-0x4(%edx,%esi,1)
406794:	8b 75 f4             	mov    -0xc(%ebp),%esi
406797:	8b 0e                	mov    (%esi),%ecx
406799:	8d 79 01             	lea    0x1(%ecx),%edi
40679c:	89 3e                	mov    %edi,(%esi)
40679e:	85 c9                	test   %ecx,%ecx
4067a0:	75 1a                	jne    0x4067bc
4067a2:	3b 1d bc cf 45 00    	cmp    0x45cfbc,%ebx
4067a8:	75 12                	jne    0x4067bc
4067aa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4067ad:	3b 0d d8 0a 89 00    	cmp    0x890ad8,%ecx
4067b3:	75 07                	jne    0x4067bc
4067b5:	83 25 bc cf 45 00 00 	andl   $0x0,0x45cfbc
4067bc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4067bf:	89 08                	mov    %ecx,(%eax)
4067c1:	8d 42 04             	lea    0x4(%edx),%eax
4067c4:	5f                   	pop    %edi
4067c5:	5e                   	pop    %esi
4067c6:	5b                   	pop    %ebx
4067c7:	c9                   	leave
4067c8:	c3                   	ret
4067c9:	cc                   	int3
4067ca:	cc                   	int3
4067cb:	cc                   	int3
4067cc:	53                   	push   %ebx
4067cd:	56                   	push   %esi
4067ce:	57                   	push   %edi
4067cf:	8b 54 24 10          	mov    0x10(%esp),%edx
4067d3:	8b 44 24 14          	mov    0x14(%esp),%eax
4067d7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4067db:	55                   	push   %ebp
4067dc:	52                   	push   %edx
4067dd:	50                   	push   %eax
4067de:	51                   	push   %ecx
4067df:	51                   	push   %ecx
4067e0:	68 5c 68 40 00       	push   $0x40685c
4067e5:	64 ff 35 00 00 00 00 	push   %fs:0x0
4067ec:	a1 04 b0 40 00       	mov    0x40b004,%eax
4067f1:	33 c4                	xor    %esp,%eax
4067f3:	89 44 24 08          	mov    %eax,0x8(%esp)
4067f7:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4067fe:	8b 44 24 30          	mov    0x30(%esp),%eax
406802:	8b 58 08             	mov    0x8(%eax),%ebx
406805:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
406809:	33 19                	xor    (%ecx),%ebx
40680b:	8b 70 0c             	mov    0xc(%eax),%esi
40680e:	83 fe fe             	cmp    $0xfffffffe,%esi
406811:	74 3b                	je     0x40684e
406813:	8b 54 24 34          	mov    0x34(%esp),%edx
406817:	83 fa fe             	cmp    $0xfffffffe,%edx
40681a:	74 04                	je     0x406820
40681c:	3b f2                	cmp    %edx,%esi
40681e:	76 2e                	jbe    0x40684e
406820:	8d 34 76             	lea    (%esi,%esi,2),%esi
406823:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
406827:	8b 0b                	mov    (%ebx),%ecx
406829:	89 48 0c             	mov    %ecx,0xc(%eax)
40682c:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
406830:	75 cc                	jne    0x4067fe
406832:	68 01 01 00 00       	push   $0x101
406837:	8b 43 08             	mov    0x8(%ebx),%eax
40683a:	e8 ee 17 00 00       	call   0x40802d
40683f:	b9 01 00 00 00       	mov    $0x1,%ecx
406844:	8b 43 08             	mov    0x8(%ebx),%eax
406847:	e8 00 18 00 00       	call   0x40804c
40684c:	eb b0                	jmp    0x4067fe
40684e:	64 8f 05 00 00 00 00 	pop    %fs:0x0
406855:	83 c4 18             	add    $0x18,%esp
406858:	5f                   	pop    %edi
406859:	5e                   	pop    %esi
40685a:	5b                   	pop    %ebx
40685b:	c3                   	ret
40685c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406860:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
406867:	b8 01 00 00 00       	mov    $0x1,%eax
40686c:	74 33                	je     0x4068a1
40686e:	8b 44 24 08          	mov    0x8(%esp),%eax
406872:	8b 48 08             	mov    0x8(%eax),%ecx
406875:	33 c8                	xor    %eax,%ecx
406877:	e8 74 bb ff ff       	call   0x4023f0
40687c:	55                   	push   %ebp
40687d:	8b 68 18             	mov    0x18(%eax),%ebp
406880:	ff 70 0c             	push   0xc(%eax)
406883:	ff 70 10             	push   0x10(%eax)
406886:	ff 70 14             	push   0x14(%eax)
406889:	e8 3e ff ff ff       	call   0x4067cc
40688e:	83 c4 0c             	add    $0xc,%esp
406891:	5d                   	pop    %ebp
406892:	8b 44 24 08          	mov    0x8(%esp),%eax
406896:	8b 54 24 10          	mov    0x10(%esp),%edx
40689a:	89 02                	mov    %eax,(%edx)
40689c:	b8 03 00 00 00       	mov    $0x3,%eax
4068a1:	c3                   	ret
4068a2:	55                   	push   %ebp
4068a3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4068a7:	8b 29                	mov    (%ecx),%ebp
4068a9:	ff 71 1c             	push   0x1c(%ecx)
4068ac:	ff 71 18             	push   0x18(%ecx)
4068af:	ff 71 28             	push   0x28(%ecx)
4068b2:	e8 15 ff ff ff       	call   0x4067cc
4068b7:	83 c4 0c             	add    $0xc,%esp
4068ba:	5d                   	pop    %ebp
4068bb:	c2 04 00             	ret    $0x4
4068be:	55                   	push   %ebp
4068bf:	56                   	push   %esi
4068c0:	57                   	push   %edi
4068c1:	53                   	push   %ebx
4068c2:	8b ea                	mov    %edx,%ebp
4068c4:	33 c0                	xor    %eax,%eax
4068c6:	33 db                	xor    %ebx,%ebx
4068c8:	33 d2                	xor    %edx,%edx
4068ca:	33 f6                	xor    %esi,%esi
4068cc:	33 ff                	xor    %edi,%edi
4068ce:	ff d1                	call   *%ecx
4068d0:	5b                   	pop    %ebx
4068d1:	5f                   	pop    %edi
4068d2:	5e                   	pop    %esi
4068d3:	5d                   	pop    %ebp
4068d4:	c3                   	ret
4068d5:	8b ea                	mov    %edx,%ebp
4068d7:	8b f1                	mov    %ecx,%esi
4068d9:	8b c1                	mov    %ecx,%eax
4068db:	6a 01                	push   $0x1
4068dd:	e8 4b 17 00 00       	call   0x40802d
4068e2:	33 c0                	xor    %eax,%eax
4068e4:	33 db                	xor    %ebx,%ebx
4068e6:	33 c9                	xor    %ecx,%ecx
4068e8:	33 d2                	xor    %edx,%edx
4068ea:	33 ff                	xor    %edi,%edi
4068ec:	ff e6                	jmp    *%esi
4068ee:	55                   	push   %ebp
4068ef:	8b ec                	mov    %esp,%ebp
4068f1:	53                   	push   %ebx
4068f2:	56                   	push   %esi
4068f3:	57                   	push   %edi
4068f4:	6a 00                	push   $0x0
4068f6:	6a 00                	push   $0x0
4068f8:	68 03 69 40 00       	push   $0x406903
4068fd:	51                   	push   %ecx
4068fe:	e8 db 1b 00 00       	call   0x4084de
406903:	5f                   	pop    %edi
406904:	5e                   	pop    %esi
406905:	5b                   	pop    %ebx
406906:	5d                   	pop    %ebp
406907:	c3                   	ret
406908:	55                   	push   %ebp
406909:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40690d:	52                   	push   %edx
40690e:	51                   	push   %ecx
40690f:	ff 74 24 14          	push   0x14(%esp)
406913:	e8 b4 fe ff ff       	call   0x4067cc
406918:	83 c4 0c             	add    $0xc,%esp
40691b:	5d                   	pop    %ebp
40691c:	c2 08 00             	ret    $0x8
40691f:	cc                   	int3
406920:	8b 54 24 0c          	mov    0xc(%esp),%edx
406924:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406928:	85 d2                	test   %edx,%edx
40692a:	74 69                	je     0x406995
40692c:	33 c0                	xor    %eax,%eax
40692e:	8a 44 24 08          	mov    0x8(%esp),%al
406932:	84 c0                	test   %al,%al
406934:	75 16                	jne    0x40694c
406936:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40693c:	72 0e                	jb     0x40694c
40693e:	83 3d c0 0a 89 00 00 	cmpl   $0x0,0x890ac0
406945:	74 05                	je     0x40694c
406947:	e9 5a 17 00 00       	jmp    0x4080a6
40694c:	57                   	push   %edi
40694d:	8b f9                	mov    %ecx,%edi
40694f:	83 fa 04             	cmp    $0x4,%edx
406952:	72 31                	jb     0x406985
406954:	f7 d9                	neg    %ecx
406956:	83 e1 03             	and    $0x3,%ecx
406959:	74 0c                	je     0x406967
40695b:	2b d1                	sub    %ecx,%edx
40695d:	88 07                	mov    %al,(%edi)
40695f:	83 c7 01             	add    $0x1,%edi
406962:	83 e9 01             	sub    $0x1,%ecx
406965:	75 f6                	jne    0x40695d
406967:	8b c8                	mov    %eax,%ecx
406969:	c1 e0 08             	shl    $0x8,%eax
40696c:	03 c1                	add    %ecx,%eax
40696e:	8b c8                	mov    %eax,%ecx
406970:	c1 e0 10             	shl    $0x10,%eax
406973:	03 c1                	add    %ecx,%eax
406975:	8b ca                	mov    %edx,%ecx
406977:	83 e2 03             	and    $0x3,%edx
40697a:	c1 e9 02             	shr    $0x2,%ecx
40697d:	74 06                	je     0x406985
40697f:	f3 ab                	rep stos %eax,%es:(%edi)
406981:	85 d2                	test   %edx,%edx
406983:	74 0a                	je     0x40698f
406985:	88 07                	mov    %al,(%edi)
406987:	83 c7 01             	add    $0x1,%edi
40698a:	83 ea 01             	sub    $0x1,%edx
40698d:	75 f6                	jne    0x406985
40698f:	8b 44 24 08          	mov    0x8(%esp),%eax
406993:	5f                   	pop    %edi
406994:	c3                   	ret
406995:	8b 44 24 04          	mov    0x4(%esp),%eax
406999:	c3                   	ret
40699a:	8b ff                	mov    %edi,%edi
40699c:	55                   	push   %ebp