40c8f8:	83 f8 02             	cmp    $0x2,%eax
40c8fb:	0f 84 29 08 01 00    	je     0x41d12a
40c901:	6a 01                	push   $0x1
40c903:	6a 00                	push   $0x0
40c905:	6a 00                	push   $0x0
40c907:	53                   	push   %ebx
40c908:	bf f0 a7 43 00       	mov    $0x43a7f0,%edi
40c90d:	ff 15 a0 a0 44 00    	call   *0x44a0a0
40c913:	68 04 8e 44 00       	push   $0x448e04
40c918:	89 85 d4 f9 ff ff    	mov    %eax,-0x62c(%ebp)
40c91e:	ff 15 90 a2 44 00    	call   *0x44a290
40c924:	6a 00                	push   $0x0
40c926:	8d 85 e8 f9 ff ff    	lea    -0x618(%ebp),%eax
40c92c:	50                   	push   %eax
40c92d:	68 00 02 00 00       	push   $0x200
40c932:	57                   	push   %edi
40c933:	53                   	push   %ebx
40c934:	ff 15 94 a0 44 00    	call   *0x44a094
40c93a:	68 04 8e 44 00       	push   $0x448e04
40c93f:	8b f0                	mov    %eax,%esi
40c941:	ff 15 94 a2 44 00    	call   *0x44a294
40c947:	8b 8d e8 f9 ff ff    	mov    -0x618(%ebp),%ecx
40c94d:	85 f6                	test   %esi,%esi
40c94f:	0f 84 f9 07 01 00    	je     0x41d14e
40c955:	89 8d e0 f9 ff ff    	mov    %ecx,-0x620(%ebp)
40c95b:	85 c9                	test   %ecx,%ecx
40c95d:	0f 84 fb 02 00 00    	je     0x40cc5e
40c963:	81 3d a0 25 43 00 e9 	cmpl   $0xfde9,0x4325a0
40c96a:	fd 00 00
40c96d:	8b f1                	mov    %ecx,%esi
40c96f:	89 b5 d8 f9 ff ff    	mov    %esi,-0x628(%ebp)
40c975:	8b d9                	mov    %ecx,%ebx
40c977:	0f 84 d8 07 01 00    	je     0x41d155
40c97d:	8b d7                	mov    %edi,%edx
40c97f:	89 95 c8 f9 ff ff    	mov    %edx,-0x638(%ebp)
40c985:	85 db                	test   %ebx,%ebx
40c987:	0f 8e 5b fe ff ff    	jle    0x40c7e8
40c98d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c990:	83 fe 03             	cmp    $0x3,%esi
40c993:	7c 12                	jl     0x40c9a7
40c995:	8a 07                	mov    (%edi),%al
40c997:	3c 0a                	cmp    $0xa,%al
40c999:	0f 84 0e 08 01 00    	je     0x41d1ad
40c99f:	3c 0d                	cmp    $0xd,%al
40c9a1:	0f 84 07 fe ff ff    	je     0x40c7ae
40c9a7:	0f b6 07             	movzbl (%edi),%eax
40c9aa:	80 b8 f0 8a 44 00 00 	cmpb   $0x0,0x448af0(%eax)
40c9b1:	0f 85 05 08 01 00    	jne    0x41d1bc
40c9b7:	4e                   	dec    %esi
40c9b8:	b8 01 00 00 00       	mov    $0x1,%eax
40c9bd:	03 f8                	add    %eax,%edi
40c9bf:	89 b5 d8 f9 ff ff    	mov    %esi,-0x628(%ebp)
40c9c5:	85 f6                	test   %esi,%esi
40c9c7:	7f c7                	jg     0x40c990
40c9c9:	e9 1a fe ff ff       	jmp    0x40c7e8
40c9ce:	8b ff                	mov    %edi,%edi
40c9d0:	8b f3                	mov    %ebx,%esi
40c9d2:	83 c3 02             	add    $0x2,%ebx
40c9d5:	89 9d e0 f9 ff ff    	mov    %ebx,-0x620(%ebp)
40c9db:	66 83 3e 0a          	cmpw   $0xa,(%esi)
40c9df:	74 13                	je     0x40c9f4
40c9e1:	8d 85 ec f9 ff ff    	lea    -0x614(%ebp),%eax
40c9e7:	3b f0                	cmp    %eax,%esi
40c9e9:	74 09                	je     0x40c9f4
40c9eb:	83 ee 02             	sub    $0x2,%esi
40c9ee:	66 83 3e 0a          	cmpw   $0xa,(%esi)
40c9f2:	75 ed                	jne    0x40c9e1
40c9f4:	66 83 3e 3a          	cmpw   $0x3a,(%esi)
40c9f8:	74 03                	je     0x40c9fd
40c9fa:	83 c6 02             	add    $0x2,%esi
40c9fd:	8b fe                	mov    %esi,%edi
40c9ff:	85 f6                	test   %esi,%esi
40ca01:	74 38                	je     0x40ca3b
40ca03:	0f b7 1f             	movzwl (%edi),%ebx
40ca06:	53                   	push   %ebx
40ca07:	ff 15 ac a3 44 00    	call   *0x44a3ac
40ca0d:	83 c4 04             	add    $0x4,%esp
40ca10:	85 c0                	test   %eax,%eax
40ca12:	74 0a                	je     0x40ca1e
40ca14:	83 fb 0a             	cmp    $0xa,%ebx
40ca17:	74 05                	je     0x40ca1e
40ca19:	83 c7 02             	add    $0x2,%edi
40ca1c:	eb e5                	jmp    0x40ca03
40ca1e:	53                   	push   %ebx
40ca1f:	68 d0 22 40 00       	push   $0x4022d0
40ca24:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40ca2a:	83 c4 08             	add    $0x8,%esp
40ca2d:	85 c0                	test   %eax,%eax
40ca2f:	0f 85 68 08 01 00    	jne    0x41d29d
40ca35:	8b 9d e0 f9 ff ff    	mov    -0x620(%ebp),%ebx
40ca3b:	66 83 3f 3a          	cmpw   $0x3a,(%edi)
40ca3f:	0f 84 9e 00 00 00    	je     0x40cae3
40ca45:	85 db                	test   %ebx,%ebx
40ca47:	74 16                	je     0x40ca5f
40ca49:	6a 3a                	push   $0x3a
40ca4b:	53                   	push   %ebx
40ca4c:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40ca52:	8b d8                	mov    %eax,%ebx
40ca54:	83 c4 08             	add    $0x8,%esp
40ca57:	85 db                	test   %ebx,%ebx
40ca59:	0f 85 71 ff ff ff    	jne    0x40c9d0
40ca5f:	8b bd dc f9 ff ff    	mov    -0x624(%ebp),%edi
40ca65:	8b 9d e4 f9 ff ff    	mov    -0x61c(%ebp),%ebx
40ca6b:	80 3d 44 67 43 00 01 	cmpb   $0x1,0x436744
40ca72:	0f 85 2e fe ff ff    	jne    0x40c8a6
40ca78:	33 f6                	xor    %esi,%esi
40ca7a:	8b cf                	mov    %edi,%ecx
40ca7c:	e8 eb d6 ff ff       	call   0x40a16c
40ca81:	8b c6                	mov    %esi,%eax
40ca83:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ca86:	5f                   	pop    %edi
40ca87:	5e                   	pop    %esi
40ca88:	33 cd                	xor    %ebp,%ecx
40ca8a:	5b                   	pop    %ebx
40ca8b:	e8 a0 a0 00 00       	call   0x416b30
40ca90:	8b e5                	mov    %ebp,%esp
40ca92:	5d                   	pop    %ebp
40ca93:	c2 04 00             	ret    $0x4
40ca96:	3b 85 c0 f9 ff ff    	cmp    -0x640(%ebp),%eax
40ca9c:	0f 8c 38 fe ff ff    	jl     0x40c8da
40caa2:	8b 8d e8 f9 ff ff    	mov    -0x618(%ebp),%ecx
40caa8:	85 c9                	test   %ecx,%ecx
40caaa:	0f 85 4c 09 01 00    	jne    0x41d3fc
40cab0:	83 bd d0 f9 ff ff 00 	cmpl   $0x0,-0x630(%ebp)
40cab7:	0f 84 3f 09 01 00    	je     0x41d3fc
40cabd:	6a 00                	push   $0x0
40cabf:	6a 00                	push   $0x0
40cac1:	6a 00                	push   $0x0
40cac3:	57                   	push   %edi
40cac4:	ff 15 2c a4 44 00    	call   *0x44a42c
40caca:	83 c4 04             	add    $0x4,%esp
40cacd:	50                   	push   %eax
40cace:	ff 15 a0 a0 44 00    	call   *0x44a0a0
40cad4:	c7 85 d0 f9 ff ff 00 	movl   $0x0,-0x630(%ebp)
40cadb:	00 00 00
40cade:	e9 bd fd ff ff       	jmp    0x40c8a0
40cae3:	85 f6                	test   %esi,%esi
40cae5:	0f 84 c0 07 01 00    	je     0x41d2ab
40caeb:	6a 0a                	push   $0xa
40caed:	56                   	push   %esi
40caee:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40caf4:	8b d8                	mov    %eax,%ebx
40caf6:	83 c4 08             	add    $0x8,%esp
40caf9:	89 9d e0 f9 ff ff    	mov    %ebx,-0x620(%ebp)
40caff:	85 db                	test   %ebx,%ebx
40cb01:	0f 84 ac 07 01 00    	je     0x41d2b3
40cb07:	eb 07                	jmp    0x40cb10
40cb09:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40cb10:	0f b7 37             	movzwl (%edi),%esi
40cb13:	56                   	push   %esi
40cb14:	ff 15 ac a3 44 00    	call   *0x44a3ac
40cb1a:	83 c4 04             	add    $0x4,%esp
40cb1d:	85 c0                	test   %eax,%eax
40cb1f:	0f 85 20 08 01 00    	jne    0x41d345
40cb25:	56                   	push   %esi
40cb26:	68 d0 22 40 00       	push   $0x4022d0
40cb2b:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cb31:	83 c4 08             	add    $0x8,%esp
40cb34:	85 c0                	test   %eax,%eax
40cb36:	0f 85 13 08 01 00    	jne    0x41d34f
40cb3c:	0f b7 07             	movzwl (%edi),%eax
40cb3f:	83 f8 3a             	cmp    $0x3a,%eax
40cb42:	0f 85 18 08 01 00    	jne    0x41d360
40cb48:	83 c7 02             	add    $0x2,%edi
40cb4b:	85 ff                	test   %edi,%edi
40cb4d:	74 2d                	je     0x40cb7c
40cb4f:	90                   	nop
40cb50:	0f b7 37             	movzwl (%edi),%esi
40cb53:	56                   	push   %esi
40cb54:	ff 15 ac a3 44 00    	call   *0x44a3ac
40cb5a:	83 c4 04             	add    $0x4,%esp
40cb5d:	85 c0                	test   %eax,%eax
40cb5f:	0f 85 09 08 01 00    	jne    0x41d36e
40cb65:	56                   	push   %esi
40cb66:	68 d0 22 40 00       	push   $0x4022d0
40cb6b:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cb71:	83 c4 08             	add    $0x8,%esp
40cb74:	85 c0                	test   %eax,%eax
40cb76:	0f 85 fc 07 01 00    	jne    0x41d378
40cb7c:	33 db                	xor    %ebx,%ebx
40cb7e:	8b ff                	mov    %edi,%edi
40cb80:	0f b7 37             	movzwl (%edi),%esi
40cb83:	56                   	push   %esi
40cb84:	68 b4 22 40 00       	push   $0x4022b4
40cb89:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cb8f:	83 c4 08             	add    $0x8,%esp
40cb92:	85 c0                	test   %eax,%eax
40cb94:	75 33                	jne    0x40cbc9
40cb96:	56                   	push   %esi
40cb97:	68 c4 22 40 00       	push   $0x4022c4
40cb9c:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cba2:	83 c4 08             	add    $0x8,%esp
40cba5:	85 c0                	test   %eax,%eax
40cba7:	75 20                	jne    0x40cbc9
40cba9:	83 fe 5e             	cmp    $0x5e,%esi
40cbac:	0f 84 d7 07 01 00    	je     0x41d389
40cbb2:	8b ce                	mov    %esi,%ecx
40cbb4:	8d 43 01             	lea    0x1(%ebx),%eax
40cbb7:	66 89 8c 5d f4 fd ff 	mov    %cx,-0x20c(%ebp,%ebx,2)
40cbbe:	ff
40cbbf:	83 c7 02             	add    $0x2,%edi
40cbc2:	8b d8                	mov    %eax,%ebx
40cbc4:	83 f8 7f             	cmp    $0x7f,%eax
40cbc7:	72 b7                	jb     0x40cb80
40cbc9:	33 c0                	xor    %eax,%eax
40cbcb:	66 89 84 5d f4 fd ff 	mov    %ax,-0x20c(%ebp,%ebx,2)
40cbd2:	ff
40cbd3:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40cbd9:	50                   	push   %eax
40cbda:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40cbe0:	50                   	push   %eax
40cbe1:	ff 15 40 a4 44 00    	call   *0x44a440
40cbe7:	8b 9d e0 f9 ff ff    	mov    -0x620(%ebp),%ebx
40cbed:	83 c4 08             	add    $0x8,%esp
40cbf0:	85 c0                	test   %eax,%eax
40cbf2:	0f 85 4d fe ff ff    	jne    0x40ca45
40cbf8:	8b 85 bc f9 ff ff    	mov    -0x644(%ebp),%eax
40cbfe:	f6 40 40 01          	testb  $0x1,0x40(%eax)
40cc02:	0f 84 8d 07 01 00    	je     0x41d395
40cc08:	b0 01                	mov    $0x1,%al
40cc0a:	a2 44 67 43 00       	mov    %al,0x436744
40cc0f:	e8 20 c8 ff ff       	call   0x409434
40cc14:	85 db                	test   %ebx,%ebx
40cc16:	0f 84 80 07 01 00    	je     0x41d39c
40cc1c:	8d 8d ec f9 ff ff    	lea    -0x614(%ebp),%ecx
40cc22:	2b d9                	sub    %ecx,%ebx
40cc24:	83 c3 02             	add    $0x2,%ebx
40cc27:	d1 fb                	sar    $1,%ebx
40cc29:	84 c0                	test   %al,%al
40cc2b:	0f 85 99 07 01 00    	jne    0x41d3ca
40cc31:	8b b5 e4 f9 ff ff    	mov    -0x61c(%ebp),%esi
40cc37:	8b bd dc f9 ff ff    	mov    -0x624(%ebp),%edi
40cc3d:	01 5e 08             	add    %ebx,0x8(%esi)
40cc40:	8b de                	mov    %esi,%ebx
40cc42:	e9 24 fe ff ff       	jmp    0x40ca6b
40cc47:	50                   	push   %eax
40cc48:	ff 15 ac a3 44 00    	call   *0x44a3ac
40cc4e:	83 c4 04             	add    $0x4,%esp
40cc51:	85 c0                	test   %eax,%eax
40cc53:	0f 85 40 fb ff ff    	jne    0x40c799
40cc59:	e9 48 fc ff ff       	jmp    0x40c8a6
40cc5e:	33 c0                	xor    %eax,%eax
40cc60:	e9 c1 fb ff ff       	jmp    0x40c826
40cc65:	e8 0e a0 00 00       	call   0x416c78
40cc6a:	cc                   	int3
40cc6b:	cc                   	int3
40cc6c:	cc                   	int3
40cc6d:	cc                   	int3
40cc6e:	cc                   	int3
40cc6f:	cc                   	int3
40cc70:	83 3d f0 65 43 00 00 	cmpl   $0x0,0x4365f0
40cc77:	56                   	push   %esi
40cc78:	75 4e                	jne    0x40ccc8
40cc7a:	51                   	push   %ecx
40cc7b:	ba 00 20 00 00       	mov    $0x2000,%edx
40cc80:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40cc85:	e8 86 02 00 00       	call   0x40cf10
40cc8a:	8b d0                	mov    %eax,%edx
40cc8c:	89 15 00 67 43 00    	mov    %edx,0x436700
40cc92:	83 fa ff             	cmp    $0xffffffff,%edx
40cc95:	0f 84 99 07 01 00    	je     0x41d434
40cc9b:	b8 f0 4a 44 00       	mov    $0x444af0,%eax
40cca0:	8d 70 02             	lea    0x2(%eax),%esi
40cca3:	66 8b 08             	mov    (%eax),%cx
40cca6:	83 c0 02             	add    $0x2,%eax
40cca9:	66 85 c9             	test   %cx,%cx
40ccac:	75 f5                	jne    0x40cca3
40ccae:	2b c6                	sub    %esi,%eax
40ccb0:	d1 f8                	sar    $1,%eax
40ccb2:	40                   	inc    %eax
40ccb3:	a3 fc 66 43 00       	mov    %eax,0x4366fc
40ccb8:	38 0d 59 90 44 00    	cmp    %cl,0x449059
40ccbe:	0f 85 87 07 01 00    	jne    0x41d44b
40ccc4:	8b c2                	mov    %edx,%eax
40ccc6:	5e                   	pop    %esi
40ccc7:	c3                   	ret
40ccc8:	83 c9 10             	or     $0x10,%ecx
40cccb:	eb ad                	jmp    0x40cc7a
40cccd:	cc                   	int3
40ccce:	cc                   	int3
40cccf:	cc                   	int3
40ccd0:	8b ff                	mov    %edi,%edi
40ccd2:	55                   	push   %ebp
40ccd3:	8b ec                	mov    %esp,%ebp
40ccd5:	51                   	push   %ecx
40ccd6:	53                   	push   %ebx
40ccd7:	56                   	push   %esi
40ccd8:	8b 75 0c             	mov    0xc(%ebp),%esi
40ccdb:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ccde:	57                   	push   %edi
40ccdf:	8b f9                	mov    %ecx,%edi
40cce1:	81 fe 30 de 40 00    	cmp    $0x40de30,%esi
40cce7:	74 2b                	je     0x40cd14
40cce9:	81 fe 90 e0 40 00    	cmp    $0x40e090,%esi
40ccef:	0f 84 f3 00 00 00    	je     0x40cde8
40ccf5:	81 fe 10 e2 40 00    	cmp    $0x40e210,%esi
40ccfb:	0f 84 f1 00 00 00    	je     0x40cdf2
40cd01:	81 fe 30 e2 40 00    	cmp    $0x40e230,%esi
40cd07:	0f 85 5c 07 01 00    	jne    0x41d469
40cd0d:	e8 1e 15 00 00       	call   0x40e230
40cd12:	eb 05                	jmp    0x40cd19
40cd14:	e8 17 11 00 00       	call   0x40de30
40cd19:	8b d8                	mov    %eax,%ebx
40cd1b:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40cd20:	66 83 38 00          	cmpw   $0x0,(%eax)
40cd24:	0f 84 b3 00 00 00    	je     0x40cddd
40cd2a:	33 c0                	xor    %eax,%eax
40cd2c:	39 05 f0 65 43 00    	cmp    %eax,0x4365f0
40cd32:	0f 85 c4 00 00 00    	jne    0x40cdfc
40cd38:	50                   	push   %eax
40cd39:	ba 00 20 00 00       	mov    $0x2000,%edx
40cd3e:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40cd43:	e8 c8 01 00 00       	call   0x40cf10
40cd48:	8b d0                	mov    %eax,%edx
40cd4a:	89 15 00 67 43 00    	mov    %edx,0x436700
40cd50:	83 fa ff             	cmp    $0xffffffff,%edx
40cd53:	0f 84 1f 07 01 00    	je     0x41d478
40cd59:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40cd5e:	8d 71 02             	lea    0x2(%ecx),%esi
40cd61:	66 8b 01             	mov    (%ecx),%ax
40cd64:	83 c1 02             	add    $0x2,%ecx
40cd67:	66 85 c0             	test   %ax,%ax
40cd6a:	75 f5                	jne    0x40cd61
40cd6c:	2b ce                	sub    %esi,%ecx
40cd6e:	d1 f9                	sar    $1,%ecx
40cd70:	80 3d 59 90 44 00 00 	cmpb   $0x0,0x449059
40cd77:	8d 41 01             	lea    0x1(%ecx),%eax
40cd7a:	a3 fc 66 43 00       	mov    %eax,0x4366fc
40cd7f:	0f 85 0a 07 01 00    	jne    0x41d48f
40cd85:	b8 f0 4a 44 00       	mov    $0x444af0,%eax
40cd8a:	8b cf                	mov    %edi,%ecx
40cd8c:	8d 64 24 00          	lea    0x0(%esp),%esp
40cd90:	66 8b 11             	mov    (%ecx),%dx
40cd93:	66 3b 10             	cmp    (%eax),%dx
40cd96:	0f 85 38 01 00 00    	jne    0x40ced4
40cd9c:	66 85 d2             	test   %dx,%dx
40cd9f:	74 19                	je     0x40cdba
40cda1:	66 8b 51 02          	mov    0x2(%ecx),%dx
40cda5:	66 3b 50 02          	cmp    0x2(%eax),%dx
40cda9:	0f 85 25 01 00 00    	jne    0x40ced4
40cdaf:	83 c1 04             	add    $0x4,%ecx
40cdb2:	83 c0 04             	add    $0x4,%eax
40cdb5:	66 85 d2             	test   %dx,%dx
40cdb8:	75 d6                	jne    0x40cd90
40cdba:	33 c0                	xor    %eax,%eax
40cdbc:	85 c0                	test   %eax,%eax
40cdbe:	0f 84 24 01 00 00    	je     0x40cee8
40cdc4:	a1 f8 66 43 00       	mov    0x4366f8,%eax
40cdc9:	80 b8 f7 65 43 00 33 	cmpb   $0x33,0x4365f7(%eax)
40cdd0:	74 34                	je     0x40ce06