41167d:	89 b5 3c fd ff ff    	mov    %esi,-0x2c4(%ebp)
411683:	8b 14 3e             	mov    (%esi,%edi,1),%edx
411686:	8b ca                	mov    %edx,%ecx
411688:	66 8b 30             	mov    (%eax),%si
41168b:	83 a5 44 fd ff ff 00 	andl   $0x0,-0x2bc(%ebp)
411692:	66 3b 31             	cmp    (%ecx),%si
411695:	8b b5 3c fd ff ff    	mov    -0x2c4(%ebp),%esi
41169b:	75 35                	jne    0x4116d2
41169d:	66 83 38 00          	cmpw   $0x0,(%eax)
4116a1:	74 27                	je     0x4116ca
4116a3:	66 8b 70 02          	mov    0x2(%eax),%si
4116a7:	66 3b 71 02          	cmp    0x2(%ecx),%si
4116ab:	66 89 b5 42 fd ff ff 	mov    %si,-0x2be(%ebp)
4116b2:	8b b5 3c fd ff ff    	mov    -0x2c4(%ebp),%esi
4116b8:	75 18                	jne    0x4116d2
4116ba:	83 c0 04             	add    $0x4,%eax
4116bd:	83 c1 04             	add    $0x4,%ecx
4116c0:	66 83 bd 42 fd ff ff 	cmpw   $0x0,-0x2be(%ebp)
4116c7:	00
4116c8:	75 be                	jne    0x411688
4116ca:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
4116d0:	eb 05                	jmp    0x4116d7
4116d2:	1b c0                	sbb    %eax,%eax
4116d4:	83 c8 01             	or     $0x1,%eax
4116d7:	85 c0                	test   %eax,%eax
4116d9:	75 07                	jne    0x4116e2
4116db:	8b c2                	mov    %edx,%eax
4116dd:	e9 41 02 00 00       	jmp    0x411923
4116e2:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
4116e8:	8d 51 02             	lea    0x2(%ecx),%edx
4116eb:	66 8b 01             	mov    (%ecx),%ax
4116ee:	83 c1 02             	add    $0x2,%ecx
4116f1:	66 3b 85 44 fd ff ff 	cmp    -0x2bc(%ebp),%ax
4116f8:	75 f1                	jne    0x4116eb
4116fa:	2b ca                	sub    %edx,%ecx
4116fc:	d1 f9                	sar    $1,%ecx
4116fe:	8d 41 01             	lea    0x1(%ecx),%eax
411701:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
411707:	8d 04 45 04 00 00 00 	lea    0x4(,%eax,2),%eax
41170e:	50                   	push   %eax
41170f:	e8 52 24 00 00       	call   0x413b66
411714:	89 85 30 fd ff ff    	mov    %eax,-0x2d0(%ebp)
41171a:	59                   	pop    %ecx
41171b:	85 c0                	test   %eax,%eax
41171d:	0f 84 fe 01 00 00    	je     0x411921
411723:	8b 0c 3e             	mov    (%esi,%edi,1),%ecx
411726:	83 c0 04             	add    $0x4,%eax
411729:	89 8d 34 fd ff ff    	mov    %ecx,-0x2cc(%ebp)
41172f:	8b 8c 9f a0 00 00 00 	mov    0xa0(%edi,%ebx,4),%ecx
411736:	89 8d 20 fd ff ff    	mov    %ecx,-0x2e0(%ebp)
41173c:	8b 4f 08             	mov    0x8(%edi),%ecx
41173f:	89 8d 1c fd ff ff    	mov    %ecx,-0x2e4(%ebp)
411745:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
41174b:	51                   	push   %ecx
41174c:	ff b5 40 fd ff ff    	push   -0x2c0(%ebp)
411752:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
411758:	50                   	push   %eax
411759:	e8 ff 72 00 00       	call   0x418a5d
41175e:	83 c4 0c             	add    $0xc,%esp
411761:	85 c0                	test   %eax,%eax
411763:	0f 85 38 02 00 00    	jne    0x4119a1
411769:	66 83 bd f4 fe ff ff 	cmpw   $0x43,-0x10c(%ebp)
411770:	43
411771:	8b 85 2c fd ff ff    	mov    -0x2d4(%ebp),%eax
411777:	89 04 3e             	mov    %eax,(%esi,%edi,1)
41177a:	75 14                	jne    0x411790
41177c:	66 83 bd f6 fe ff ff 	cmpw   $0x0,-0x10a(%ebp)
411783:	00
411784:	75 0a                	jne    0x411790
411786:	8b 95 44 fd ff ff    	mov    -0x2bc(%ebp),%edx
41178c:	8b c2                	mov    %edx,%eax
41178e:	eb 13                	jmp    0x4117a3
411790:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
411796:	50                   	push   %eax
411797:	e8 79 f2 ff ff       	call   0x410a15
41179c:	8b 95 44 fd ff ff    	mov    -0x2bc(%ebp),%edx
4117a2:	59                   	pop    %ecx
4117a3:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
4117aa:	83 fb 02             	cmp    $0x2,%ebx
4117ad:	0f 85 f8 00 00 00    	jne    0x4118ab
4117b3:	8b b5 28 fd ff ff    	mov    -0x2d8(%ebp),%esi
4117b9:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
4117bf:	89 47 08             	mov    %eax,0x8(%edi)
4117c2:	8b 4e 20             	mov    0x20(%esi),%ecx
4117c5:	89 8d 40 fd ff ff    	mov    %ecx,-0x2c0(%ebp)
4117cb:	8b 4e 24             	mov    0x24(%esi),%ecx
4117ce:	89 8d 38 fd ff ff    	mov    %ecx,-0x2c8(%ebp)
4117d4:	8b 47 08             	mov    0x8(%edi),%eax
4117d7:	3b 04 d6             	cmp    (%esi,%edx,8),%eax
4117da:	74 34                	je     0x411810
4117dc:	8b 04 d6             	mov    (%esi,%edx,8),%eax
4117df:	8b 9d 40 fd ff ff    	mov    -0x2c0(%ebp),%ebx
4117e5:	8b 4c d6 04          	mov    0x4(%esi,%edx,8),%ecx
4117e9:	89 1c d6             	mov    %ebx,(%esi,%edx,8)
4117ec:	8b 9d 38 fd ff ff    	mov    -0x2c8(%ebp),%ebx
4117f2:	89 5c d6 04          	mov    %ebx,0x4(%esi,%edx,8)
4117f6:	42                   	inc    %edx
4117f7:	8b 9d 24 fd ff ff    	mov    -0x2dc(%ebp),%ebx
4117fd:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
411803:	89 8d 38 fd ff ff    	mov    %ecx,-0x2c8(%ebp)
411809:	83 fa 05             	cmp    $0x5,%edx
41180c:	7c c6                	jl     0x4117d4
41180e:	eb 1d                	jmp    0x41182d
411810:	85 d2                	test   %edx,%edx
411812:	74 19                	je     0x41182d
411814:	8b 04 d6             	mov    (%esi,%edx,8),%eax
411817:	89 06                	mov    %eax,(%esi)
411819:	8b 44 d6 04          	mov    0x4(%esi,%edx,8),%eax
41181d:	89 46 04             	mov    %eax,0x4(%esi)
411820:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
411826:	89 04 d6             	mov    %eax,(%esi,%edx,8)
411829:	89 4c d6 04          	mov    %ecx,0x4(%esi,%edx,8)
41182d:	83 fa 05             	cmp    $0x5,%edx
411830:	75 71                	jne    0x4118a3
411832:	6a 01                	push   $0x1
411834:	ff 77 08             	push   0x8(%edi)
411837:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
41183d:	50                   	push   %eax
41183e:	6a 7f                	push   $0x7f
411840:	68 f8 74 42 00       	push   $0x4274f8
411845:	6a 01                	push   $0x1
411847:	ff b5 44 fd ff ff    	push   -0x2bc(%ebp)
41184d:	e8 d5 6e 00 00       	call   0x418727
411852:	83 c4 1c             	add    $0x1c,%esp
411855:	85 c0                	test   %eax,%eax
411857:	74 3c                	je     0x411895
411859:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
41185f:	b9 ff 01 00 00       	mov    $0x1ff,%ecx
411864:	66 21 8c 45 f4 fd ff 	and    %cx,-0x20c(%ebp,%eax,2)
41186b:	ff
41186c:	40                   	inc    %eax
41186d:	83 f8 7f             	cmp    $0x7f,%eax
411870:	72 ed                	jb     0x41185f
411872:	68 fe 00 00 00       	push   $0xfe
411877:	ff 35 80 31 43 00    	push   0x433180
41187d:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
411883:	50                   	push   %eax
411884:	e8 d7 77 ff ff       	call   0x409060
411889:	33 c9                	xor    %ecx,%ecx
41188b:	83 c4 0c             	add    $0xc,%esp
41188e:	85 c0                	test   %eax,%eax
411890:	0f 94 c1             	sete   %cl
411893:	eb 06                	jmp    0x41189b
411895:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
41189b:	89 4e 04             	mov    %ecx,0x4(%esi)
41189e:	8b 47 08             	mov    0x8(%edi),%eax
4118a1:	89 06                	mov    %eax,(%esi)
4118a3:	8b 46 04             	mov    0x4(%esi),%eax
4118a6:	89 47 18             	mov    %eax,0x18(%edi)
4118a9:	eb 1e                	jmp    0x4118c9
4118ab:	83 fb 01             	cmp    $0x1,%ebx
4118ae:	75 0b                	jne    0x4118bb
4118b0:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
4118b6:	89 47 10             	mov    %eax,0x10(%edi)
4118b9:	eb 0e                	jmp    0x4118c9
4118bb:	83 fb 05             	cmp    $0x5,%ebx
4118be:	75 09                	jne    0x4118c9
4118c0:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
4118c6:	89 47 14             	mov    %eax,0x14(%edi)
4118c9:	6b c3 0c             	imul   $0xc,%ebx,%eax
4118cc:	57                   	push   %edi
4118cd:	8b b0 80 75 42 00    	mov    0x427580(%eax),%esi
4118d3:	8b ce                	mov    %esi,%ecx
4118d5:	ff 15 54 41 42 00    	call   *0x424154
4118db:	ff d6                	call   *%esi
4118dd:	59                   	pop    %ecx
4118de:	8b 8d 34 fd ff ff    	mov    -0x2cc(%ebp),%ecx
4118e4:	85 c0                	test   %eax,%eax
4118e6:	74 4a                	je     0x411932
4118e8:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
4118ee:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
4118f1:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
4118f8:	e8 0e 18 00 00       	call   0x41310b
4118fd:	8b 8d 30 fd ff ff    	mov    -0x2d0(%ebp),%ecx
411903:	8b 85 20 fd ff ff    	mov    -0x2e0(%ebp),%eax
411909:	51                   	push   %ecx
41190a:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
411911:	e8 f5 17 00 00       	call   0x41310b
411916:	8b 85 1c fd ff ff    	mov    -0x2e4(%ebp),%eax
41191c:	59                   	pop    %ecx
41191d:	59                   	pop    %ecx
41191e:	89 47 08             	mov    %eax,0x8(%edi)
411921:	33 c0                	xor    %eax,%eax
411923:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411926:	5f                   	pop    %edi
411927:	5e                   	pop    %esi
411928:	33 cd                	xor    %ebp,%ecx
41192a:	5b                   	pop    %ebx
41192b:	e8 dc 5a ff ff       	call   0x40740c
411930:	c9                   	leave
411931:	c3                   	ret
411932:	81 f9 90 32 43 00    	cmp    $0x433290,%ecx
411938:	74 4a                	je     0x411984
41193a:	8b f3                	mov    %ebx,%esi
41193c:	83 c9 ff             	or     $0xffffffff,%ecx
41193f:	03 f6                	add    %esi,%esi
411941:	8b 44 f7 28          	mov    0x28(%edi,%esi,8),%eax
411945:	f0 0f c1 08          	lock xadd %ecx,(%eax)
411949:	75 39                	jne    0x411984
41194b:	ff 74 f7 28          	push   0x28(%edi,%esi,8)
41194f:	e8 b7 17 00 00       	call   0x41310b
411954:	ff 74 f7 24          	push   0x24(%edi,%esi,8)
411958:	e8 ae 17 00 00       	call   0x41310b
41195d:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
411964:	e8 a2 17 00 00       	call   0x41310b
411969:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
41196f:	83 c4 0c             	add    $0xc,%esp
411972:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
411978:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
41197b:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
411982:	eb 06                	jmp    0x41198a
411984:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
41198a:	8b 8d 30 fd ff ff    	mov    -0x2d0(%ebp),%ecx
411990:	03 db                	add    %ebx,%ebx
411992:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
411998:	8b 04 38             	mov    (%eax,%edi,1),%eax
41199b:	89 4c df 28          	mov    %ecx,0x28(%edi,%ebx,8)
41199f:	eb 82                	jmp    0x411923
4119a1:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
4119a7:	50                   	push   %eax
4119a8:	50                   	push   %eax
4119a9:	50                   	push   %eax
4119aa:	50                   	push   %eax
4119ab:	50                   	push   %eax
4119ac:	e8 fd b6 ff ff       	call   0x40d0ae
4119b1:	cc                   	int3
4119b2:	8b ff                	mov    %edi,%edi
4119b4:	55                   	push   %ebp
4119b5:	8b ec                	mov    %esp,%ebp
4119b7:	51                   	push   %ecx
4119b8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4119bc:	8d 45 fc             	lea    -0x4(%ebp),%eax
4119bf:	6a 02                	push   $0x2
4119c1:	50                   	push   %eax
4119c2:	68 04 10 00 20       	push   $0x20001004
4119c7:	ff 75 08             	push   0x8(%ebp)
4119ca:	e8 48 1c 00 00       	call   0x413617
4119cf:	85 c0                	test   %eax,%eax
4119d1:	74 07                	je     0x4119da
4119d3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4119d6:	85 c0                	test   %eax,%eax
4119d8:	75 05                	jne    0x4119df
4119da:	b8 e9 fd 00 00       	mov    $0xfde9,%eax
4119df:	c9                   	leave
4119e0:	c3                   	ret
4119e1:	8b ff                	mov    %edi,%edi
4119e3:	55                   	push   %ebp
4119e4:	8b ec                	mov    %esp,%ebp
4119e6:	83 ec 48             	sub    $0x48,%esp
4119e9:	a1 14 30 43 00       	mov    0x433014,%eax
4119ee:	33 c5                	xor    %ebp,%eax
4119f0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4119f3:	8b 45 0c             	mov    0xc(%ebp),%eax
4119f6:	53                   	push   %ebx
4119f7:	56                   	push   %esi
4119f8:	8b 75 08             	mov    0x8(%ebp),%esi
4119fb:	33 db                	xor    %ebx,%ebx
4119fd:	57                   	push   %edi
4119fe:	68 ca 01 00 00       	push   $0x1ca
411a03:	53                   	push   %ebx
411a04:	56                   	push   %esi
411a05:	89 75 b8             	mov    %esi,-0x48(%ebp)
411a08:	89 45 c0             	mov    %eax,-0x40(%ebp)
411a0b:	89 5d bc             	mov    %ebx,-0x44(%ebp)
411a0e:	e8 dd 74 ff ff       	call   0x408ef0
411a13:	8b 55 c0             	mov    -0x40(%ebp),%edx
411a16:	8d 4d d0             	lea    -0x30(%ebp),%ecx
411a19:	8b c3                	mov    %ebx,%eax
411a1b:	89 4d c8             	mov    %ecx,-0x38(%ebp)
411a1e:	83 c4 0c             	add    $0xc,%esp
411a21:	89 45 c4             	mov    %eax,-0x3c(%ebp)
411a24:	8b fb                	mov    %ebx,%edi
411a26:	43                   	inc    %ebx
411a27:	83 ff 04             	cmp    $0x4,%edi
411a2a:	0f 83 8a 01 00 00    	jae    0x411bba
411a30:	83 f8 02             	cmp    $0x2,%eax
411a33:	74 14                	je     0x411a49
411a35:	68 4c 76 42 00       	push   $0x42764c
411a3a:	52                   	push   %edx
411a3b:	e8 66 aa 00 00       	call   0x41c4a6
411a40:	8b 55 c0             	mov    -0x40(%ebp),%edx
411a43:	59                   	pop    %ecx
411a44:	59                   	pop    %ecx
411a45:	8b c8                	mov    %eax,%ecx
411a47:	eb 15                	jmp    0x411a5e
411a49:	8b ca                	mov    %edx,%ecx
411a4b:	8d 71 02             	lea    0x2(%ecx),%esi
411a4e:	66 8b 01             	mov    (%ecx),%ax
411a51:	83 c1 02             	add    $0x2,%ecx
411a54:	66 3b 45 bc          	cmp    -0x44(%ebp),%ax
411a58:	75 f4                	jne    0x411a4e
411a5a:	2b ce                	sub    %esi,%ecx
411a5c:	d1 f9                	sar    $1,%ecx
411a5e:	8b 45 c8             	mov    -0x38(%ebp),%eax
411a61:	47                   	inc    %edi
411a62:	8b 75 c8             	mov    -0x38(%ebp),%esi
411a65:	83 45 c8 0c          	addl   $0xc,-0x38(%ebp)
411a69:	89 50 fc             	mov    %edx,-0x4(%eax)
411a6c:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
411a6f:	89 08                	mov    %ecx,(%eax)
411a71:	8b 45 c4             	mov    -0x3c(%ebp),%eax
411a74:	89 46 04             	mov    %eax,0x4(%esi)
411a77:	0f b7 02             	movzwl (%edx),%eax
411a7a:	8b 75 b8             	mov    -0x48(%ebp),%esi
411a7d:	83 e8 2d             	sub    $0x2d,%eax
411a80:	74 16                	je     0x411a98
411a82:	83 e8 01             	sub    $0x1,%eax
411a85:	74 0c                	je     0x411a93
411a87:	83 e8 31             	sub    $0x31,%eax
411a8a:	74 0c                	je     0x411a98
411a8c:	8b c3                	mov    %ebx,%eax
411a8e:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
411a91:	eb 0a                	jmp    0x411a9d
411a93:	6a 02                	push   $0x2
411a95:	58                   	pop    %eax
411a96:	eb 02                	jmp    0x411a9a
411a98:	33 c0                	xor    %eax,%eax
411a9a:	89 45 c4             	mov    %eax,-0x3c(%ebp)
411a9d:	83 c2 02             	add    $0x2,%edx
411aa0:	89 55 c0             	mov    %edx,-0x40(%ebp)
411aa3:	3b c3                	cmp    %ebx,%eax
411aa5:	75 80                	jne    0x411a27
411aa7:	83 ef 01             	sub    $0x1,%edi
411aaa:	0f 84 fc 00 00 00    	je     0x411bac
411ab0:	83 ef 01             	sub    $0x1,%edi
411ab3:	0f 84 ab 00 00 00    	je     0x411b64
411ab9:	83 ef 01             	sub    $0x1,%edi
411abc:	74 4d                	je     0x411b0b
411abe:	83 ef 01             	sub    $0x1,%edi
411ac1:	0f 85 f3 00 00 00    	jne    0x411bba
411ac7:	8d 45 cc             	lea    -0x34(%ebp),%eax
411aca:	50                   	push   %eax
411acb:	56                   	push   %esi
411acc:	e8 39 01 00 00       	call   0x411c0a
411ad1:	59                   	pop    %ecx
411ad2:	59                   	pop    %ecx
411ad3:	84 c0                	test   %al,%al
411ad5:	0f 84 c9 00 00 00    	je     0x411ba4
411adb:	8d 45 d8             	lea    -0x28(%ebp),%eax
411ade:	50                   	push   %eax
411adf:	56                   	push   %esi
411ae0:	e8 50 02 00 00       	call   0x411d35
411ae5:	59                   	pop    %ecx
411ae6:	59                   	pop    %ecx
411ae7:	84 c0                	test   %al,%al
411ae9:	0f 84 b5 00 00 00    	je     0x411ba4
411aef:	8d 45 e4             	lea    -0x1c(%ebp),%eax
411af2:	50                   	push   %eax
411af3:	56                   	push   %esi
411af4:	e8 83 01 00 00       	call   0x411c7c