40b7e7:	c6 41 04 00          	movb   $0x0,0x4(%ecx)
40b7eb:	5f                   	pop    %edi
40b7ec:	5d                   	pop    %ebp
40b7ed:	c3                   	ret
40b7ee:	55                   	push   %ebp
40b7ef:	8b ec                	mov    %esp,%ebp
40b7f1:	56                   	push   %esi
40b7f2:	8b 75 08             	mov    0x8(%ebp),%esi
40b7f5:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
40b7f9:	74 08                	je     0x40b803
40b7fb:	ff 36                	push   (%esi)
40b7fd:	e8 0e b4 ff ff       	call   0x406c10
40b802:	59                   	pop    %ecx
40b803:	83 26 00             	andl   $0x0,(%esi)
40b806:	c6 46 04 00          	movb   $0x0,0x4(%esi)
40b80a:	5e                   	pop    %esi
40b80b:	5d                   	pop    %ebp
40b80c:	c3                   	ret
40b80d:	55                   	push   %ebp
40b80e:	8b ec                	mov    %esp,%ebp
40b810:	83 ec 14             	sub    $0x14,%esp
40b813:	8b 45 08             	mov    0x8(%ebp),%eax
40b816:	53                   	push   %ebx
40b817:	57                   	push   %edi
40b818:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b81b:	bb 20 05 93 19       	mov    $0x19930520,%ebx
40b820:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b823:	85 ff                	test   %edi,%edi
40b825:	74 2e                	je     0x40b855
40b827:	f6 07 10             	testb  $0x10,(%edi)
40b82a:	74 1e                	je     0x40b84a
40b82c:	8b 08                	mov    (%eax),%ecx
40b82e:	83 e9 04             	sub    $0x4,%ecx
40b831:	56                   	push   %esi
40b832:	51                   	push   %ecx
40b833:	8b 01                	mov    (%ecx),%eax
40b835:	8b 70 20             	mov    0x20(%eax),%esi
40b838:	8b ce                	mov    %esi,%ecx
40b83a:	8b 78 18             	mov    0x18(%eax),%edi
40b83d:	ff 15 68 12 43 00    	call   *0x431268
40b843:	ff d6                	call   *%esi
40b845:	5e                   	pop    %esi
40b846:	85 ff                	test   %edi,%edi
40b848:	74 0b                	je     0x40b855
40b84a:	f6 07 08             	testb  $0x8,(%edi)
40b84d:	b8 00 40 99 01       	mov    $0x1994000,%eax
40b852:	0f 45 d8             	cmovne %eax,%ebx
40b855:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b858:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b85b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b85e:	50                   	push   %eax
40b85f:	6a 03                	push   $0x3
40b861:	6a 01                	push   $0x1
40b863:	68 63 73 6d e0       	push   $0xe06d7363
40b868:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40b86b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b86e:	ff 15 d0 10 43 00    	call   *0x4310d0
40b874:	5f                   	pop    %edi
40b875:	5b                   	pop    %ebx
40b876:	c9                   	leave
40b877:	c2 08 00             	ret    $0x8
40b87a:	cc                   	int3
40b87b:	cc                   	int3
40b87c:	cc                   	int3
40b87d:	cc                   	int3
40b87e:	cc                   	int3
40b87f:	cc                   	int3
40b880:	83 3d d0 f5 43 00 01 	cmpl   $0x1,0x43f5d0
40b887:	72 5f                	jb     0x40b8e8
40b889:	0f b6 44 24 08       	movzbl 0x8(%esp),%eax
40b88e:	8b d0                	mov    %eax,%edx
40b890:	c1 e0 08             	shl    $0x8,%eax
40b893:	0b d0                	or     %eax,%edx
40b895:	66 0f 6e da          	movd   %edx,%xmm3
40b899:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
40b89e:	0f 16 db             	movlhps %xmm3,%xmm3
40b8a1:	8b 54 24 04          	mov    0x4(%esp),%edx
40b8a5:	b9 0f 00 00 00       	mov    $0xf,%ecx
40b8aa:	83 c8 ff             	or     $0xffffffff,%eax
40b8ad:	23 ca                	and    %edx,%ecx
40b8af:	d3 e0                	shl    %cl,%eax
40b8b1:	2b d1                	sub    %ecx,%edx
40b8b3:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
40b8b7:	66 0f ef d2          	pxor   %xmm2,%xmm2
40b8bb:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
40b8bf:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
40b8c3:	66 0f eb d1          	por    %xmm1,%xmm2
40b8c7:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
40b8cb:	23 c8                	and    %eax,%ecx
40b8cd:	75 08                	jne    0x40b8d7
40b8cf:	83 c8 ff             	or     $0xffffffff,%eax
40b8d2:	83 c2 10             	add    $0x10,%edx
40b8d5:	eb dc                	jmp    0x40b8b3
40b8d7:	0f bc c1             	bsf    %ecx,%eax
40b8da:	03 c2                	add    %edx,%eax
40b8dc:	66 0f 7e da          	movd   %xmm3,%edx
40b8e0:	33 c9                	xor    %ecx,%ecx
40b8e2:	3a 10                	cmp    (%eax),%dl
40b8e4:	0f 45 c1             	cmovne %ecx,%eax
40b8e7:	c3                   	ret
40b8e8:	33 c0                	xor    %eax,%eax
40b8ea:	8a 44 24 08          	mov    0x8(%esp),%al
40b8ee:	53                   	push   %ebx
40b8ef:	8b d8                	mov    %eax,%ebx
40b8f1:	c1 e0 08             	shl    $0x8,%eax
40b8f4:	8b 54 24 08          	mov    0x8(%esp),%edx
40b8f8:	f7 c2 03 00 00 00    	test   $0x3,%edx
40b8fe:	74 15                	je     0x40b915
40b900:	8a 0a                	mov    (%edx),%cl
40b902:	83 c2 01             	add    $0x1,%edx
40b905:	3a cb                	cmp    %bl,%cl
40b907:	74 59                	je     0x40b962
40b909:	84 c9                	test   %cl,%cl
40b90b:	74 51                	je     0x40b95e
40b90d:	f7 c2 03 00 00 00    	test   $0x3,%edx
40b913:	75 eb                	jne    0x40b900
40b915:	0b d8                	or     %eax,%ebx
40b917:	57                   	push   %edi
40b918:	8b c3                	mov    %ebx,%eax
40b91a:	c1 e3 10             	shl    $0x10,%ebx
40b91d:	56                   	push   %esi
40b91e:	0b d8                	or     %eax,%ebx
40b920:	8b 0a                	mov    (%edx),%ecx
40b922:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
40b927:	8b c1                	mov    %ecx,%eax
40b929:	8b f7                	mov    %edi,%esi
40b92b:	33 cb                	xor    %ebx,%ecx
40b92d:	03 f0                	add    %eax,%esi
40b92f:	03 f9                	add    %ecx,%edi
40b931:	83 f1 ff             	xor    $0xffffffff,%ecx
40b934:	83 f0 ff             	xor    $0xffffffff,%eax
40b937:	33 cf                	xor    %edi,%ecx
40b939:	33 c6                	xor    %esi,%eax
40b93b:	83 c2 04             	add    $0x4,%edx
40b93e:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
40b944:	75 21                	jne    0x40b967
40b946:	25 00 01 01 81       	and    $0x81010100,%eax
40b94b:	74 d3                	je     0x40b920
40b94d:	25 00 01 01 01       	and    $0x1010100,%eax
40b952:	75 08                	jne    0x40b95c
40b954:	81 e6 00 00 00 80    	and    $0x80000000,%esi
40b95a:	75 c4                	jne    0x40b920
40b95c:	5e                   	pop    %esi
40b95d:	5f                   	pop    %edi
40b95e:	5b                   	pop    %ebx
40b95f:	33 c0                	xor    %eax,%eax
40b961:	c3                   	ret
40b962:	8d 42 ff             	lea    -0x1(%edx),%eax
40b965:	5b                   	pop    %ebx
40b966:	c3                   	ret
40b967:	8b 42 fc             	mov    -0x4(%edx),%eax
40b96a:	3a c3                	cmp    %bl,%al
40b96c:	74 36                	je     0x40b9a4
40b96e:	84 c0                	test   %al,%al
40b970:	74 ea                	je     0x40b95c
40b972:	3a e3                	cmp    %bl,%ah
40b974:	74 27                	je     0x40b99d
40b976:	84 e4                	test   %ah,%ah
40b978:	74 e2                	je     0x40b95c
40b97a:	c1 e8 10             	shr    $0x10,%eax
40b97d:	3a c3                	cmp    %bl,%al
40b97f:	74 15                	je     0x40b996
40b981:	84 c0                	test   %al,%al
40b983:	74 d7                	je     0x40b95c
40b985:	3a e3                	cmp    %bl,%ah
40b987:	74 06                	je     0x40b98f
40b989:	84 e4                	test   %ah,%ah
40b98b:	74 cf                	je     0x40b95c
40b98d:	eb 91                	jmp    0x40b920
40b98f:	5e                   	pop    %esi
40b990:	5f                   	pop    %edi
40b991:	8d 42 ff             	lea    -0x1(%edx),%eax
40b994:	5b                   	pop    %ebx
40b995:	c3                   	ret
40b996:	8d 42 fe             	lea    -0x2(%edx),%eax
40b999:	5e                   	pop    %esi
40b99a:	5f                   	pop    %edi
40b99b:	5b                   	pop    %ebx
40b99c:	c3                   	ret
40b99d:	8d 42 fd             	lea    -0x3(%edx),%eax
40b9a0:	5e                   	pop    %esi
40b9a1:	5f                   	pop    %edi
40b9a2:	5b                   	pop    %ebx
40b9a3:	c3                   	ret
40b9a4:	8d 42 fc             	lea    -0x4(%edx),%eax
40b9a7:	5e                   	pop    %esi
40b9a8:	5f                   	pop    %edi
40b9a9:	5b                   	pop    %ebx
40b9aa:	c3                   	ret
40b9ab:	cc                   	int3
40b9ac:	cc                   	int3
40b9ad:	cc                   	int3
40b9ae:	cc                   	int3
40b9af:	cc                   	int3
40b9b0:	55                   	push   %ebp
40b9b1:	8b ec                	mov    %esp,%ebp
40b9b3:	56                   	push   %esi
40b9b4:	8b 75 08             	mov    0x8(%ebp),%esi
40b9b7:	57                   	push   %edi
40b9b8:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b9bb:	8b 06                	mov    (%esi),%eax
40b9bd:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b9c0:	74 0d                	je     0x40b9cf
40b9c2:	8b 4e 04             	mov    0x4(%esi),%ecx
40b9c5:	03 cf                	add    %edi,%ecx
40b9c7:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40b9ca:	e8 d8 e2 ff ff       	call   0x409ca7
40b9cf:	8b 46 08             	mov    0x8(%esi),%eax
40b9d2:	8b 4e 0c             	mov    0xc(%esi),%ecx
40b9d5:	03 cf                	add    %edi,%ecx
40b9d7:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40b9da:	5f                   	pop    %edi
40b9db:	5e                   	pop    %esi
40b9dc:	5d                   	pop    %ebp
40b9dd:	e9 c5 e2 ff ff       	jmp    0x409ca7
40b9e2:	cc                   	int3
40b9e3:	cc                   	int3
40b9e4:	cc                   	int3
40b9e5:	cc                   	int3
40b9e6:	cc                   	int3
40b9e7:	cc                   	int3
40b9e8:	cc                   	int3
40b9e9:	cc                   	int3
40b9ea:	cc                   	int3
40b9eb:	cc                   	int3
40b9ec:	cc                   	int3
40b9ed:	cc                   	int3
40b9ee:	cc                   	int3
40b9ef:	cc                   	int3
40b9f0:	55                   	push   %ebp
40b9f1:	8b ec                	mov    %esp,%ebp
40b9f3:	83 ec 1c             	sub    $0x1c,%esp
40b9f6:	53                   	push   %ebx
40b9f7:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b9fa:	56                   	push   %esi
40b9fb:	57                   	push   %edi
40b9fc:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40ba00:	ff 33                	push   (%ebx)
40ba02:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40ba09:	e8 8b 45 02 00       	call   0x42ff99
40ba0e:	89 03                	mov    %eax,(%ebx)
40ba10:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ba13:	8b 43 08             	mov    0x8(%ebx),%eax
40ba16:	8d 73 10             	lea    0x10(%ebx),%esi
40ba19:	33 05 c0 d0 43 00    	xor    0x43d0c0,%eax
40ba1f:	56                   	push   %esi
40ba20:	50                   	push   %eax
40ba21:	89 75 f0             	mov    %esi,-0x10(%ebp)
40ba24:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ba27:	e8 84 ff ff ff       	call   0x40b9b0
40ba2c:	ff 75 10             	push   0x10(%ebp)
40ba2f:	e8 e8 11 00 00       	call   0x40cc1c
40ba34:	8b 45 08             	mov    0x8(%ebp),%eax
40ba37:	83 c4 10             	add    $0x10,%esp
40ba3a:	8b 7b 0c             	mov    0xc(%ebx),%edi
40ba3d:	f6 40 04 66          	testb  $0x66,0x4(%eax)
40ba41:	75 5a                	jne    0x40ba9d
40ba43:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ba46:	8b 45 10             	mov    0x10(%ebp),%eax
40ba49:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ba4c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40ba4f:	89 43 fc             	mov    %eax,-0x4(%ebx)
40ba52:	83 ff fe             	cmp    $0xfffffffe,%edi
40ba55:	74 69                	je     0x40bac0
40ba57:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ba5a:	8d 47 02             	lea    0x2(%edi),%eax
40ba5d:	8d 04 47             	lea    (%edi,%eax,2),%eax
40ba60:	8b 1c 81             	mov    (%ecx,%eax,4),%ebx
40ba63:	8d 04 81             	lea    (%ecx,%eax,4),%eax
40ba66:	8b 48 04             	mov    0x4(%eax),%ecx
40ba69:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ba6c:	85 c9                	test   %ecx,%ecx
40ba6e:	74 14                	je     0x40ba84
40ba70:	8b d6                	mov    %esi,%edx
40ba72:	e8 c9 12 00 00       	call   0x40cd40
40ba77:	b1 01                	mov    $0x1,%cl
40ba79:	88 4d ff             	mov    %cl,-0x1(%ebp)
40ba7c:	85 c0                	test   %eax,%eax
40ba7e:	78 14                	js     0x40ba94
40ba80:	7f 48                	jg     0x40baca
40ba82:	eb 03                	jmp    0x40ba87
40ba84:	8a 4d ff             	mov    -0x1(%ebp),%cl
40ba87:	8b fb                	mov    %ebx,%edi
40ba89:	83 fb fe             	cmp    $0xfffffffe,%ebx
40ba8c:	75 c9                	jne    0x40ba57
40ba8e:	84 c9                	test   %cl,%cl
40ba90:	74 2e                	je     0x40bac0
40ba92:	eb 20                	jmp    0x40bab4
40ba94:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40ba9b:	eb 17                	jmp    0x40bab4
40ba9d:	83 ff fe             	cmp    $0xfffffffe,%edi
40baa0:	74 1e                	je     0x40bac0
40baa2:	68 c0 d0 43 00       	push   $0x43d0c0
40baa7:	56                   	push   %esi
40baa8:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
40baad:	8b cb                	mov    %ebx,%ecx
40baaf:	e8 ec 12 00 00       	call   0x40cda0
40bab4:	56                   	push   %esi
40bab5:	ff 75 f8             	push   -0x8(%ebp)
40bab8:	e8 f3 fe ff ff       	call   0x40b9b0
40babd:	83 c4 08             	add    $0x8,%esp
40bac0:	8b 45 f4             	mov    -0xc(%ebp),%eax
40bac3:	5f                   	pop    %edi
40bac4:	5e                   	pop    %esi
40bac5:	5b                   	pop    %ebx
40bac6:	8b e5                	mov    %ebp,%esp
40bac8:	5d                   	pop    %ebp
40bac9:	c3                   	ret
40baca:	8b 45 08             	mov    0x8(%ebp),%eax
40bacd:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40bad3:	75 38                	jne    0x40bb0d
40bad5:	83 3d 14 18 43 00 00 	cmpl   $0x0,0x431814
40badc:	74 2f                	je     0x40bb0d
40bade:	68 14 18 43 00       	push   $0x431814
40bae3:	e8 c8 20 02 00       	call   0x42dbb0
40bae8:	83 c4 04             	add    $0x4,%esp
40baeb:	85 c0                	test   %eax,%eax
40baed:	74 1b                	je     0x40bb0a
40baef:	8b 35 14 18 43 00    	mov    0x431814,%esi
40baf5:	8b ce                	mov    %esi,%ecx
40baf7:	6a 01                	push   $0x1
40baf9:	ff 75 08             	push   0x8(%ebp)
40bafc:	ff 15 68 12 43 00    	call   *0x431268
40bb02:	ff d6                	call   *%esi
40bb04:	8b 75 f0             	mov    -0x10(%ebp),%esi
40bb07:	83 c4 08             	add    $0x8,%esp
40bb0a:	8b 45 08             	mov    0x8(%ebp),%eax
40bb0d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bb10:	8b d0                	mov    %eax,%edx
40bb12:	e8 69 12 00 00       	call   0x40cd80
40bb17:	8b 45 0c             	mov    0xc(%ebp),%eax
40bb1a:	39 78 0c             	cmp    %edi,0xc(%eax)
40bb1d:	74 12                	je     0x40bb31
40bb1f:	68 c0 d0 43 00       	push   $0x43d0c0
40bb24:	56                   	push   %esi
40bb25:	8b d7                	mov    %edi,%edx
40bb27:	8b c8                	mov    %eax,%ecx
40bb29:	e8 72 12 00 00       	call   0x40cda0
40bb2e:	8b 45 0c             	mov    0xc(%ebp),%eax
40bb31:	56                   	push   %esi
40bb32:	ff 75 f8             	push   -0x8(%ebp)
40bb35:	89 58 0c             	mov    %ebx,0xc(%eax)
40bb38:	e8 73 fe ff ff       	call   0x40b9b0
40bb3d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40bb40:	83 c4 08             	add    $0x8,%esp
40bb43:	8b d6                	mov    %esi,%edx
40bb45:	8b 49 08             	mov    0x8(%ecx),%ecx
40bb48:	e8 13 12 00 00       	call   0x40cd60
40bb4d:	cc                   	int3
40bb4e:	e8 64 12 00 00       	call   0x40cdb7