40e05e:	cc                   	int3
40e05f:	cc                   	int3
40e060:	55                   	push   %ebp
40e061:	8b ec                	mov    %esp,%ebp
40e063:	83 ec 54             	sub    $0x54,%esp
40e066:	53                   	push   %ebx
40e067:	56                   	push   %esi
40e068:	8b 75 08             	mov    0x8(%ebp),%esi
40e06b:	8b c1                	mov    %ecx,%eax
40e06d:	57                   	push   %edi
40e06e:	6a ff                	push   $0xffffffff
40e070:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e073:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e076:	51                   	push   %ecx
40e077:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40e07a:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40e081:	51                   	push   %ecx
40e082:	56                   	push   %esi
40e083:	8b c8                	mov    %eax,%ecx
40e085:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40e08c:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40e093:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40e09a:	e8 61 bf ff ff       	call   0x40a000
40e09f:	85 c0                	test   %eax,%eax
40e0a1:	0f 88 b0 59 03 00    	js     0x443a57
40e0a7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e0aa:	8b 45 e0             	mov    -0x20(%ebp),%eax
40e0ad:	8b 55 e8             	mov    -0x18(%ebp),%edx
40e0b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e0b3:	83 f9 09             	cmp    $0x9,%ecx
40e0b6:	75 54                	jne    0x40e10c
40e0b8:	84 c0                	test   %al,%al
40e0ba:	75 63                	jne    0x40e11f
40e0bc:	32 db                	xor    %bl,%bl
40e0be:	88 5d ff             	mov    %bl,-0x1(%ebp)
40e0c1:	85 d2                	test   %edx,%edx
40e0c3:	0f 85 e3 59 03 00    	jne    0x443aac
40e0c9:	83 f9 09             	cmp    $0x9,%ecx
40e0cc:	0f 85 e6 03 00 00    	jne    0x40e4b8
40e0d2:	8b 56 04             	mov    0x4(%esi),%edx
40e0d5:	8b 7d f0             	mov    -0x10(%ebp),%edi
40e0d8:	8b 04 ba             	mov    (%edx,%edi,4),%eax
40e0db:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e0e0:	0f 85 3c 5c 03 00    	jne    0x443d22
40e0e6:	83 38 05             	cmpl   $0x5,(%eax)
40e0e9:	0f 85 33 5c 03 00    	jne    0x443d22
40e0ef:	8b 44 ba 04          	mov    0x4(%edx,%edi,4),%eax
40e0f3:	47                   	inc    %edi
40e0f4:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40e0f9:	0f 84 41 02 00 00    	je     0x40e340
40e0ff:	84 db                	test   %bl,%bl
40e101:	75 20                	jne    0x40e123
40e103:	5f                   	pop    %edi
40e104:	5e                   	pop    %esi
40e105:	5b                   	pop    %ebx
40e106:	8b e5                	mov    %ebp,%esp
40e108:	5d                   	pop    %ebp
40e109:	c2 08 00             	ret    $0x8
40e10c:	8d 79 ff             	lea    -0x1(%ecx),%edi
40e10f:	83 ff 0a             	cmp    $0xa,%edi
40e112:	77 a8                	ja     0x40e0bc
40e114:	ff 24 bd 48 e5 40 00 	jmp    *0x40e548(,%edi,4)
40e11b:	85 c0                	test   %eax,%eax
40e11d:	74 9d                	je     0x40e0bc
40e11f:	b3 01                	mov    $0x1,%bl
40e121:	eb 9b                	jmp    0x40e0be
40e123:	33 c9                	xor    %ecx,%ecx
40e125:	c7 45 e0 78 fb 48 00 	movl   $0x48fb78,-0x20(%ebp)
40e12c:	33 f6                	xor    %esi,%esi
40e12e:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40e135:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40e138:	89 75 ec             	mov    %esi,-0x14(%ebp)
40e13b:	eb 03                	jmp    0x40e140
40e13d:	8d 49 00             	lea    0x0(%ecx),%ecx
40e140:	8b 1c ba             	mov    (%edx,%edi,4),%ebx
40e143:	8d 7f 01             	lea    0x1(%edi),%edi
40e146:	3b ce                	cmp    %esi,%ecx
40e148:	0f 84 a7 00 00 00    	je     0x40e1f5
40e14e:	6a 0c                	push   $0xc
40e150:	e8 a1 2e 01 00       	call   0x420ff6
40e155:	8b f0                	mov    %eax,%esi
40e157:	83 c4 04             	add    $0x4,%esp
40e15a:	85 f6                	test   %esi,%esi
40e15c:	0f 84 bf 03 00 00    	je     0x40e521
40e162:	0f b7 4b 08          	movzwl 0x8(%ebx),%ecx
40e166:	66 89 4e 08          	mov    %cx,0x8(%esi)
40e16a:	0f b7 46 08          	movzwl 0x8(%esi),%eax
40e16e:	0f b7 4b 0a          	movzwl 0xa(%ebx),%ecx
40e172:	66 89 4e 0a          	mov    %cx,0xa(%esi)
40e176:	66 83 f8 3f          	cmp    $0x3f,%ax
40e17a:	7e 41                	jle    0x40e1bd
40e17c:	66 83 f8 10          	cmp    $0x10,%ax
40e180:	0f 84 d9 59 03 00    	je     0x443b5f
40e186:	66 83 f8 20          	cmp    $0x20,%ax
40e18a:	0f 84 88 03 00 00    	je     0x40e518
40e190:	8b 03                	mov    (%ebx),%eax
40e192:	89 06                	mov    %eax,(%esi)
40e194:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e197:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e19a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e19d:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40e1a0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e1a3:	8b 53 04             	mov    0x4(%ebx),%edx
40e1a6:	41                   	inc    %ecx
40e1a7:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40e1aa:	8b 04 ba             	mov    (%edx,%edi,4),%eax
40e1ad:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40e1b2:	0f 84 97 00 00 00    	je     0x40e24f
40e1b8:	8b 75 ec             	mov    -0x14(%ebp),%esi
40e1bb:	eb 83                	jmp    0x40e140
40e1bd:	66 83 f8 30          	cmp    $0x30,%ax
40e1c1:	7c b9                	jl     0x40e17c
40e1c3:	6a 10                	push   $0x10
40e1c5:	e8 2c 2e 01 00       	call   0x420ff6
40e1ca:	8b d0                	mov    %eax,%edx
40e1cc:	83 c4 04             	add    $0x4,%esp
40e1cf:	85 d2                	test   %edx,%edx
40e1d1:	0f 84 3a 03 00 00    	je     0x40e511
40e1d7:	8b 03                	mov    (%ebx),%eax
40e1d9:	8b 08                	mov    (%eax),%ecx
40e1db:	89 0a                	mov    %ecx,(%edx)
40e1dd:	8b 48 04             	mov    0x4(%eax),%ecx
40e1e0:	89 4a 04             	mov    %ecx,0x4(%edx)
40e1e3:	8b 48 08             	mov    0x8(%eax),%ecx
40e1e6:	89 4a 08             	mov    %ecx,0x8(%edx)
40e1e9:	8b 40 0c             	mov    0xc(%eax),%eax
40e1ec:	89 42 0c             	mov    %eax,0xc(%edx)
40e1ef:	ff 00                	incl   (%eax)
40e1f1:	89 16                	mov    %edx,(%esi)
40e1f3:	eb 9f                	jmp    0x40e194
40e1f5:	8d 04 36             	lea    (%esi,%esi,1),%eax
40e1f8:	83 f8 08             	cmp    $0x8,%eax
40e1fb:	73 05                	jae    0x40e202
40e1fd:	b8 08 00 00 00       	mov    $0x8,%eax
40e202:	33 c9                	xor    %ecx,%ecx
40e204:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e207:	ba 04 00 00 00       	mov    $0x4,%edx
40e20c:	f7 e2                	mul    %edx
40e20e:	0f 90 c1             	seto   %cl
40e211:	f7 d9                	neg    %ecx
40e213:	0b c8                	or     %eax,%ecx
40e215:	51                   	push   %ecx
40e216:	e8 db 2d 01 00       	call   0x420ff6
40e21b:	8b f0                	mov    %eax,%esi
40e21d:	83 c4 04             	add    $0x4,%esp
40e220:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e223:	85 c0                	test   %eax,%eax
40e225:	74 20                	je     0x40e247
40e227:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e22a:	85 c9                	test   %ecx,%ecx
40e22c:	74 19                	je     0x40e247
40e22e:	c1 e1 02             	shl    $0x2,%ecx
40e231:	51                   	push   %ecx
40e232:	50                   	push   %eax
40e233:	56                   	push   %esi
40e234:	e8 47 2e 01 00       	call   0x421080
40e239:	83 c4 0c             	add    $0xc,%esp
40e23c:	ff 75 e4             	push   -0x1c(%ebp)
40e23f:	e8 28 2e 01 00       	call   0x42106c
40e244:	83 c4 04             	add    $0x4,%esp
40e247:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40e24a:	e9 ff fe ff ff       	jmp    0x40e14e
40e24f:	8b f8                	mov    %eax,%edi
40e251:	8b 45 ec             	mov    -0x14(%ebp),%eax
40e254:	3b c8                	cmp    %eax,%ecx
40e256:	0f 84 12 59 03 00    	je     0x443b6e
40e25c:	6a 0c                	push   $0xc
40e25e:	e8 93 2d 01 00       	call   0x420ff6
40e263:	8b f0                	mov    %eax,%esi
40e265:	83 c4 04             	add    $0x4,%esp
40e268:	85 f6                	test   %esi,%esi
40e26a:	0f 84 c1 02 00 00    	je     0x40e531
40e270:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
40e274:	66 89 4e 08          	mov    %cx,0x8(%esi)
40e278:	0f b7 46 08          	movzwl 0x8(%esi),%eax
40e27c:	0f b7 4f 0a          	movzwl 0xa(%edi),%ecx
40e280:	66 89 4e 0a          	mov    %cx,0xa(%esi)
40e284:	66 83 f8 3f          	cmp    $0x3f,%ax
40e288:	0f 8e 39 59 03 00    	jle    0x443bc7
40e28e:	66 83 f8 10          	cmp    $0x10,%ax
40e292:	0f 84 6e 59 03 00    	je     0x443c06
40e298:	66 83 f8 20          	cmp    $0x20,%ax
40e29c:	0f 84 86 02 00 00    	je     0x40e528
40e2a2:	8b 07                	mov    (%edi),%eax
40e2a4:	89 06                	mov    %eax,(%esi)
40e2a6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e2a9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2ac:	ff 75 0c             	push   0xc(%ebp)
40e2af:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40e2b2:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e2b5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e2b8:	ff 45 e8             	incl   -0x18(%ebp)
40e2bb:	50                   	push   %eax
40e2bc:	e8 4d 35 00 00       	call   0x41180e
40e2c1:	33 f6                	xor    %esi,%esi
40e2c3:	c7 45 e0 78 fb 48 00 	movl   $0x48fb78,-0x20(%ebp)
40e2ca:	39 75 e8             	cmp    %esi,-0x18(%ebp)
40e2cd:	76 2e                	jbe    0x40e2fd
40e2cf:	90                   	nop
40e2d0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2d3:	8b 3c b0             	mov    (%eax,%esi,4),%edi
40e2d6:	85 ff                	test   %edi,%edi
40e2d8:	74 16                	je     0x40e2f0
40e2da:	0f b7 47 08          	movzwl 0x8(%edi),%eax
40e2de:	66 83 f8 3f          	cmp    $0x3f,%ax
40e2e2:	7e 34                	jle    0x40e318
40e2e4:	57                   	push   %edi
40e2e5:	e8 82 2d 01 00       	call   0x42106c
40e2ea:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2ed:	83 c4 04             	add    $0x4,%esp
40e2f0:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
40e2f7:	46                   	inc    %esi
40e2f8:	3b 75 e8             	cmp    -0x18(%ebp),%esi
40e2fb:	72 d3                	jb     0x40e2d0
40e2fd:	ff 75 e4             	push   -0x1c(%ebp)
40e300:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40e307:	e8 60 2d 01 00       	call   0x42106c
40e30c:	83 c4 04             	add    $0x4,%esp
40e30f:	5f                   	pop    %edi
40e310:	5e                   	pop    %esi
40e311:	5b                   	pop    %ebx
40e312:	8b e5                	mov    %ebp,%esp
40e314:	5d                   	pop    %ebp
40e315:	c2 08 00             	ret    $0x8
40e318:	66 83 f8 30          	cmp    $0x30,%ax
40e31c:	7c c6                	jl     0x40e2e4
40e31e:	8b 1f                	mov    (%edi),%ebx
40e320:	85 db                	test   %ebx,%ebx
40e322:	74 c0                	je     0x40e2e4
40e324:	8b 43 0c             	mov    0xc(%ebx),%eax
40e327:	ff 08                	decl   (%eax)
40e329:	8b 43 0c             	mov    0xc(%ebx),%eax
40e32c:	83 38 00             	cmpl   $0x0,(%eax)
40e32f:	0f 84 e0 58 03 00    	je     0x443c15
40e335:	53                   	push   %ebx
40e336:	e8 31 2d 01 00       	call   0x42106c
40e33b:	83 c4 04             	add    $0x4,%esp
40e33e:	eb a4                	jmp    0x40e2e4
40e340:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e343:	33 d2                	xor    %edx,%edx
40e345:	32 ff                	xor    %bh,%bh
40e347:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
40e34b:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40e352:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40e359:	8b 07                	mov    (%edi),%eax
40e35b:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40e362:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40e369:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40e370:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
40e377:	8d 48 ff             	lea    -0x1(%eax),%ecx
40e37a:	89 55 f8             	mov    %edx,-0x8(%ebp)
40e37d:	89 55 b0             	mov    %edx,-0x50(%ebp)
40e380:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40e383:	84 db                	test   %bl,%bl
40e385:	0f 85 25 01 00 00    	jne    0x40e4b0
40e38b:	33 c0                	xor    %eax,%eax
40e38d:	89 45 0c             	mov    %eax,0xc(%ebp)
40e390:	8b 37                	mov    (%edi),%esi
40e392:	8d 56 01             	lea    0x1(%esi),%edx
40e395:	89 17                	mov    %edx,(%edi)
40e397:	3b 35 a0 72 4c 00    	cmp    0x4c72a0,%esi
40e39d:	7f 4b                	jg     0x40e3ea
40e39f:	85 f6                	test   %esi,%esi
40e3a1:	7e 47                	jle    0x40e3ea
40e3a3:	c1 e6 04             	shl    $0x4,%esi
40e3a6:	03 35 dc 72 4c 00    	add    0x4c72dc,%esi
40e3ac:	74 3c                	je     0x40e3ea
40e3ae:	84 ff                	test   %bh,%bh
40e3b0:	75 38                	jne    0x40e3ea
40e3b2:	8b 4e 04             	mov    0x4(%esi),%ecx
40e3b5:	8b 01                	mov    (%ecx),%eax
40e3b7:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e3bc:	75 d2                	jne    0x40e390
40e3be:	8b 00                	mov    (%eax),%eax
40e3c0:	83 f8 08             	cmp    $0x8,%eax
40e3c3:	0f 85 b6 00 00 00    	jne    0x40e47f
40e3c9:	8b 45 0c             	mov    0xc(%ebp),%eax
40e3cc:	85 c0                	test   %eax,%eax
40e3ce:	0f 85 64 01 00 00    	jne    0x40e538
40e3d4:	8d 42 ff             	lea    -0x1(%edx),%eax
40e3d7:	b7 01                	mov    $0x1,%bh
40e3d9:	89 45 b8             	mov    %eax,-0x48(%ebp)
40e3dc:	84 db                	test   %bl,%bl
40e3de:	75 b0                	jne    0x40e390
40e3e0:	38 5d 0b             	cmp    %bl,0xb(%ebp)
40e3e3:	75 ab                	jne    0x40e390
40e3e5:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e3e8:	eb a6                	jmp    0x40e390
40e3ea:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40e3ed:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e3f0:	89 07                	mov    %eax,(%edi)
40e3f2:	80 bb 65 01 00 00 00 	cmpb   $0x0,0x165(%ebx)
40e3f9:	0f 85 08 59 03 00    	jne    0x443d07
40e3ff:	6a 38                	push   $0x38
40e401:	e8 f0 2b 01 00       	call   0x420ff6
40e406:	8b f0                	mov    %eax,%esi
40e408:	83 c4 04             	add    $0x4,%esp
40e40b:	85 f6                	test   %esi,%esi
40e40d:	0f 84 2b 01 00 00    	je     0x40e53e
40e413:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40e416:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40e419:	89 46 04             	mov    %eax,0x4(%esi)
40e41c:	8b 45 b8             	mov    -0x48(%ebp),%eax
40e41f:	89 46 08             	mov    %eax,0x8(%esi)
40e422:	8d 45 c0             	lea    -0x40(%ebp),%eax
40e425:	89 4e 0c             	mov    %ecx,0xc(%esi)
40e428:	8d 4e 10             	lea    0x10(%esi),%ecx
40e42b:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40e431:	50                   	push   %eax
40e432:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
40e439:	e8 82 b6 ff ff       	call   0x409ac0
40e43e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40e441:	c7 46 28 00 00 00 00 	movl   $0x0,0x28(%esi)
40e448:	8d 4e 20             	lea    0x20(%esi),%ecx
40e44b:	50                   	push   %eax
40e44c:	e8 6f b6 ff ff       	call   0x409ac0
40e451:	8b 83 60 01 00 00    	mov    0x160(%ebx),%eax
40e457:	89 46 30             	mov    %eax,0x30(%esi)
40e45a:	89 b3 60 01 00 00    	mov    %esi,0x160(%ebx)
40e460:	ff 83 5c 01 00 00    	incl   0x15c(%ebx)
40e466:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40e469:	e8 b2 b5 ff ff       	call   0x409a20
40e46e:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40e471:	e8 aa b5 ff ff       	call   0x409a20
40e476:	5f                   	pop    %edi
40e477:	5e                   	pop    %esi
40e478:	5b                   	pop    %ebx
40e479:	8b e5                	mov    %ebp,%esp
40e47b:	5d                   	pop    %ebp
40e47c:	c2 08 00             	ret    $0x8
40e47f:	83 e8 04             	sub    $0x4,%eax
40e482:	74 51                	je     0x40e4d5
40e484:	83 e8 02             	sub    $0x2,%eax
40e487:	75 40                	jne    0x40e4c9
40e489:	39 45 0c             	cmp    %eax,0xc(%ebp)
40e48c:	0f 85 fe fe ff ff    	jne    0x40e390
40e492:	80 7d 0b 01          	cmpb   $0x1,0xb(%ebp)
40e496:	0f 84 5a 58 03 00    	je     0x443cf6
40e49c:	c6 45 0b 01          	movb   $0x1,0xb(%ebp)
40e4a0:	84 db                	test   %bl,%bl
40e4a2:	0f 85 e8 fe ff ff    	jne    0x40e390
40e4a8:	89 55 f8             	mov    %edx,-0x8(%ebp)
40e4ab:	e9 e0 fe ff ff       	jmp    0x40e390
40e4b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e4b3:	e9 d3 fe ff ff       	jmp    0x40e38b
40e4b8:	83 c1 fb             	add    $0xfffffffb,%ecx
40e4bb:	83 f9 0a             	cmp    $0xa,%ecx
40e4be:	0f 87 0e fc ff ff    	ja     0x40e0d2
40e4c4:	e9 00 56 03 00       	jmp    0x443ac9
40e4c9:	48                   	dec    %eax