40c8fa:	56                   	push   %esi
40c8fb:	8b f1                	mov    %ecx,%esi
40c8fd:	57                   	push   %edi
40c8fe:	8d 4e 40             	lea    0x40(%esi),%ecx
40c901:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
40c907:	85 ff                	test   %edi,%edi
40c909:	75 02                	jne    0x40c90d
40c90b:	8b f9                	mov    %ecx,%edi
40c90d:	e8 d8 fd ff ff       	call   0x40c6ea
40c912:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c915:	8d 3c 47             	lea    (%edi,%eax,2),%edi
40c918:	83 c7 fe             	add    $0xfffffffe,%edi
40c91b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c91e:	8b cf                	mov    %edi,%ecx
40c920:	89 7e 34             	mov    %edi,0x34(%esi)
40c923:	8b 7d 08             	mov    0x8(%ebp),%edi
40c926:	8b 56 28             	mov    0x28(%esi),%edx
40c929:	85 d2                	test   %edx,%edx
40c92b:	7f 06                	jg     0x40c933
40c92d:	8b c7                	mov    %edi,%eax
40c92f:	0b c3                	or     %ebx,%eax
40c931:	74 4b                	je     0x40c97e
40c933:	53                   	push   %ebx
40c934:	6a 00                	push   $0x0
40c936:	ff 75 10             	push   0x10(%ebp)
40c939:	8d 42 ff             	lea    -0x1(%edx),%eax
40c93c:	53                   	push   %ebx
40c93d:	57                   	push   %edi
40c93e:	89 46 28             	mov    %eax,0x28(%esi)
40c941:	e8 ba c8 00 00       	call   0x419200
40c946:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40c949:	5b                   	pop    %ebx
40c94a:	90                   	nop
40c94b:	83 c1 30             	add    $0x30,%ecx
40c94e:	8b f8                	mov    %eax,%edi
40c950:	0f b7 c9             	movzwl %cx,%ecx
40c953:	8b da                	mov    %edx,%ebx
40c955:	83 f9 39             	cmp    $0x39,%ecx
40c958:	76 11                	jbe    0x40c96b
40c95a:	8a 45 14             	mov    0x14(%ebp),%al
40c95d:	34 01                	xor    $0x1,%al
40c95f:	c0 e0 05             	shl    $0x5,%al
40c962:	04 07                	add    $0x7,%al
40c964:	02 c1                	add    %cl,%al
40c966:	66 98                	cbtw
40c968:	0f b7 c8             	movzwl %ax,%ecx
40c96b:	8b 46 34             	mov    0x34(%esi),%eax
40c96e:	66 0f be c9          	movsbw %cl,%cx
40c972:	66 89 08             	mov    %cx,(%eax)
40c975:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
40c979:	8b 4e 34             	mov    0x34(%esi),%ecx
40c97c:	eb a8                	jmp    0x40c926
40c97e:	8b 7d fc             	mov    -0x4(%ebp),%edi
40c981:	2b f9                	sub    %ecx,%edi
40c983:	d1 ff                	sar    $1,%edi
40c985:	89 7e 38             	mov    %edi,0x38(%esi)
40c988:	83 46 34 02          	addl   $0x2,0x34(%esi)
40c98c:	5f                   	pop    %edi
40c98d:	5e                   	pop    %esi
40c98e:	5b                   	pop    %ebx
40c98f:	c9                   	leave
40c990:	c2 10 00             	ret    $0x10
40c993:	8b ff                	mov    %edi,%edi
40c995:	55                   	push   %ebp
40c996:	8b ec                	mov    %esp,%ebp
40c998:	56                   	push   %esi
40c999:	33 f6                	xor    %esi,%esi
40c99b:	39 75 10             	cmp    %esi,0x10(%ebp)
40c99e:	7e 21                	jle    0x40c9c1
40c9a0:	53                   	push   %ebx
40c9a1:	66 0f be 5d 0c       	movsbw 0xc(%ebp),%bx
40c9a6:	57                   	push   %edi
40c9a7:	8b 7d 14             	mov    0x14(%ebp),%edi
40c9aa:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c9ad:	57                   	push   %edi
40c9ae:	53                   	push   %ebx
40c9af:	e8 c6 0f 00 00       	call   0x40d97a
40c9b4:	83 3f ff             	cmpl   $0xffffffff,(%edi)
40c9b7:	74 06                	je     0x40c9bf
40c9b9:	46                   	inc    %esi
40c9ba:	3b 75 10             	cmp    0x10(%ebp),%esi
40c9bd:	7c eb                	jl     0x40c9aa
40c9bf:	5f                   	pop    %edi
40c9c0:	5b                   	pop    %ebx
40c9c1:	5e                   	pop    %esi
40c9c2:	5d                   	pop    %ebp
40c9c3:	c3                   	ret
40c9c4:	8b ff                	mov    %edi,%edi
40c9c6:	55                   	push   %ebp
40c9c7:	8b ec                	mov    %esp,%ebp
40c9c9:	51                   	push   %ecx
40c9ca:	33 d2                	xor    %edx,%edx
40c9cc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c9cf:	89 11                	mov    %edx,(%ecx)
40c9d1:	33 c0                	xor    %eax,%eax
40c9d3:	89 51 04             	mov    %edx,0x4(%ecx)
40c9d6:	89 51 08             	mov    %edx,0x8(%ecx)
40c9d9:	89 51 0c             	mov    %edx,0xc(%ecx)
40c9dc:	66 89 41 32          	mov    %ax,0x32(%ecx)
40c9e0:	8b c1                	mov    %ecx,%eax
40c9e2:	89 51 10             	mov    %edx,0x10(%ecx)
40c9e5:	89 51 14             	mov    %edx,0x14(%ecx)
40c9e8:	89 51 18             	mov    %edx,0x18(%ecx)
40c9eb:	89 51 1c             	mov    %edx,0x1c(%ecx)
40c9ee:	89 51 20             	mov    %edx,0x20(%ecx)
40c9f1:	89 51 24             	mov    %edx,0x24(%ecx)
40c9f4:	89 51 28             	mov    %edx,0x28(%ecx)
40c9f7:	88 51 30             	mov    %dl,0x30(%ecx)
40c9fa:	89 51 38             	mov    %edx,0x38(%ecx)
40c9fd:	88 51 3c             	mov    %dl,0x3c(%ecx)
40ca00:	89 91 40 04 00 00    	mov    %edx,0x440(%ecx)
40ca06:	89 91 44 04 00 00    	mov    %edx,0x444(%ecx)
40ca0c:	c9                   	leave
40ca0d:	c3                   	ret
40ca0e:	8b ff                	mov    %edi,%edi
40ca10:	55                   	push   %ebp
40ca11:	8b ec                	mov    %esp,%ebp
40ca13:	56                   	push   %esi
40ca14:	8b f1                	mov    %ecx,%esi
40ca16:	e8 a9 ff ff ff       	call   0x40c9c4
40ca1b:	8b 45 08             	mov    0x8(%ebp),%eax
40ca1e:	8b 00                	mov    (%eax),%eax
40ca20:	89 86 48 04 00 00    	mov    %eax,0x448(%esi)
40ca26:	8b 45 0c             	mov    0xc(%ebp),%eax
40ca29:	89 06                	mov    %eax,(%esi)
40ca2b:	8b 45 10             	mov    0x10(%ebp),%eax
40ca2e:	89 46 04             	mov    %eax,0x4(%esi)
40ca31:	8b 45 18             	mov    0x18(%ebp),%eax
40ca34:	89 46 08             	mov    %eax,0x8(%esi)
40ca37:	8b 45 14             	mov    0x14(%ebp),%eax
40ca3a:	89 46 10             	mov    %eax,0x10(%esi)
40ca3d:	8b 45 1c             	mov    0x1c(%ebp),%eax
40ca40:	89 46 14             	mov    %eax,0x14(%esi)
40ca43:	8b c6                	mov    %esi,%eax
40ca45:	5e                   	pop    %esi
40ca46:	5d                   	pop    %ebp
40ca47:	c2 18 00             	ret    $0x18
40ca4a:	8b ff                	mov    %edi,%edi
40ca4c:	55                   	push   %ebp
40ca4d:	8b ec                	mov    %esp,%ebp
40ca4f:	53                   	push   %ebx
40ca50:	57                   	push   %edi
40ca51:	8b f9                	mov    %ecx,%edi
40ca53:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ca56:	c6 47 0c 00          	movb   $0x0,0xc(%edi)
40ca5a:	8d 5f 04             	lea    0x4(%edi),%ebx
40ca5d:	85 c9                	test   %ecx,%ecx
40ca5f:	74 09                	je     0x40ca6a
40ca61:	8b 01                	mov    (%ecx),%eax
40ca63:	89 03                	mov    %eax,(%ebx)
40ca65:	8b 41 04             	mov    0x4(%ecx),%eax
40ca68:	eb 15                	jmp    0x40ca7f
40ca6a:	83 3d 68 6e 42 00 00 	cmpl   $0x0,0x426e68
40ca71:	75 11                	jne    0x40ca84
40ca73:	a1 38 66 42 00       	mov    0x426638,%eax
40ca78:	89 03                	mov    %eax,(%ebx)
40ca7a:	a1 3c 66 42 00       	mov    0x42663c,%eax
40ca7f:	89 43 04             	mov    %eax,0x4(%ebx)
40ca82:	eb 41                	jmp    0x40cac5
40ca84:	56                   	push   %esi
40ca85:	e8 7f 1d 00 00       	call   0x40e809
40ca8a:	89 07                	mov    %eax,(%edi)
40ca8c:	8d 77 08             	lea    0x8(%edi),%esi
40ca8f:	53                   	push   %ebx
40ca90:	50                   	push   %eax
40ca91:	8b 48 4c             	mov    0x4c(%eax),%ecx
40ca94:	89 0b                	mov    %ecx,(%ebx)
40ca96:	8b 48 48             	mov    0x48(%eax),%ecx
40ca99:	89 0e                	mov    %ecx,(%esi)
40ca9b:	e8 13 5b 00 00       	call   0x4125b3
40caa0:	56                   	push   %esi
40caa1:	ff 37                	push   (%edi)
40caa3:	e8 38 5b 00 00       	call   0x4125e0
40caa8:	8b 0f                	mov    (%edi),%ecx
40caaa:	83 c4 10             	add    $0x10,%esp
40caad:	8b 81 50 03 00 00    	mov    0x350(%ecx),%eax
40cab3:	5e                   	pop    %esi
40cab4:	a8 02                	test   $0x2,%al
40cab6:	75 0d                	jne    0x40cac5
40cab8:	83 c8 02             	or     $0x2,%eax
40cabb:	89 81 50 03 00 00    	mov    %eax,0x350(%ecx)
40cac1:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
40cac5:	8b c7                	mov    %edi,%eax
40cac7:	5f                   	pop    %edi
40cac8:	5b                   	pop    %ebx
40cac9:	5d                   	pop    %ebp
40caca:	c2 04 00             	ret    $0x4
40cacd:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40cad1:	74 09                	je     0x40cadc
40cad3:	8b 01                	mov    (%ecx),%eax
40cad5:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40cadc:	c3                   	ret
40cadd:	8b ff                	mov    %edi,%edi
40cadf:	56                   	push   %esi
40cae0:	8b f1                	mov    %ecx,%esi
40cae2:	ff b6 04 04 00 00    	push   0x404(%esi)
40cae8:	e8 56 22 00 00       	call   0x40ed43
40caed:	83 a6 04 04 00 00 00 	andl   $0x0,0x404(%esi)
40caf4:	59                   	pop    %ecx
40caf5:	5e                   	pop    %esi
40caf6:	c3                   	ret
40caf7:	8b ff                	mov    %edi,%edi
40caf9:	55                   	push   %ebp
40cafa:	8b ec                	mov    %esp,%ebp
40cafc:	56                   	push   %esi
40cafd:	8b f1                	mov    %ecx,%esi
40caff:	ff 36                	push   (%esi)
40cb01:	e8 3d 22 00 00       	call   0x40ed43
40cb06:	8b 55 08             	mov    0x8(%ebp),%edx
40cb09:	83 26 00             	andl   $0x0,(%esi)
40cb0c:	59                   	pop    %ecx
40cb0d:	8b 02                	mov    (%edx),%eax
40cb0f:	89 06                	mov    %eax,(%esi)
40cb11:	8b c6                	mov    %esi,%eax
40cb13:	83 22 00             	andl   $0x0,(%edx)
40cb16:	5e                   	pop    %esi
40cb17:	5d                   	pop    %ebp
40cb18:	c2 04 00             	ret    $0x4
40cb1b:	cc                   	int3
40cb1c:	cc                   	int3
40cb1d:	cc                   	int3
40cb1e:	cc                   	int3
40cb1f:	cc                   	int3
40cb20:	8b ff                	mov    %edi,%edi
40cb22:	55                   	push   %ebp
40cb23:	8b ec                	mov    %esp,%ebp
40cb25:	8b 45 0c             	mov    0xc(%ebp),%eax
40cb28:	53                   	push   %ebx
40cb29:	8b 00                	mov    (%eax),%eax
40cb2b:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
40cb31:	8b 00                	mov    (%eax),%eax
40cb33:	8a 18                	mov    (%eax),%bl
40cb35:	8b 45 08             	mov    0x8(%ebp),%eax
40cb38:	8a 08                	mov    (%eax),%cl
40cb3a:	84 c9                	test   %cl,%cl
40cb3c:	74 12                	je     0x40cb50
40cb3e:	8a d1                	mov    %cl,%dl
40cb40:	8a ca                	mov    %dl,%cl
40cb42:	3a d3                	cmp    %bl,%dl
40cb44:	74 0a                	je     0x40cb50
40cb46:	8a 48 01             	mov    0x1(%eax),%cl
40cb49:	40                   	inc    %eax
40cb4a:	8a d1                	mov    %cl,%dl
40cb4c:	84 c9                	test   %cl,%cl
40cb4e:	75 f0                	jne    0x40cb40
40cb50:	40                   	inc    %eax
40cb51:	84 c9                	test   %cl,%cl
40cb53:	74 49                	je     0x40cb9e
40cb55:	8a 08                	mov    (%eax),%cl
40cb57:	84 c9                	test   %cl,%cl
40cb59:	74 17                	je     0x40cb72
40cb5b:	eb 03                	jmp    0x40cb60
40cb5d:	8d 49 00             	lea    0x0(%ecx),%ecx
40cb60:	80 f9 65             	cmp    $0x65,%cl
40cb63:	74 0d                	je     0x40cb72
40cb65:	80 f9 45             	cmp    $0x45,%cl
40cb68:	74 08                	je     0x40cb72
40cb6a:	8a 48 01             	mov    0x1(%eax),%cl
40cb6d:	40                   	inc    %eax
40cb6e:	84 c9                	test   %cl,%cl
40cb70:	75 ee                	jne    0x40cb60
40cb72:	8a 48 ff             	mov    -0x1(%eax),%cl
40cb75:	8b d0                	mov    %eax,%edx
40cb77:	48                   	dec    %eax
40cb78:	80 f9 30             	cmp    $0x30,%cl
40cb7b:	75 0c                	jne    0x40cb89
40cb7d:	8d 49 00             	lea    0x0(%ecx),%ecx
40cb80:	8a 48 ff             	mov    -0x1(%eax),%cl
40cb83:	48                   	dec    %eax
40cb84:	80 f9 30             	cmp    $0x30,%cl
40cb87:	74 f7                	je     0x40cb80
40cb89:	3a cb                	cmp    %bl,%cl
40cb8b:	75 03                	jne    0x40cb90
40cb8d:	48                   	dec    %eax
40cb8e:	8b ff                	mov    %edi,%edi
40cb90:	8a 0a                	mov    (%edx),%cl
40cb92:	8d 40 01             	lea    0x1(%eax),%eax
40cb95:	88 08                	mov    %cl,(%eax)
40cb97:	8d 52 01             	lea    0x1(%edx),%edx
40cb9a:	84 c9                	test   %cl,%cl
40cb9c:	75 f2                	jne    0x40cb90
40cb9e:	5b                   	pop    %ebx
40cb9f:	5d                   	pop    %ebp
40cba0:	c3                   	ret
40cba1:	8b ff                	mov    %edi,%edi
40cba3:	55                   	push   %ebp
40cba4:	8b ec                	mov    %esp,%ebp
40cba6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cba9:	8d 41 e0             	lea    -0x20(%ecx),%eax
40cbac:	66 83 f8 5a          	cmp    $0x5a,%ax
40cbb0:	77 0f                	ja     0x40cbc1
40cbb2:	8d 41 e0             	lea    -0x20(%ecx),%eax
40cbb5:	83 e0 7f             	and    $0x7f,%eax
40cbb8:	8b 04 c5 34 d5 41 00 	mov    0x41d534(,%eax,8),%eax
40cbbf:	eb 02                	jmp    0x40cbc3
40cbc1:	33 c0                	xor    %eax,%eax
40cbc3:	6b c0 09             	imul   $0x9,%eax,%eax
40cbc6:	03 45 0c             	add    0xc(%ebp),%eax
40cbc9:	83 e0 7f             	and    $0x7f,%eax
40cbcc:	8b 04 c5 30 d5 41 00 	mov    0x41d530(,%eax,8),%eax
40cbd3:	5d                   	pop    %ebp
40cbd4:	c2 08 00             	ret    $0x8
40cbd7:	8b ff                	mov    %edi,%edi
40cbd9:	55                   	push   %ebp
40cbda:	8b ec                	mov    %esp,%ebp
40cbdc:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cbdf:	8d 41 e0             	lea    -0x20(%ecx),%eax
40cbe2:	66 83 f8 5a          	cmp    $0x5a,%ax
40cbe6:	77 0f                	ja     0x40cbf7
40cbe8:	8d 41 e0             	lea    -0x20(%ecx),%eax
40cbeb:	83 e0 7f             	and    $0x7f,%eax
40cbee:	8b 0c c5 34 d1 41 00 	mov    0x41d134(,%eax,8),%ecx
40cbf5:	eb 02                	jmp    0x40cbf9
40cbf7:	33 c9                	xor    %ecx,%ecx
40cbf9:	8b 45 0c             	mov    0xc(%ebp),%eax
40cbfc:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
40cbff:	83 e0 7f             	and    $0x7f,%eax
40cc02:	8b 04 c5 30 d1 41 00 	mov    0x41d130(,%eax,8),%eax
40cc09:	5d                   	pop    %ebp
40cc0a:	c2 08 00             	ret    $0x8
40cc0d:	cc                   	int3
40cc0e:	cc                   	int3
40cc0f:	cc                   	int3
40cc10:	8b ff                	mov    %edi,%edi
40cc12:	55                   	push   %ebp
40cc13:	8b ec                	mov    %esp,%ebp
40cc15:	8b 45 0c             	mov    0xc(%ebp),%eax
40cc18:	53                   	push   %ebx
40cc19:	56                   	push   %esi
40cc1a:	57                   	push   %edi
40cc1b:	8b 30                	mov    (%eax),%esi
40cc1d:	8b 45 08             	mov    0x8(%ebp),%eax
40cc20:	8b be 94 00 00 00    	mov    0x94(%esi),%edi
40cc26:	8a 18                	mov    (%eax),%bl
40cc28:	0f b6 cb             	movzbl %bl,%ecx
40cc2b:	80 3c 39 65          	cmpb   $0x65,(%ecx,%edi,1)
40cc2f:	74 0f                	je     0x40cc40
40cc31:	8b 16                	mov    (%esi),%edx
40cc33:	8a 58 01             	mov    0x1(%eax),%bl
40cc36:	40                   	inc    %eax
40cc37:	0f b6 cb             	movzbl %bl,%ecx
40cc3a:	f6 04 4a 04          	testb  $0x4,(%edx,%ecx,2)
40cc3e:	75 f3                	jne    0x40cc33
40cc40:	0f b6 cb             	movzbl %bl,%ecx
40cc43:	80 3c 39 78          	cmpb   $0x78,(%ecx,%edi,1)
40cc47:	75 06                	jne    0x40cc4f
40cc49:	8a 58 02             	mov    0x2(%eax),%bl
40cc4c:	83 c0 02             	add    $0x2,%eax
40cc4f:	8b 8e 88 00 00 00    	mov    0x88(%esi),%ecx
40cc55:	8b 09                	mov    (%ecx),%ecx