40551f:	50                   	push   %eax
405520:	6a 00                	push   $0x0
405522:	6a 00                	push   $0x0
405524:	ff 15 cc f0 43 00    	call   *0x43f0cc
40552a:	89 06                	mov    %eax,(%esi)
40552c:	85 c0                	test   %eax,%eax
40552e:	75 23                	jne    0x405553
405530:	ff 15 60 f0 43 00    	call   *0x43f060
405536:	83 f8 05             	cmp    $0x5,%eax
405539:	75 18                	jne    0x405553
40553b:	83 7d c4 08          	cmpl   $0x8,-0x3c(%ebp)
40553f:	8d 45 b0             	lea    -0x50(%ebp),%eax
405542:	0f 43 45 b0          	cmovae -0x50(%ebp),%eax
405546:	50                   	push   %eax
405547:	6a 00                	push   $0x0
405549:	6a 00                	push   $0x0
40554b:	ff 15 d8 f0 43 00    	call   *0x43f0d8
405551:	89 06                	mov    %eax,(%esi)
405553:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
405556:	83 f9 08             	cmp    $0x8,%ecx
405559:	72 32                	jb     0x40558d
40555b:	8b 55 b0             	mov    -0x50(%ebp),%edx
40555e:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405565:	8b c2                	mov    %edx,%eax
405567:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40556d:	72 14                	jb     0x405583
40556f:	8b 50 fc             	mov    -0x4(%eax),%edx
405572:	83 c1 23             	add    $0x23,%ecx
405575:	2b c2                	sub    %edx,%eax
405577:	83 c0 fc             	add    $0xfffffffc,%eax
40557a:	83 f8 1f             	cmp    $0x1f,%eax
40557d:	0f 87 d9 00 00 00    	ja     0x40565c
405583:	51                   	push   %ecx
405584:	52                   	push   %edx
405585:	e8 84 63 01 00       	call   0x41b90e
40558a:	83 c4 08             	add    $0x8,%esp
40558d:	8d 45 e0             	lea    -0x20(%ebp),%eax
405590:	50                   	push   %eax
405591:	e8 ee 14 02 00       	call   0x426a84
405596:	8b 4d e0             	mov    -0x20(%ebp),%ecx
405599:	83 c4 04             	add    $0x4,%esp
40559c:	80 bf d1 00 00 00 00 	cmpb   $0x0,0xd1(%edi)
4055a3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4055a6:	89 8f f0 00 00 00    	mov    %ecx,0xf0(%edi)
4055ac:	89 87 f4 00 00 00    	mov    %eax,0xf4(%edi)
4055b2:	89 8f f8 00 00 00    	mov    %ecx,0xf8(%edi)
4055b8:	89 87 fc 00 00 00    	mov    %eax,0xfc(%edi)
4055be:	74 3b                	je     0x4055fb
4055c0:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
4055c6:	8b 00                	mov    (%eax),%eax
4055c8:	85 c0                	test   %eax,%eax
4055ca:	74 2f                	je     0x4055fb
4055cc:	68 d0 07 00 00       	push   $0x7d0
4055d1:	50                   	push   %eax
4055d2:	ff 15 d0 f0 43 00    	call   *0x43f0d0
4055d8:	85 c0                	test   %eax,%eax
4055da:	74 07                	je     0x4055e3
4055dc:	3d 80 00 00 00       	cmp    $0x80,%eax
4055e1:	75 18                	jne    0x4055fb
4055e3:	51                   	push   %ecx
4055e4:	8b cf                	mov    %edi,%ecx
4055e6:	e8 25 fa 00 00       	call   0x415010
4055eb:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
4055f1:	ff 30                	push   (%eax)
4055f3:	ff 15 d4 f0 43 00    	call   *0x43f0d4
4055f9:	eb 07                	jmp    0x405602
4055fb:	c6 87 d1 00 00 00 00 	movb   $0x0,0xd1(%edi)
405602:	c6 47 6d 01          	movb   $0x1,0x6d(%edi)
405606:	b3 01                	mov    $0x1,%bl
405608:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40560b:	83 f9 08             	cmp    $0x8,%ecx
40560e:	72 2e                	jb     0x40563e
405610:	8b 55 c8             	mov    -0x38(%ebp),%edx
405613:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40561a:	8b c2                	mov    %edx,%eax
40561c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405622:	72 10                	jb     0x405634
405624:	8b 50 fc             	mov    -0x4(%eax),%edx
405627:	83 c1 23             	add    $0x23,%ecx
40562a:	2b c2                	sub    %edx,%eax
40562c:	83 c0 fc             	add    $0xfffffffc,%eax
40562f:	83 f8 1f             	cmp    $0x1f,%eax
405632:	77 2d                	ja     0x405661
405634:	51                   	push   %ecx
405635:	52                   	push   %edx
405636:	e8 d3 62 01 00       	call   0x41b90e
40563b:	83 c4 08             	add    $0x8,%esp
40563e:	8a c3                	mov    %bl,%al
405640:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405643:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40564a:	59                   	pop    %ecx
40564b:	5f                   	pop    %edi
40564c:	5e                   	pop    %esi
40564d:	5b                   	pop    %ebx
40564e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405651:	33 cd                	xor    %ebp,%ecx
405653:	e8 78 62 01 00       	call   0x41b8d0
405658:	8b e5                	mov    %ebp,%esp
40565a:	5d                   	pop    %ebp
40565b:	c3                   	ret
40565c:	e8 1e b4 01 00       	call   0x420a7f
405661:	e8 19 b4 01 00       	call   0x420a7f
405666:	cc                   	int3
405667:	cc                   	int3
405668:	cc                   	int3
405669:	cc                   	int3
40566a:	cc                   	int3
40566b:	cc                   	int3
40566c:	cc                   	int3
40566d:	cc                   	int3
40566e:	cc                   	int3
40566f:	cc                   	int3
405670:	56                   	push   %esi
405671:	8b f1                	mov    %ecx,%esi
405673:	8b 46 68             	mov    0x68(%esi),%eax
405676:	85 c0                	test   %eax,%eax
405678:	74 13                	je     0x40568d
40567a:	83 f8 ff             	cmp    $0xffffffff,%eax
40567d:	74 0e                	je     0x40568d
40567f:	50                   	push   %eax
405680:	ff 15 68 f0 43 00    	call   *0x43f068
405686:	c7 46 68 00 00 00 00 	movl   $0x0,0x68(%esi)
40568d:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
405693:	85 c0                	test   %eax,%eax
405695:	74 37                	je     0x4056ce
405697:	8b 00                	mov    (%eax),%eax
405699:	85 c0                	test   %eax,%eax
40569b:	74 0c                	je     0x4056a9
40569d:	83 f8 ff             	cmp    $0xffffffff,%eax
4056a0:	74 07                	je     0x4056a9
4056a2:	50                   	push   %eax
4056a3:	ff 15 68 f0 43 00    	call   *0x43f068
4056a9:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
4056af:	85 c0                	test   %eax,%eax
4056b1:	74 11                	je     0x4056c4
4056b3:	6a 04                	push   $0x4
4056b5:	50                   	push   %eax
4056b6:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4056bc:	e8 4d 62 01 00       	call   0x41b90e
4056c1:	83 c4 08             	add    $0x8,%esp
4056c4:	c7 86 90 00 00 00 00 	movl   $0x0,0x90(%esi)
4056cb:	00 00 00
4056ce:	c6 46 6d 00          	movb   $0x0,0x6d(%esi)
4056d2:	b0 01                	mov    $0x1,%al
4056d4:	5e                   	pop    %esi
4056d5:	c3                   	ret
4056d6:	cc                   	int3
4056d7:	cc                   	int3
4056d8:	cc                   	int3
4056d9:	cc                   	int3
4056da:	cc                   	int3
4056db:	cc                   	int3
4056dc:	cc                   	int3
4056dd:	cc                   	int3
4056de:	cc                   	int3
4056df:	cc                   	int3
4056e0:	55                   	push   %ebp
4056e1:	8b ec                	mov    %esp,%ebp
4056e3:	83 ec 08             	sub    $0x8,%esp
4056e6:	a1 14 40 45 00       	mov    0x454014,%eax
4056eb:	33 c5                	xor    %ebp,%eax
4056ed:	89 45 fc             	mov    %eax,-0x4(%ebp)
4056f0:	53                   	push   %ebx
4056f1:	56                   	push   %esi
4056f2:	57                   	push   %edi
4056f3:	8b 7d 08             	mov    0x8(%ebp),%edi
4056f6:	8b d9                	mov    %ecx,%ebx
4056f8:	8b f7                	mov    %edi,%esi
4056fa:	8d 4e 02             	lea    0x2(%esi),%ecx
4056fd:	0f 1f 00             	nopl   (%eax)
405700:	66 8b 06             	mov    (%esi),%ax
405703:	83 c6 02             	add    $0x2,%esi
405706:	66 85 c0             	test   %ax,%ax
405709:	75 f5                	jne    0x405700
40570b:	6a 02                	push   $0x2
40570d:	6a 00                	push   $0x0
40570f:	6a 00                	push   $0x0
405711:	ff 73 68             	push   0x68(%ebx)
405714:	2b f1                	sub    %ecx,%esi
405716:	d1 fe                	sar    $1,%esi
405718:	ff 15 50 f0 43 00    	call   *0x43f050
40571e:	6a 00                	push   $0x0
405720:	8d 45 f8             	lea    -0x8(%ebp),%eax
405723:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40572a:	50                   	push   %eax
40572b:	03 f6                	add    %esi,%esi
40572d:	56                   	push   %esi
40572e:	57                   	push   %edi
40572f:	ff 73 68             	push   0x68(%ebx)
405732:	ff 15 4c f0 43 00    	call   *0x43f04c
405738:	6a 00                	push   $0x0
40573a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40573d:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
405744:	50                   	push   %eax
405745:	6a 04                	push   $0x4
405747:	68 74 db 44 00       	push   $0x44db74
40574c:	ff 73 68             	push   0x68(%ebx)
40574f:	ff 15 4c f0 43 00    	call   *0x43f04c
405755:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405758:	5f                   	pop    %edi
405759:	5e                   	pop    %esi
40575a:	33 cd                	xor    %ebp,%ecx
40575c:	5b                   	pop    %ebx
40575d:	e8 6e 61 01 00       	call   0x41b8d0
405762:	8b e5                	mov    %ebp,%esp
405764:	5d                   	pop    %ebp
405765:	c2 04 00             	ret    $0x4
405768:	cc                   	int3
405769:	cc                   	int3
40576a:	cc                   	int3
40576b:	cc                   	int3
40576c:	cc                   	int3
40576d:	cc                   	int3
40576e:	cc                   	int3
40576f:	cc                   	int3
405770:	55                   	push   %ebp
405771:	8b ec                	mov    %esp,%ebp
405773:	83 ec 08             	sub    $0x8,%esp
405776:	a1 14 40 45 00       	mov    0x454014,%eax
40577b:	33 c5                	xor    %ebp,%eax
40577d:	89 45 fc             	mov    %eax,-0x4(%ebp)
405780:	53                   	push   %ebx
405781:	56                   	push   %esi
405782:	57                   	push   %edi
405783:	8b 7d 08             	mov    0x8(%ebp),%edi
405786:	8b d9                	mov    %ecx,%ebx
405788:	8b f7                	mov    %edi,%esi
40578a:	8d 4e 01             	lea    0x1(%esi),%ecx
40578d:	0f 1f 00             	nopl   (%eax)
405790:	8a 06                	mov    (%esi),%al
405792:	46                   	inc    %esi
405793:	84 c0                	test   %al,%al
405795:	75 f9                	jne    0x405790
405797:	6a 02                	push   $0x2
405799:	6a 00                	push   $0x0
40579b:	6a 00                	push   $0x0
40579d:	ff 73 68             	push   0x68(%ebx)
4057a0:	2b f1                	sub    %ecx,%esi
4057a2:	ff 15 50 f0 43 00    	call   *0x43f050
4057a8:	6a 00                	push   $0x0
4057aa:	8d 45 f8             	lea    -0x8(%ebp),%eax
4057ad:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4057b4:	50                   	push   %eax
4057b5:	56                   	push   %esi
4057b6:	57                   	push   %edi
4057b7:	ff 73 68             	push   0x68(%ebx)
4057ba:	ff 15 4c f0 43 00    	call   *0x43f04c
4057c0:	6a 00                	push   $0x0
4057c2:	8d 45 f8             	lea    -0x8(%ebp),%eax
4057c5:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4057cc:	50                   	push   %eax
4057cd:	6a 02                	push   $0x2
4057cf:	68 7c db 44 00       	push   $0x44db7c
4057d4:	ff 73 68             	push   0x68(%ebx)
4057d7:	ff 15 4c f0 43 00    	call   *0x43f04c
4057dd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4057e0:	5f                   	pop    %edi
4057e1:	5e                   	pop    %esi
4057e2:	33 cd                	xor    %ebp,%ecx
4057e4:	5b                   	pop    %ebx
4057e5:	e8 e6 60 01 00       	call   0x41b8d0
4057ea:	8b e5                	mov    %ebp,%esp
4057ec:	5d                   	pop    %ebp
4057ed:	c2 04 00             	ret    $0x4
4057f0:	55                   	push   %ebp
4057f1:	8b ec                	mov    %esp,%ebp
4057f3:	83 e4 f8             	and    $0xfffffff8,%esp
4057f6:	81 ec 5c 02 00 00    	sub    $0x25c,%esp
4057fc:	a1 14 40 45 00       	mov    0x454014,%eax
405801:	33 c4                	xor    %esp,%eax
405803:	89 84 24 58 02 00 00 	mov    %eax,0x258(%esp)
40580a:	8b 45 10             	mov    0x10(%ebp),%eax
40580d:	8b 55 08             	mov    0x8(%ebp),%edx
405810:	53                   	push   %ebx
405811:	56                   	push   %esi
405812:	89 44 24 10          	mov    %eax,0x10(%esp)
405816:	8b c2                	mov    %edx,%eax
405818:	57                   	push   %edi
405819:	8b f9                	mov    %ecx,%edi
40581b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40581e:	0b c1                	or     %ecx,%eax
405820:	89 7c 24 20          	mov    %edi,0x20(%esp)
405824:	75 1a                	jne    0x405840
405826:	8d 44 24 28          	lea    0x28(%esp),%eax
40582a:	50                   	push   %eax
40582b:	e8 54 12 02 00       	call   0x426a84
405830:	8b 5c 24 30          	mov    0x30(%esp),%ebx
405834:	83 c4 04             	add    $0x4,%esp
405837:	8b 74 24 28          	mov    0x28(%esp),%esi
40583b:	e9 92 00 00 00       	jmp    0x4058d2
405840:	8b fa                	mov    %edx,%edi
405842:	bb 77 be 9f 1a       	mov    $0x1a9fbe77,%ebx
405847:	8b c7                	mov    %edi,%eax
405849:	89 7c 24 10          	mov    %edi,0x10(%esp)
40584d:	f7 e3                	mul    %ebx
40584f:	89 44 24 18          	mov    %eax,0x18(%esp)
405853:	8b f2                	mov    %edx,%esi
405855:	8b c7                	mov    %edi,%eax
405857:	ba 2f dd 24 06       	mov    $0x624dd2f,%edx
40585c:	f7 e2                	mul    %edx
40585e:	8b f8                	mov    %eax,%edi
405860:	89 54 24 0c          	mov    %edx,0xc(%esp)
405864:	8b c1                	mov    %ecx,%eax
405866:	f7 e3                	mul    %ebx
405868:	8b c8                	mov    %eax,%ecx
40586a:	8b da                	mov    %edx,%ebx
40586c:	8b 45 0c             	mov    0xc(%ebp),%eax
40586f:	ba 2f dd 24 06       	mov    $0x624dd2f,%edx
405874:	f7 e2                	mul    %edx
405876:	03 ce                	add    %esi,%ecx
405878:	8b 74 24 10          	mov    0x10(%esp),%esi
40587c:	89 44 24 18          	mov    %eax,0x18(%esp)
405880:	83 d3 00             	adc    $0x0,%ebx
405883:	03 f9                	add    %ecx,%edi
405885:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
405889:	83 d1 00             	adc    $0x0,%ecx
40588c:	89 7c 24 28          	mov    %edi,0x28(%esp)
405890:	33 c0                	xor    %eax,%eax
405892:	8b 7c 24 20          	mov    0x20(%esp),%edi
405896:	03 d9                	add    %ecx,%ebx
405898:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40589c:	13 c0                	adc    %eax,%eax
40589e:	03 cb                	add    %ebx,%ecx
4058a0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4058a3:	13 d0                	adc    %eax,%edx
4058a5:	2b f1                	sub    %ecx,%esi
4058a7:	1b da                	sbb    %edx,%ebx
4058a9:	0f ac de 01          	shrd   $0x1,%ebx,%esi
4058ad:	d1 eb                	shr    $1,%ebx
4058af:	03 f1                	add    %ecx,%esi
4058b1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4058b4:	13 da                	adc    %edx,%ebx
4058b6:	0f ac de 09          	shrd   $0x9,%ebx,%esi
4058ba:	69 c6 e8 03 00 00    	imul   $0x3e8,%esi,%eax
4058c0:	c1 eb 09             	shr    $0x9,%ebx
4058c3:	89 74 24 28          	mov    %esi,0x28(%esp)
4058c7:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
4058cb:	2b c8                	sub    %eax,%ecx
4058cd:	66 89 4c 24 30       	mov    %cx,0x30(%esp)
4058d2:	8d 44 24 20          	lea    0x20(%esp),%eax
4058d6:	89 74 24 20          	mov    %esi,0x20(%esp)
4058da:	50                   	push   %eax
4058db:	8d 44 24 40          	lea    0x40(%esp),%eax
4058df:	89 5c 24 28          	mov    %ebx,0x28(%esp)
4058e3:	50                   	push   %eax
4058e4:	89 b7 f8 00 00 00    	mov    %esi,0xf8(%edi)
4058ea:	89 9f fc 00 00 00    	mov    %ebx,0xfc(%edi)
4058f0:	e8 e7 f1 01 00       	call   0x424adc
4058f5:	8d 44 24 44          	lea    0x44(%esp),%eax
4058f9:	50                   	push   %eax