40b1af:	53                   	push   %ebx
40b1b0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b1b3:	51                   	push   %ecx
40b1b4:	53                   	push   %ebx
40b1b5:	e8 56 00 00 00       	call   0x40b210
40b1ba:	84 c0                	test   %al,%al
40b1bc:	74 22                	je     0x40b1e0
40b1be:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40b1c2:	72 25                	jb     0x40b1e9
40b1c4:	8b 0e                	mov    (%esi),%ecx
40b1c6:	53                   	push   %ebx
40b1c7:	8b d7                	mov    %edi,%edx
40b1c9:	e8 23 00 00 00       	call   0x40b1f1
40b1ce:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40b1d2:	59                   	pop    %ecx
40b1d3:	89 5e 10             	mov    %ebx,0x10(%esi)
40b1d6:	72 15                	jb     0x40b1ed
40b1d8:	8b 06                	mov    (%esi),%eax
40b1da:	33 c9                	xor    %ecx,%ecx
40b1dc:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
40b1e0:	8b c6                	mov    %esi,%eax
40b1e2:	5b                   	pop    %ebx
40b1e3:	5f                   	pop    %edi
40b1e4:	5e                   	pop    %esi
40b1e5:	5d                   	pop    %ebp
40b1e6:	c2 08 00             	ret    $0x8
40b1e9:	8b ce                	mov    %esi,%ecx
40b1eb:	eb d9                	jmp    0x40b1c6
40b1ed:	8b c6                	mov    %esi,%eax
40b1ef:	eb e9                	jmp    0x40b1da
40b1f1:	8b ff                	mov    %edi,%edi
40b1f3:	55                   	push   %ebp
40b1f4:	8b ec                	mov    %esp,%ebp
40b1f6:	8b 45 08             	mov    0x8(%ebp),%eax
40b1f9:	85 c0                	test   %eax,%eax
40b1fb:	74 0f                	je     0x40b20c
40b1fd:	03 c0                	add    %eax,%eax
40b1ff:	50                   	push   %eax
40b200:	52                   	push   %edx
40b201:	51                   	push   %ecx
40b202:	e8 df fc 00 00       	call   0x41aee6
40b207:	83 c4 0c             	add    $0xc,%esp
40b20a:	8b c8                	mov    %eax,%ecx
40b20c:	8b c1                	mov    %ecx,%eax
40b20e:	5d                   	pop    %ebp
40b20f:	c3                   	ret
40b210:	8b ff                	mov    %edi,%edi
40b212:	55                   	push   %ebp
40b213:	8b ec                	mov    %esp,%ebp
40b215:	56                   	push   %esi
40b216:	8b 75 08             	mov    0x8(%ebp),%esi
40b219:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
40b21f:	77 1c                	ja     0x40b23d
40b221:	39 71 14             	cmp    %esi,0x14(%ecx)
40b224:	0f 83 c8 4b 01 00    	jae    0x41fdf2
40b22a:	ff 71 10             	push   0x10(%ecx)
40b22d:	56                   	push   %esi
40b22e:	e8 0f 00 00 00       	call   0x40b242
40b233:	85 f6                	test   %esi,%esi
40b235:	0f 95 c0             	setne  %al
40b238:	5e                   	pop    %esi
40b239:	5d                   	pop    %ebp
40b23a:	c2 08 00             	ret    $0x8
40b23d:	e8 1b 2f 02 00       	call   0x42e15d
40b242:	6a 10                	push   $0x10
40b244:	b8 36 e1 41 00       	mov    $0x41e136,%eax
40b249:	e8 29 fc 00 00       	call   0x41ae77
40b24e:	8b f9                	mov    %ecx,%edi
40b250:	89 7d ec             	mov    %edi,-0x14(%ebp)
40b253:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b256:	83 cb 07             	or     $0x7,%ebx
40b259:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
40b25f:	0f 87 80 00 00 00    	ja     0x40b2e5
40b265:	33 d2                	xor    %edx,%edx
40b267:	c7 45 e8 03 00 00 00 	movl   $0x3,-0x18(%ebp)
40b26e:	8b c3                	mov    %ebx,%eax
40b270:	8b 77 14             	mov    0x14(%edi),%esi
40b273:	f7 75 e8             	divl   -0x18(%ebp)
40b276:	8b ce                	mov    %esi,%ecx
40b278:	d1 e9                	shr    $1,%ecx
40b27a:	3b c8                	cmp    %eax,%ecx
40b27c:	0f 87 8d 4b 01 00    	ja     0x41fe0f
40b282:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b286:	8d 43 01             	lea    0x1(%ebx),%eax
40b289:	33 f6                	xor    %esi,%esi
40b28b:	85 c0                	test   %eax,%eax
40b28d:	74 20                	je     0x40b2af
40b28f:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40b294:	77 54                	ja     0x40b2ea
40b296:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40b29c:	03 c0                	add    %eax,%eax
40b29e:	50                   	push   %eax
40b29f:	8b ce                	mov    %esi,%ecx
40b2a1:	ff 15 20 a5 43 00    	call   *0x43a520
40b2a7:	ff d6                	call   *%esi
40b2a9:	8b f0                	mov    %eax,%esi
40b2ab:	85 f6                	test   %esi,%esi
40b2ad:	74 3b                	je     0x40b2ea
40b2af:	8b 45 0c             	mov    0xc(%ebp),%eax
40b2b2:	85 c0                	test   %eax,%eax
40b2b4:	0f 85 d6 4b 01 00    	jne    0x41fe90
40b2ba:	6a 00                	push   $0x0
40b2bc:	6a 01                	push   $0x1
40b2be:	8b cf                	mov    %edi,%ecx
40b2c0:	e8 5a 02 00 00       	call   0x40b51f
40b2c5:	8b 45 0c             	mov    0xc(%ebp),%eax
40b2c8:	89 37                	mov    %esi,(%edi)
40b2ca:	89 5f 14             	mov    %ebx,0x14(%edi)
40b2cd:	89 47 10             	mov    %eax,0x10(%edi)
40b2d0:	83 fb 08             	cmp    $0x8,%ebx
40b2d3:	72 02                	jb     0x40b2d7
40b2d5:	8b fe                	mov    %esi,%edi
40b2d7:	33 c9                	xor    %ecx,%ecx
40b2d9:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40b2dd:	e8 fa fa 00 00       	call   0x41addc
40b2e2:	c2 08 00             	ret    $0x8
40b2e5:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b2e8:	eb 98                	jmp    0x40b282
40b2ea:	e8 e2 f0 00 00       	call   0x41a3d1
40b2ef:	6a 00                	push   $0x0
40b2f1:	b8 51 e1 41 00       	mov    $0x41e151,%eax
40b2f6:	e8 13 fb 00 00       	call   0x41ae0e
40b2fb:	8b f9                	mov    %ecx,%edi
40b2fd:	8b 0d 74 91 43 00    	mov    0x439174,%ecx
40b303:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
40b30a:	c7 07 84 10 40 00    	movl   $0x401084,(%edi)
40b310:	c7 47 04 64 10 40 00 	movl   $0x401064,0x4(%edi)
40b317:	c7 47 08 54 10 40 00 	movl   $0x401054,0x8(%edi)
40b31e:	85 c9                	test   %ecx,%ecx
40b320:	0f 85 84 4b 01 00    	jne    0x41feaa
40b326:	33 c0                	xor    %eax,%eax
40b328:	c7 07 30 10 40 00    	movl   $0x401030,(%edi)
40b32e:	89 47 14             	mov    %eax,0x14(%edi)
40b331:	89 47 18             	mov    %eax,0x18(%edi)
40b334:	89 47 1c             	mov    %eax,0x1c(%edi)
40b337:	89 47 20             	mov    %eax,0x20(%edi)
40b33a:	89 47 28             	mov    %eax,0x28(%edi)
40b33d:	89 47 2c             	mov    %eax,0x2c(%edi)
40b340:	89 47 30             	mov    %eax,0x30(%edi)
40b343:	89 47 34             	mov    %eax,0x34(%edi)
40b346:	89 47 38             	mov    %eax,0x38(%edi)
40b349:	89 47 3c             	mov    %eax,0x3c(%edi)
40b34c:	c7 47 04 10 10 40 00 	movl   $0x401010,0x4(%edi)
40b353:	c7 47 08 00 10 40 00 	movl   $0x401000,0x8(%edi)
40b35a:	c7 47 24 00 04 00 00 	movl   $0x400,0x24(%edi)
40b361:	89 47 50             	mov    %eax,0x50(%edi)
40b364:	c7 47 54 07 00 00 00 	movl   $0x7,0x54(%edi)
40b36b:	66 89 47 40          	mov    %ax,0x40(%edi)
40b36f:	8b c7                	mov    %edi,%eax
40b371:	e8 66 fa 00 00       	call   0x41addc
40b376:	c3                   	ret
40b377:	8b 11                	mov    (%ecx),%edx
40b379:	33 c0                	xor    %eax,%eax
40b37b:	85 d2                	test   %edx,%edx
40b37d:	74 1b                	je     0x40b39a
40b37f:	89 01                	mov    %eax,(%ecx)
40b381:	8b 02                	mov    (%edx),%eax
40b383:	56                   	push   %esi
40b384:	52                   	push   %edx
40b385:	8b 70 08             	mov    0x8(%eax),%esi
40b388:	81 fe a0 b3 40 00    	cmp    $0x40b3a0,%esi
40b38e:	0f 85 2b 4b 01 00    	jne    0x41febf
40b394:	e8 07 00 00 00       	call   0x40b3a0
40b399:	5e                   	pop    %esi
40b39a:	c3                   	ret
40b39b:	cc                   	int3
40b39c:	cc                   	int3
40b39d:	cc                   	int3
40b39e:	cc                   	int3
40b39f:	cc                   	int3
40b3a0:	8b ff                	mov    %edi,%edi
40b3a2:	55                   	push   %ebp
40b3a3:	8b ec                	mov    %esp,%ebp
40b3a5:	53                   	push   %ebx
40b3a6:	56                   	push   %esi
40b3a7:	8b 75 08             	mov    0x8(%ebp),%esi
40b3aa:	8d 4e 10             	lea    0x10(%esi),%ecx
40b3ad:	e8 00 0a 01 00       	call   0x41bdb2
40b3b2:	8b d8                	mov    %eax,%ebx
40b3b4:	85 db                	test   %ebx,%ebx
40b3b6:	75 44                	jne    0x40b3fc
40b3b8:	85 f6                	test   %esi,%esi
40b3ba:	74 26                	je     0x40b3e2
40b3bc:	8b 16                	mov    (%esi),%edx
40b3be:	57                   	push   %edi
40b3bf:	6a 01                	push   $0x1
40b3c1:	8b 7a 20             	mov    0x20(%edx),%edi
40b3c4:	81 ff 10 b4 40 00    	cmp    $0x40b410,%edi
40b3ca:	75 09                	jne    0x40b3d5
40b3cc:	8b ce                	mov    %esi,%ecx
40b3ce:	e8 3d 00 00 00       	call   0x40b410
40b3d3:	eb 0c                	jmp    0x40b3e1
40b3d5:	8b cf                	mov    %edi,%ecx
40b3d7:	ff 15 20 a5 43 00    	call   *0x43a520
40b3dd:	8b ce                	mov    %esi,%ecx
40b3df:	ff d7                	call   *%edi
40b3e1:	5f                   	pop    %edi
40b3e2:	8b 0d 74 91 43 00    	mov    0x439174,%ecx
40b3e8:	85 c9                	test   %ecx,%ecx
40b3ea:	74 10                	je     0x40b3fc
40b3ec:	8b 01                	mov    (%ecx),%eax
40b3ee:	51                   	push   %ecx
40b3ef:	8b 70 08             	mov    0x8(%eax),%esi
40b3f2:	8b ce                	mov    %esi,%ecx
40b3f4:	ff 15 20 a5 43 00    	call   *0x43a520
40b3fa:	ff d6                	call   *%esi
40b3fc:	5e                   	pop    %esi
40b3fd:	8b c3                	mov    %ebx,%eax
40b3ff:	5b                   	pop    %ebx
40b400:	5d                   	pop    %ebp
40b401:	c2 04 00             	ret    $0x4
40b404:	cc                   	int3
40b405:	cc                   	int3
40b406:	cc                   	int3
40b407:	cc                   	int3
40b408:	cc                   	int3
40b409:	cc                   	int3
40b40a:	cc                   	int3
40b40b:	cc                   	int3
40b40c:	cc                   	int3
40b40d:	cc                   	int3
40b40e:	cc                   	int3
40b40f:	cc                   	int3
40b410:	8b ff                	mov    %edi,%edi
40b412:	55                   	push   %ebp
40b413:	8b ec                	mov    %esp,%ebp
40b415:	6a ff                	push   $0xffffffff
40b417:	68 6c e1 41 00       	push   $0x41e16c
40b41c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b422:	50                   	push   %eax
40b423:	56                   	push   %esi
40b424:	57                   	push   %edi
40b425:	a1 08 85 43 00       	mov    0x438508,%eax
40b42a:	33 c5                	xor    %ebp,%eax
40b42c:	50                   	push   %eax
40b42d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b430:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40b436:	8b f9                	mov    %ecx,%edi
40b438:	e8 2e 00 00 00       	call   0x40b46b
40b43d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40b441:	74 15                	je     0x40b458
40b443:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b447:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40b44d:	8b ce                	mov    %esi,%ecx
40b44f:	57                   	push   %edi
40b450:	ff 15 20 a5 43 00    	call   *0x43a520
40b456:	ff d6                	call   *%esi
40b458:	8b c7                	mov    %edi,%eax
40b45a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b45d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b464:	59                   	pop    %ecx
40b465:	5f                   	pop    %edi
40b466:	5e                   	pop    %esi
40b467:	c9                   	leave
40b468:	c2 04 00             	ret    $0x4
40b46b:	8b ff                	mov    %edi,%edi
40b46d:	56                   	push   %esi
40b46e:	8b f1                	mov    %ecx,%esi
40b470:	c7 06 30 10 40 00    	movl   $0x401030,(%esi)
40b476:	c7 46 04 10 10 40 00 	movl   $0x401010,0x4(%esi)
40b47d:	c7 46 08 00 10 40 00 	movl   $0x401000,0x8(%esi)
40b484:	e8 47 00 00 00       	call   0x40b4d0
40b489:	6a 00                	push   $0x0
40b48b:	6a 01                	push   $0x1
40b48d:	8d 4e 40             	lea    0x40(%esi),%ecx
40b490:	e8 8a 00 00 00       	call   0x40b51f
40b495:	8b 46 3c             	mov    0x3c(%esi),%eax
40b498:	83 66 3c 00          	andl   $0x0,0x3c(%esi)
40b49c:	85 c0                	test   %eax,%eax
40b49e:	74 07                	je     0x40b4a7
40b4a0:	50                   	push   %eax
40b4a1:	ff 15 64 a0 43 00    	call   *0x43a064
40b4a7:	8d 4e 20             	lea    0x20(%esi),%ecx
40b4aa:	e8 f2 e8 00 00       	call   0x419da1
40b4af:	8d 4e 1c             	lea    0x1c(%esi),%ecx
40b4b2:	e8 ea e8 00 00       	call   0x419da1
40b4b7:	8d 4e 18             	lea    0x18(%esi),%ecx
40b4ba:	e8 e2 e8 00 00       	call   0x419da1
40b4bf:	8d 4e 14             	lea    0x14(%esi),%ecx
40b4c2:	e8 da e8 00 00       	call   0x419da1
40b4c7:	c7 46 10 01 00 00 c0 	movl   $0xc0000001,0x10(%esi)
40b4ce:	5e                   	pop    %esi
40b4cf:	c3                   	ret
40b4d0:	8b ff                	mov    %edi,%edi
40b4d2:	53                   	push   %ebx
40b4d3:	8b d9                	mov    %ecx,%ebx
40b4d5:	56                   	push   %esi
40b4d6:	33 f6                	xor    %esi,%esi
40b4d8:	39 73 28             	cmp    %esi,0x28(%ebx)
40b4db:	76 1c                	jbe    0x40b4f9
40b4dd:	57                   	push   %edi
40b4de:	33 ff                	xor    %edi,%edi
40b4e0:	8b 43 3c             	mov    0x3c(%ebx),%eax
40b4e3:	83 c0 38             	add    $0x38,%eax
40b4e6:	03 c7                	add    %edi,%eax
40b4e8:	50                   	push   %eax
40b4e9:	ff 15 4c a0 43 00    	call   *0x43a04c
40b4ef:	46                   	inc    %esi
40b4f0:	83 c7 50             	add    $0x50,%edi
40b4f3:	3b 73 28             	cmp    0x28(%ebx),%esi
40b4f6:	72 e8                	jb     0x40b4e0
40b4f8:	5f                   	pop    %edi
40b4f9:	5e                   	pop    %esi
40b4fa:	c7 43 28 00 00 00 00 	movl   $0x0,0x28(%ebx)
40b501:	c7 43 2c 00 00 00 00 	movl   $0x0,0x2c(%ebx)
40b508:	c7 43 30 00 00 00 00 	movl   $0x0,0x30(%ebx)
40b50f:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)
40b516:	c7 43 38 00 00 00 00 	movl   $0x0,0x38(%ebx)
40b51d:	5b                   	pop    %ebx
40b51e:	c3                   	ret
40b51f:	6a 00                	push   $0x0
40b521:	b8 51 e1 41 00       	mov    $0x41e151,%eax
40b526:	e8 e3 f8 00 00       	call   0x41ae0e
40b52b:	8b f9                	mov    %ecx,%edi
40b52d:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40b531:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b534:	74 25                	je     0x40b55b
40b536:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40b53a:	72 1f                	jb     0x40b55b
40b53c:	8b 37                	mov    (%edi),%esi
40b53e:	85 db                	test   %ebx,%ebx
40b540:	0f 85 85 49 01 00    	jne    0x41fecb
40b546:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b54a:	56                   	push   %esi
40b54b:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40b551:	8b ce                	mov    %esi,%ecx
40b553:	ff 15 20 a5 43 00    	call   *0x43a520
40b559:	ff d6                	call   *%esi
40b55b:	33 c0                	xor    %eax,%eax
40b55d:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40b564:	89 5f 10             	mov    %ebx,0x10(%edi)
40b567:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
40b56b:	e8 6c f8 00 00       	call   0x41addc
40b570:	c2 08 00             	ret    $0x8
40b573:	8b ff                	mov    %edi,%edi
40b575:	55                   	push   %ebp
40b576:	8b ec                	mov    %esp,%ebp
40b578:	8b 55 08             	mov    0x8(%ebp),%edx
40b57b:	85 d2                	test   %edx,%edx
40b57d:	74 20                	je     0x40b59f
40b57f:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
40b583:	73 20                	jae    0x40b5a5
40b585:	8b c1                	mov    %ecx,%eax
40b587:	3b d0                	cmp    %eax,%edx
40b589:	72 14                	jb     0x40b59f
40b58b:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
40b58f:	56                   	push   %esi
40b590:	73 17                	jae    0x40b5a9
40b592:	8b f1                	mov    %ecx,%esi
40b594:	8b 41 10             	mov    0x10(%ecx),%eax