40715b:	33 f6                	xor    %esi,%esi
40715d:	33 c0                	xor    %eax,%eax
40715f:	66 3b f2             	cmp    %dx,%si
407162:	e9 8e 03 00 00       	jmp    0x4074f5
407167:	3c 68                	cmp    $0x68,%al
407169:	75 53                	jne    0x4071be
40716b:	80 7e 01 65          	cmpb   $0x65,0x1(%esi)
40716f:	75 aa                	jne    0x40711b
407171:	80 7e 02 61          	cmpb   $0x61,0x2(%esi)
407175:	75 a4                	jne    0x40711b
407177:	80 7e 03 64          	cmpb   $0x64,0x3(%esi)
40717b:	75 9e                	jne    0x40711b
40717d:	8b 56 08             	mov    0x8(%esi),%edx
407180:	8b ca                	mov    %edx,%ecx
407182:	c1 e1 10             	shl    $0x10,%ecx
407185:	8b c2                	mov    %edx,%eax
407187:	25 00 ff 00 00       	and    $0xff00,%eax
40718c:	03 c8                	add    %eax,%ecx
40718e:	8b c2                	mov    %edx,%eax
407190:	c1 e8 08             	shr    $0x8,%eax
407193:	25 00 ff 00 00       	and    $0xff00,%eax
407198:	c1 e1 08             	shl    $0x8,%ecx
40719b:	03 c3                	add    %ebx,%eax
40719d:	c1 ea 18             	shr    $0x18,%edx
4071a0:	03 c1                	add    %ecx,%eax
4071a2:	0f b7 44 02 32       	movzwl 0x32(%edx,%eax,1),%eax
4071a7:	8b c8                	mov    %eax,%ecx
4071a9:	66 c1 e8 08          	shr    $0x8,%ax
4071ad:	c1 e1 08             	shl    $0x8,%ecx
4071b0:	66 03 c8             	add    %ax,%cx
4071b3:	0f b7 c1             	movzwl %cx,%eax
4071b6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4071b9:	e9 5d ff ff ff       	jmp    0x40711b
4071be:	3c 6c                	cmp    $0x6c,%al
4071c0:	75 4d                	jne    0x40720f
4071c2:	80 7e 01 6f          	cmpb   $0x6f,0x1(%esi)
4071c6:	0f 85 4f ff ff ff    	jne    0x40711b
4071cc:	80 7e 02 63          	cmpb   $0x63,0x2(%esi)
4071d0:	0f 85 45 ff ff ff    	jne    0x40711b
4071d6:	80 7e 03 61          	cmpb   $0x61,0x3(%esi)
4071da:	0f 85 3b ff ff ff    	jne    0x40711b
4071e0:	8b 56 08             	mov    0x8(%esi),%edx
4071e3:	8b ca                	mov    %edx,%ecx
4071e5:	8b c2                	mov    %edx,%eax
4071e7:	c1 e1 10             	shl    $0x10,%ecx
4071ea:	25 00 ff 00 00       	and    $0xff00,%eax
4071ef:	03 c8                	add    %eax,%ecx
4071f1:	8b c2                	mov    %edx,%eax
4071f3:	c1 e8 08             	shr    $0x8,%eax
4071f6:	25 00 ff 00 00       	and    $0xff00,%eax
4071fb:	c1 e1 08             	shl    $0x8,%ecx
4071fe:	03 c3                	add    %ebx,%eax
407200:	c1 ea 18             	shr    $0x18,%edx
407203:	03 c1                	add    %ecx,%eax
407205:	03 d0                	add    %eax,%edx
407207:	89 55 fc             	mov    %edx,-0x4(%ebp)
40720a:	e9 0f ff ff ff       	jmp    0x40711e
40720f:	3c 63                	cmp    $0x63,%al
407211:	0f 85 04 ff ff ff    	jne    0x40711b
407217:	80 7e 01 6d          	cmpb   $0x6d,0x1(%esi)
40721b:	0f 85 fa fe ff ff    	jne    0x40711b
407221:	80 7e 02 61          	cmpb   $0x61,0x2(%esi)
407225:	0f 85 f0 fe ff ff    	jne    0x40711b
40722b:	80 7e 03 70          	cmpb   $0x70,0x3(%esi)
40722f:	0f 85 e6 fe ff ff    	jne    0x40711b
407235:	8b 56 08             	mov    0x8(%esi),%edx
407238:	8b ca                	mov    %edx,%ecx
40723a:	c1 e1 10             	shl    $0x10,%ecx
40723d:	8b c2                	mov    %edx,%eax
40723f:	25 00 ff 00 00       	and    $0xff00,%eax
407244:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
407248:	03 c8                	add    %eax,%ecx
40724a:	8b c2                	mov    %edx,%eax
40724c:	c1 e8 08             	shr    $0x8,%eax
40724f:	25 00 ff 00 00       	and    $0xff00,%eax
407254:	c1 e1 08             	shl    $0x8,%ecx
407257:	03 c3                	add    %ebx,%eax
407259:	c1 ea 18             	shr    $0x18,%edx
40725c:	03 c1                	add    %ecx,%eax
40725e:	03 d0                	add    %eax,%edx
407260:	89 55 f0             	mov    %edx,-0x10(%ebp)
407263:	0f b7 42 02          	movzwl 0x2(%edx),%eax
407267:	83 c2 04             	add    $0x4,%edx
40726a:	8b c8                	mov    %eax,%ecx
40726c:	66 c1 e8 08          	shr    $0x8,%ax
407270:	c1 e1 08             	shl    $0x8,%ecx
407273:	66 03 c8             	add    %ax,%cx
407276:	0f b7 c1             	movzwl %cx,%eax
407279:	33 c9                	xor    %ecx,%ecx
40727b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40727e:	66 3b c8             	cmp    %ax,%cx
407281:	0f 83 94 fe ff ff    	jae    0x40711b
407287:	0f b7 42 02          	movzwl 0x2(%edx),%eax
40728b:	8b c8                	mov    %eax,%ecx
40728d:	66 c1 e8 08          	shr    $0x8,%ax
407291:	c1 e1 08             	shl    $0x8,%ecx
407294:	66 03 c8             	add    %ax,%cx
407297:	0f b7 c1             	movzwl %cx,%eax
40729a:	89 45 d8             	mov    %eax,-0x28(%ebp)
40729d:	0f b7 02             	movzwl (%edx),%eax
4072a0:	8b c8                	mov    %eax,%ecx
4072a2:	66 c1 e8 08          	shr    $0x8,%ax
4072a6:	c1 e1 08             	shl    $0x8,%ecx
4072a9:	66 03 c8             	add    %ax,%cx
4072ac:	6a 03                	push   $0x3
4072ae:	58                   	pop    %eax
4072af:	66 3b c8             	cmp    %ax,%cx
4072b2:	75 10                	jne    0x4072c4
4072b4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4072b7:	33 c9                	xor    %ecx,%ecx
4072b9:	41                   	inc    %ecx
4072ba:	66 3b c1             	cmp    %cx,%ax
4072bd:	74 1a                	je     0x4072d9
4072bf:	66 85 c0             	test   %ax,%ax
4072c2:	74 15                	je     0x4072d9
4072c4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4072c7:	83 c2 08             	add    $0x8,%edx
4072ca:	41                   	inc    %ecx
4072cb:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4072ce:	66 3b 4d ec          	cmp    -0x14(%ebp),%cx
4072d2:	72 b3                	jb     0x407287
4072d4:	e9 42 fe ff ff       	jmp    0x40711b
4072d9:	8b 52 04             	mov    0x4(%edx),%edx
4072dc:	8b ca                	mov    %edx,%ecx
4072de:	c1 e1 10             	shl    $0x10,%ecx
4072e1:	8b c2                	mov    %edx,%eax
4072e3:	25 00 ff 00 00       	and    $0xff00,%eax
4072e8:	03 c8                	add    %eax,%ecx
4072ea:	8b c2                	mov    %edx,%eax
4072ec:	c1 e8 08             	shr    $0x8,%eax
4072ef:	25 00 ff 00 00       	and    $0xff00,%eax
4072f4:	c1 e1 08             	shl    $0x8,%ecx
4072f7:	03 45 f0             	add    -0x10(%ebp),%eax
4072fa:	03 c1                	add    %ecx,%eax
4072fc:	c1 ea 18             	shr    $0x18,%edx
4072ff:	03 d0                	add    %eax,%edx
407301:	6a 04                	push   $0x4
407303:	89 55 ec             	mov    %edx,-0x14(%ebp)
407306:	0f b7 02             	movzwl (%edx),%eax
407309:	8b c8                	mov    %eax,%ecx
40730b:	66 c1 e8 08          	shr    $0x8,%ax
40730f:	c1 e1 08             	shl    $0x8,%ecx
407312:	66 03 c8             	add    %ax,%cx
407315:	58                   	pop    %eax
407316:	66 3b c8             	cmp    %ax,%cx
407319:	0f 85 bc 00 00 00    	jne    0x4073db
40731f:	0f b7 42 06          	movzwl 0x6(%edx),%eax
407323:	8b c8                	mov    %eax,%ecx
407325:	c1 e0 08             	shl    $0x8,%eax
407328:	c1 e9 08             	shr    $0x8,%ecx
40732b:	03 c8                	add    %eax,%ecx
40732d:	d1 e9                	shr    $1,%ecx
40732f:	49                   	dec    %ecx
407330:	0f b7 c1             	movzwl %cx,%eax
407333:	89 45 dc             	mov    %eax,-0x24(%ebp)
407336:	0f b7 c0             	movzwl %ax,%eax
407339:	89 45 d8             	mov    %eax,-0x28(%ebp)
40733c:	6b c0 06             	imul   $0x6,%eax,%eax
40733f:	50                   	push   %eax
407340:	ff 15 f8 33 43 00    	call   *0x4333f8
407346:	59                   	pop    %ecx
407347:	8b c8                	mov    %eax,%ecx
407349:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40734c:	85 c9                	test   %ecx,%ecx
40734e:	0f 84 ba 01 00 00    	je     0x40750e
407354:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
407358:	8b 45 d8             	mov    -0x28(%ebp),%eax
40735b:	85 c0                	test   %eax,%eax
40735d:	74 7f                	je     0x4073de
40735f:	8b 55 ec             	mov    -0x14(%ebp),%edx
407362:	8d 59 04             	lea    0x4(%ecx),%ebx
407365:	8b 7d d8             	mov    -0x28(%ebp),%edi
407368:	8d 48 05             	lea    0x5(%eax),%ecx
40736b:	8b 75 c4             	mov    -0x3c(%ebp),%esi
40736e:	83 c0 09             	add    $0x9,%eax
407371:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
407374:	89 4d ec             	mov    %ecx,-0x14(%ebp)
407377:	8d 04 42             	lea    (%edx,%eax,2),%eax
40737a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40737d:	0f b7 44 72 0e       	movzwl 0xe(%edx,%esi,2),%eax
407382:	8b c8                	mov    %eax,%ecx
407384:	66 c1 e8 08          	shr    $0x8,%ax
407388:	c1 e1 08             	shl    $0x8,%ecx
40738b:	66 03 c8             	add    %ax,%cx
40738e:	8b 45 f0             	mov    -0x10(%ebp),%eax
407391:	83 45 f0 02          	addl   $0x2,-0x10(%ebp)
407395:	66 89 4b fe          	mov    %cx,-0x2(%ebx)
407399:	0f b7 00             	movzwl (%eax),%eax
40739c:	8b c8                	mov    %eax,%ecx
40739e:	66 c1 e8 08          	shr    $0x8,%ax
4073a2:	c1 e1 08             	shl    $0x8,%ecx
4073a5:	66 03 c8             	add    %ax,%cx
4073a8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4073ab:	83 45 ec 02          	addl   $0x2,-0x14(%ebp)
4073af:	66 89 4b fc          	mov    %cx,-0x4(%ebx)
4073b3:	0f b7 00             	movzwl (%eax),%eax
4073b6:	8b c8                	mov    %eax,%ecx
4073b8:	66 c1 e8 08          	shr    $0x8,%ax
4073bc:	c1 e1 08             	shl    $0x8,%ecx
4073bf:	66 03 c8             	add    %ax,%cx
4073c2:	46                   	inc    %esi
4073c3:	66 89 0b             	mov    %cx,(%ebx)
4073c6:	8d 5b 06             	lea    0x6(%ebx),%ebx
4073c9:	3b f7                	cmp    %edi,%esi
4073cb:	7c b0                	jl     0x40737d
4073cd:	8b 75 d4             	mov    -0x2c(%ebp),%esi
4073d0:	8b 7d c0             	mov    -0x40(%ebp),%edi
4073d3:	8b 5d d0             	mov    -0x30(%ebp),%ebx
4073d6:	e9 40 fd ff ff       	jmp    0x40711b
4073db:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4073de:	8b 55 fc             	mov    -0x4(%ebp),%edx
4073e1:	e9 3b fd ff ff       	jmp    0x407121
4073e6:	0f b7 c0             	movzwl %ax,%eax
4073e9:	6b c0 06             	imul   $0x6,%eax,%eax
4073ec:	0f b7 54 08 02       	movzwl 0x2(%eax,%ecx,1),%edx
4073f1:	0f b7 34 08          	movzwl (%eax,%ecx,1),%esi
4073f5:	89 55 c0             	mov    %edx,-0x40(%ebp)
4073f8:	66 3b f2             	cmp    %dx,%si
4073fb:	0f 87 ec 00 00 00    	ja     0x4074ed
407401:	66 8b 44 08 04       	mov    0x4(%eax,%ecx,1),%ax
407406:	66 03 c6             	add    %si,%ax
407409:	0f b7 c0             	movzwl %ax,%eax
40740c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40740f:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
407413:	0f 87 e7 00 00 00    	ja     0x407500
407419:	33 c9                	xor    %ecx,%ecx
40741b:	0f b7 c0             	movzwl %ax,%eax
40741e:	66 39 4d e4          	cmp    %cx,-0x1c(%ebp)
407422:	0f 95 c1             	setne  %cl
407425:	8d 50 01             	lea    0x1(%eax),%edx
407428:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40742f:	0f af d1             	imul   %ecx,%edx
407432:	0f af c8             	imul   %eax,%ecx
407435:	66 83 7d e4 00       	cmpw   $0x0,-0x1c(%ebp)
40743a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40743d:	75 15                	jne    0x407454
40743f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
407442:	66 8b 04 01          	mov    (%ecx,%eax,1),%ax
407446:	33 c9                	xor    %ecx,%ecx
407448:	66 3b 04 1a          	cmp    (%edx,%ebx,1),%ax
40744c:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40744f:	0f 95 c1             	setne  %cl
407452:	eb 10                	jmp    0x407464
407454:	8b 04 01             	mov    (%ecx,%eax,1),%eax
407457:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40745a:	3b 04 0a             	cmp    (%edx,%ecx,1),%eax
40745d:	74 79                	je     0x4074d8
40745f:	33 c0                	xor    %eax,%eax
407461:	8d 48 01             	lea    0x1(%eax),%ecx
407464:	85 c9                	test   %ecx,%ecx
407466:	74 70                	je     0x4074d8
407468:	8b 45 e0             	mov    -0x20(%ebp),%eax
40746b:	85 ff                	test   %edi,%edi
40746d:	75 20                	jne    0x40748f
40746f:	ff 00                	incl   (%eax)
407471:	6a 04                	push   $0x4
407473:	58                   	pop    %eax
407474:	50                   	push   %eax
407475:	ff 15 f8 33 43 00    	call   *0x4333f8
40747b:	8b f8                	mov    %eax,%edi
40747d:	59                   	pop    %ecx
40747e:	85 ff                	test   %edi,%edi
407480:	0f 84 88 00 00 00    	je     0x40750e
407486:	66 89 37             	mov    %si,(%edi)
407489:	66 89 77 02          	mov    %si,0x2(%edi)
40748d:	eb 49                	jmp    0x4074d8
40748f:	8b 10                	mov    (%eax),%edx
407491:	0f b7 ce             	movzwl %si,%ecx
407494:	0f b7 44 97 fe       	movzwl -0x2(%edi,%edx,4),%eax
407499:	2b c8                	sub    %eax,%ecx
40749b:	33 c0                	xor    %eax,%eax
40749d:	40                   	inc    %eax
40749e:	3b c8                	cmp    %eax,%ecx
4074a0:	75 07                	jne    0x4074a9
4074a2:	66 ff 44 97 fe       	incw   -0x2(%edi,%edx,4)
4074a7:	eb 2f                	jmp    0x4074d8
4074a9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4074ac:	8d 42 01             	lea    0x1(%edx),%eax
4074af:	89 01                	mov    %eax,(%ecx)
4074b1:	85 c0                	test   %eax,%eax
4074b3:	74 59                	je     0x40750e
4074b5:	c1 e0 02             	shl    $0x2,%eax
4074b8:	50                   	push   %eax
4074b9:	57                   	push   %edi
4074ba:	89 45 bc             	mov    %eax,-0x44(%ebp)
4074bd:	ff 15 f4 33 43 00    	call   *0x4333f4
4074c3:	59                   	pop    %ecx
4074c4:	59                   	pop    %ecx
4074c5:	85 c0                	test   %eax,%eax
4074c7:	74 45                	je     0x40750e
4074c9:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4074cc:	8b f8                	mov    %eax,%edi
4074ce:	66 89 74 01 fc       	mov    %si,-0x4(%ecx,%eax,1)
4074d3:	66 89 74 01 fe       	mov    %si,-0x2(%ecx,%eax,1)
4074d8:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4074db:	46                   	inc    %esi
4074dc:	40                   	inc    %eax
4074dd:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4074e0:	66 3b 75 c0          	cmp    -0x40(%ebp),%si
4074e4:	0f 86 25 ff ff ff    	jbe    0x40740f
4074ea:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4074ed:	8b 45 d8             	mov    -0x28(%ebp),%eax
4074f0:	40                   	inc    %eax
4074f1:	66 3b 45 dc          	cmp    -0x24(%ebp),%ax
4074f5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4074f8:	0f 82 e8 fe ff ff    	jb     0x4073e6
4074fe:	eb 0e                	jmp    0x40750e
407500:	85 ff                	test   %edi,%edi
407502:	74 08                	je     0x40750c
407504:	57                   	push   %edi
407505:	ff 15 d4 33 43 00    	call   *0x4333d4
40750b:	59                   	pop    %ecx
40750c:	33 ff                	xor    %edi,%edi
40750e:	53                   	push   %ebx
40750f:	ff 15 58 31 43 00    	call   *0x433158
407515:	ff 75 cc             	push   -0x34(%ebp)
407518:	ff 15 74 31 43 00    	call   *0x433174
40751e:	ff 75 c8             	push   -0x38(%ebp)
407521:	ff 15 74 31 43 00    	call   *0x433174
407527:	8b 45 f8             	mov    -0x8(%ebp),%eax
40752a:	85 c0                	test   %eax,%eax
40752c:	74 08                	je     0x407536
40752e:	50                   	push   %eax
40752f:	ff 15 d4 33 43 00    	call   *0x4333d4
407535:	59                   	pop    %ecx
407536:	8b c7                	mov    %edi,%eax
407538:	5f                   	pop    %edi
407539:	5e                   	pop    %esi
40753a:	5b                   	pop    %ebx
40753b:	c9                   	leave
40753c:	c3                   	ret
40753d:	8b ff                	mov    %edi,%edi
40753f:	55                   	push   %ebp
407540:	8b ec                	mov    %esp,%ebp
407542:	81 ec 04 03 00 00    	sub    $0x304,%esp
407548:	a1 64 10 41 00       	mov    0x411064,%eax
40754d:	33 c5                	xor    %ebp,%eax
40754f:	89 45 fc             	mov    %eax,-0x4(%ebp)
407552:	53                   	push   %ebx
407553:	56                   	push   %esi
407554:	57                   	push   %edi
407555:	33 db                	xor    %ebx,%ebx
407557:	8b f9                	mov    %ecx,%edi
407559:	53                   	push   %ebx
40755a:	53                   	push   %ebx
40755b:	68 4b 01 00 00       	push   $0x14b
407560:	57                   	push   %edi
407561:	ff 15 10 33 43 00    	call   *0x433310
407567:	68 80 00 00 00       	push   $0x80
40756c:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax