40d017:	0f 84 83 02 00 00    	je     0x40d2a0
40d01d:	66 83 fe 3c          	cmp    $0x3c,%si
40d021:	0f 84 79 02 00 00    	je     0x40d2a0
40d027:	33 c0                	xor    %eax,%eax
40d029:	66 89 07             	mov    %ax,(%edi)
40d02c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d02f:	0f b7 00             	movzwl (%eax),%eax
40d032:	5f                   	pop    %edi
40d033:	5e                   	pop    %esi
40d034:	5b                   	pop    %ebx
40d035:	8b e5                	mov    %ebp,%esp
40d037:	5d                   	pop    %ebp
40d038:	c2 04 00             	ret    $0x4
40d03b:	80 3d 59 90 44 00 00 	cmpb   $0x0,0x449059
40d042:	0f 85 72 04 01 00    	jne    0x41d4ba
40d048:	a1 c8 65 43 00       	mov    0x4365c8,%eax
40d04d:	a3 cc 65 43 00       	mov    %eax,0x4365cc
40d052:	33 c0                	xor    %eax,%eax
40d054:	5f                   	pop    %edi
40d055:	5e                   	pop    %esi
40d056:	5b                   	pop    %ebx
40d057:	8b e5                	mov    %ebp,%esp
40d059:	5d                   	pop    %ebp
40d05a:	c2 04 00             	ret    $0x4
40d05d:	83 f8 41             	cmp    $0x41,%eax
40d060:	73 35                	jae    0x40d097
40d062:	83 f8 7c             	cmp    $0x7c,%eax
40d065:	77 35                	ja     0x40d09c
40d067:	0f b6 80 e0 d4 40 00 	movzbl 0x40d4e0(%eax),%eax
40d06e:	ff 24 85 c8 d4 40 00 	jmp    *0x40d4c8(,%eax,4)
40d075:	8b c3                	mov    %ebx,%eax
40d077:	24 2a                	and    $0x2a,%al
40d079:	3c 08                	cmp    $0x8,%al
40d07b:	75 1f                	jne    0x40d09c
40d07d:	f6 c3 22             	test   $0x22,%bl
40d080:	75 1a                	jne    0x40d09c
40d082:	f6 c3 10             	test   $0x10,%bl
40d085:	0f 85 48 ff ff ff    	jne    0x40cfd3
40d08b:	66 83 fe 29          	cmp    $0x29,%si
40d08f:	0f 85 3e ff ff ff    	jne    0x40cfd3
40d095:	eb 05                	jmp    0x40d09c
40d097:	83 f8 7c             	cmp    $0x7c,%eax
40d09a:	73 c6                	jae    0x40d062
40d09c:	66 83 fe 5e          	cmp    $0x5e,%si
40d0a0:	0f 84 f8 03 00 00    	je     0x40d49e
40d0a6:	66 83 fe 22          	cmp    $0x22,%si
40d0aa:	0f 84 e8 02 00 00    	je     0x40d398
40d0b0:	f6 c3 23             	test   $0x23,%bl
40d0b3:	75 33                	jne    0x40d0e8
40d0b5:	56                   	push   %esi
40d0b6:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d0bc:	83 c4 04             	add    $0x4,%esp
40d0bf:	85 c0                	test   %eax,%eax
40d0c1:	0f 85 1b ff ff ff    	jne    0x40cfe2
40d0c7:	f6 c3 04             	test   $0x4,%bl
40d0ca:	0f 85 96 02 00 00    	jne    0x40d366
40d0d0:	b8 d0 22 40 00       	mov    $0x4022d0,%eax
40d0d5:	56                   	push   %esi
40d0d6:	50                   	push   %eax
40d0d7:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40d0dd:	83 c4 08             	add    $0x8,%esp
40d0e0:	85 c0                	test   %eax,%eax
40d0e2:	0f 85 fa fe ff ff    	jne    0x40cfe2
40d0e8:	56                   	push   %esi
40d0e9:	ff 15 34 a4 44 00    	call   *0x44a434
40d0ef:	83 c4 04             	add    $0x4,%esp
40d0f2:	85 c0                	test   %eax,%eax
40d0f4:	0f 85 16 02 00 00    	jne    0x40d310
40d0fa:	8b 55 f4             	mov    -0xc(%ebp),%edx
40d0fd:	83 cb 40             	or     $0x40,%ebx
40d100:	66 89 37             	mov    %si,(%edi)
40d103:	83 c7 02             	add    $0x2,%edi
40d106:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d109:	8b df                	mov    %edi,%ebx
40d10b:	2b 5d f0             	sub    -0x10(%ebp),%ebx
40d10e:	8d 42 ff             	lea    -0x1(%edx),%eax
40d111:	d1 fb                	sar    $1,%ebx
40d113:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d116:	c7 05 d0 65 43 00 00 	movl   $0x0,0x4365d0
40d11d:	00 00 00
40d120:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d123:	3b d8                	cmp    %eax,%ebx
40d125:	0f 8d c3 00 00 00    	jge    0x40d1ee
40d12b:	eb 03                	jmp    0x40d130
40d12d:	8d 49 00             	lea    0x0(%ecx),%ecx
40d130:	e8 cb 04 00 00       	call   0x40d600
40d135:	83 3d 2c 95 44 00 00 	cmpl   $0x0,0x44952c
40d13c:	0f b7 f0             	movzwl %ax,%esi
40d13f:	0f 85 c3 03 01 00    	jne    0x41d508
40d145:	0f b7 c6             	movzwl %si,%eax
40d148:	83 f8 41             	cmp    $0x41,%eax
40d14b:	72 45                	jb     0x40d192
40d14d:	83 f8 7c             	cmp    $0x7c,%eax
40d150:	73 40                	jae    0x40d192
40d152:	8b 45 08             	mov    0x8(%ebp),%eax
40d155:	66 83 fe 5e          	cmp    $0x5e,%si
40d159:	0f 84 ec 02 00 00    	je     0x40d44b
40d15f:	66 83 fe 22          	cmp    $0x22,%si
40d163:	0f 84 2c 01 00 00    	je     0x40d295
40d169:	a8 23                	test   $0x23,%al
40d16b:	74 47                	je     0x40d1b4
40d16d:	56                   	push   %esi
40d16e:	ff 15 34 a4 44 00    	call   *0x44a434
40d174:	83 c4 04             	add    $0x4,%esp
40d177:	85 c0                	test   %eax,%eax
40d179:	0f 85 a7 00 00 00    	jne    0x40d226
40d17f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d182:	43                   	inc    %ebx
40d183:	66 89 37             	mov    %si,(%edi)
40d186:	83 c7 02             	add    $0x2,%edi
40d189:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d18c:	3b d8                	cmp    %eax,%ebx
40d18e:	7c a0                	jl     0x40d130
40d190:	eb 59                	jmp    0x40d1eb
40d192:	83 f8 7c             	cmp    $0x7c,%eax
40d195:	77 bb                	ja     0x40d152
40d197:	0f b6 80 78 d5 40 00 	movzbl 0x40d578(%eax),%eax
40d19e:	ff 24 85 60 d5 40 00 	jmp    *0x40d560(,%eax,4)
40d1a5:	8b 45 08             	mov    0x8(%ebp),%eax
40d1a8:	83 e0 dd             	and    $0xffffffdd,%eax
40d1ab:	89 45 08             	mov    %eax,0x8(%ebp)
40d1ae:	a8 22                	test   $0x22,%al
40d1b0:	74 36                	je     0x40d1e8
40d1b2:	eb 9e                	jmp    0x40d152
40d1b4:	56                   	push   %esi
40d1b5:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d1bb:	83 c4 04             	add    $0x4,%esp
40d1be:	85 c0                	test   %eax,%eax
40d1c0:	75 26                	jne    0x40d1e8
40d1c2:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
40d1c6:	0f 85 bf 00 00 00    	jne    0x40d28b
40d1cc:	b8 d0 22 40 00       	mov    $0x4022d0,%eax
40d1d1:	56                   	push   %esi
40d1d2:	50                   	push   %eax
40d1d3:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40d1d9:	83 c4 08             	add    $0x8,%esp
40d1dc:	85 c0                	test   %eax,%eax
40d1de:	74 8d                	je     0x40d16d
40d1e0:	eb 06                	jmp    0x40d1e8
40d1e2:	f6 45 08 22          	testb  $0x22,0x8(%ebp)
40d1e6:	75 97                	jne    0x40d17f
40d1e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d1eb:	8b 55 f4             	mov    -0xc(%ebp),%edx
40d1ee:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
40d1f2:	33 c9                	xor    %ecx,%ecx
40d1f4:	66 89 0f             	mov    %cx,(%edi)
40d1f7:	3b d8                	cmp    %eax,%ebx
40d1f9:	7d 15                	jge    0x40d210
40d1fb:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40d201:	81 f9 c0 25 43 00    	cmp    $0x4325c0,%ecx
40d207:	74 07                	je     0x40d210
40d209:	83 2d cc 65 43 00 02 	subl   $0x2,0x4365cc
40d210:	3b da                	cmp    %edx,%ebx
40d212:	0f 8d 39 03 01 00    	jge    0x41d551
40d218:	5f                   	pop    %edi
40d219:	5e                   	pop    %esi
40d21a:	b8 00 40 00 00       	mov    $0x4000,%eax
40d21f:	5b                   	pop    %ebx
40d220:	8b e5                	mov    %ebp,%esp
40d222:	5d                   	pop    %ebp
40d223:	c2 04 00             	ret    $0x4
40d226:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40d22c:	8b c1                	mov    %ecx,%eax
40d22e:	2d c0 25 43 00       	sub    $0x4325c0,%eax
40d233:	83 e8 02             	sub    $0x2,%eax
40d236:	83 e0 fe             	and    $0xfffffffe,%eax
40d239:	83 f8 04             	cmp    $0x4,%eax
40d23c:	7c 2e                	jl     0x40d26c
40d23e:	0f b7 41 fc          	movzwl -0x4(%ecx),%eax
40d242:	50                   	push   %eax
40d243:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d246:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d24c:	83 c4 04             	add    $0x4,%esp
40d24f:	85 c0                	test   %eax,%eax
40d251:	75 19                	jne    0x40d26c
40d253:	ff 75 ec             	push   -0x14(%ebp)
40d256:	68 e0 22 40 00       	push   $0x4022e0
40d25b:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40d261:	83 c4 08             	add    $0x8,%esp
40d264:	85 c0                	test   %eax,%eax
40d266:	0f 84 13 ff ff ff    	je     0x40d17f
40d26c:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40d271:	0f b7 00             	movzwl (%eax),%eax
40d274:	83 f8 3e             	cmp    $0x3e,%eax
40d277:	0f 84 65 ff ff ff    	je     0x40d1e2
40d27d:	83 f8 3c             	cmp    $0x3c,%eax
40d280:	0f 85 f9 fe ff ff    	jne    0x40d17f
40d286:	e9 57 ff ff ff       	jmp    0x40d1e2
40d28b:	b8 d2 22 40 00       	mov    $0x4022d2,%eax
40d290:	e9 3c ff ff ff       	jmp    0x40d1d1
40d295:	83 f0 02             	xor    $0x2,%eax
40d298:	89 45 08             	mov    %eax,0x8(%ebp)
40d29b:	e9 c9 fe ff ff       	jmp    0x40d169
40d2a0:	e8 5b 03 00 00       	call   0x40d600
40d2a5:	0f b7 c0             	movzwl %ax,%eax
40d2a8:	66 3b 47 fe          	cmp    -0x2(%edi),%ax
40d2ac:	74 38                	je     0x40d2e6
40d2ae:	0f b7 4f fe          	movzwl -0x2(%edi),%ecx
40d2b2:	83 f9 3e             	cmp    $0x3e,%ecx
40d2b5:	75 52                	jne    0x40d309
40d2b7:	66 83 f8 26          	cmp    $0x26,%ax
40d2bb:	0f 84 2a 01 00 00    	je     0x40d3eb
40d2c1:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40d2c6:	3d c0 25 43 00       	cmp    $0x4325c0,%eax
40d2cb:	0f 84 56 fd ff ff    	je     0x40d027
40d2d1:	83 e8 02             	sub    $0x2,%eax
40d2d4:	a3 cc 65 43 00       	mov    %eax,0x4365cc
40d2d9:	e9 49 fd ff ff       	jmp    0x40d027
40d2de:	8b 45 08             	mov    0x8(%ebp),%eax
40d2e1:	e9 c8 fe ff ff       	jmp    0x40d1ae
40d2e6:	66 89 07             	mov    %ax,(%edi)
40d2e9:	8d 7b 02             	lea    0x2(%ebx),%edi
40d2ec:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d2ef:	e8 0c 03 00 00       	call   0x40d600
40d2f4:	0f b7 c0             	movzwl %ax,%eax
40d2f7:	8b df                	mov    %edi,%ebx
40d2f9:	eb b3                	jmp    0x40d2ae
40d2fb:	66 85 f6             	test   %si,%si
40d2fe:	0f 84 9a fc ff ff    	je     0x40cf9e
40d304:	e9 59 fc ff ff       	jmp    0x40cf62
40d309:	83 f9 3c             	cmp    $0x3c,%ecx
40d30c:	75 b3                	jne    0x40d2c1
40d30e:	eb a7                	jmp    0x40d2b7
40d310:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40d316:	8b c1                	mov    %ecx,%eax
40d318:	2d c0 25 43 00       	sub    $0x4325c0,%eax
40d31d:	83 e8 02             	sub    $0x2,%eax
40d320:	83 e0 fe             	and    $0xfffffffe,%eax
40d323:	83 f8 04             	cmp    $0x4,%eax
40d326:	7c 19                	jl     0x40d341
40d328:	0f b7 41 fc          	movzwl -0x4(%ecx),%eax
40d32c:	50                   	push   %eax
40d32d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d330:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d336:	83 c4 04             	add    $0x4,%esp
40d339:	85 c0                	test   %eax,%eax
40d33b:	0f 84 43 01 00 00    	je     0x40d484
40d341:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40d346:	0f b7 00             	movzwl (%eax),%eax
40d349:	83 f8 3e             	cmp    $0x3e,%eax
40d34c:	75 55                	jne    0x40d3a3
40d34e:	f6 c3 22             	test   $0x22,%bl
40d351:	0f 84 8b fc ff ff    	je     0x40cfe2
40d357:	e9 9e fd ff ff       	jmp    0x40d0fa
40d35c:	b8 d2 22 40 00       	mov    $0x4022d2,%eax
40d361:	e9 25 fc ff ff       	jmp    0x40cf8b
40d366:	b8 d2 22 40 00       	mov    $0x4022d2,%eax
40d36b:	e9 65 fd ff ff       	jmp    0x40d0d5
40d370:	8b 45 08             	mov    0x8(%ebp),%eax
40d373:	a8 22                	test   $0x22,%al
40d375:	0f 85 d7 fd ff ff    	jne    0x40d152
40d37b:	e9 a9 01 01 00       	jmp    0x41d529
40d380:	e8 7b 02 00 00       	call   0x40d600
40d385:	0f b7 f0             	movzwl %ax,%esi
40d388:	8d 5f 02             	lea    0x2(%edi),%ebx
40d38b:	66 89 37             	mov    %si,(%edi)
40d38e:	8b fb                	mov    %ebx,%edi
40d390:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d393:	e9 67 fc ff ff       	jmp    0x40cfff
40d398:	83 f3 02             	xor    $0x2,%ebx
40d39b:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d39e:	e9 0d fd ff ff       	jmp    0x40d0b0
40d3a3:	83 f8 3c             	cmp    $0x3c,%eax
40d3a6:	0f 85 4e fd ff ff    	jne    0x40d0fa
40d3ac:	eb a0                	jmp    0x40d34e
40d3ae:	f6 c3 22             	test   $0x22,%bl
40d3b1:	0f 85 e5 fc ff ff    	jne    0x40d09c
40d3b7:	83 3d d0 65 43 00 00 	cmpl   $0x0,0x4365d0
40d3be:	0f 85 b1 fc ff ff    	jne    0x40d075
40d3c4:	e9 31 fd ff ff       	jmp    0x40d0fa
40d3c9:	8b 45 08             	mov    0x8(%ebp),%eax
40d3cc:	a8 22                	test   $0x22,%al
40d3ce:	0f 85 7e fd ff ff    	jne    0x40d152
40d3d4:	a8 10                	test   $0x10,%al
40d3d6:	0f 85 cc fd ff ff    	jne    0x40d1a8
40d3dc:	66 83 fe 29          	cmp    $0x29,%si
40d3e0:	0f 84 6c fd ff ff    	je     0x40d152
40d3e6:	e9 bd fd ff ff       	jmp    0x40d1a8
40d3eb:	b8 26 00 00 00       	mov    $0x26,%eax
40d3f0:	66 89 07             	mov    %ax,(%edi)
40d3f3:	8d 7b 02             	lea    0x2(%ebx),%edi
40d3f6:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d3f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40d400:	e8 fb 01 00 00       	call   0x40d600
40d405:	0f b7 f0             	movzwl %ax,%esi
40d408:	56                   	push   %esi
40d409:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d40f:	83 c4 04             	add    $0x4,%esp
40d412:	85 c0                	test   %eax,%eax
40d414:	75 ea                	jne    0x40d400
40d416:	8b d6                	mov    %esi,%edx
40d418:	b9 d0 22 40 00       	mov    $0x4022d0,%ecx
40d41d:	e8 0d d2 ff ff       	call   0x40a62f
40d422:	85 c0                	test   %eax,%eax
40d424:	75 da                	jne    0x40d400
40d426:	56                   	push   %esi
40d427:	ff 15 34 a4 44 00    	call   *0x44a434
40d42d:	83 c4 04             	add    $0x4,%esp
40d430:	85 c0                	test   %eax,%eax
40d432:	0f 84 89 fe ff ff    	je     0x40d2c1
40d438:	66 89 37             	mov    %si,(%edi)
40d43b:	83 c7 02             	add    $0x2,%edi
40d43e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d441:	e8 ba 01 00 00       	call   0x40d600
40d446:	e9 76 fe ff ff       	jmp    0x40d2c1
40d44b:	a8 22                	test   $0x22,%al
40d44d:	0f 85 0c fd ff ff    	jne    0x40d15f
40d453:	e8 a8 01 00 00       	call   0x40d600
40d458:	0f b7 f0             	movzwl %ax,%esi
40d45b:	66 85 f6             	test   %si,%si
40d45e:	0f 84 84 fd ff ff    	je     0x40d1e8
40d464:	83 fe 0a             	cmp    $0xa,%esi
40d467:	0f 85 12 fd ff ff    	jne    0x40d17f
40d46d:	e9 c9 00 01 00       	jmp    0x41d53b
40d472:	8b 45 08             	mov    0x8(%ebp),%eax
40d475:	24 2a                	and    $0x2a,%al
40d477:	3c 08                	cmp    $0x8,%al
40d479:	0f 85 d3 fc ff ff    	jne    0x40d152
40d47f:	e9 45 ff ff ff       	jmp    0x40d3c9
40d484:	8b 55 f8             	mov    -0x8(%ebp),%edx
40d487:	b9 e0 22 40 00       	mov    $0x4022e0,%ecx
40d48c:	e8 9e d1 ff ff       	call   0x40a62f
40d491:	85 c0                	test   %eax,%eax
40d493:	0f 85 a8 fe ff ff    	jne    0x40d341
40d499:	e9 5c fc ff ff       	jmp    0x40d0fa
40d49e:	f6 c3 22             	test   $0x22,%bl
40d4a1:	0f 85 ff fb ff ff    	jne    0x40d0a6
40d4a7:	e8 54 01 00 00       	call   0x40d600
40d4ac:	0f b7 f0             	movzwl %ax,%esi
40d4af:	66 85 f6             	test   %si,%si
40d4b2:	0f 84 2a fb ff ff    	je     0x40cfe2
40d4b8:	83 fe 0a             	cmp    $0xa,%esi
40d4bb:	0f 85 39 fc ff ff    	jne    0x40d0fa
40d4c1:	e9 2c 00 01 00       	jmp    0x41d4f2
40d4c6:	8b ff                	mov    %edi,%edi
40d4c8:	d3 cf                	ror    %cl,%edi
40d4ca:	40                   	inc    %eax
40d4cb:	00 d9                	add    %bl,%cl
40d4cd:	cf                   	iret
40d4ce:	40                   	inc    %eax
40d4cf:	00 75 d0             	add    %dh,-0x30(%ebp)
40d4d2:	40                   	inc    %eax
40d4d3:	00 7d d0             	add    %bh,-0x30(%ebp)
40d4d6:	40                   	inc    %eax
40d4d7:	00 ae d3 40 00 9c    	add    %ch,-0x63ffbf2d(%esi)
40d4dd:	d0 40 00             	rolb   $1,0x0(%eax)
40d4e0:	00 05 05 05 05 05    	add    %al,0x5050505
40d4e6:	05 05 05 05 05       	add    $0x5050505,%eax
40d4eb:	05 05 05 05 05       	add    $0x5050505,%eax
40d4f0:	05 05 05 05 05       	add    $0x5050505,%eax