405412:	57                   	push   %edi
405413:	55                   	push   %ebp
405414:	89 c3                	mov    %eax,%ebx
405416:	89 d6                	mov    %edx,%esi
405418:	31 c0                	xor    %eax,%eax
40541a:	8a 41 01             	mov    0x1(%ecx),%al
40541d:	8d 7c 08 0a          	lea    0xa(%eax,%ecx,1),%edi
405421:	8b 6f fc             	mov    -0x4(%edi),%ebp
405424:	31 c0                	xor    %eax,%eax
405426:	8b 4f f8             	mov    -0x8(%edi),%ecx
405429:	51                   	push   %ecx
40542a:	8b 4f 04             	mov    0x4(%edi),%ecx
40542d:	29 c1                	sub    %eax,%ecx
40542f:	7e 0b                	jle    0x40543c
405431:	89 c2                	mov    %eax,%edx
405433:	01 f0                	add    %esi,%eax
405435:	01 da                	add    %ebx,%edx
405437:	e8 b0 da ff ff       	call   0x402eec
40543c:	8b 47 04             	mov    0x4(%edi),%eax
40543f:	8b 17                	mov    (%edi),%edx
405441:	8b 12                	mov    (%edx),%edx
405443:	8a 0a                	mov    (%edx),%cl
405445:	80 f9 0a             	cmp    $0xa,%cl
405448:	74 31                	je     0x40547b
40544a:	80 f9 0b             	cmp    $0xb,%cl
40544d:	74 3d                	je     0x40548c
40544f:	80 f9 0c             	cmp    $0xc,%cl
405452:	74 49                	je     0x40549d
405454:	80 f9 0d             	cmp    $0xd,%cl
405457:	74 55                	je     0x4054ae
405459:	80 f9 0e             	cmp    $0xe,%cl
40545c:	74 70                	je     0x4054ce
40545e:	80 f9 0f             	cmp    $0xf,%cl
405461:	0f 84 80 00 00 00    	je     0x4054e7
405467:	80 f9 11             	cmp    $0x11,%cl
40546a:	0f 84 88 00 00 00    	je     0x4054f8
405470:	b0 02                	mov    $0x2,%al
405472:	5d                   	pop    %ebp
405473:	5f                   	pop    %edi
405474:	5e                   	pop    %esi
405475:	5b                   	pop    %ebx
405476:	e9 d1 d9 ff ff       	jmp    0x402e4c
40547b:	8b 14 30             	mov    (%eax,%esi,1),%edx
40547e:	01 d8                	add    %ebx,%eax
405480:	e8 17 f3 ff ff       	call   0x40479c
405485:	b8 04 00 00 00       	mov    $0x4,%eax
40548a:	eb 7d                	jmp    0x405509
40548c:	8b 14 30             	mov    (%eax,%esi,1),%edx
40548f:	01 d8                	add    %ebx,%eax
405491:	e8 fa fa ff ff       	call   0x404f90
405496:	b8 04 00 00 00       	mov    $0x4,%eax
40549b:	eb 6c                	jmp    0x405509
40549d:	8d 14 30             	lea    (%eax,%esi,1),%edx
4054a0:	01 d8                	add    %ebx,%eax
4054a2:	e8 51 ff ff ff       	call   0x4053f8
4054a7:	b8 10 00 00 00       	mov    $0x10,%eax
4054ac:	eb 5b                	jmp    0x405509
4054ae:	31 c9                	xor    %ecx,%ecx
4054b0:	8a 4a 01             	mov    0x1(%edx),%cl
4054b3:	ff 74 11 02          	push   0x2(%ecx,%edx,1)
4054b7:	ff 74 11 06          	push   0x6(%ecx,%edx,1)
4054bb:	8b 4c 11 0a          	mov    0xa(%ecx,%edx,1),%ecx
4054bf:	8b 09                	mov    (%ecx),%ecx
4054c1:	8d 14 30             	lea    (%eax,%esi,1),%edx
4054c4:	01 d8                	add    %ebx,%eax
4054c6:	e8 61 00 00 00       	call   0x40552c
4054cb:	58                   	pop    %eax
4054cc:	eb 3b                	jmp    0x405509
4054ce:	31 c9                	xor    %ecx,%ecx
4054d0:	8a 4a 01             	mov    0x1(%edx),%cl
4054d3:	8b 4c 11 02          	mov    0x2(%ecx,%edx,1),%ecx
4054d7:	51                   	push   %ecx
4054d8:	89 d1                	mov    %edx,%ecx
4054da:	8d 14 30             	lea    (%eax,%esi,1),%edx
4054dd:	01 d8                	add    %ebx,%eax
4054df:	e8 2c ff ff ff       	call   0x405410
4054e4:	58                   	pop    %eax
4054e5:	eb 22                	jmp    0x405509
4054e7:	8b 14 30             	mov    (%eax,%esi,1),%edx
4054ea:	01 d8                	add    %ebx,%eax
4054ec:	e8 9f 0c 00 00       	call   0x406190
4054f1:	b8 04 00 00 00       	mov    $0x4,%eax
4054f6:	eb 11                	jmp    0x405509
4054f8:	89 d1                	mov    %edx,%ecx
4054fa:	8b 14 30             	mov    (%eax,%esi,1),%edx
4054fd:	01 d8                	add    %ebx,%eax
4054ff:	e8 d8 05 00 00       	call   0x405adc
405504:	b8 04 00 00 00       	mov    $0x4,%eax
405509:	03 47 04             	add    0x4(%edi),%eax
40550c:	83 c7 08             	add    $0x8,%edi
40550f:	4d                   	dec    %ebp
405510:	0f 85 14 ff ff ff    	jne    0x40542a
405516:	59                   	pop    %ecx
405517:	29 c1                	sub    %eax,%ecx
405519:	7e 0a                	jle    0x405525
40551b:	8d 14 18             	lea    (%eax,%ebx,1),%edx
40551e:	01 f0                	add    %esi,%eax
405520:	e8 c7 d9 ff ff       	call   0x402eec
405525:	5d                   	pop    %ebp
405526:	5f                   	pop    %edi
405527:	5e                   	pop    %esi
405528:	5b                   	pop    %ebx
405529:	c3                   	ret
40552a:	8b c0                	mov    %eax,%eax
40552c:	53                   	push   %ebx
40552d:	56                   	push   %esi
40552e:	57                   	push   %edi
40552f:	55                   	push   %ebp
405530:	89 c3                	mov    %eax,%ebx
405532:	89 d6                	mov    %edx,%esi
405534:	89 cf                	mov    %ecx,%edi
405536:	8b 6c 24 14          	mov    0x14(%esp),%ebp
40553a:	8a 0f                	mov    (%edi),%cl
40553c:	80 f9 0a             	cmp    $0xa,%cl
40553f:	74 31                	je     0x405572
405541:	80 f9 0b             	cmp    $0xb,%cl
405544:	74 43                	je     0x405589
405546:	80 f9 0c             	cmp    $0xc,%cl
405549:	74 52                	je     0x40559d
40554b:	80 f9 0d             	cmp    $0xd,%cl
40554e:	74 61                	je     0x4055b1
405550:	80 f9 0e             	cmp    $0xe,%cl
405553:	74 7d                	je     0x4055d2
405555:	80 f9 0f             	cmp    $0xf,%cl
405558:	0f 84 91 00 00 00    	je     0x4055ef
40555e:	80 f9 11             	cmp    $0x11,%cl
405561:	0f 84 9c 00 00 00    	je     0x405603
405567:	b0 02                	mov    $0x2,%al
405569:	5d                   	pop    %ebp
40556a:	5f                   	pop    %edi
40556b:	5e                   	pop    %esi
40556c:	5b                   	pop    %ebx
40556d:	e9 da d8 ff ff       	jmp    0x402e4c
405572:	89 d8                	mov    %ebx,%eax
405574:	8b 16                	mov    (%esi),%edx
405576:	e8 21 f2 ff ff       	call   0x40479c
40557b:	83 c3 04             	add    $0x4,%ebx
40557e:	83 c6 04             	add    $0x4,%esi
405581:	4d                   	dec    %ebp
405582:	75 ee                	jne    0x405572
405584:	e9 8e 00 00 00       	jmp    0x405617
405589:	89 d8                	mov    %ebx,%eax
40558b:	8b 16                	mov    (%esi),%edx
40558d:	e8 fe f9 ff ff       	call   0x404f90
405592:	83 c3 04             	add    $0x4,%ebx
405595:	83 c6 04             	add    $0x4,%esi
405598:	4d                   	dec    %ebp
405599:	75 ee                	jne    0x405589
40559b:	eb 7a                	jmp    0x405617
40559d:	89 d8                	mov    %ebx,%eax
40559f:	89 f2                	mov    %esi,%edx
4055a1:	e8 52 fe ff ff       	call   0x4053f8
4055a6:	83 c3 10             	add    $0x10,%ebx
4055a9:	83 c6 10             	add    $0x10,%esi
4055ac:	4d                   	dec    %ebp
4055ad:	75 ee                	jne    0x40559d
4055af:	eb 66                	jmp    0x405617
4055b1:	31 c9                	xor    %ecx,%ecx
4055b3:	8a 4f 01             	mov    0x1(%edi),%cl
4055b6:	8d 7c 39 02          	lea    0x2(%ecx,%edi,1),%edi
4055ba:	89 d8                	mov    %ebx,%eax
4055bc:	89 f2                	mov    %esi,%edx
4055be:	8b 4f 08             	mov    0x8(%edi),%ecx
4055c1:	ff 77 04             	push   0x4(%edi)
4055c4:	e8 63 ff ff ff       	call   0x40552c
4055c9:	03 1f                	add    (%edi),%ebx
4055cb:	03 37                	add    (%edi),%esi
4055cd:	4d                   	dec    %ebp
4055ce:	75 ea                	jne    0x4055ba
4055d0:	eb 45                	jmp    0x405617
4055d2:	89 d8                	mov    %ebx,%eax
4055d4:	89 f2                	mov    %esi,%edx
4055d6:	89 f9                	mov    %edi,%ecx
4055d8:	e8 33 fe ff ff       	call   0x405410
4055dd:	31 c0                	xor    %eax,%eax
4055df:	8a 47 01             	mov    0x1(%edi),%al
4055e2:	03 5c 38 02          	add    0x2(%eax,%edi,1),%ebx
4055e6:	03 74 38 02          	add    0x2(%eax,%edi,1),%esi
4055ea:	4d                   	dec    %ebp
4055eb:	75 e5                	jne    0x4055d2
4055ed:	eb 28                	jmp    0x405617
4055ef:	89 d8                	mov    %ebx,%eax
4055f1:	8b 16                	mov    (%esi),%edx
4055f3:	e8 98 0b 00 00       	call   0x406190
4055f8:	83 c3 04             	add    $0x4,%ebx
4055fb:	83 c6 04             	add    $0x4,%esi
4055fe:	4d                   	dec    %ebp
4055ff:	75 ee                	jne    0x4055ef
405601:	eb 14                	jmp    0x405617
405603:	89 d8                	mov    %ebx,%eax
405605:	8b 16                	mov    (%esi),%edx
405607:	89 f9                	mov    %edi,%ecx
405609:	e8 ce 04 00 00       	call   0x405adc
40560e:	83 c3 04             	add    $0x4,%ebx
405611:	83 c6 04             	add    $0x4,%esi
405614:	4d                   	dec    %ebp
405615:	75 ec                	jne    0x405603
405617:	5d                   	pop    %ebp
405618:	5f                   	pop    %edi
405619:	5e                   	pop    %esi
40561a:	5b                   	pop    %ebx
40561b:	c2 04 00             	ret    $0x4
40561e:	c3                   	ret
40561f:	90                   	nop
405620:	52                   	push   %edx
405621:	e8 d6 d6 ff ff       	call   0x402cfc
405626:	5a                   	pop    %edx
405627:	85 c0                	test   %eax,%eax
405629:	74 07                	je     0x405632
40562b:	50                   	push   %eax
40562c:	e8 77 fc ff ff       	call   0x4052a8
405631:	58                   	pop    %eax
405632:	c3                   	ret
405633:	90                   	nop
405634:	50                   	push   %eax
405635:	e8 b2 fd ff ff       	call   0x4053ec
40563a:	58                   	pop    %eax
40563b:	e8 d8 d6 ff ff       	call   0x402d18
405640:	c3                   	ret
405641:	8d 40 00             	lea    0x0(%eax),%eax
405644:	91                   	xchg   %eax,%ecx
405645:	87 ca                	xchg   %ecx,%edx
405647:	e8 58 f2 ff ff       	call   0x4048a4
40564c:	c3                   	ret
40564d:	8d 40 00             	lea    0x0(%eax),%eax
405650:	53                   	push   %ebx
405651:	56                   	push   %esi
405652:	51                   	push   %ecx
405653:	8b f2                	mov    %edx,%esi
405655:	8b d8                	mov    %eax,%ebx
405657:	89 1c 24             	mov    %ebx,(%esp)
40565a:	8b 04 24             	mov    (%esp),%eax
40565d:	e8 62 fa ff ff       	call   0x4050c4
405662:	8b d0                	mov    %eax,%edx
405664:	8b ce                	mov    %esi,%ecx
405666:	8b c3                	mov    %ebx,%eax
405668:	e8 d7 ff ff ff       	call   0x405644
40566d:	5a                   	pop    %edx
40566e:	5e                   	pop    %esi
40566f:	5b                   	pop    %ebx
405670:	c3                   	ret
405671:	8d 40 00             	lea    0x0(%eax),%eax
405674:	51                   	push   %ecx
405675:	33 d2                	xor    %edx,%edx
405677:	89 14 24             	mov    %edx,(%esp)
40567a:	8b d0                	mov    %eax,%edx
40567c:	85 d2                	test   %edx,%edx
40567e:	74 05                	je     0x405685
405680:	83 ea 04             	sub    $0x4,%edx
405683:	8b 12                	mov    (%edx),%edx
405685:	8b cc                	mov    %esp,%ecx
405687:	91                   	xchg   %eax,%ecx
405688:	87 d1                	xchg   %edx,%ecx
40568a:	e8 29 f9 ff ff       	call   0x404fb8
40568f:	8b 04 24             	mov    (%esp),%eax
405692:	5a                   	pop    %edx
405693:	c3                   	ret
405694:	b0 11                	mov    $0x11,%al
405696:	e9 b1 d7 ff ff       	jmp    0x402e4c
40569b:	c3                   	ret
40569c:	52                   	push   %edx
40569d:	50                   	push   %eax
40569e:	8b 44 24 10          	mov    0x10(%esp),%eax
4056a2:	f7 24 24             	mull   (%esp)
4056a5:	89 c1                	mov    %eax,%ecx
4056a7:	8b 44 24 04          	mov    0x4(%esp),%eax
4056ab:	f7 64 24 0c          	mull   0xc(%esp)
4056af:	01 c1                	add    %eax,%ecx
4056b1:	8b 04 24             	mov    (%esp),%eax
4056b4:	f7 64 24 0c          	mull   0xc(%esp)
4056b8:	01 ca                	add    %ecx,%edx
4056ba:	59                   	pop    %ecx
4056bb:	59                   	pop    %ecx
4056bc:	c2 08 00             	ret    $0x8
4056bf:	c3                   	ret
4056c0:	53                   	push   %ebx
4056c1:	56                   	push   %esi
4056c2:	57                   	push   %edi
4056c3:	55                   	push   %ebp
4056c4:	83 c4 ec             	add    $0xffffffec,%esp
4056c7:	89 14 24             	mov    %edx,(%esp)
4056ca:	8b f0                	mov    %eax,%esi
4056cc:	bd 01 00 00 00       	mov    $0x1,%ebp
4056d1:	33 ff                	xor    %edi,%edi
4056d3:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
4056da:	00
4056db:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
4056e2:	00
4056e3:	85 f6                	test   %esi,%esi
4056e5:	75 0b                	jne    0x4056f2
4056e7:	8b 04 24             	mov    (%esp),%eax
4056ea:	89 28                	mov    %ebp,(%eax)
4056ec:	e9 d7 01 00 00       	jmp    0x4058c8
4056f1:	45                   	inc    %ebp
4056f2:	80 7c 2e ff 20       	cmpb   $0x20,-0x1(%esi,%ebp,1)
4056f7:	74 f8                	je     0x4056f1
4056f9:	c6 44 24 10 00       	movb   $0x0,0x10(%esp)
4056fe:	0f b6 44 2e ff       	movzbl -0x1(%esi,%ebp,1),%eax
405703:	3c 2d                	cmp    $0x2d,%al
405705:	75 08                	jne    0x40570f
405707:	c6 44 24 10 01       	movb   $0x1,0x10(%esp)
40570c:	45                   	inc    %ebp
40570d:	eb 05                	jmp    0x405714
40570f:	3c 2b                	cmp    $0x2b,%al
405711:	75 01                	jne    0x405714
405713:	45                   	inc    %ebp
405714:	b3 01                	mov    $0x1,%bl
405716:	80 7c 2e ff 24       	cmpb   $0x24,-0x1(%esi,%ebp,1)
40571b:	74 2a                	je     0x405747
40571d:	0f b6 44 2e ff       	movzbl -0x1(%esi,%ebp,1),%eax
405722:	e8 c5 d8 ff ff       	call   0x402fec
405727:	3c 58                	cmp    $0x58,%al
405729:	74 1c                	je     0x405747
40572b:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
405730:	0f 85 c7 00 00 00    	jne    0x4057fd
405736:	0f b6 04 2e          	movzbl (%esi,%ebp,1),%eax
40573a:	e8 ad d8 ff ff       	call   0x402fec
40573f:	3c 58                	cmp    $0x58,%al
405741:	0f 85 b6 00 00 00    	jne    0x4057fd
405747:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
40574c:	75 01                	jne    0x40574f
40574e:	45                   	inc    %ebp
40574f:	45                   	inc    %ebp
405750:	0f b6 4c 2e ff       	movzbl -0x1(%esi,%ebp,1),%ecx
405755:	8b c1                	mov    %ecx,%eax
405757:	04 d0                	add    $0xd0,%al
405759:	2c 0a                	sub    $0xa,%al
40575b:	72 0e                	jb     0x40576b
40575d:	04 f9                	add    $0xf9,%al
40575f:	2c 06                	sub    $0x6,%al
405761:	72 10                	jb     0x405773
405763:	04 e6                	add    $0xe6,%al
405765:	2c 06                	sub    $0x6,%al
405767:	72 12                	jb     0x40577b
405769:	eb 6b                	jmp    0x4057d6
40576b:	0f b6 f9             	movzbl %cl,%edi
40576e:	83 ef 30             	sub    $0x30,%edi
405771:	eb 0e                	jmp    0x405781
405773:	0f b6 f9             	movzbl %cl,%edi
405776:	83 ef 37             	sub    $0x37,%edi
405779:	eb 06                	jmp    0x405781
40577b:	0f b6 f9             	movzbl %cl,%edi
40577e:	83 ef 57             	sub    $0x57,%edi
405781:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405786:	75 09                	jne    0x405791
405788:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
40578d:	72 47                	jb     0x4057d6
40578f:	eb 02                	jmp    0x405793
405791:	7c 43                	jl     0x4057d6
405793:	81 7c 24 0c ff ff ff 	cmpl   $0xfffffff,0xc(%esp)