40f989:	83 c8 ff             	or     $0xffffffff,%eax
40f98c:	3b c3                	cmp    %ebx,%eax
40f98e:	77 22                	ja     0x40f9b2
40f990:	8d 8a 08 03 00 00    	lea    0x308(%edx),%ecx
40f996:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f99a:	3b f9                	cmp    %ecx,%edi
40f99c:	74 03                	je     0x40f9a1
40f99e:	88 07                	mov    %al,(%edi)
40f9a0:	47                   	inc    %edi
40f9a1:	8b ce                	mov    %esi,%ecx
40f9a3:	e8 a6 38 00 00       	call   0x41324e
40f9a8:	8b 55 10             	mov    0x10(%ebp),%edx
40f9ab:	8a c8                	mov    %al,%cl
40f9ad:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f9b0:	eb a7                	jmp    0x40f959
40f9b2:	33 db                	xor    %ebx,%ebx
40f9b4:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
40f9b8:	75 24                	jne    0x40f9de
40f9ba:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40f9bd:	e8 78 0e 00 00       	call   0x41083a
40f9c2:	84 c0                	test   %al,%al
40f9c4:	0f 84 bb 01 00 00    	je     0x40fb85
40f9ca:	33 c0                	xor    %eax,%eax
40f9cc:	38 45 ff             	cmp    %al,-0x1(%ebp)
40f9cf:	0f 94 c0             	sete   %al
40f9d2:	48                   	dec    %eax
40f9d3:	83 e0 fb             	and    $0xfffffffb,%eax
40f9d6:	83 c0 07             	add    $0x7,%eax
40f9d9:	e9 f1 01 00 00       	jmp    0x40fbcf
40f9de:	ff 75 f9             	push   -0x7(%ebp)
40f9e1:	8b ce                	mov    %esi,%ecx
40f9e3:	e8 02 42 00 00       	call   0x413bea
40f9e8:	8b 46 10             	mov    0x10(%esi),%eax
40f9eb:	8b ce                	mov    %esi,%ecx
40f9ed:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f9f0:	8b 46 14             	mov    0x14(%esi),%eax
40f9f3:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f9f6:	e8 53 38 00 00       	call   0x41324e
40f9fb:	88 45 f9             	mov    %al,-0x7(%ebp)
40f9fe:	8a cb                	mov    %bl,%cl
40fa00:	3c 45                	cmp    $0x45,%al
40fa02:	74 11                	je     0x40fa15
40fa04:	3c 50                	cmp    $0x50,%al
40fa06:	74 08                	je     0x40fa10
40fa08:	3c 65                	cmp    $0x65,%al
40fa0a:	74 09                	je     0x40fa15
40fa0c:	3c 70                	cmp    $0x70,%al
40fa0e:	75 0c                	jne    0x40fa1c
40fa10:	8a 4d ff             	mov    -0x1(%ebp),%cl
40fa13:	eb 07                	jmp    0x40fa1c
40fa15:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40fa19:	0f 94 c1             	sete   %cl
40fa1c:	84 c9                	test   %cl,%cl
40fa1e:	0f 84 0d 01 00 00    	je     0x40fb31
40fa24:	8b ce                	mov    %esi,%ecx
40fa26:	e8 23 38 00 00       	call   0x41324e
40fa2b:	8a c8                	mov    %al,%cl
40fa2d:	80 f9 2d             	cmp    $0x2d,%cl
40fa30:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fa33:	0f 94 45 fd          	sete   -0x3(%ebp)
40fa37:	80 f9 2b             	cmp    $0x2b,%cl
40fa3a:	74 05                	je     0x40fa41
40fa3c:	80 f9 2d             	cmp    $0x2d,%cl
40fa3f:	75 0c                	jne    0x40fa4d
40fa41:	8b ce                	mov    %esi,%ecx
40fa43:	e8 06 38 00 00       	call   0x41324e
40fa48:	8a c8                	mov    %al,%cl
40fa4a:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fa4d:	88 5d fe             	mov    %bl,-0x2(%ebp)
40fa50:	80 f9 30             	cmp    $0x30,%cl
40fa53:	75 15                	jne    0x40fa6a
40fa55:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40fa59:	8b ce                	mov    %esi,%ecx
40fa5b:	e8 ee 37 00 00       	call   0x41324e
40fa60:	8a c8                	mov    %al,%cl
40fa62:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fa65:	80 f9 30             	cmp    $0x30,%cl
40fa68:	74 ef                	je     0x40fa59
40fa6a:	8a c1                	mov    %cl,%al
40fa6c:	2c 30                	sub    $0x30,%al
40fa6e:	3c 09                	cmp    $0x9,%al
40fa70:	77 08                	ja     0x40fa7a
40fa72:	0f be c1             	movsbl %cl,%eax
40fa75:	83 e8 30             	sub    $0x30,%eax
40fa78:	eb 23                	jmp    0x40fa9d
40fa7a:	8a c1                	mov    %cl,%al
40fa7c:	2c 61                	sub    $0x61,%al
40fa7e:	3c 19                	cmp    $0x19,%al
40fa80:	77 08                	ja     0x40fa8a
40fa82:	0f be c1             	movsbl %cl,%eax
40fa85:	83 e8 57             	sub    $0x57,%eax
40fa88:	eb 13                	jmp    0x40fa9d
40fa8a:	8a c1                	mov    %cl,%al
40fa8c:	2c 41                	sub    $0x41,%al
40fa8e:	3c 19                	cmp    $0x19,%al
40fa90:	77 08                	ja     0x40fa9a
40fa92:	0f be c1             	movsbl %cl,%eax
40fa95:	83 e8 37             	sub    $0x37,%eax
40fa98:	eb 03                	jmp    0x40fa9d
40fa9a:	83 c8 ff             	or     $0xffffffff,%eax
40fa9d:	83 f8 0a             	cmp    $0xa,%eax
40faa0:	73 24                	jae    0x40fac6
40faa2:	6b db 0a             	imul   $0xa,%ebx,%ebx
40faa5:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40faa9:	03 d8                	add    %eax,%ebx
40faab:	81 fb 50 14 00 00    	cmp    $0x1450,%ebx
40fab1:	7f 0e                	jg     0x40fac1
40fab3:	8b ce                	mov    %esi,%ecx
40fab5:	e8 94 37 00 00       	call   0x41324e
40faba:	8a c8                	mov    %al,%cl
40fabc:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fabf:	eb a9                	jmp    0x40fa6a
40fac1:	bb 51 14 00 00       	mov    $0x1451,%ebx
40fac6:	8a c1                	mov    %cl,%al
40fac8:	2c 30                	sub    $0x30,%al
40faca:	3c 09                	cmp    $0x9,%al
40facc:	77 08                	ja     0x40fad6
40face:	0f be c1             	movsbl %cl,%eax
40fad1:	83 e8 30             	sub    $0x30,%eax
40fad4:	eb 23                	jmp    0x40faf9
40fad6:	8a c1                	mov    %cl,%al
40fad8:	2c 61                	sub    $0x61,%al
40fada:	3c 19                	cmp    $0x19,%al
40fadc:	77 08                	ja     0x40fae6
40fade:	0f be c1             	movsbl %cl,%eax
40fae1:	83 e8 57             	sub    $0x57,%eax
40fae4:	eb 13                	jmp    0x40faf9
40fae6:	8a c1                	mov    %cl,%al
40fae8:	2c 41                	sub    $0x41,%al
40faea:	3c 19                	cmp    $0x19,%al
40faec:	77 08                	ja     0x40faf6
40faee:	0f be c1             	movsbl %cl,%eax
40faf1:	83 e8 37             	sub    $0x37,%eax
40faf4:	eb 03                	jmp    0x40faf9
40faf6:	83 c8 ff             	or     $0xffffffff,%eax
40faf9:	83 f8 0a             	cmp    $0xa,%eax
40fafc:	73 0e                	jae    0x40fb0c
40fafe:	8b ce                	mov    %esi,%ecx
40fb00:	e8 49 37 00 00       	call   0x41324e
40fb05:	8a c8                	mov    %al,%cl
40fb07:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fb0a:	eb ba                	jmp    0x40fac6
40fb0c:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
40fb10:	74 02                	je     0x40fb14
40fb12:	f7 db                	neg    %ebx
40fb14:	8a 45 fe             	mov    -0x2(%ebp),%al
40fb17:	84 c0                	test   %al,%al
40fb19:	75 16                	jne    0x40fb31
40fb1b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40fb1e:	e8 17 0d 00 00       	call   0x41083a
40fb23:	84 c0                	test   %al,%al
40fb25:	74 5e                	je     0x40fb85
40fb27:	8b ce                	mov    %esi,%ecx
40fb29:	e8 20 37 00 00       	call   0x41324e
40fb2e:	88 45 f9             	mov    %al,-0x7(%ebp)
40fb31:	ff 75 f9             	push   -0x7(%ebp)
40fb34:	8b ce                	mov    %esi,%ecx
40fb36:	e8 af 40 00 00       	call   0x413bea
40fb3b:	8b 75 10             	mov    0x10(%ebp),%esi
40fb3e:	8d 56 08             	lea    0x8(%esi),%edx
40fb41:	3b fa                	cmp    %edx,%edi
40fb43:	74 60                	je     0x40fba5
40fb45:	80 7f ff 00          	cmpb   $0x0,-0x1(%edi)
40fb49:	75 05                	jne    0x40fb50
40fb4b:	4f                   	dec    %edi
40fb4c:	3b fa                	cmp    %edx,%edi
40fb4e:	75 f5                	jne    0x40fb45
40fb50:	3b fa                	cmp    %edx,%edi
40fb52:	74 51                	je     0x40fba5
40fb54:	81 fb 50 14 00 00    	cmp    $0x1450,%ebx
40fb5a:	7f 25                	jg     0x40fb81
40fb5c:	81 fb b0 eb ff ff    	cmp    $0xffffebb0,%ebx
40fb62:	7c 2d                	jl     0x40fb91
40fb64:	8a 4d ff             	mov    -0x1(%ebp),%cl
40fb67:	33 c0                	xor    %eax,%eax
40fb69:	84 c9                	test   %cl,%cl
40fb6b:	0f 94 c0             	sete   %al
40fb6e:	48                   	dec    %eax
40fb6f:	83 e0 03             	and    $0x3,%eax
40fb72:	40                   	inc    %eax
40fb73:	0f af 45 f4          	imul   -0xc(%ebp),%eax
40fb77:	03 d8                	add    %eax,%ebx
40fb79:	81 fb 50 14 00 00    	cmp    $0x1450,%ebx
40fb7f:	7e 08                	jle    0x40fb89
40fb81:	6a 09                	push   $0x9
40fb83:	eb 22                	jmp    0x40fba7
40fb85:	6a 07                	push   $0x7
40fb87:	eb 1e                	jmp    0x40fba7
40fb89:	81 fb b0 eb ff ff    	cmp    $0xffffebb0,%ebx
40fb8f:	7d 04                	jge    0x40fb95
40fb91:	6a 08                	push   $0x8
40fb93:	eb 12                	jmp    0x40fba7
40fb95:	2b fa                	sub    %edx,%edi
40fb97:	89 1e                	mov    %ebx,(%esi)
40fb99:	33 c0                	xor    %eax,%eax
40fb9b:	89 7e 04             	mov    %edi,0x4(%esi)
40fb9e:	84 c9                	test   %cl,%cl
40fba0:	0f 95 c0             	setne  %al
40fba3:	eb 2a                	jmp    0x40fbcf
40fba5:	6a 02                	push   $0x2
40fba7:	58                   	pop    %eax
40fba8:	eb 25                	jmp    0x40fbcf
40fbaa:	ff 75 ec             	push   -0x14(%ebp)
40fbad:	8d 45 f9             	lea    -0x7(%ebp),%eax
40fbb0:	ff 75 e8             	push   -0x18(%ebp)
40fbb3:	56                   	push   %esi
40fbb4:	50                   	push   %eax
40fbb5:	e8 dd 00 00 00       	call   0x40fc97
40fbba:	eb 10                	jmp    0x40fbcc
40fbbc:	ff 75 ec             	push   -0x14(%ebp)
40fbbf:	8d 45 f9             	lea    -0x7(%ebp),%eax
40fbc2:	ff 75 e8             	push   -0x18(%ebp)
40fbc5:	56                   	push   %esi
40fbc6:	50                   	push   %eax
40fbc7:	e8 0a 00 00 00       	call   0x40fbd6
40fbcc:	83 c4 10             	add    $0x10,%esp
40fbcf:	5b                   	pop    %ebx
40fbd0:	5f                   	pop    %edi
40fbd1:	5e                   	pop    %esi
40fbd2:	8b e5                	mov    %ebp,%esp
40fbd4:	5d                   	pop    %ebp
40fbd5:	c3                   	ret
40fbd6:	8b ff                	mov    %edi,%edi
40fbd8:	55                   	push   %ebp
40fbd9:	8b ec                	mov    %esp,%ebp
40fbdb:	83 ec 10             	sub    $0x10,%esp
40fbde:	53                   	push   %ebx
40fbdf:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fbe2:	8d 45 10             	lea    0x10(%ebp),%eax
40fbe5:	56                   	push   %esi
40fbe6:	33 f6                	xor    %esi,%esi
40fbe8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fbeb:	57                   	push   %edi
40fbec:	8b 7d 0c             	mov    0xc(%ebp),%edi
40fbef:	8b c6                	mov    %esi,%eax
40fbf1:	89 7d f0             	mov    %edi,-0x10(%ebp)
40fbf4:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40fbf7:	89 75 fc             	mov    %esi,-0x4(%ebp)
40fbfa:	8a 0b                	mov    (%ebx),%cl
40fbfc:	3a 88 c8 ba 42 00    	cmp    0x42bac8(%eax),%cl
40fc02:	74 08                	je     0x40fc0c
40fc04:	3a 88 cc ba 42 00    	cmp    0x42bacc(%eax),%cl
40fc0a:	75 67                	jne    0x40fc73
40fc0c:	8b cf                	mov    %edi,%ecx
40fc0e:	e8 3b 36 00 00       	call   0x41324e
40fc13:	8a c8                	mov    %al,%cl
40fc15:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fc18:	40                   	inc    %eax
40fc19:	88 0b                	mov    %cl,(%ebx)
40fc1b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fc1e:	83 f8 03             	cmp    $0x3,%eax
40fc21:	75 d7                	jne    0x40fbfa
40fc23:	51                   	push   %ecx
40fc24:	8b cf                	mov    %edi,%ecx
40fc26:	e8 bf 3f 00 00       	call   0x413bea
40fc2b:	8b 47 10             	mov    0x10(%edi),%eax
40fc2e:	8b cf                	mov    %edi,%ecx
40fc30:	89 45 10             	mov    %eax,0x10(%ebp)
40fc33:	8b 47 14             	mov    0x14(%edi),%eax
40fc36:	89 45 14             	mov    %eax,0x14(%ebp)
40fc39:	e8 10 36 00 00       	call   0x41324e
40fc3e:	88 03                	mov    %al,(%ebx)
40fc40:	8a 03                	mov    (%ebx),%al
40fc42:	3a 86 d0 ba 42 00    	cmp    0x42bad0(%esi),%al
40fc48:	74 08                	je     0x40fc52
40fc4a:	3a 86 d8 ba 42 00    	cmp    0x42bad8(%esi),%al
40fc50:	75 2d                	jne    0x40fc7f
40fc52:	8b cf                	mov    %edi,%ecx
40fc54:	e8 f5 35 00 00       	call   0x41324e
40fc59:	46                   	inc    %esi
40fc5a:	88 03                	mov    %al,(%ebx)
40fc5c:	83 fe 05             	cmp    $0x5,%esi
40fc5f:	75 df                	jne    0x40fc40
40fc61:	50                   	push   %eax
40fc62:	8b cf                	mov    %edi,%ecx
40fc64:	e8 81 3f 00 00       	call   0x413bea
40fc69:	6a 03                	push   $0x3
40fc6b:	58                   	pop    %eax
40fc6c:	5f                   	pop    %edi
40fc6d:	5e                   	pop    %esi
40fc6e:	5b                   	pop    %ebx
40fc6f:	8b e5                	mov    %ebp,%esp
40fc71:	5d                   	pop    %ebp
40fc72:	c3                   	ret
40fc73:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fc76:	e8 6b 0b 00 00       	call   0x4107e6
40fc7b:	6a 07                	push   $0x7
40fc7d:	eb ec                	jmp    0x40fc6b
40fc7f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fc82:	e8 5f 0b 00 00       	call   0x4107e6
40fc87:	33 c9                	xor    %ecx,%ecx
40fc89:	84 c0                	test   %al,%al
40fc8b:	0f 94 c1             	sete   %cl
40fc8e:	8d 04 8d 03 00 00 00 	lea    0x3(,%ecx,4),%eax
40fc95:	eb d5                	jmp    0x40fc6c
40fc97:	8b ff                	mov    %edi,%edi
40fc99:	55                   	push   %ebp
40fc9a:	8b ec                	mov    %esp,%ebp
40fc9c:	83 ec 0c             	sub    $0xc,%esp
40fc9f:	53                   	push   %ebx
40fca0:	56                   	push   %esi
40fca1:	8b 75 08             	mov    0x8(%ebp),%esi
40fca4:	8d 45 10             	lea    0x10(%ebp),%eax
40fca7:	57                   	push   %edi
40fca8:	8b 7d 0c             	mov    0xc(%ebp),%edi
40fcab:	33 db                	xor    %ebx,%ebx
40fcad:	89 7d f4             	mov    %edi,-0xc(%ebp)
40fcb0:	89 75 f8             	mov    %esi,-0x8(%ebp)
40fcb3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fcb6:	8a 06                	mov    (%esi),%al
40fcb8:	3a 83 e0 ba 42 00    	cmp    0x42bae0(%ebx),%al
40fcbe:	74 08                	je     0x40fcc8
40fcc0:	3a 83 e4 ba 42 00    	cmp    0x42bae4(%ebx),%al
40fcc6:	75 4a                	jne    0x40fd12
40fcc8:	8b cf                	mov    %edi,%ecx
40fcca:	e8 7f 35 00 00       	call   0x41324e
40fccf:	43                   	inc    %ebx
40fcd0:	88 06                	mov    %al,(%esi)
40fcd2:	83 fb 03             	cmp    $0x3,%ebx
40fcd5:	75 df                	jne    0x40fcb6
40fcd7:	50                   	push   %eax
40fcd8:	8b cf                	mov    %edi,%ecx
40fcda:	e8 0b 3f 00 00       	call   0x413bea
40fcdf:	8b 47 10             	mov    0x10(%edi),%eax
40fce2:	8b cf                	mov    %edi,%ecx
40fce4:	89 45 10             	mov    %eax,0x10(%ebp)
40fce7:	8b 47 14             	mov    0x14(%edi),%eax
40fcea:	89 45 14             	mov    %eax,0x14(%ebp)
40fced:	e8 5c 35 00 00       	call   0x41324e
40fcf2:	88 06                	mov    %al,(%esi)
40fcf4:	3c 28                	cmp    $0x28,%al
40fcf6:	74 29                	je     0x40fd21
40fcf8:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40fcfb:	e8 10 0b 00 00       	call   0x410810
40fd00:	0f b6 c0             	movzbl %al,%eax
40fd03:	f7 d8                	neg    %eax
40fd05:	1b c0                	sbb    %eax,%eax
40fd07:	83 e0 fd             	and    $0xfffffffd,%eax
40fd0a:	83 c0 07             	add    $0x7,%eax
40fd0d:	e9 90 00 00 00       	jmp    0x40fda2
40fd12:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40fd15:	e8 f6 0a 00 00       	call   0x410810
40fd1a:	6a 07                	push   $0x7
40fd1c:	e9 80 00 00 00       	jmp    0x40fda1
40fd21:	8b cf                	mov    %edi,%ecx
40fd23:	e8 26 35 00 00       	call   0x41324e
40fd28:	57                   	push   %edi
40fd29:	56                   	push   %esi
40fd2a:	88 06                	mov    %al,(%esi)
40fd2c:	e8 b2 00 00 00       	call   0x40fde3