40fff2:	50                   	push   %eax
40fff3:	e8 e4 84 ff ff       	call   0x4084dc
40fff8:	8b 74 24 30          	mov    0x30(%esp),%esi
40fffc:	85 f6                	test   %esi,%esi
40fffe:	0f 85 2c 4d 03 00    	jne    0x444d30
410004:	83 7f 14 01          	cmpl   $0x1,0x14(%edi)
410008:	0f 8d cb 02 00 00    	jge    0x4102d9
41000e:	8b 5c 24 18          	mov    0x18(%esp),%ebx
410012:	8b 44 24 2c          	mov    0x2c(%esp),%eax
410016:	c7 84 24 88 00 00 00 	movl   $0x0,0x88(%esp)
41001d:	00 00 00 00
410021:	c7 84 24 90 00 00 00 	movl   $0x0,0x90(%esp)
410028:	00 00 00 00
41002c:	89 83 48 01 00 00    	mov    %eax,0x148(%ebx)
410032:	8b 03                	mov    (%ebx),%eax
410034:	c7 84 24 94 00 00 00 	movl   $0x1,0x94(%esp)
41003b:	01 00 00 00
41003f:	c6 84 24 98 00 00 00 	movb   $0x0,0x98(%esp)
410046:	00
410047:	c7 84 24 9c 00 00 00 	movl   $0x0,0x9c(%esp)
41004e:	00 00 00 00
410052:	8b 78 04             	mov    0x4(%eax),%edi
410055:	03 fb                	add    %ebx,%edi
410057:	c6 84 24 a0 00 00 00 	movb   $0x0,0xa0(%esp)
41005e:	00
41005f:	c7 84 24 a8 00 00 00 	movl   $0x0,0xa8(%esp)
410066:	00 00 00 00
41006a:	c7 84 24 b0 00 00 00 	movl   $0x0,0xb0(%esp)
410071:	00 00 00 00
410075:	c7 84 24 b4 00 00 00 	movl   $0x1,0xb4(%esp)
41007c:	01 00 00 00
410080:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
410084:	c6 84 24 b8 00 00 00 	movb   $0x0,0xb8(%esp)
41008b:	00
41008c:	0f 85 6e 4e 03 00    	jne    0x444f00
410092:	6a 40                	push   $0x40
410094:	e8 5d 0f 01 00       	call   0x420ff6
410099:	8b f0                	mov    %eax,%esi
41009b:	83 c4 04             	add    $0x4,%esp
41009e:	85 f6                	test   %esi,%esi
4100a0:	0f 84 c5 07 00 00    	je     0x41086b
4100a6:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
4100ad:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4100b4:	50                   	push   %eax
4100b5:	8b ce                	mov    %esi,%ecx
4100b7:	e8 04 9a ff ff       	call   0x409ac0
4100bc:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
4100c3:	c6 46 10 00          	movb   $0x0,0x10(%esi)
4100c7:	8d 4e 20             	lea    0x20(%esi),%ecx
4100ca:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4100d1:	c6 46 18 00          	movb   $0x0,0x18(%esi)
4100d5:	50                   	push   %eax
4100d6:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
4100dd:	e8 de 99 ff ff       	call   0x409ac0
4100e2:	c6 46 30 00          	movb   $0x0,0x30(%esi)
4100e6:	8b 47 08             	mov    0x8(%edi),%eax
4100e9:	89 46 38             	mov    %eax,0x38(%esi)
4100ec:	89 77 08             	mov    %esi,0x8(%edi)
4100ef:	8b 44 24 44          	mov    0x44(%esp),%eax
4100f3:	8d b3 5c 01 00 00    	lea    0x15c(%ebx),%esi
4100f9:	ff 47 04             	incl   0x4(%edi)
4100fc:	8b bb f4 00 00 00    	mov    0xf4(%ebx),%edi
410102:	8b 4c 24 18          	mov    0x18(%esp),%ecx
410106:	8b 40 10             	mov    0x10(%eax),%eax
410109:	8b 1e                	mov    (%esi),%ebx
41010b:	40                   	inc    %eax
41010c:	50                   	push   %eax
41010d:	e8 1e 0a 00 00       	call   0x410b30
410112:	3b 1e                	cmp    (%esi),%ebx
410114:	0f 82 ff 4d 03 00    	jb     0x444f19
41011a:	8b 5c 24 18          	mov    0x18(%esp),%ebx
41011e:	8b 03                	mov    (%ebx),%eax
410120:	89 bb f4 00 00 00    	mov    %edi,0xf4(%ebx)
410126:	8b 48 04             	mov    0x4(%eax),%ecx
410129:	8b 44 19 08          	mov    0x8(%ecx,%ebx,1),%eax
41012d:	03 cb                	add    %ebx,%ecx
41012f:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
410133:	0f 85 39 07 00 00    	jne    0x410872
410139:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
41013d:	8b 45 18             	mov    0x18(%ebp),%eax
410140:	0f 84 2e 06 00 00    	je     0x410774
410146:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
41014a:	c6 00 01             	movb   $0x1,(%eax)
41014d:	0f 85 d6 4d 03 00    	jne    0x444f29
410153:	8b 79 08             	mov    0x8(%ecx),%edi
410156:	8b 75 14             	mov    0x14(%ebp),%esi
410159:	3b f7                	cmp    %edi,%esi
41015b:	74 19                	je     0x410176
41015d:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
410161:	0f 84 cd 4d 03 00    	je     0x444f34
410167:	8b ce                	mov    %esi,%ecx
410169:	e8 b2 98 ff ff       	call   0x409a20
41016e:	57                   	push   %edi
41016f:	8b ce                	mov    %esi,%ecx
410171:	e8 4a 99 ff ff       	call   0x409ac0
410176:	8b 03                	mov    (%ebx),%eax
410178:	8b 70 04             	mov    0x4(%eax),%esi
41017b:	8b 44 1e 08          	mov    0x8(%esi,%ebx,1),%eax
41017f:	03 f3                	add    %ebx,%esi
410181:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410185:	0f 85 ef 06 00 00    	jne    0x41087a
41018b:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
41018f:	0f 85 b9 4d 03 00    	jne    0x444f4e
410195:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410199:	8b 46 08             	mov    0x8(%esi),%eax
41019c:	0f 85 e0 06 00 00    	jne    0x410882
4101a2:	80 78 30 00          	cmpb   $0x0,0x30(%eax)
4101a6:	0f 85 b9 4d 03 00    	jne    0x444f65
4101ac:	8b 03                	mov    (%ebx),%eax
4101ae:	8b 70 04             	mov    0x4(%eax),%esi
4101b1:	03 f3                	add    %ebx,%esi
4101b3:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4101b7:	0f 85 c5 4d 03 00    	jne    0x444f82
4101bd:	80 7e 0c 00          	cmpb   $0x0,0xc(%esi)
4101c1:	0f 85 c3 06 00 00    	jne    0x41088a
4101c7:	8b 7e 08             	mov    0x8(%esi),%edi
4101ca:	8b 5f 38             	mov    0x38(%edi),%ebx
4101cd:	85 ff                	test   %edi,%edi
4101cf:	74 18                	je     0x4101e9
4101d1:	8d 4f 20             	lea    0x20(%edi),%ecx
4101d4:	e8 47 98 ff ff       	call   0x409a20
4101d9:	8b cf                	mov    %edi,%ecx
4101db:	e8 40 98 ff ff       	call   0x409a20
4101e0:	57                   	push   %edi
4101e1:	e8 86 0e 01 00       	call   0x42106c
4101e6:	83 c4 04             	add    $0x4,%esp
4101e9:	89 5e 08             	mov    %ebx,0x8(%esi)
4101ec:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4101f0:	c6 46 0d 00          	movb   $0x0,0xd(%esi)
4101f4:	ff 4e 04             	decl   0x4(%esi)
4101f7:	8b 03                	mov    (%ebx),%eax
4101f9:	8b 48 04             	mov    0x4(%eax),%ecx
4101fc:	8b 44 19 08          	mov    0x8(%ecx,%ebx,1),%eax
410200:	03 cb                	add    %ebx,%ecx
410202:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
410206:	0f 85 87 06 00 00    	jne    0x410893
41020c:	8b 94 24 9c 00 00 00 	mov    0x9c(%esp),%edx
410213:	89 50 14             	mov    %edx,0x14(%eax)
410216:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
41021a:	8b 41 08             	mov    0x8(%ecx),%eax
41021d:	0f 85 78 06 00 00    	jne    0x41089b
410223:	c6 40 18 00          	movb   $0x0,0x18(%eax)
410227:	8b 03                	mov    (%ebx),%eax
410229:	8b 70 04             	mov    0x4(%eax),%esi
41022c:	03 f3                	add    %ebx,%esi
41022e:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410232:	0f 85 66 4d 03 00    	jne    0x444f9e
410238:	8b 4e 08             	mov    0x8(%esi),%ecx
41023b:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
410242:	83 c1 20             	add    $0x20,%ecx
410245:	50                   	push   %eax
410246:	e8 51 9c ff ff       	call   0x409e9c
41024b:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
41024f:	8b 46 08             	mov    0x8(%esi),%eax
410252:	0f 85 4b 06 00 00    	jne    0x4108a3
410258:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
41025d:	c6 40 30 00          	movb   $0x0,0x30(%eax)
410261:	e8 d9 81 ff ff       	call   0x40843f
410266:	8b 84 24 84 00 00 00 	mov    0x84(%esp),%eax
41026d:	8d 8c 24 a8 00 00 00 	lea    0xa8(%esp),%ecx
410274:	89 83 48 01 00 00    	mov    %eax,0x148(%ebx)
41027a:	33 db                	xor    %ebx,%ebx
41027c:	89 5c 24 30          	mov    %ebx,0x30(%esp)
410280:	e8 9b 97 ff ff       	call   0x409a20
410285:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
41028c:	e8 8f 97 ff ff       	call   0x409a20
410291:	8d 4c 24 70          	lea    0x70(%esp),%ecx
410295:	e8 86 97 ff ff       	call   0x409a20
41029a:	8b 7c 24 64          	mov    0x64(%esp),%edi
41029e:	33 f6                	xor    %esi,%esi
4102a0:	85 ff                	test   %edi,%edi
4102a2:	0f 85 63 04 00 00    	jne    0x41070b
4102a8:	ff 74 24 60          	push   0x60(%esp)
4102ac:	e8 bb 0d 01 00       	call   0x42106c
4102b1:	8b 44 24 58          	mov    0x58(%esp),%eax
4102b5:	83 c4 04             	add    $0x4,%esp
4102b8:	33 f6                	xor    %esi,%esi
4102ba:	85 c0                	test   %eax,%eax
4102bc:	0f 85 6e 04 00 00    	jne    0x410730
4102c2:	ff 74 24 50          	push   0x50(%esp)
4102c6:	e8 a1 0d 01 00       	call   0x42106c
4102cb:	83 c4 04             	add    $0x4,%esp
4102ce:	8b c3                	mov    %ebx,%eax
4102d0:	5f                   	pop    %edi
4102d1:	5e                   	pop    %esi
4102d2:	5b                   	pop    %ebx
4102d3:	8b e5                	mov    %ebp,%esp
4102d5:	5d                   	pop    %ebp
4102d6:	c2 14 00             	ret    $0x14
4102d9:	8b 4c 24 50          	mov    0x50(%esp),%ecx
4102dd:	8b 44 24 60          	mov    0x60(%esp),%eax
4102e1:	2b c1                	sub    %ecx,%eax
4102e3:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
4102ea:	00
4102eb:	89 44 24 3c          	mov    %eax,0x3c(%esp)
4102ef:	8b 44 24 20          	mov    0x20(%esp),%eax
4102f3:	89 4c 24 38          	mov    %ecx,0x38(%esp)
4102f7:	eb 07                	jmp    0x410300
4102f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410300:	8d 14 85 00 00 00 00 	lea    0x0(,%eax,4),%edx
410307:	33 f6                	xor    %esi,%esi
410309:	8b 44 24 28          	mov    0x28(%esp),%eax
41030d:	8b 48 04             	mov    0x4(%eax),%ecx
410310:	8b 04 11             	mov    (%ecx,%edx,1),%eax
410313:	66 39 70 08          	cmp    %si,0x8(%eax)
410317:	0f 84 2a 05 00 00    	je     0x410847
41031d:	8b 54 24 20          	mov    0x20(%esp),%edx
410321:	33 ff                	xor    %edi,%edi
410323:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
41032a:	00
41032b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
41032f:	8d 14 95 04 00 00 00 	lea    0x4(,%edx,4),%edx
410336:	eb 08                	jmp    0x410340
410338:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41033f:	90                   	nop
410340:	8b 04 11             	mov    (%ecx,%edx,1),%eax
410343:	0f b7 40 08          	movzwl 0x8(%eax),%eax
410347:	66 83 f8 47          	cmp    $0x47,%ax
41034b:	0f 84 ff 04 00 00    	je     0x410850
410351:	66 83 f8 48          	cmp    $0x48,%ax
410355:	0f 84 09 04 00 00    	je     0x410764
41035b:	66 83 f8 40          	cmp    $0x40,%ax
41035f:	0f 85 06 04 00 00    	jne    0x41076b
410365:	85 ff                	test   %edi,%edi
410367:	0f 85 fe 03 00 00    	jne    0x41076b
41036d:	89 5c 24 14          	mov    %ebx,0x14(%esp)
410371:	8b 5c 24 10          	mov    0x10(%esp),%ebx
410375:	3b 5c 24 2c          	cmp    0x2c(%esp),%ebx
410379:	0f 8f 08 4b 03 00    	jg     0x444e87
41037f:	8b 54 24 38          	mov    0x38(%esp),%edx
410383:	8b 44 24 3c          	mov    0x3c(%esp),%eax
410387:	8b 04 10             	mov    (%eax,%edx,1),%eax
41038a:	80 38 00             	cmpb   $0x0,(%eax)
41038d:	0f 85 16 4a 03 00    	jne    0x444da9
410393:	8b 44 24 20          	mov    0x20(%esp),%eax
410397:	81 ce 00 02 00 00    	or     $0x200,%esi
41039d:	83 3d 80 72 4c 00 00 	cmpl   $0x0,0x4c7280
4103a4:	8b 12                	mov    (%edx),%edx
4103a6:	89 54 24 40          	mov    %edx,0x40(%esp)
4103aa:	8b 04 81             	mov    (%ecx,%eax,4),%eax
4103ad:	8b 38                	mov    (%eax),%edi
4103af:	0f 84 2b 4a 03 00    	je     0x444de0
4103b5:	80 3d 89 72 4c 00 00 	cmpb   $0x0,0x4c7289
4103bc:	0f 85 34 4a 03 00    	jne    0x444df6
4103c2:	8b 1d 84 72 4c 00    	mov    0x4c7284,%ebx
4103c8:	53                   	push   %ebx
4103c9:	57                   	push   %edi
4103ca:	89 5c 24 38          	mov    %ebx,0x38(%esp)
4103ce:	e8 cd 84 ff ff       	call   0x4088a0
4103d3:	84 c0                	test   %al,%al
4103d5:	0f 85 28 4a 03 00    	jne    0x444e03
4103db:	81 e6 00 ff 00 00    	and    $0xff00,%esi
4103e1:	6a 20                	push   $0x20
4103e3:	89 74 24 4c          	mov    %esi,0x4c(%esp)
4103e7:	e8 0a 0c 01 00       	call   0x420ff6
4103ec:	8b f0                	mov    %eax,%esi
4103ee:	83 c4 04             	add    $0x4,%esp
4103f1:	85 f6                	test   %esi,%esi
4103f3:	0f 84 64 04 00 00    	je     0x41085d
4103f9:	33 c9                	xor    %ecx,%ecx
4103fb:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
410402:	b8 08 00 00 00       	mov    $0x8,%eax
410407:	c7 46 08 08 00 00 00 	movl   $0x8,0x8(%esi)
41040e:	ba 02 00 00 00       	mov    $0x2,%edx
410413:	f7 e2                	mul    %edx
410415:	0f 90 c1             	seto   %cl
410418:	f7 d9                	neg    %ecx
41041a:	0b c8                	or     %eax,%ecx
41041c:	51                   	push   %ecx
41041d:	e8 d4 0b 01 00       	call   0x420ff6
410422:	83 c4 04             	add    $0x4,%esp
410425:	89 06                	mov    %eax,(%esi)
410427:	33 c9                	xor    %ecx,%ecx
410429:	66 89 08             	mov    %cx,(%eax)
41042c:	6a 04                	push   $0x4
41042e:	e8 c3 0b 01 00       	call   0x420ff6
410433:	83 c4 04             	add    $0x4,%esp
410436:	85 c0                	test   %eax,%eax
410438:	0f 84 18 04 00 00    	je     0x410856
41043e:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
410444:	89 46 0c             	mov    %eax,0xc(%esi)
410447:	3b f7                	cmp    %edi,%esi
410449:	74 3b                	je     0x410486
41044b:	8b 4e 0c             	mov    0xc(%esi),%ecx
41044e:	8b 01                	mov    (%ecx),%eax
410450:	83 f8 01             	cmp    $0x1,%eax
410453:	0f 8f cd 49 03 00    	jg     0x444e26
410459:	8b 5f 04             	mov    0x4(%edi),%ebx
41045c:	89 5e 04             	mov    %ebx,0x4(%esi)
41045f:	8d 43 01             	lea    0x1(%ebx),%eax
410462:	39 46 08             	cmp    %eax,0x8(%esi)
410465:	0f 82 db 49 03 00    	jb     0x444e46
41046b:	8b 46 04             	mov    0x4(%esi),%eax
41046e:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
410475:	50                   	push   %eax
410476:	ff 37                	push   (%edi)
410478:	ff 36                	push   (%esi)
41047a:	e8 01 0c 01 00       	call   0x421080
41047f:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
410483:	83 c4 0c             	add    $0xc,%esp
410486:	8b 44 24 48          	mov    0x48(%esp),%eax
41048a:	6a 10                	push   $0x10
41048c:	89 46 10             	mov    %eax,0x10(%esi)
41048f:	e8 62 0b 01 00       	call   0x420ff6
410494:	8b f8                	mov    %eax,%edi
410496:	83 c4 04             	add    $0x4,%esp
410499:	85 ff                	test   %edi,%edi
41049b:	0f 84 c3 03 00 00    	je     0x410864
4104a1:	ff 74 24 40          	push   0x40(%esp)
4104a5:	8b cf                	mov    %edi,%ecx
4104a7:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
4104ae:	e8 0d 96 ff ff       	call   0x409ac0
4104b3:	89 7e 14             	mov    %edi,0x14(%esi)
4104b6:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
4104bd:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
4104c4:	ff 33                	push   (%ebx)
4104c6:	56                   	push   %esi
4104c7:	e8 f4 82 ff ff       	call   0x4087c0
4104cc:	8b 7c 24 14          	mov    0x14(%esp),%edi
4104d0:	89 03                	mov    %eax,(%ebx)
4104d2:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4104d6:	8b 44 24 20          	mov    0x20(%esp),%eax
4104da:	43                   	inc    %ebx
4104db:	83 44 24 38 04       	addl   $0x4,0x38(%esp)
4104e0:	40                   	inc    %eax
4104e1:	03 c7                	add    %edi,%eax
4104e3:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4104e7:	8b 7c 24 44          	mov    0x44(%esp),%edi
4104eb:	89 44 24 20          	mov    %eax,0x20(%esp)
4104ef:	3b 5f 14             	cmp    0x14(%edi),%ebx
4104f2:	0f 8e 08 fe ff ff    	jle    0x410300
4104f8:	e9 11 fb ff ff       	jmp    0x41000e
4104fd:	8d 49 00             	lea    0x0(%ecx),%ecx
410500:	3b d1                	cmp    %ecx,%edx
410502:	0f 83 96 fa ff ff    	jae    0x40ff9e
410508:	c1 e6 02             	shl    $0x2,%esi
41050b:	43                   	inc    %ebx
41050c:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
410510:	32 db                	xor    %bl,%bl
410512:	c7 44 24 40 00 00 00 	movl   $0x0,0x40(%esp)
410519:	00
41051a:	8b 04 37             	mov    (%edi,%esi,1),%eax
41051d:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
410522:	0f 84 57 46 03 00    	je     0x444b7f
410528:	8b 7d 0c             	mov    0xc(%ebp),%edi
41052b:	8b 47 04             	mov    0x4(%edi),%eax
41052e:	8b 04 90             	mov    (%eax,%edx,4),%eax
410531:	66 83 78 08 33       	cmpw   $0x33,0x8(%eax)
410536:	74 02                	je     0x41053a
410538:	32 db                	xor    %bl,%bl