40de39:	33 c0                	xor    %eax,%eax
40de3b:	50                   	push   %eax
40de3c:	50                   	push   %eax
40de3d:	50                   	push   %eax
40de3e:	50                   	push   %eax
40de3f:	50                   	push   %eax
40de40:	e8 2c f5 ff ff       	call   0x40d371
40de45:	83 c4 18             	add    $0x18,%esp
40de48:	8b 4d 10             	mov    0x10(%ebp),%ecx
40de4b:	85 c9                	test   %ecx,%ecx
40de4d:	0f 84 11 05 00 00    	je     0x40e364
40de53:	8b 45 0c             	mov    0xc(%ebp),%eax
40de56:	89 01                	mov    %eax,(%ecx)
40de58:	e9 07 05 00 00       	jmp    0x40e364
40de5d:	8b 45 0c             	mov    0xc(%ebp),%eax
40de60:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40de64:	0f b6 5d 18          	movzbl 0x18(%ebp),%ebx
40de68:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
40de6e:	0f b7 30             	movzwl (%eax),%esi
40de71:	8d 48 02             	lea    0x2(%eax),%ecx
40de74:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40de77:	83 fe 2d             	cmp    $0x2d,%esi
40de7a:	75 05                	jne    0x40de81
40de7c:	83 cb 02             	or     $0x2,%ebx
40de7f:	eb 05                	jmp    0x40de86
40de81:	83 fe 2b             	cmp    $0x2b,%esi
40de84:	75 09                	jne    0x40de8f
40de86:	0f b7 31             	movzwl (%ecx),%esi
40de89:	83 c1 02             	add    $0x2,%ecx
40de8c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40de8f:	c7 85 74 ff ff ff 3a 	movl   $0x3a,-0x8c(%ebp)
40de96:	00 00 00
40de99:	b8 10 ff 00 00       	mov    $0xff10,%eax
40de9e:	c7 45 f8 60 06 00 00 	movl   $0x660,-0x8(%ebp)
40dea5:	c7 45 f4 6a 06 00 00 	movl   $0x66a,-0xc(%ebp)
40deac:	c7 45 f0 f0 06 00 00 	movl   $0x6f0,-0x10(%ebp)
40deb3:	c7 45 ec fa 06 00 00 	movl   $0x6fa,-0x14(%ebp)
40deba:	c7 45 e8 66 09 00 00 	movl   $0x966,-0x18(%ebp)
40dec1:	c7 45 e4 70 09 00 00 	movl   $0x970,-0x1c(%ebp)
40dec8:	c7 45 e0 e6 09 00 00 	movl   $0x9e6,-0x20(%ebp)
40decf:	c7 45 dc f0 09 00 00 	movl   $0x9f0,-0x24(%ebp)
40ded6:	c7 45 d8 66 0a 00 00 	movl   $0xa66,-0x28(%ebp)
40dedd:	c7 45 d4 70 0a 00 00 	movl   $0xa70,-0x2c(%ebp)
40dee4:	c7 45 d0 e6 0a 00 00 	movl   $0xae6,-0x30(%ebp)
40deeb:	c7 45 cc f0 0a 00 00 	movl   $0xaf0,-0x34(%ebp)
40def2:	c7 45 c8 66 0b 00 00 	movl   $0xb66,-0x38(%ebp)
40def9:	c7 45 c4 70 0b 00 00 	movl   $0xb70,-0x3c(%ebp)
40df00:	c7 45 c0 66 0c 00 00 	movl   $0xc66,-0x40(%ebp)
40df07:	c7 45 bc 70 0c 00 00 	movl   $0xc70,-0x44(%ebp)
40df0e:	c7 45 b8 e6 0c 00 00 	movl   $0xce6,-0x48(%ebp)
40df15:	c7 45 b4 f0 0c 00 00 	movl   $0xcf0,-0x4c(%ebp)
40df1c:	c7 45 b0 66 0d 00 00 	movl   $0xd66,-0x50(%ebp)
40df23:	c7 45 ac 70 0d 00 00 	movl   $0xd70,-0x54(%ebp)
40df2a:	c7 45 a8 50 0e 00 00 	movl   $0xe50,-0x58(%ebp)
40df31:	c7 45 a4 5a 0e 00 00 	movl   $0xe5a,-0x5c(%ebp)
40df38:	c7 45 a0 d0 0e 00 00 	movl   $0xed0,-0x60(%ebp)
40df3f:	c7 45 9c da 0e 00 00 	movl   $0xeda,-0x64(%ebp)
40df46:	c7 45 98 20 0f 00 00 	movl   $0xf20,-0x68(%ebp)
40df4d:	c7 45 94 2a 0f 00 00 	movl   $0xf2a,-0x6c(%ebp)
40df54:	c7 45 90 40 10 00 00 	movl   $0x1040,-0x70(%ebp)
40df5b:	c7 45 8c 4a 10 00 00 	movl   $0x104a,-0x74(%ebp)
40df62:	c7 45 88 e0 17 00 00 	movl   $0x17e0,-0x78(%ebp)
40df69:	c7 45 84 ea 17 00 00 	movl   $0x17ea,-0x7c(%ebp)
40df70:	c7 45 80 10 18 00 00 	movl   $0x1810,-0x80(%ebp)
40df77:	c7 85 7c ff ff ff 1a 	movl   $0x181a,-0x84(%ebp)
40df7e:	18 00 00
40df81:	c7 85 78 ff ff ff 1a 	movl   $0xff1a,-0x88(%ebp)
40df88:	ff 00 00
40df8b:	6a 30                	push   $0x30
40df8d:	5a                   	pop    %edx
40df8e:	85 ff                	test   %edi,%edi
40df90:	74 09                	je     0x40df9b
40df92:	83 ff 10             	cmp    $0x10,%edi
40df95:	0f 85 e2 01 00 00    	jne    0x40e17d
40df9b:	66 3b f2             	cmp    %dx,%si
40df9e:	0f 82 66 01 00 00    	jb     0x40e10a
40dfa4:	66 3b b5 74 ff ff ff 	cmp    -0x8c(%ebp),%si
40dfab:	73 0a                	jae    0x40dfb7
40dfad:	0f b7 c6             	movzwl %si,%eax
40dfb0:	2b c2                	sub    %edx,%eax
40dfb2:	e9 4e 01 00 00       	jmp    0x40e105
40dfb7:	66 3b f0             	cmp    %ax,%si
40dfba:	0f 83 34 01 00 00    	jae    0x40e0f4
40dfc0:	8b 55 f8             	mov    -0x8(%ebp),%edx
40dfc3:	66 3b f2             	cmp    %dx,%si
40dfc6:	0f 82 3e 01 00 00    	jb     0x40e10a
40dfcc:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
40dfd0:	72 db                	jb     0x40dfad
40dfd2:	8b 55 f0             	mov    -0x10(%ebp),%edx
40dfd5:	66 3b f2             	cmp    %dx,%si
40dfd8:	0f 82 2c 01 00 00    	jb     0x40e10a
40dfde:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
40dfe2:	72 c9                	jb     0x40dfad
40dfe4:	8b 55 e8             	mov    -0x18(%ebp),%edx
40dfe7:	66 3b f2             	cmp    %dx,%si
40dfea:	0f 82 1a 01 00 00    	jb     0x40e10a
40dff0:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
40dff4:	72 b7                	jb     0x40dfad
40dff6:	8b 55 e0             	mov    -0x20(%ebp),%edx
40dff9:	66 3b f2             	cmp    %dx,%si
40dffc:	0f 82 08 01 00 00    	jb     0x40e10a
40e002:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
40e006:	72 a5                	jb     0x40dfad
40e008:	8b 55 d8             	mov    -0x28(%ebp),%edx
40e00b:	66 3b f2             	cmp    %dx,%si
40e00e:	0f 82 f6 00 00 00    	jb     0x40e10a
40e014:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
40e018:	72 93                	jb     0x40dfad
40e01a:	8b 55 d0             	mov    -0x30(%ebp),%edx
40e01d:	66 3b f2             	cmp    %dx,%si
40e020:	0f 82 e4 00 00 00    	jb     0x40e10a
40e026:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
40e02a:	72 81                	jb     0x40dfad
40e02c:	8b 55 c8             	mov    -0x38(%ebp),%edx
40e02f:	66 3b f2             	cmp    %dx,%si
40e032:	0f 82 d2 00 00 00    	jb     0x40e10a
40e038:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
40e03c:	0f 82 6b ff ff ff    	jb     0x40dfad
40e042:	8b 55 c0             	mov    -0x40(%ebp),%edx
40e045:	66 3b f2             	cmp    %dx,%si
40e048:	0f 82 bc 00 00 00    	jb     0x40e10a
40e04e:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
40e052:	0f 82 55 ff ff ff    	jb     0x40dfad
40e058:	8b 55 b8             	mov    -0x48(%ebp),%edx
40e05b:	66 3b f2             	cmp    %dx,%si
40e05e:	0f 82 a6 00 00 00    	jb     0x40e10a
40e064:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
40e068:	0f 82 3f ff ff ff    	jb     0x40dfad
40e06e:	8b 55 b0             	mov    -0x50(%ebp),%edx
40e071:	66 3b f2             	cmp    %dx,%si
40e074:	0f 82 90 00 00 00    	jb     0x40e10a
40e07a:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
40e07e:	0f 82 29 ff ff ff    	jb     0x40dfad
40e084:	8b 55 a8             	mov    -0x58(%ebp),%edx
40e087:	66 3b f2             	cmp    %dx,%si
40e08a:	72 7e                	jb     0x40e10a
40e08c:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
40e090:	0f 82 17 ff ff ff    	jb     0x40dfad
40e096:	8b 55 a0             	mov    -0x60(%ebp),%edx
40e099:	66 3b f2             	cmp    %dx,%si
40e09c:	72 6c                	jb     0x40e10a
40e09e:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
40e0a2:	0f 82 05 ff ff ff    	jb     0x40dfad
40e0a8:	8b 55 98             	mov    -0x68(%ebp),%edx
40e0ab:	66 3b f2             	cmp    %dx,%si
40e0ae:	72 5a                	jb     0x40e10a
40e0b0:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
40e0b4:	0f 82 f3 fe ff ff    	jb     0x40dfad
40e0ba:	8b 55 90             	mov    -0x70(%ebp),%edx
40e0bd:	66 3b f2             	cmp    %dx,%si
40e0c0:	72 48                	jb     0x40e10a
40e0c2:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
40e0c6:	0f 82 e1 fe ff ff    	jb     0x40dfad
40e0cc:	8b 55 88             	mov    -0x78(%ebp),%edx
40e0cf:	66 3b f2             	cmp    %dx,%si
40e0d2:	72 36                	jb     0x40e10a
40e0d4:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
40e0d8:	0f 82 cf fe ff ff    	jb     0x40dfad
40e0de:	8b 55 80             	mov    -0x80(%ebp),%edx
40e0e1:	66 3b f2             	cmp    %dx,%si
40e0e4:	72 24                	jb     0x40e10a
40e0e6:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
40e0ed:	73 1b                	jae    0x40e10a
40e0ef:	e9 b9 fe ff ff       	jmp    0x40dfad
40e0f4:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
40e0fb:	73 0d                	jae    0x40e10a
40e0fd:	0f b7 c6             	movzwl %si,%eax
40e100:	2d 10 ff 00 00       	sub    $0xff10,%eax
40e105:	83 f8 ff             	cmp    $0xffffffff,%eax
40e108:	75 28                	jne    0x40e132
40e10a:	0f b7 c6             	movzwl %si,%eax
40e10d:	83 f8 41             	cmp    $0x41,%eax
40e110:	72 0a                	jb     0x40e11c
40e112:	83 f8 5a             	cmp    $0x5a,%eax
40e115:	77 05                	ja     0x40e11c
40e117:	8d 48 9f             	lea    -0x61(%eax),%ecx
40e11a:	eb 08                	jmp    0x40e124
40e11c:	8d 48 9f             	lea    -0x61(%eax),%ecx
40e11f:	83 f9 19             	cmp    $0x19,%ecx
40e122:	77 4f                	ja     0x40e173
40e124:	83 f9 19             	cmp    $0x19,%ecx
40e127:	77 03                	ja     0x40e12c
40e129:	83 c0 e0             	add    $0xffffffe0,%eax
40e12c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e12f:	83 c0 c9             	add    $0xffffffc9,%eax
40e132:	85 c0                	test   %eax,%eax
40e134:	75 3d                	jne    0x40e173
40e136:	0f b7 01             	movzwl (%ecx),%eax
40e139:	83 c1 02             	add    $0x2,%ecx
40e13c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40e13f:	83 f8 78             	cmp    $0x78,%eax
40e142:	74 1a                	je     0x40e15e
40e144:	83 f8 58             	cmp    $0x58,%eax
40e147:	74 15                	je     0x40e15e
40e149:	85 ff                	test   %edi,%edi
40e14b:	75 06                	jne    0x40e153
40e14d:	6a 08                	push   $0x8
40e14f:	5f                   	pop    %edi
40e150:	89 7d 14             	mov    %edi,0x14(%ebp)
40e153:	50                   	push   %eax
40e154:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40e157:	e8 2f 37 00 00       	call   0x41188b
40e15c:	eb 1f                	jmp    0x40e17d
40e15e:	85 ff                	test   %edi,%edi
40e160:	75 06                	jne    0x40e168
40e162:	6a 10                	push   $0x10
40e164:	5f                   	pop    %edi
40e165:	89 7d 14             	mov    %edi,0x14(%ebp)
40e168:	0f b7 31             	movzwl (%ecx),%esi
40e16b:	83 c1 02             	add    $0x2,%ecx
40e16e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40e171:	eb 0a                	jmp    0x40e17d
40e173:	85 ff                	test   %edi,%edi
40e175:	75 06                	jne    0x40e17d
40e177:	6a 0a                	push   $0xa
40e179:	5f                   	pop    %edi
40e17a:	89 7d 14             	mov    %edi,0x14(%ebp)
40e17d:	83 c8 ff             	or     $0xffffffff,%eax
40e180:	33 d2                	xor    %edx,%edx
40e182:	f7 f7                	div    %edi
40e184:	8b f8                	mov    %eax,%edi
40e186:	6a 30                	push   $0x30
40e188:	58                   	pop    %eax
40e189:	66 3b f0             	cmp    %ax,%si
40e18c:	0f 82 4c 01 00 00    	jb     0x40e2de
40e192:	6a 3a                	push   $0x3a
40e194:	59                   	pop    %ecx
40e195:	66 3b f1             	cmp    %cx,%si
40e198:	0f 82 36 01 00 00    	jb     0x40e2d4
40e19e:	b8 10 ff 00 00       	mov    $0xff10,%eax
40e1a3:	66 3b f0             	cmp    %ax,%si
40e1a6:	0f 83 1f 01 00 00    	jae    0x40e2cb
40e1ac:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e1af:	66 3b f0             	cmp    %ax,%si
40e1b2:	0f 82 26 01 00 00    	jb     0x40e2de
40e1b8:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
40e1bc:	0f 82 12 01 00 00    	jb     0x40e2d4
40e1c2:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e1c5:	66 3b f0             	cmp    %ax,%si
40e1c8:	0f 82 10 01 00 00    	jb     0x40e2de
40e1ce:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
40e1d2:	0f 82 fc 00 00 00    	jb     0x40e2d4
40e1d8:	8b 45 e8             	mov    -0x18(%ebp),%eax
40e1db:	66 3b f0             	cmp    %ax,%si
40e1de:	0f 82 fa 00 00 00    	jb     0x40e2de
40e1e4:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
40e1e8:	0f 82 e6 00 00 00    	jb     0x40e2d4
40e1ee:	8b 45 e0             	mov    -0x20(%ebp),%eax
40e1f1:	66 3b f0             	cmp    %ax,%si
40e1f4:	0f 82 e4 00 00 00    	jb     0x40e2de
40e1fa:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
40e1fe:	0f 82 d0 00 00 00    	jb     0x40e2d4
40e204:	8b 45 d8             	mov    -0x28(%ebp),%eax
40e207:	66 3b f0             	cmp    %ax,%si
40e20a:	0f 82 ce 00 00 00    	jb     0x40e2de
40e210:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
40e214:	0f 82 ba 00 00 00    	jb     0x40e2d4
40e21a:	8b 45 d0             	mov    -0x30(%ebp),%eax
40e21d:	66 3b f0             	cmp    %ax,%si
40e220:	0f 82 b8 00 00 00    	jb     0x40e2de
40e226:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
40e22a:	0f 82 a4 00 00 00    	jb     0x40e2d4
40e230:	8b 45 c8             	mov    -0x38(%ebp),%eax
40e233:	66 3b f0             	cmp    %ax,%si
40e236:	0f 82 a2 00 00 00    	jb     0x40e2de
40e23c:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
40e240:	0f 82 8e 00 00 00    	jb     0x40e2d4
40e246:	8b 45 c0             	mov    -0x40(%ebp),%eax
40e249:	66 3b f0             	cmp    %ax,%si
40e24c:	0f 82 8c 00 00 00    	jb     0x40e2de
40e252:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
40e256:	72 7c                	jb     0x40e2d4
40e258:	8b 45 b8             	mov    -0x48(%ebp),%eax
40e25b:	66 3b f0             	cmp    %ax,%si
40e25e:	72 7e                	jb     0x40e2de
40e260:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
40e264:	72 6e                	jb     0x40e2d4
40e266:	8b 45 b0             	mov    -0x50(%ebp),%eax
40e269:	66 3b f0             	cmp    %ax,%si
40e26c:	72 70                	jb     0x40e2de
40e26e:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
40e272:	72 60                	jb     0x40e2d4
40e274:	8b 45 a8             	mov    -0x58(%ebp),%eax
40e277:	66 3b f0             	cmp    %ax,%si
40e27a:	72 62                	jb     0x40e2de
40e27c:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
40e280:	72 52                	jb     0x40e2d4
40e282:	8b 45 a0             	mov    -0x60(%ebp),%eax
40e285:	66 3b f0             	cmp    %ax,%si
40e288:	72 54                	jb     0x40e2de
40e28a:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
40e28e:	72 44                	jb     0x40e2d4
40e290:	8b 45 98             	mov    -0x68(%ebp),%eax
40e293:	66 3b f0             	cmp    %ax,%si
40e296:	72 46                	jb     0x40e2de
40e298:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
40e29c:	72 36                	jb     0x40e2d4
40e29e:	8b 45 90             	mov    -0x70(%ebp),%eax
40e2a1:	66 3b f0             	cmp    %ax,%si
40e2a4:	72 38                	jb     0x40e2de
40e2a6:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
40e2aa:	72 28                	jb     0x40e2d4
40e2ac:	8b 45 88             	mov    -0x78(%ebp),%eax
40e2af:	66 3b f0             	cmp    %ax,%si
40e2b2:	72 2a                	jb     0x40e2de
40e2b4:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
40e2b8:	72 1a                	jb     0x40e2d4
40e2ba:	8b 45 80             	mov    -0x80(%ebp),%eax
40e2bd:	66 3b f0             	cmp    %ax,%si
40e2c0:	72 1c                	jb     0x40e2de
40e2c2:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
40e2c9:	eb 07                	jmp    0x40e2d2
40e2cb:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
40e2d2:	73 0a                	jae    0x40e2de
40e2d4:	0f b7 ce             	movzwl %si,%ecx
40e2d7:	2b c8                	sub    %eax,%ecx
40e2d9:	83 f9 ff             	cmp    $0xffffffff,%ecx
40e2dc:	75 2e                	jne    0x40e30c
40e2de:	0f b7 ce             	movzwl %si,%ecx
40e2e1:	83 f9 41             	cmp    $0x41,%ecx
40e2e4:	72 05                	jb     0x40e2eb
40e2e6:	83 f9 5a             	cmp    $0x5a,%ecx
40e2e9:	76 0b                	jbe    0x40e2f6
40e2eb:	83 f9 61             	cmp    $0x61,%ecx
40e2ee:	72 19                	jb     0x40e309
40e2f0:	66 83 fe 7a          	cmp    $0x7a,%si
40e2f4:	77 13                	ja     0x40e309
40e2f6:	6a 19                	push   $0x19
40e2f8:	8d 46 9f             	lea    -0x61(%esi),%eax
40e2fb:	5a                   	pop    %edx
40e2fc:	66 3b c2             	cmp    %dx,%ax
40e2ff:	77 03                	ja     0x40e304
40e301:	83 c1 e0             	add    $0xffffffe0,%ecx
40e304:	83 c1 c9             	add    $0xffffffc9,%ecx
40e307:	eb 03                	jmp    0x40e30c
40e309:	83 c9 ff             	or     $0xffffffff,%ecx
40e30c:	8b 55 14             	mov    0x14(%ebp),%edx
40e30f:	3b ca                	cmp    %edx,%ecx
40e311:	73 34                	jae    0x40e347
40e313:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e316:	0f af c2             	imul   %edx,%eax
40e319:	8d 14 08             	lea    (%eax,%ecx,1),%edx
40e31c:	3b d0                	cmp    %eax,%edx
40e31e:	1b c9                	sbb    %ecx,%ecx
40e320:	f7 d9                	neg    %ecx
40e322:	3b 7d fc             	cmp    -0x4(%ebp),%edi
40e325:	89 55 fc             	mov    %edx,-0x4(%ebp)
40e328:	1b c0                	sbb    %eax,%eax
40e32a:	f7 d8                	neg    %eax
40e32c:	0b c8                	or     %eax,%ecx