405458:	eb 5b                	jmp    0x4054b5
40545a:	31 c9                	xor    %ecx,%ecx
40545c:	8a 4a 01             	mov    0x1(%edx),%cl
40545f:	ff 74 11 02          	push   0x2(%ecx,%edx,1)
405463:	ff 74 11 06          	push   0x6(%ecx,%edx,1)
405467:	8b 4c 11 0a          	mov    0xa(%ecx,%edx,1),%ecx
40546b:	8b 09                	mov    (%ecx),%ecx
40546d:	8d 14 30             	lea    (%eax,%esi,1),%edx
405470:	01 d8                	add    %ebx,%eax
405472:	e8 61 00 00 00       	call   0x4054d8
405477:	58                   	pop    %eax
405478:	eb 3b                	jmp    0x4054b5
40547a:	31 c9                	xor    %ecx,%ecx
40547c:	8a 4a 01             	mov    0x1(%edx),%cl
40547f:	8b 4c 11 02          	mov    0x2(%ecx,%edx,1),%ecx
405483:	51                   	push   %ecx
405484:	89 d1                	mov    %edx,%ecx
405486:	8d 14 30             	lea    (%eax,%esi,1),%edx
405489:	01 d8                	add    %ebx,%eax
40548b:	e8 2c ff ff ff       	call   0x4053bc
405490:	58                   	pop    %eax
405491:	eb 22                	jmp    0x4054b5
405493:	8b 14 30             	mov    (%eax,%esi,1),%edx
405496:	01 d8                	add    %ebx,%eax
405498:	e8 9f 0c 00 00       	call   0x40613c
40549d:	b8 04 00 00 00       	mov    $0x4,%eax
4054a2:	eb 11                	jmp    0x4054b5
4054a4:	89 d1                	mov    %edx,%ecx
4054a6:	8b 14 30             	mov    (%eax,%esi,1),%edx
4054a9:	01 d8                	add    %ebx,%eax
4054ab:	e8 d8 05 00 00       	call   0x405a88
4054b0:	b8 04 00 00 00       	mov    $0x4,%eax
4054b5:	03 47 04             	add    0x4(%edi),%eax
4054b8:	83 c7 08             	add    $0x8,%edi
4054bb:	4d                   	dec    %ebp
4054bc:	0f 85 14 ff ff ff    	jne    0x4053d6
4054c2:	59                   	pop    %ecx
4054c3:	29 c1                	sub    %eax,%ecx
4054c5:	7e 0a                	jle    0x4054d1
4054c7:	8d 14 18             	lea    (%eax,%ebx,1),%edx
4054ca:	01 f0                	add    %esi,%eax
4054cc:	e8 0b da ff ff       	call   0x402edc
4054d1:	5d                   	pop    %ebp
4054d2:	5f                   	pop    %edi
4054d3:	5e                   	pop    %esi
4054d4:	5b                   	pop    %ebx
4054d5:	c3                   	ret
4054d6:	8b c0                	mov    %eax,%eax
4054d8:	53                   	push   %ebx
4054d9:	56                   	push   %esi
4054da:	57                   	push   %edi
4054db:	55                   	push   %ebp
4054dc:	89 c3                	mov    %eax,%ebx
4054de:	89 d6                	mov    %edx,%esi
4054e0:	89 cf                	mov    %ecx,%edi
4054e2:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4054e6:	8a 0f                	mov    (%edi),%cl
4054e8:	80 f9 0a             	cmp    $0xa,%cl
4054eb:	74 31                	je     0x40551e
4054ed:	80 f9 0b             	cmp    $0xb,%cl
4054f0:	74 43                	je     0x405535
4054f2:	80 f9 0c             	cmp    $0xc,%cl
4054f5:	74 52                	je     0x405549
4054f7:	80 f9 0d             	cmp    $0xd,%cl
4054fa:	74 61                	je     0x40555d
4054fc:	80 f9 0e             	cmp    $0xe,%cl
4054ff:	74 7d                	je     0x40557e
405501:	80 f9 0f             	cmp    $0xf,%cl
405504:	0f 84 91 00 00 00    	je     0x40559b
40550a:	80 f9 11             	cmp    $0x11,%cl
40550d:	0f 84 9c 00 00 00    	je     0x4055af
405513:	b0 02                	mov    $0x2,%al
405515:	5d                   	pop    %ebp
405516:	5f                   	pop    %edi
405517:	5e                   	pop    %esi
405518:	5b                   	pop    %ebx
405519:	e9 1e d9 ff ff       	jmp    0x402e3c
40551e:	89 d8                	mov    %ebx,%eax
405520:	8b 16                	mov    (%esi),%edx
405522:	e8 4d f2 ff ff       	call   0x404774
405527:	83 c3 04             	add    $0x4,%ebx
40552a:	83 c6 04             	add    $0x4,%esi
40552d:	4d                   	dec    %ebp
40552e:	75 ee                	jne    0x40551e
405530:	e9 8e 00 00 00       	jmp    0x4055c3
405535:	89 d8                	mov    %ebx,%eax
405537:	8b 16                	mov    (%esi),%edx
405539:	e8 fe f9 ff ff       	call   0x404f3c
40553e:	83 c3 04             	add    $0x4,%ebx
405541:	83 c6 04             	add    $0x4,%esi
405544:	4d                   	dec    %ebp
405545:	75 ee                	jne    0x405535
405547:	eb 7a                	jmp    0x4055c3
405549:	89 d8                	mov    %ebx,%eax
40554b:	89 f2                	mov    %esi,%edx
40554d:	e8 52 fe ff ff       	call   0x4053a4
405552:	83 c3 10             	add    $0x10,%ebx
405555:	83 c6 10             	add    $0x10,%esi
405558:	4d                   	dec    %ebp
405559:	75 ee                	jne    0x405549
40555b:	eb 66                	jmp    0x4055c3
40555d:	31 c9                	xor    %ecx,%ecx
40555f:	8a 4f 01             	mov    0x1(%edi),%cl
405562:	8d 7c 39 02          	lea    0x2(%ecx,%edi,1),%edi
405566:	89 d8                	mov    %ebx,%eax
405568:	89 f2                	mov    %esi,%edx
40556a:	8b 4f 08             	mov    0x8(%edi),%ecx
40556d:	ff 77 04             	push   0x4(%edi)
405570:	e8 63 ff ff ff       	call   0x4054d8
405575:	03 1f                	add    (%edi),%ebx
405577:	03 37                	add    (%edi),%esi
405579:	4d                   	dec    %ebp
40557a:	75 ea                	jne    0x405566
40557c:	eb 45                	jmp    0x4055c3
40557e:	89 d8                	mov    %ebx,%eax
405580:	89 f2                	mov    %esi,%edx
405582:	89 f9                	mov    %edi,%ecx
405584:	e8 33 fe ff ff       	call   0x4053bc
405589:	31 c0                	xor    %eax,%eax
40558b:	8a 47 01             	mov    0x1(%edi),%al
40558e:	03 5c 38 02          	add    0x2(%eax,%edi,1),%ebx
405592:	03 74 38 02          	add    0x2(%eax,%edi,1),%esi
405596:	4d                   	dec    %ebp
405597:	75 e5                	jne    0x40557e
405599:	eb 28                	jmp    0x4055c3
40559b:	89 d8                	mov    %ebx,%eax
40559d:	8b 16                	mov    (%esi),%edx
40559f:	e8 98 0b 00 00       	call   0x40613c
4055a4:	83 c3 04             	add    $0x4,%ebx
4055a7:	83 c6 04             	add    $0x4,%esi
4055aa:	4d                   	dec    %ebp
4055ab:	75 ee                	jne    0x40559b
4055ad:	eb 14                	jmp    0x4055c3
4055af:	89 d8                	mov    %ebx,%eax
4055b1:	8b 16                	mov    (%esi),%edx
4055b3:	89 f9                	mov    %edi,%ecx
4055b5:	e8 ce 04 00 00       	call   0x405a88
4055ba:	83 c3 04             	add    $0x4,%ebx
4055bd:	83 c6 04             	add    $0x4,%esi
4055c0:	4d                   	dec    %ebp
4055c1:	75 ec                	jne    0x4055af
4055c3:	5d                   	pop    %ebp
4055c4:	5f                   	pop    %edi
4055c5:	5e                   	pop    %esi
4055c6:	5b                   	pop    %ebx
4055c7:	c2 04 00             	ret    $0x4
4055ca:	c3                   	ret
4055cb:	90                   	nop
4055cc:	52                   	push   %edx
4055cd:	e8 1a d7 ff ff       	call   0x402cec
4055d2:	5a                   	pop    %edx
4055d3:	85 c0                	test   %eax,%eax
4055d5:	74 07                	je     0x4055de
4055d7:	50                   	push   %eax
4055d8:	e8 77 fc ff ff       	call   0x405254
4055dd:	58                   	pop    %eax
4055de:	c3                   	ret
4055df:	90                   	nop
4055e0:	50                   	push   %eax
4055e1:	e8 b2 fd ff ff       	call   0x405398
4055e6:	58                   	pop    %eax
4055e7:	e8 1c d7 ff ff       	call   0x402d08
4055ec:	c3                   	ret
4055ed:	8d 40 00             	lea    0x0(%eax),%eax
4055f0:	91                   	xchg   %eax,%ecx
4055f1:	87 ca                	xchg   %ecx,%edx
4055f3:	e8 84 f2 ff ff       	call   0x40487c
4055f8:	c3                   	ret
4055f9:	8d 40 00             	lea    0x0(%eax),%eax
4055fc:	53                   	push   %ebx
4055fd:	56                   	push   %esi
4055fe:	51                   	push   %ecx
4055ff:	8b f2                	mov    %edx,%esi
405601:	8b d8                	mov    %eax,%ebx
405603:	89 1c 24             	mov    %ebx,(%esp)
405606:	8b 04 24             	mov    (%esp),%eax
405609:	e8 62 fa ff ff       	call   0x405070
40560e:	8b d0                	mov    %eax,%edx
405610:	8b ce                	mov    %esi,%ecx
405612:	8b c3                	mov    %ebx,%eax
405614:	e8 d7 ff ff ff       	call   0x4055f0
405619:	5a                   	pop    %edx
40561a:	5e                   	pop    %esi
40561b:	5b                   	pop    %ebx
40561c:	c3                   	ret
40561d:	8d 40 00             	lea    0x0(%eax),%eax
405620:	51                   	push   %ecx
405621:	33 d2                	xor    %edx,%edx
405623:	89 14 24             	mov    %edx,(%esp)
405626:	8b d0                	mov    %eax,%edx
405628:	85 d2                	test   %edx,%edx
40562a:	74 05                	je     0x405631
40562c:	83 ea 04             	sub    $0x4,%edx
40562f:	8b 12                	mov    (%edx),%edx
405631:	8b cc                	mov    %esp,%ecx
405633:	91                   	xchg   %eax,%ecx
405634:	87 d1                	xchg   %edx,%ecx
405636:	e8 29 f9 ff ff       	call   0x404f64
40563b:	8b 04 24             	mov    (%esp),%eax
40563e:	5a                   	pop    %edx
40563f:	c3                   	ret
405640:	b0 11                	mov    $0x11,%al
405642:	e9 f5 d7 ff ff       	jmp    0x402e3c
405647:	c3                   	ret
405648:	52                   	push   %edx
405649:	50                   	push   %eax
40564a:	8b 44 24 10          	mov    0x10(%esp),%eax
40564e:	f7 24 24             	mull   (%esp)
405651:	89 c1                	mov    %eax,%ecx
405653:	8b 44 24 04          	mov    0x4(%esp),%eax
405657:	f7 64 24 0c          	mull   0xc(%esp)
40565b:	01 c1                	add    %eax,%ecx
40565d:	8b 04 24             	mov    (%esp),%eax
405660:	f7 64 24 0c          	mull   0xc(%esp)
405664:	01 ca                	add    %ecx,%edx
405666:	59                   	pop    %ecx
405667:	59                   	pop    %ecx
405668:	c2 08 00             	ret    $0x8
40566b:	c3                   	ret
40566c:	53                   	push   %ebx
40566d:	56                   	push   %esi
40566e:	57                   	push   %edi
40566f:	55                   	push   %ebp
405670:	83 c4 ec             	add    $0xffffffec,%esp
405673:	89 14 24             	mov    %edx,(%esp)
405676:	8b f0                	mov    %eax,%esi
405678:	bd 01 00 00 00       	mov    $0x1,%ebp
40567d:	33 ff                	xor    %edi,%edi
40567f:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
405686:	00
405687:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
40568e:	00
40568f:	85 f6                	test   %esi,%esi
405691:	75 0b                	jne    0x40569e
405693:	8b 04 24             	mov    (%esp),%eax
405696:	89 28                	mov    %ebp,(%eax)
405698:	e9 d7 01 00 00       	jmp    0x405874
40569d:	45                   	inc    %ebp
40569e:	80 7c 2e ff 20       	cmpb   $0x20,-0x1(%esi,%ebp,1)
4056a3:	74 f8                	je     0x40569d
4056a5:	c6 44 24 10 00       	movb   $0x0,0x10(%esp)
4056aa:	0f b6 44 2e ff       	movzbl -0x1(%esi,%ebp,1),%eax
4056af:	3c 2d                	cmp    $0x2d,%al
4056b1:	75 08                	jne    0x4056bb
4056b3:	c6 44 24 10 01       	movb   $0x1,0x10(%esp)
4056b8:	45                   	inc    %ebp
4056b9:	eb 05                	jmp    0x4056c0
4056bb:	3c 2b                	cmp    $0x2b,%al
4056bd:	75 01                	jne    0x4056c0
4056bf:	45                   	inc    %ebp
4056c0:	b3 01                	mov    $0x1,%bl
4056c2:	80 7c 2e ff 24       	cmpb   $0x24,-0x1(%esi,%ebp,1)
4056c7:	74 2a                	je     0x4056f3
4056c9:	0f b6 44 2e ff       	movzbl -0x1(%esi,%ebp,1),%eax
4056ce:	e8 31 d9 ff ff       	call   0x403004
4056d3:	3c 58                	cmp    $0x58,%al
4056d5:	74 1c                	je     0x4056f3
4056d7:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
4056dc:	0f 85 c7 00 00 00    	jne    0x4057a9
4056e2:	0f b6 04 2e          	movzbl (%esi,%ebp,1),%eax
4056e6:	e8 19 d9 ff ff       	call   0x403004
4056eb:	3c 58                	cmp    $0x58,%al
4056ed:	0f 85 b6 00 00 00    	jne    0x4057a9
4056f3:	80 7c 2e ff 30       	cmpb   $0x30,-0x1(%esi,%ebp,1)
4056f8:	75 01                	jne    0x4056fb
4056fa:	45                   	inc    %ebp
4056fb:	45                   	inc    %ebp
4056fc:	0f b6 4c 2e ff       	movzbl -0x1(%esi,%ebp,1),%ecx
405701:	8b c1                	mov    %ecx,%eax
405703:	04 d0                	add    $0xd0,%al
405705:	2c 0a                	sub    $0xa,%al
405707:	72 0e                	jb     0x405717
405709:	04 f9                	add    $0xf9,%al
40570b:	2c 06                	sub    $0x6,%al
40570d:	72 10                	jb     0x40571f
40570f:	04 e6                	add    $0xe6,%al
405711:	2c 06                	sub    $0x6,%al
405713:	72 12                	jb     0x405727
405715:	eb 6b                	jmp    0x405782
405717:	0f b6 f9             	movzbl %cl,%edi
40571a:	83 ef 30             	sub    $0x30,%edi
40571d:	eb 0e                	jmp    0x40572d
40571f:	0f b6 f9             	movzbl %cl,%edi
405722:	83 ef 37             	sub    $0x37,%edi
405725:	eb 06                	jmp    0x40572d
405727:	0f b6 f9             	movzbl %cl,%edi
40572a:	83 ef 57             	sub    $0x57,%edi
40572d:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405732:	75 09                	jne    0x40573d
405734:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
405739:	72 47                	jb     0x405782
40573b:	eb 02                	jmp    0x40573f
40573d:	7c 43                	jl     0x405782
40573f:	81 7c 24 0c ff ff ff 	cmpl   $0xfffffff,0xc(%esp)
405746:	0f
405747:	75 09                	jne    0x405752
405749:	83 7c 24 08 ff       	cmpl   $0xffffffff,0x8(%esp)
40574e:	76 04                	jbe    0x405754
405750:	eb 30                	jmp    0x405782
405752:	7f 2e                	jg     0x405782
405754:	8b c7                	mov    %edi,%eax
405756:	99                   	cltd
405757:	52                   	push   %edx
405758:	50                   	push   %eax
405759:	8b 44 24 10          	mov    0x10(%esp),%eax
40575d:	8b 54 24 14          	mov    0x14(%esp),%edx
405761:	0f a4 c2 04          	shld   $0x4,%eax,%edx
405765:	c1 e0 04             	shl    $0x4,%eax
405768:	03 04 24             	add    (%esp),%eax
40576b:	13 54 24 04          	adc    0x4(%esp),%edx
40576f:	83 c4 08             	add    $0x8,%esp
405772:	89 44 24 08          	mov    %eax,0x8(%esp)
405776:	89 54 24 0c          	mov    %edx,0xc(%esp)
40577a:	45                   	inc    %ebp
40577b:	33 db                	xor    %ebx,%ebx
40577d:	e9 7a ff ff ff       	jmp    0x4056fc
405782:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
405787:	0f 84 cd 00 00 00    	je     0x40585a
40578d:	8b 44 24 08          	mov    0x8(%esp),%eax
405791:	8b 54 24 0c          	mov    0xc(%esp),%edx
405795:	f7 d8                	neg    %eax
405797:	83 d2 00             	adc    $0x0,%edx
40579a:	f7 da                	neg    %edx
40579c:	89 44 24 08          	mov    %eax,0x8(%esp)
4057a0:	89 54 24 0c          	mov    %edx,0xc(%esp)
4057a4:	e9 b1 00 00 00       	jmp    0x40585a
4057a9:	0f b6 44 2e ff       	movzbl -0x1(%esi,%ebp,1),%eax
4057ae:	04 d0                	add    $0xd0,%al
4057b0:	2c 0a                	sub    $0xa,%al
4057b2:	73 5f                	jae    0x405813
4057b4:	0f b6 7c 2e ff       	movzbl -0x1(%esi,%ebp,1),%edi
4057b9:	83 ef 30             	sub    $0x30,%edi
4057bc:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
4057c1:	75 09                	jne    0x4057cc
4057c3:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
4057c8:	72 49                	jb     0x405813
4057ca:	eb 02                	jmp    0x4057ce
4057cc:	7c 45                	jl     0x405813
4057ce:	81 7c 24 0c cc cc cc 	cmpl   $0xccccccc,0xc(%esp)
4057d5:	0c
4057d6:	75 0c                	jne    0x4057e4
4057d8:	81 7c 24 08 cc cc cc 	cmpl   $0xcccccccc,0x8(%esp)
4057df:	cc
4057e0:	76 04                	jbe    0x4057e6
4057e2:	eb 2f                	jmp    0x405813
4057e4:	7f 2d                	jg     0x405813
4057e6:	6a 00                	push   $0x0
4057e8:	6a 0a                	push   $0xa
4057ea:	8b 44 24 10          	mov    0x10(%esp),%eax
4057ee:	8b 54 24 14          	mov    0x14(%esp),%edx