46d0b2:	8b ce                	mov    %esi,%ecx
46d0b4:	e8 de c8 f9 ff       	call   0x409997
46d0b9:	8b 46 08             	mov    0x8(%esi),%eax
46d0bc:	51                   	push   %ecx
46d0bd:	57                   	push   %edi
46d0be:	8d 8c 24 80 00 00 00 	lea    0x80(%esp),%ecx
46d0c5:	ff 30                	push   (%eax)
46d0c7:	e8 13 c3 ff ff       	call   0x4693df
46d0cc:	85 c0                	test   %eax,%eax
46d0ce:	74 37                	je     0x46d107
46d0d0:	8b 54 24 14          	mov    0x14(%esp),%edx
46d0d4:	33 db                	xor    %ebx,%ebx
46d0d6:	53                   	push   %ebx
46d0d7:	50                   	push   %eax
46d0d8:	8b 02                	mov    (%edx),%eax
46d0da:	8b 48 04             	mov    0x4(%eax),%ecx
46d0dd:	03 ca                	add    %edx,%ecx
46d0df:	e8 7d 2e fb ff       	call   0x41ff61
46d0e4:	8b 75 0c             	mov    0xc(%ebp),%esi
46d0e7:	8b ce                	mov    %esi,%ecx
46d0e9:	e8 32 c9 f9 ff       	call   0x409a20
46d0ee:	89 1e                	mov    %ebx,(%esi)
46d0f0:	eb 0e                	jmp    0x46d100
46d0f2:	8b 75 0c             	mov    0xc(%ebp),%esi
46d0f5:	8b ce                	mov    %esi,%ecx
46d0f7:	e8 24 c9 f9 ff       	call   0x409a20
46d0fc:	33 c0                	xor    %eax,%eax
46d0fe:	89 06                	mov    %eax,(%esi)
46d100:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46d107:	8d 4c 24 78          	lea    0x78(%esp),%ecx
46d10b:	e8 9a 7e f9 ff       	call   0x404faa
46d110:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d114:	e8 4b 89 f9 ff       	call   0x405a64
46d119:	8d 4c 24 58          	lea    0x58(%esp),%ecx
46d11d:	e8 42 89 f9 ff       	call   0x405a64
46d122:	8d 4c 24 68          	lea    0x68(%esp),%ecx
46d126:	e8 39 89 f9 ff       	call   0x405a64
46d12b:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46d12f:	e8 30 89 f9 ff       	call   0x405a64
46d134:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d138:	e8 27 89 f9 ff       	call   0x405a64
46d13d:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46d141:	e8 1e 89 f9 ff       	call   0x405a64
46d146:	5f                   	pop    %edi
46d147:	5e                   	pop    %esi
46d148:	33 c0                	xor    %eax,%eax
46d14a:	5b                   	pop    %ebx
46d14b:	8b e5                	mov    %ebp,%esp
46d14d:	5d                   	pop    %ebp
46d14e:	c2 08 00             	ret    $0x8
46d151:	55                   	push   %ebp
46d152:	8b ec                	mov    %esp,%ebp
46d154:	83 e4 f8             	and    $0xfffffff8,%esp
46d157:	83 ec 44             	sub    $0x44,%esp
46d15a:	53                   	push   %ebx
46d15b:	56                   	push   %esi
46d15c:	57                   	push   %edi
46d15d:	8b 7d 08             	mov    0x8(%ebp),%edi
46d160:	33 db                	xor    %ebx,%ebx
46d162:	88 5c 24 0c          	mov    %bl,0xc(%esp)
46d166:	83 7f 08 03          	cmpl   $0x3,0x8(%edi)
46d16a:	0f 82 22 01 00 00    	jb     0x46d292
46d170:	8b 47 04             	mov    0x4(%edi),%eax
46d173:	8b 48 08             	mov    0x8(%eax),%ecx
46d176:	e8 21 cb f9 ff       	call   0x409c9c
46d17b:	a8 01                	test   $0x1,%al
46d17d:	74 05                	je     0x46d184
46d17f:	c6 44 24 0c 01       	movb   $0x1,0xc(%esp)
46d184:	8b 47 04             	mov    0x4(%edi),%eax
46d187:	8b 48 08             	mov    0x8(%eax),%ecx
46d18a:	e8 0d cb f9 ff       	call   0x409c9c
46d18f:	a8 08                	test   $0x8,%al
46d191:	0f 84 fb 00 00 00    	je     0x46d292
46d197:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46d19b:	e8 27 a6 f9 ff       	call   0x4077c7
46d1a0:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46d1a4:	e8 1e a6 f9 ff       	call   0x4077c7
46d1a9:	8b 47 04             	mov    0x4(%edi),%eax
46d1ac:	8b 70 04             	mov    0x4(%eax),%esi
46d1af:	8b ce                	mov    %esi,%ecx
46d1b1:	e8 e1 c7 f9 ff       	call   0x409997
46d1b6:	8b 4e 08             	mov    0x8(%esi),%ecx
46d1b9:	8d 44 24 30          	lea    0x30(%esp),%eax
46d1bd:	53                   	push   %ebx
46d1be:	53                   	push   %ebx
46d1bf:	50                   	push   %eax
46d1c0:	8d 54 24 2c          	lea    0x2c(%esp),%edx
46d1c4:	e8 30 75 f9 ff       	call   0x4046f9
46d1c9:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46d1cd:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
46d1d1:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46d1d5:	83 c4 0c             	add    $0xc,%esp
46d1d8:	8b 44 24 24          	mov    0x24(%esp),%eax
46d1dc:	89 44 24 14          	mov    %eax,0x14(%esp)
46d1e0:	8b 44 24 28          	mov    0x28(%esp),%eax
46d1e4:	89 44 24 18          	mov    %eax,0x18(%esp)
46d1e8:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46d1ec:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46d1f0:	ff 00                	incl   (%eax)
46d1f2:	8d 44 24 30          	lea    0x30(%esp),%eax
46d1f6:	50                   	push   %eax
46d1f7:	e8 92 aa f9 ff       	call   0x407c8e
46d1fc:	39 5c 24 14          	cmp    %ebx,0x14(%esp)
46d200:	74 4c                	je     0x46d24e
46d202:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46d206:	e8 68 6c ff ff       	call   0x463e73
46d20b:	84 c0                	test   %al,%al
46d20d:	75 3f                	jne    0x46d24e
46d20f:	ff 74 24 10          	push   0x10(%esp)
46d213:	8d 4c 24 44          	lea    0x44(%esp),%ecx
46d217:	e8 25 ad f9 ff       	call   0x407f41
46d21c:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46d220:	e8 41 6a ff ff       	call   0x463c66
46d225:	8a d8                	mov    %al,%bl
46d227:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46d22b:	f6 db                	neg    %bl
46d22d:	1a db                	sbb    %bl,%bl
46d22f:	e8 30 88 f9 ff       	call   0x405a64
46d234:	fe c3                	inc    %bl
46d236:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46d239:	74 16                	je     0x46d251
46d23b:	8b cb                	mov    %ebx,%ecx
46d23d:	e8 de c7 f9 ff       	call   0x409a20
46d242:	83 23 00             	andl   $0x0,(%ebx)
46d245:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
46d24c:	eb 03                	jmp    0x46d251
46d24e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46d251:	8b cb                	mov    %ebx,%ecx
46d253:	e8 44 ca f9 ff       	call   0x409c9c
46d258:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46d25c:	85 c0                	test   %eax,%eax
46d25e:	75 19                	jne    0x46d279
46d260:	e8 ff 87 f9 ff       	call   0x405a64
46d265:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46d269:	e8 f6 87 f9 ff       	call   0x405a64
46d26e:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46d272:	e8 ed 87 f9 ff       	call   0x405a64
46d277:	eb 62                	jmp    0x46d2db
46d279:	e8 e6 87 f9 ff       	call   0x405a64
46d27e:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46d282:	e8 dd 87 f9 ff       	call   0x405a64
46d287:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46d28b:	e8 d4 87 f9 ff       	call   0x405a64
46d290:	eb 03                	jmp    0x46d295
46d292:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46d295:	8b 47 04             	mov    0x4(%edi),%eax
46d298:	8b 70 04             	mov    0x4(%eax),%esi
46d29b:	8b ce                	mov    %esi,%ecx
46d29d:	e8 f5 c6 f9 ff       	call   0x409997
46d2a2:	8b 45 08             	mov    0x8(%ebp),%eax
46d2a5:	8b 7e 08             	mov    0x8(%esi),%edi
46d2a8:	8b 40 04             	mov    0x4(%eax),%eax
46d2ab:	8b 30                	mov    (%eax),%esi
46d2ad:	8b ce                	mov    %esi,%ecx
46d2af:	e8 e3 c6 f9 ff       	call   0x409997
46d2b4:	8b 4e 08             	mov    0x8(%esi),%ecx
46d2b7:	8b d7                	mov    %edi,%edx
46d2b9:	6a 01                	push   $0x1
46d2bb:	ff 74 24 10          	push   0x10(%esp)
46d2bf:	e8 67 67 ff ff       	call   0x463a2b
46d2c4:	59                   	pop    %ecx
46d2c5:	59                   	pop    %ecx
46d2c6:	84 c0                	test   %al,%al
46d2c8:	75 11                	jne    0x46d2db
46d2ca:	8b cb                	mov    %ebx,%ecx
46d2cc:	e8 4f c7 f9 ff       	call   0x409a20
46d2d1:	83 23 00             	andl   $0x0,(%ebx)
46d2d4:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
46d2db:	5f                   	pop    %edi
46d2dc:	5e                   	pop    %esi
46d2dd:	33 c0                	xor    %eax,%eax
46d2df:	5b                   	pop    %ebx
46d2e0:	8b e5                	mov    %ebp,%esp
46d2e2:	5d                   	pop    %ebp
46d2e3:	c2 08 00             	ret    $0x8
46d2e6:	55                   	push   %ebp
46d2e7:	8b ec                	mov    %esp,%ebp
46d2e9:	83 e4 f8             	and    $0xfffffff8,%esp
46d2ec:	83 ec 4c             	sub    $0x4c,%esp
46d2ef:	53                   	push   %ebx
46d2f0:	56                   	push   %esi
46d2f1:	8b 75 08             	mov    0x8(%ebp),%esi
46d2f4:	33 db                	xor    %ebx,%ebx
46d2f6:	57                   	push   %edi
46d2f7:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46d2fb:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46d2ff:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
46d303:	72 11                	jb     0x46d316
46d305:	8b 46 04             	mov    0x4(%esi),%eax
46d308:	8b 48 04             	mov    0x4(%eax),%ecx
46d30b:	e8 8c c9 f9 ff       	call   0x409c9c
46d310:	8b d8                	mov    %eax,%ebx
46d312:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46d316:	8b 7d 0c             	mov    0xc(%ebp),%edi
46d319:	f6 c3 08             	test   $0x8,%bl
46d31c:	0f 84 0a 01 00 00    	je     0x46d42c
46d322:	f6 c3 03             	test   $0x3,%bl
46d325:	0f 84 01 01 00 00    	je     0x46d42c
46d32b:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d32f:	e8 93 a4 f9 ff       	call   0x4077c7
46d334:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d338:	e8 8a a4 f9 ff       	call   0x4077c7
46d33d:	8b 46 04             	mov    0x4(%esi),%eax
46d340:	8b 30                	mov    (%eax),%esi
46d342:	8b ce                	mov    %esi,%ecx
46d344:	e8 4e c6 f9 ff       	call   0x409997
46d349:	8b 4e 08             	mov    0x8(%esi),%ecx
46d34c:	8d 44 24 38          	lea    0x38(%esp),%eax
46d350:	6a 00                	push   $0x0
46d352:	6a 00                	push   $0x0
46d354:	50                   	push   %eax
46d355:	8d 54 24 34          	lea    0x34(%esp),%edx
46d359:	e8 9b 73 f9 ff       	call   0x4046f9
46d35e:	8b 44 24 34          	mov    0x34(%esp),%eax
46d362:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46d366:	89 44 24 24          	mov    %eax,0x24(%esp)
46d36a:	83 c4 0c             	add    $0xc,%esp
46d36d:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46d371:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46d375:	8b 44 24 30          	mov    0x30(%esp),%eax
46d379:	89 44 24 20          	mov    %eax,0x20(%esp)
46d37d:	8b 44 24 34          	mov    0x34(%esp),%eax
46d381:	89 44 24 24          	mov    %eax,0x24(%esp)
46d385:	ff 00                	incl   (%eax)
46d387:	8d 44 24 38          	lea    0x38(%esp),%eax
46d38b:	50                   	push   %eax
46d38c:	e8 fd a8 f9 ff       	call   0x407c8e
46d391:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
46d396:	74 4b                	je     0x46d3e3
46d398:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46d39c:	e8 d2 6a ff ff       	call   0x463e73
46d3a1:	84 c0                	test   %al,%al
46d3a3:	75 3e                	jne    0x46d3e3
46d3a5:	ff 74 24 18          	push   0x18(%esp)
46d3a9:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
46d3ad:	e8 8f ab f9 ff       	call   0x407f41
46d3b2:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46d3b6:	e8 ab 68 ff ff       	call   0x463c66
46d3bb:	8a d8                	mov    %al,%bl
46d3bd:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46d3c1:	f6 db                	neg    %bl
46d3c3:	1a db                	sbb    %bl,%bl
46d3c5:	e8 9a 86 f9 ff       	call   0x405a64
46d3ca:	fe c3                	inc    %bl
46d3cc:	74 11                	je     0x46d3df
46d3ce:	8b cf                	mov    %edi,%ecx
46d3d0:	e8 4b c6 f9 ff       	call   0x409a20
46d3d5:	83 0f ff             	orl    $0xffffffff,(%edi)
46d3d8:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
46d3df:	8b 5c 24 10          	mov    0x10(%esp),%ebx
46d3e3:	8b cf                	mov    %edi,%ecx
46d3e5:	e8 b2 c8 f9 ff       	call   0x409c9c
46d3ea:	8d 4c 24 18          	lea    0x18(%esp),%ecx
46d3ee:	83 f8 ff             	cmp    $0xffffffff,%eax
46d3f1:	75 1c                	jne    0x46d40f
46d3f3:	e8 6c 86 f9 ff       	call   0x405a64
46d3f8:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d3fc:	e8 63 86 f9 ff       	call   0x405a64
46d401:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d405:	e8 5a 86 f9 ff       	call   0x405a64
46d40a:	e9 4d 01 00 00       	jmp    0x46d55c
46d40f:	83 f3 08             	xor    $0x8,%ebx
46d412:	e8 4d 86 f9 ff       	call   0x405a64
46d417:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46d41b:	e8 44 86 f9 ff       	call   0x405a64
46d420:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46d424:	e8 3b 86 f9 ff       	call   0x405a64
46d429:	8b 75 08             	mov    0x8(%ebp),%esi
46d42c:	6a 38                	push   $0x38
46d42e:	e8 c3 3b fb ff       	call   0x420ff6
46d433:	59                   	pop    %ecx
46d434:	85 c0                	test   %eax,%eax
46d436:	74 0d                	je     0x46d445
46d438:	8b c8                	mov    %eax,%ecx
46d43a:	e8 c7 84 f9 ff       	call   0x405906
46d43f:	89 44 24 10          	mov    %eax,0x10(%esp)
46d443:	eb 06                	jmp    0x46d44b
46d445:	33 c9                	xor    %ecx,%ecx
46d447:	89 4c 24 10          	mov    %ecx,0x10(%esp)
46d44b:	8b 46 04             	mov    0x4(%esi),%eax
46d44e:	8b 30                	mov    (%eax),%esi
46d450:	8b ce                	mov    %esi,%ecx
46d452:	e8 40 c5 f9 ff       	call   0x409997
46d457:	53                   	push   %ebx
46d458:	ff 76 08             	push   0x8(%esi)
46d45b:	8b 5c 24 18          	mov    0x18(%esp),%ebx
46d45f:	8b cb                	mov    %ebx,%ecx
46d461:	e8 f0 84 f9 ff       	call   0x405956
46d466:	84 c0                	test   %al,%al
46d468:	75 34                	jne    0x46d49e
46d46a:	ff 15 40 f3 48 00    	call   *0x48f340
46d470:	8b 54 24 14          	mov    0x14(%esp),%edx
46d474:	6a 00                	push   $0x0
46d476:	50                   	push   %eax
46d477:	8b 02                	mov    (%edx),%eax
46d479:	8b 48 04             	mov    0x4(%eax),%ecx
46d47c:	03 ca                	add    %edx,%ecx
46d47e:	e8 de 2a fb ff       	call   0x41ff61
46d483:	85 db                	test   %ebx,%ebx
46d485:	74 08                	je     0x46d48f
46d487:	51                   	push   %ecx
46d488:	8b cb                	mov    %ebx,%ecx
46d48a:	e8 8b 85 f9 ff       	call   0x405a1a
46d48f:	8b cf                	mov    %edi,%ecx
46d491:	e8 8a c5 f9 ff       	call   0x409a20
46d496:	83 0f ff             	orl    $0xffffffff,(%edi)
46d499:	e9 b7 00 00 00       	jmp    0x46d555
46d49e:	8b 5c 24 14          	mov    0x14(%esp),%ebx
46d4a2:	33 f6                	xor    %esi,%esi
46d4a4:	8b 8b 98 01 00 00    	mov    0x198(%ebx),%ecx
46d4aa:	85 c9                	test   %ecx,%ecx
46d4ac:	74 15                	je     0x46d4c3
46d4ae:	8b 93 94 01 00 00    	mov    0x194(%ebx),%edx
46d4b4:	8b 02                	mov    (%edx),%eax
46d4b6:	83 38 00             	cmpl   $0x0,(%eax)
46d4b9:	74 08                	je     0x46d4c3
46d4bb:	46                   	inc    %esi
46d4bc:	83 c2 04             	add    $0x4,%edx
46d4bf:	3b f1                	cmp    %ecx,%esi
46d4c1:	72 f1                	jb     0x46d4b4
46d4c3:	6a 20                	push   $0x20
46d4c5:	3b f1                	cmp    %ecx,%esi
46d4c7:	75 37                	jne    0x46d500
46d4c9:	e8 28 3b fb ff       	call   0x420ff6
46d4ce:	89 44 24 18          	mov    %eax,0x18(%esp)
46d4d2:	59                   	pop    %ecx
46d4d3:	85 c0                	test   %eax,%eax
46d4d5:	74 12                	je     0x46d4e9
46d4d7:	8d 48 0c             	lea    0xc(%eax),%ecx
46d4da:	e8 e8 a2 f9 ff       	call   0x4077c7
46d4df:	8b 44 24 14          	mov    0x14(%esp),%eax
46d4e3:	89 44 24 14          	mov    %eax,0x14(%esp)
46d4e7:	eb 05                	jmp    0x46d4ee
46d4e9:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
46d4ee:	8d 44 24 14          	lea    0x14(%esp),%eax
46d4f2:	50                   	push   %eax
46d4f3:	8d 8b 90 01 00 00    	lea    0x190(%ebx),%ecx
46d4f9:	e8 37 23 00 00       	call   0x46f835
46d4fe:	eb 29                	jmp    0x46d529
46d500:	e8 f1 3a fb ff       	call   0x420ff6
46d505:	89 44 24 18          	mov    %eax,0x18(%esp)
46d509:	59                   	pop    %ecx
46d50a:	85 c0                	test   %eax,%eax
46d50c:	74 0e                	je     0x46d51c
46d50e:	8d 48 0c             	lea    0xc(%eax),%ecx
46d511:	e8 b1 a2 f9 ff       	call   0x4077c7
46d516:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46d51a:	eb 02                	jmp    0x46d51e
46d51c:	33 c9                	xor    %ecx,%ecx
46d51e:	8b 83 94 01 00 00    	mov    0x194(%ebx),%eax