40859d:	33 c0                	xor    %eax,%eax
40859f:	66 89 85 f0 ef ff ff 	mov    %ax,-0x1010(%ebp)
4085a6:	83 c7 7b             	add    $0x7b,%edi
4085a9:	81 ff 10 27 00 00    	cmp    $0x2710,%edi
4085af:	7c a8                	jl     0x408559
4085b1:	66 83 bd f0 ef ff ff 	cmpw   $0x0,-0x1010(%ebp)
4085b8:	00
4085b9:	0f 84 a4 00 00 00    	je     0x408663
4085bf:	56                   	push   %esi
4085c0:	53                   	push   %ebx
4085c1:	8d 85 cc cf ff ff    	lea    -0x3034(%ebp),%eax
4085c7:	50                   	push   %eax
4085c8:	e8 52 83 00 00       	call   0x41091f
4085cd:	56                   	push   %esi
4085ce:	ff 75 f0             	push   -0x10(%ebp)
4085d1:	8d 85 cc cf ff ff    	lea    -0x3034(%ebp),%eax
4085d7:	50                   	push   %eax
4085d8:	e8 33 1e 00 00       	call   0x40a410
4085dd:	8b 35 fc a1 42 00    	mov    0x42a1fc,%esi
4085e3:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
4085e9:	50                   	push   %eax
4085ea:	8d 85 cc cf ff ff    	lea    -0x3034(%ebp),%eax
4085f0:	50                   	push   %eax
4085f1:	ff d6                	call   *%esi
4085f3:	85 c0                	test   %eax,%eax
4085f5:	74 6c                	je     0x408663
4085f7:	8d 8d cc df ff ff    	lea    -0x2034(%ebp),%ecx
4085fd:	e8 42 01 00 00       	call   0x408744
408602:	ff 75 08             	push   0x8(%ebp)
408605:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408609:	32 db                	xor    %bl,%bl
40860b:	e8 27 0c 00 00       	call   0x409237
408610:	84 c0                	test   %al,%al
408612:	75 12                	jne    0x408626
408614:	6a 0a                	push   $0xa
408616:	ff 75 08             	push   0x8(%ebp)
408619:	8d 8d cc df ff ff    	lea    -0x2034(%ebp),%ecx
40861f:	e8 be 02 00 00       	call   0x4088e2
408624:	8a d8                	mov    %al,%bl
408626:	8d 85 cc cf ff ff    	lea    -0x3034(%ebp),%eax
40862c:	50                   	push   %eax
40862d:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
408633:	50                   	push   %eax
408634:	ff d6                	call   *%esi
408636:	84 db                	test   %bl,%bl
408638:	74 16                	je     0x408650
40863a:	8d 8d cc df ff ff    	lea    -0x2034(%ebp),%ecx
408640:	e8 8a 03 00 00       	call   0x4089cf
408645:	8d 8d cc df ff ff    	lea    -0x2034(%ebp),%ecx
40864b:	e8 cd 03 00 00       	call   0x408a1d
408650:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408654:	8d 8d cc df ff ff    	lea    -0x2034(%ebp),%ecx
40865a:	e8 ab 05 00 00       	call   0x408c0a
40865f:	b0 01                	mov    $0x1,%al
408661:	eb 02                	jmp    0x408665
408663:	32 c0                	xor    %al,%al
408665:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408668:	5f                   	pop    %edi
408669:	5e                   	pop    %esi
40866a:	5b                   	pop    %ebx
40866b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408672:	c9                   	leave
408673:	c2 04 00             	ret    $0x4
408676:	55                   	push   %ebp
408677:	8b ec                	mov    %esp,%ebp
408679:	8b 45 18             	mov    0x18(%ebp),%eax
40867c:	85 c0                	test   %eax,%eax
40867e:	74 03                	je     0x408683
408680:	c6 00 00             	movb   $0x0,(%eax)
408683:	53                   	push   %ebx
408684:	56                   	push   %esi
408685:	8b 75 10             	mov    0x10(%ebp),%esi
408688:	57                   	push   %edi
408689:	56                   	push   %esi
40868a:	32 db                	xor    %bl,%bl
40868c:	e8 a6 0b 00 00       	call   0x409237
408691:	8b 7d 0c             	mov    0xc(%ebp),%edi
408694:	eb 52                	jmp    0x4086e8
408696:	84 db                	test   %bl,%bl
408698:	75 0c                	jne    0x4086a6
40869a:	56                   	push   %esi
40869b:	fe c3                	inc    %bl
40869d:	e8 04 fe ff ff       	call   0x4084a6
4086a2:	84 c0                	test   %al,%al
4086a4:	75 3c                	jne    0x4086e2
4086a6:	33 c0                	xor    %eax,%eax
4086a8:	32 db                	xor    %bl,%bl
4086aa:	85 ff                	test   %edi,%edi
4086ac:	0f 94 c0             	sete   %al
4086af:	50                   	push   %eax
4086b0:	ff 75 24             	push   0x24(%ebp)
4086b3:	ff 75 20             	push   0x20(%ebp)
4086b6:	ff 75 1c             	push   0x1c(%ebp)
4086b9:	ff 75 14             	push   0x14(%ebp)
4086bc:	56                   	push   %esi
4086bd:	ff 75 08             	push   0x8(%ebp)
4086c0:	e8 2b 8f 00 00       	call   0x4115f0
4086c5:	85 c0                	test   %eax,%eax
4086c7:	74 23                	je     0x4086ec
4086c9:	83 f8 01             	cmp    $0x1,%eax
4086cc:	74 3e                	je     0x40870c
4086ce:	83 f8 06             	cmp    $0x6,%eax
4086d1:	75 0f                	jne    0x4086e2
4086d3:	68 ff 00 00 00       	push   $0xff
4086d8:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
4086dd:	e8 c9 dd ff ff       	call   0x4064ab
4086e2:	56                   	push   %esi
4086e3:	e8 4f 0b 00 00       	call   0x409237
4086e8:	84 c0                	test   %al,%al
4086ea:	75 aa                	jne    0x408696
4086ec:	33 db                	xor    %ebx,%ebx
4086ee:	38 5d 28             	cmp    %bl,0x28(%ebp)
4086f1:	0f 95 c3             	setne  %bl
4086f4:	83 c3 09             	add    $0x9,%ebx
4086f7:	85 ff                	test   %edi,%edi
4086f9:	74 1f                	je     0x40871a
4086fb:	53                   	push   %ebx
4086fc:	56                   	push   %esi
4086fd:	8b cf                	mov    %edi,%ecx
4086ff:	e8 de 01 00 00       	call   0x4088e2
408704:	84 c0                	test   %al,%al
408706:	74 12                	je     0x40871a
408708:	b0 01                	mov    $0x1,%al
40870a:	eb 31                	jmp    0x40873d
40870c:	8b 45 18             	mov    0x18(%ebp),%eax
40870f:	85 c0                	test   %eax,%eax
408711:	74 03                	je     0x408716
408713:	c6 00 01             	movb   $0x1,(%eax)
408716:	32 c0                	xor    %al,%al
408718:	eb 23                	jmp    0x40873d
40871a:	56                   	push   %esi
40871b:	e8 2d 0b 00 00       	call   0x40924d
408720:	6a 01                	push   $0x1
408722:	56                   	push   %esi
408723:	e8 b4 0b 00 00       	call   0x4092dc
408728:	85 ff                	test   %edi,%edi
40872a:	74 0b                	je     0x408737
40872c:	53                   	push   %ebx
40872d:	56                   	push   %esi
40872e:	8b cf                	mov    %edi,%ecx
408730:	e8 ad 01 00 00       	call   0x4088e2
408735:	eb 06                	jmp    0x40873d
408737:	56                   	push   %esi
408738:	e8 39 09 00 00       	call   0x409076
40873d:	5f                   	pop    %edi
40873e:	5e                   	pop    %esi
40873f:	5b                   	pop    %ebx
408740:	5d                   	pop    %ebp
408741:	c2 24 00             	ret    $0x24
408744:	8b c1                	mov    %ecx,%eax
408746:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
40874a:	33 c9                	xor    %ecx,%ecx
40874c:	c7 00 14 a6 42 00    	movl   $0x42a614,(%eax)
408752:	66 89 48 1e          	mov    %cx,0x1e(%eax)
408756:	88 48 12             	mov    %cl,0x12(%eax)
408759:	88 48 08             	mov    %cl,0x8(%eax)
40875c:	89 48 0c             	mov    %ecx,0xc(%eax)
40875f:	88 48 10             	mov    %cl,0x10(%eax)
408762:	88 48 11             	mov    %cl,0x11(%eax)
408765:	89 88 20 10 00 00    	mov    %ecx,0x1020(%eax)
40876b:	88 48 1c             	mov    %cl,0x1c(%eax)
40876e:	c6 40 13 01          	movb   $0x1,0x13(%eax)
408772:	c6 40 14 01          	movb   $0x1,0x14(%eax)
408776:	88 48 15             	mov    %cl,0x15(%eax)
408779:	c7 40 18 00 01 00 00 	movl   $0x100,0x18(%eax)
408780:	c3                   	ret
408781:	b8 0c 10 00 00       	mov    $0x100c,%eax
408786:	e8 45 1d 01 00       	call   0x41a4d0
40878b:	53                   	push   %ebx
40878c:	55                   	push   %ebp
40878d:	56                   	push   %esi
40878e:	8b f1                	mov    %ecx,%esi
408790:	8b 8c 24 20 10 00 00 	mov    0x1020(%esp),%ecx
408797:	33 ed                	xor    %ebp,%ebp
408799:	80 7e 1c 00          	cmpb   $0x0,0x1c(%esi)
40879d:	57                   	push   %edi
40879e:	89 ae 20 10 00 00    	mov    %ebp,0x1020(%esi)
4087a4:	75 09                	jne    0x4087af
4087a6:	f6 c1 04             	test   $0x4,%cl
4087a9:	75 04                	jne    0x4087af
4087ab:	32 c0                	xor    %al,%al
4087ad:	eb 02                	jmp    0x4087b1
4087af:	b0 01                	mov    $0x1,%al
4087b1:	8b d1                	mov    %ecx,%edx
4087b3:	d1 ea                	shr    $1,%edx
4087b5:	80 e2 01             	and    $0x1,%dl
4087b8:	0f b6 fa             	movzbl %dl,%edi
4087bb:	f7 df                	neg    %edi
4087bd:	1b ff                	sbb    %edi,%edi
4087bf:	81 e7 00 00 00 c0    	and    $0xc0000000,%edi
4087c5:	81 c7 00 00 00 80    	add    $0x80000000,%edi
4087cb:	f6 c1 01             	test   $0x1,%cl
4087ce:	74 06                	je     0x4087d6
4087d0:	81 cf 00 00 00 40    	or     $0x40000000,%edi
4087d6:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
4087dd:	00
4087de:	84 c0                	test   %al,%al
4087e0:	74 08                	je     0x4087ea
4087e2:	c7 44 24 10 03 00 00 	movl   $0x3,0x10(%esp)
4087e9:	00
4087ea:	33 c0                	xor    %eax,%eax
4087ec:	38 46 15             	cmp    %al,0x15(%esi)
4087ef:	8b 1d 00 a2 42 00    	mov    0x42a200,%ebx
4087f5:	0f 95 c0             	setne  %al
4087f8:	55                   	push   %ebp
4087f9:	48                   	dec    %eax
4087fa:	25 00 00 00 08       	and    $0x8000000,%eax
4087ff:	50                   	push   %eax
408800:	6a 03                	push   $0x3
408802:	55                   	push   %ebp
408803:	ff 74 24 20          	push   0x20(%esp)
408807:	89 44 24 28          	mov    %eax,0x28(%esp)
40880b:	57                   	push   %edi
40880c:	ff b4 24 38 10 00 00 	push   0x1038(%esp)
408813:	ff d3                	call   *%ebx
408815:	8b e8                	mov    %eax,%ebp
408817:	83 fd ff             	cmp    $0xffffffff,%ebp
40881a:	75 63                	jne    0x40887f
40881c:	ff 15 24 a2 42 00    	call   *0x42a224
408822:	89 44 24 18          	mov    %eax,0x18(%esp)
408826:	68 00 08 00 00       	push   $0x800
40882b:	8d 44 24 20          	lea    0x20(%esp),%eax
40882f:	50                   	push   %eax
408830:	ff b4 24 28 10 00 00 	push   0x1028(%esp)
408837:	e8 1e 1f 00 00       	call   0x40a75a
40883c:	84 c0                	test   %al,%al
40883e:	74 2e                	je     0x40886e
408840:	6a 00                	push   $0x0
408842:	ff 74 24 18          	push   0x18(%esp)
408846:	8d 44 24 24          	lea    0x24(%esp),%eax
40884a:	6a 03                	push   $0x3
40884c:	6a 00                	push   $0x0
40884e:	ff 74 24 20          	push   0x20(%esp)
408852:	57                   	push   %edi
408853:	50                   	push   %eax
408854:	ff d3                	call   *%ebx
408856:	8b e8                	mov    %eax,%ebp
408858:	ff 15 24 a2 42 00    	call   *0x42a224
40885e:	6a 02                	push   $0x2
408860:	59                   	pop    %ecx
408861:	3b c1                	cmp    %ecx,%eax
408863:	75 04                	jne    0x408869
408865:	89 4c 24 18          	mov    %ecx,0x18(%esp)
408869:	83 fd ff             	cmp    $0xffffffff,%ebp
40886c:	75 11                	jne    0x40887f
40886e:	83 7c 24 18 02       	cmpl   $0x2,0x18(%esp)
408873:	75 0a                	jne    0x40887f
408875:	c7 86 20 10 00 00 01 	movl   $0x1,0x1020(%esi)
40887c:	00 00 00
40887f:	83 66 0c 00          	andl   $0x0,0xc(%esi)
408883:	83 fd ff             	cmp    $0xffffffff,%ebp
408886:	0f 95 c3             	setne  %bl
408889:	c6 46 12 00          	movb   $0x0,0x12(%esi)
40888d:	c6 46 10 00          	movb   $0x0,0x10(%esi)
408891:	84 db                	test   %bl,%bl
408893:	74 18                	je     0x4088ad
408895:	68 00 08 00 00       	push   $0x800
40889a:	ff b4 24 24 10 00 00 	push   0x1024(%esp)
4088a1:	89 6e 04             	mov    %ebp,0x4(%esi)
4088a4:	83 c6 1e             	add    $0x1e,%esi
4088a7:	56                   	push   %esi
4088a8:	e8 72 80 00 00       	call   0x41091f
4088ad:	5f                   	pop    %edi
4088ae:	5e                   	pop    %esi
4088af:	5d                   	pop    %ebp
4088b0:	8a c3                	mov    %bl,%al
4088b2:	5b                   	pop    %ebx
4088b3:	81 c4 0c 10 00 00    	add    $0x100c,%esp
4088b9:	c2 08 00             	ret    $0x8
4088bc:	8b 01                	mov    (%ecx),%eax
4088be:	6a 00                	push   $0x0
4088c0:	ff 74 24 08          	push   0x8(%esp)
4088c4:	ff 50 04             	call   *0x4(%eax)
4088c7:	84 c0                	test   %al,%al
4088c9:	74 04                	je     0x4088cf
4088cb:	b0 01                	mov    $0x1,%al
4088cd:	eb 10                	jmp    0x4088df
4088cf:	ff 74 24 04          	push   0x4(%esp)
4088d3:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
4088d8:	e8 6d dd ff ff       	call   0x40664a
4088dd:	32 c0                	xor    %al,%al
4088df:	c2 04 00             	ret    $0x4
4088e2:	55                   	push   %ebp
4088e3:	8b ec                	mov    %esp,%ebp
4088e5:	b8 04 10 00 00       	mov    $0x1004,%eax
4088ea:	e8 e1 1b 01 00       	call   0x41a4d0
4088ef:	53                   	push   %ebx
4088f0:	56                   	push   %esi
4088f1:	8b f1                	mov    %ecx,%esi
4088f3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4088f6:	8b c1                	mov    %ecx,%eax
4088f8:	d1 e8                	shr    $1,%eax
4088fa:	24 01                	and    $0x1,%al
4088fc:	33 db                	xor    %ebx,%ebx
4088fe:	57                   	push   %edi
4088ff:	f6 c1 08             	test   $0x8,%cl
408902:	75 09                	jne    0x40890d
408904:	38 5e 1c             	cmp    %bl,0x1c(%esi)
408907:	75 04                	jne    0x40890d
408909:	32 d2                	xor    %dl,%dl
40890b:	eb 02                	jmp    0x40890f
40890d:	b2 01                	mov    $0x1,%dl
40890f:	89 4e 18             	mov    %ecx,0x18(%esi)
408912:	33 c9                	xor    %ecx,%ecx
408914:	3a c3                	cmp    %bl,%al
408916:	0f 94 c1             	sete   %cl
408919:	8b 3d 00 a2 42 00    	mov    0x42a200,%edi
40891f:	33 c0                	xor    %eax,%eax
408921:	53                   	push   %ebx
408922:	53                   	push   %ebx
408923:	6a 02                	push   $0x2
408925:	53                   	push   %ebx
408926:	49                   	dec    %ecx
408927:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
40892d:	81 c1 00 00 00 c0    	add    $0xc0000000,%ecx
408933:	3a d3                	cmp    %bl,%dl
408935:	0f 95 c0             	setne  %al
408938:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40893b:	50                   	push   %eax
40893c:	51                   	push   %ecx
40893d:	ff 75 08             	push   0x8(%ebp)
408940:	89 45 0c             	mov    %eax,0xc(%ebp)
408943:	ff d7                	call   *%edi
408945:	89 46 04             	mov    %eax,0x4(%esi)
408948:	83 f8 ff             	cmp    $0xffffffff,%eax
40894b:	75 2f                	jne    0x40897c
40894d:	68 00 08 00 00       	push   $0x800
408952:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408958:	50                   	push   %eax
408959:	ff 75 08             	push   0x8(%ebp)
40895c:	e8 f9 1d 00 00       	call   0x40a75a
408961:	84 c0                	test   %al,%al
408963:	74 17                	je     0x40897c
408965:	53                   	push   %ebx
408966:	53                   	push   %ebx
408967:	6a 02                	push   $0x2
408969:	53                   	push   %ebx
40896a:	ff 75 0c             	push   0xc(%ebp)
40896d:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408973:	ff 75 fc             	push   -0x4(%ebp)
408976:	50                   	push   %eax
408977:	ff d7                	call   *%edi
408979:	89 46 04             	mov    %eax,0x4(%esi)
40897c:	68 00 08 00 00       	push   $0x800
408981:	ff 75 08             	push   0x8(%ebp)
408984:	8d 46 1e             	lea    0x1e(%esi),%eax
408987:	50                   	push   %eax
408988:	c6 46 12 01          	movb   $0x1,0x12(%esi)
40898c:	89 5e 0c             	mov    %ebx,0xc(%esi)
40898f:	88 5e 10             	mov    %bl,0x10(%esi)