4087e1:	5e                   	pop    %esi
4087e2:	5f                   	pop    %edi
4087e3:	c9                   	leave
4087e4:	c3                   	ret
4087e5:	8d 49 00             	lea    0x0(%ecx),%ecx
4087e8:	8a 46 03             	mov    0x3(%esi),%al
4087eb:	88 47 03             	mov    %al,0x3(%edi)
4087ee:	8a 46 02             	mov    0x2(%esi),%al
4087f1:	88 47 02             	mov    %al,0x2(%edi)
4087f4:	8b 45 08             	mov    0x8(%ebp),%eax
4087f7:	5e                   	pop    %esi
4087f8:	5f                   	pop    %edi
4087f9:	c9                   	leave
4087fa:	c3                   	ret
4087fb:	90                   	nop
4087fc:	8a 46 03             	mov    0x3(%esi),%al
4087ff:	88 47 03             	mov    %al,0x3(%edi)
408802:	8a 46 02             	mov    0x2(%esi),%al
408805:	88 47 02             	mov    %al,0x2(%edi)
408808:	8a 46 01             	mov    0x1(%esi),%al
40880b:	88 47 01             	mov    %al,0x1(%edi)
40880e:	8b 45 08             	mov    0x8(%ebp),%eax
408811:	5e                   	pop    %esi
408812:	5f                   	pop    %edi
408813:	c9                   	leave
408814:	c3                   	ret
408815:	8b ff                	mov    %edi,%edi
408817:	55                   	push   %ebp
408818:	8b ec                	mov    %esp,%ebp
40881a:	51                   	push   %ecx
40881b:	56                   	push   %esi
40881c:	8b 75 0c             	mov    0xc(%ebp),%esi
40881f:	56                   	push   %esi
408820:	e8 5c 39 00 00       	call   0x40c181
408825:	89 45 0c             	mov    %eax,0xc(%ebp)
408828:	8b 46 0c             	mov    0xc(%esi),%eax
40882b:	59                   	pop    %ecx
40882c:	a8 82                	test   $0x82,%al
40882e:	75 17                	jne    0x408847
408830:	e8 a0 d2 ff ff       	call   0x405ad5
408835:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40883b:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40883f:	83 c8 ff             	or     $0xffffffff,%eax
408842:	e9 2f 01 00 00       	jmp    0x408976
408847:	a8 40                	test   $0x40,%al
408849:	74 0d                	je     0x408858
40884b:	e8 85 d2 ff ff       	call   0x405ad5
408850:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
408856:	eb e3                	jmp    0x40883b
408858:	53                   	push   %ebx
408859:	33 db                	xor    %ebx,%ebx
40885b:	a8 01                	test   $0x1,%al
40885d:	74 16                	je     0x408875
40885f:	89 5e 04             	mov    %ebx,0x4(%esi)
408862:	a8 10                	test   $0x10,%al
408864:	0f 84 87 00 00 00    	je     0x4088f1
40886a:	8b 4e 08             	mov    0x8(%esi),%ecx
40886d:	83 e0 fe             	and    $0xfffffffe,%eax
408870:	89 0e                	mov    %ecx,(%esi)
408872:	89 46 0c             	mov    %eax,0xc(%esi)
408875:	8b 46 0c             	mov    0xc(%esi),%eax
408878:	83 e0 ef             	and    $0xffffffef,%eax
40887b:	83 c8 02             	or     $0x2,%eax
40887e:	89 46 0c             	mov    %eax,0xc(%esi)
408881:	89 5e 04             	mov    %ebx,0x4(%esi)
408884:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408887:	a9 0c 01 00 00       	test   $0x10c,%eax
40888c:	75 2c                	jne    0x4088ba
40888e:	e8 84 24 00 00       	call   0x40ad17
408893:	83 c0 20             	add    $0x20,%eax
408896:	3b f0                	cmp    %eax,%esi
408898:	74 0c                	je     0x4088a6
40889a:	e8 78 24 00 00       	call   0x40ad17
40889f:	83 c0 40             	add    $0x40,%eax
4088a2:	3b f0                	cmp    %eax,%esi
4088a4:	75 0d                	jne    0x4088b3
4088a6:	ff 75 0c             	push   0xc(%ebp)
4088a9:	e8 d6 a2 00 00       	call   0x412b84
4088ae:	59                   	pop    %ecx
4088af:	85 c0                	test   %eax,%eax
4088b1:	75 07                	jne    0x4088ba
4088b3:	56                   	push   %esi
4088b4:	e8 82 a2 00 00       	call   0x412b3b
4088b9:	59                   	pop    %ecx
4088ba:	f7 46 0c 08 01 00 00 	testl  $0x108,0xc(%esi)
4088c1:	57                   	push   %edi
4088c2:	0f 84 80 00 00 00    	je     0x408948
4088c8:	8b 46 08             	mov    0x8(%esi),%eax
4088cb:	8b 3e                	mov    (%esi),%edi
4088cd:	8d 48 01             	lea    0x1(%eax),%ecx
4088d0:	89 0e                	mov    %ecx,(%esi)
4088d2:	8b 4e 18             	mov    0x18(%esi),%ecx
4088d5:	2b f8                	sub    %eax,%edi
4088d7:	49                   	dec    %ecx
4088d8:	3b fb                	cmp    %ebx,%edi
4088da:	89 4e 04             	mov    %ecx,0x4(%esi)
4088dd:	7e 1d                	jle    0x4088fc
4088df:	57                   	push   %edi
4088e0:	50                   	push   %eax
4088e1:	ff 75 0c             	push   0xc(%ebp)
4088e4:	e8 76 a1 00 00       	call   0x412a5f
4088e9:	83 c4 0c             	add    $0xc,%esp
4088ec:	89 45 fc             	mov    %eax,-0x4(%ebp)
4088ef:	eb 4d                	jmp    0x40893e
4088f1:	83 c8 20             	or     $0x20,%eax
4088f4:	89 46 0c             	mov    %eax,0xc(%esi)
4088f7:	83 c8 ff             	or     $0xffffffff,%eax
4088fa:	eb 79                	jmp    0x408975
4088fc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4088ff:	83 f9 ff             	cmp    $0xffffffff,%ecx
408902:	74 1b                	je     0x40891f
408904:	83 f9 fe             	cmp    $0xfffffffe,%ecx
408907:	74 16                	je     0x40891f
408909:	8b c1                	mov    %ecx,%eax
40890b:	83 e0 1f             	and    $0x1f,%eax
40890e:	8b d1                	mov    %ecx,%edx
408910:	c1 fa 05             	sar    $0x5,%edx
408913:	c1 e0 06             	shl    $0x6,%eax
408916:	03 04 95 60 12 c7 00 	add    0xc71260(,%edx,4),%eax
40891d:	eb 05                	jmp    0x408924
40891f:	b8 80 b6 42 00       	mov    $0x42b680,%eax
408924:	f6 40 04 20          	testb  $0x20,0x4(%eax)
408928:	74 14                	je     0x40893e
40892a:	6a 02                	push   $0x2
40892c:	53                   	push   %ebx
40892d:	53                   	push   %ebx
40892e:	51                   	push   %ecx
40892f:	e8 df 98 00 00       	call   0x412213
408934:	23 c2                	and    %edx,%eax
408936:	83 c4 10             	add    $0x10,%esp
408939:	83 f8 ff             	cmp    $0xffffffff,%eax
40893c:	74 25                	je     0x408963
40893e:	8b 46 08             	mov    0x8(%esi),%eax
408941:	8a 4d 08             	mov    0x8(%ebp),%cl
408944:	88 08                	mov    %cl,(%eax)
408946:	eb 16                	jmp    0x40895e
408948:	33 ff                	xor    %edi,%edi
40894a:	47                   	inc    %edi
40894b:	57                   	push   %edi
40894c:	8d 45 08             	lea    0x8(%ebp),%eax
40894f:	50                   	push   %eax
408950:	ff 75 0c             	push   0xc(%ebp)
408953:	e8 07 a1 00 00       	call   0x412a5f
408958:	83 c4 0c             	add    $0xc,%esp
40895b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40895e:	39 7d fc             	cmp    %edi,-0x4(%ebp)
408961:	74 09                	je     0x40896c
408963:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
408967:	83 c8 ff             	or     $0xffffffff,%eax
40896a:	eb 08                	jmp    0x408974
40896c:	8b 45 08             	mov    0x8(%ebp),%eax
40896f:	25 ff 00 00 00       	and    $0xff,%eax
408974:	5f                   	pop    %edi
408975:	5b                   	pop    %ebx
408976:	5e                   	pop    %esi
408977:	c9                   	leave
408978:	c3                   	ret
408979:	f6 41 0c 40          	testb  $0x40,0xc(%ecx)
40897d:	74 06                	je     0x408985
40897f:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
408983:	74 24                	je     0x4089a9
408985:	ff 49 04             	decl   0x4(%ecx)
408988:	78 0b                	js     0x408995
40898a:	8b 11                	mov    (%ecx),%edx
40898c:	88 02                	mov    %al,(%edx)
40898e:	ff 01                	incl   (%ecx)
408990:	0f b6 c0             	movzbl %al,%eax
408993:	eb 0c                	jmp    0x4089a1
408995:	0f be c0             	movsbl %al,%eax
408998:	51                   	push   %ecx
408999:	50                   	push   %eax
40899a:	e8 76 fe ff ff       	call   0x408815
40899f:	59                   	pop    %ecx
4089a0:	59                   	pop    %ecx
4089a1:	83 f8 ff             	cmp    $0xffffffff,%eax
4089a4:	75 03                	jne    0x4089a9
4089a6:	09 06                	or     %eax,(%esi)
4089a8:	c3                   	ret
4089a9:	ff 06                	incl   (%esi)
4089ab:	c3                   	ret
4089ac:	8b ff                	mov    %edi,%edi
4089ae:	55                   	push   %ebp
4089af:	8b ec                	mov    %esp,%ebp
4089b1:	56                   	push   %esi
4089b2:	8b f0                	mov    %eax,%esi
4089b4:	eb 13                	jmp    0x4089c9
4089b6:	8b 4d 10             	mov    0x10(%ebp),%ecx
4089b9:	8a 45 08             	mov    0x8(%ebp),%al
4089bc:	ff 4d 0c             	decl   0xc(%ebp)
4089bf:	e8 b5 ff ff ff       	call   0x408979
4089c4:	83 3e ff             	cmpl   $0xffffffff,(%esi)
4089c7:	74 06                	je     0x4089cf
4089c9:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4089cd:	7f e7                	jg     0x4089b6
4089cf:	5e                   	pop    %esi
4089d0:	5d                   	pop    %ebp
4089d1:	c3                   	ret
4089d2:	8b ff                	mov    %edi,%edi
4089d4:	55                   	push   %ebp
4089d5:	8b ec                	mov    %esp,%ebp
4089d7:	f6 47 0c 40          	testb  $0x40,0xc(%edi)
4089db:	53                   	push   %ebx
4089dc:	56                   	push   %esi
4089dd:	8b f0                	mov    %eax,%esi
4089df:	8b d9                	mov    %ecx,%ebx
4089e1:	74 32                	je     0x408a15
4089e3:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
4089e7:	75 2c                	jne    0x408a15
4089e9:	8b 45 08             	mov    0x8(%ebp),%eax
4089ec:	01 06                	add    %eax,(%esi)
4089ee:	eb 2b                	jmp    0x408a1b
4089f0:	8a 03                	mov    (%ebx),%al
4089f2:	ff 4d 08             	decl   0x8(%ebp)
4089f5:	8b cf                	mov    %edi,%ecx
4089f7:	e8 7d ff ff ff       	call   0x408979
4089fc:	43                   	inc    %ebx
4089fd:	83 3e ff             	cmpl   $0xffffffff,(%esi)
408a00:	75 13                	jne    0x408a15
408a02:	e8 ce d0 ff ff       	call   0x405ad5
408a07:	83 38 2a             	cmpl   $0x2a,(%eax)
408a0a:	75 0f                	jne    0x408a1b
408a0c:	8b cf                	mov    %edi,%ecx
408a0e:	b0 3f                	mov    $0x3f,%al
408a10:	e8 64 ff ff ff       	call   0x408979
408a15:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
408a19:	7f d5                	jg     0x4089f0
408a1b:	5e                   	pop    %esi
408a1c:	5b                   	pop    %ebx
408a1d:	5d                   	pop    %ebp
408a1e:	c3                   	ret
408a1f:	8b ff                	mov    %edi,%edi
408a21:	55                   	push   %ebp
408a22:	8b ec                	mov    %esp,%ebp
408a24:	81 ec 78 02 00 00    	sub    $0x278,%esp
408a2a:	a1 68 b2 42 00       	mov    0x42b268,%eax
408a2f:	33 c5                	xor    %ebp,%eax
408a31:	89 45 fc             	mov    %eax,-0x4(%ebp)
408a34:	53                   	push   %ebx
408a35:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408a38:	56                   	push   %esi
408a39:	8b 75 08             	mov    0x8(%ebp),%esi
408a3c:	33 c0                	xor    %eax,%eax
408a3e:	57                   	push   %edi
408a3f:	8b 7d 14             	mov    0x14(%ebp),%edi
408a42:	ff 75 10             	push   0x10(%ebp)
408a45:	8d 8d a4 fd ff ff    	lea    -0x25c(%ebp),%ecx
408a4b:	89 b5 b4 fd ff ff    	mov    %esi,-0x24c(%ebp)
408a51:	89 bd dc fd ff ff    	mov    %edi,-0x224(%ebp)
408a57:	89 85 b8 fd ff ff    	mov    %eax,-0x248(%ebp)
408a5d:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
408a63:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
408a69:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
408a6f:	89 85 d0 fd ff ff    	mov    %eax,-0x230(%ebp)
408a75:	89 85 c0 fd ff ff    	mov    %eax,-0x240(%ebp)
408a7b:	89 85 c8 fd ff ff    	mov    %eax,-0x238(%ebp)
408a81:	e8 de ed ff ff       	call   0x407864
408a86:	85 f6                	test   %esi,%esi
408a88:	75 35                	jne    0x408abf
408a8a:	e8 46 d0 ff ff       	call   0x405ad5
408a8f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
408a95:	33 c0                	xor    %eax,%eax
408a97:	50                   	push   %eax
408a98:	50                   	push   %eax
408a99:	50                   	push   %eax
408a9a:	50                   	push   %eax
408a9b:	50                   	push   %eax
408a9c:	e8 84 c7 ff ff       	call   0x405225
408aa1:	83 c4 14             	add    $0x14,%esp
408aa4:	80 bd b0 fd ff ff 00 	cmpb   $0x0,-0x250(%ebp)
408aab:	74 0a                	je     0x408ab7
408aad:	8b 85 ac fd ff ff    	mov    -0x254(%ebp),%eax
408ab3:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
408ab7:	83 c8 ff             	or     $0xffffffff,%eax
408aba:	e9 c8 0a 00 00       	jmp    0x409587
408abf:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
408ac3:	75 5e                	jne    0x408b23
408ac5:	56                   	push   %esi
408ac6:	e8 b6 36 00 00       	call   0x40c181
408acb:	59                   	pop    %ecx
408acc:	ba 80 b6 42 00       	mov    $0x42b680,%edx
408ad1:	83 f8 ff             	cmp    $0xffffffff,%eax
408ad4:	74 1b                	je     0x408af1
408ad6:	83 f8 fe             	cmp    $0xfffffffe,%eax
408ad9:	74 16                	je     0x408af1
408adb:	8b c8                	mov    %eax,%ecx
408add:	83 e1 1f             	and    $0x1f,%ecx
408ae0:	8b f0                	mov    %eax,%esi
408ae2:	c1 fe 05             	sar    $0x5,%esi
408ae5:	c1 e1 06             	shl    $0x6,%ecx
408ae8:	03 0c b5 60 12 c7 00 	add    0xc71260(,%esi,4),%ecx
408aef:	eb 02                	jmp    0x408af3
408af1:	8b ca                	mov    %edx,%ecx
408af3:	f6 41 24 7f          	testb  $0x7f,0x24(%ecx)
408af7:	75 91                	jne    0x408a8a
408af9:	83 f8 ff             	cmp    $0xffffffff,%eax
408afc:	74 19                	je     0x408b17
408afe:	83 f8 fe             	cmp    $0xfffffffe,%eax
408b01:	74 14                	je     0x408b17
408b03:	8b c8                	mov    %eax,%ecx
408b05:	83 e0 1f             	and    $0x1f,%eax
408b08:	c1 f9 05             	sar    $0x5,%ecx
408b0b:	c1 e0 06             	shl    $0x6,%eax
408b0e:	03 04 8d 60 12 c7 00 	add    0xc71260(,%ecx,4),%eax
408b15:	eb 02                	jmp    0x408b19
408b17:	8b c2                	mov    %edx,%eax
408b19:	f6 40 24 80          	testb  $0x80,0x24(%eax)
408b1d:	0f 85 67 ff ff ff    	jne    0x408a8a
408b23:	33 c9                	xor    %ecx,%ecx
408b25:	3b d9                	cmp    %ecx,%ebx
408b27:	0f 84 5d ff ff ff    	je     0x408a8a
408b2d:	8a 13                	mov    (%ebx),%dl
408b2f:	89 8d d8 fd ff ff    	mov    %ecx,-0x228(%ebp)
408b35:	89 8d e0 fd ff ff    	mov    %ecx,-0x220(%ebp)
408b3b:	89 8d bc fd ff ff    	mov    %ecx,-0x244(%ebp)
408b41:	88 95 ef fd ff ff    	mov    %dl,-0x211(%ebp)
408b47:	84 d2                	test   %dl,%dl
408b49:	0f 84 1f 0a 00 00    	je     0x40956e
408b4f:	43                   	inc    %ebx
408b50:	83 bd d8 fd ff ff 00 	cmpl   $0x0,-0x228(%ebp)
408b57:	89 9d c4 fd ff ff    	mov    %ebx,-0x23c(%ebp)
408b5d:	0f 8c 0b 0a 00 00    	jl     0x40956e
408b63:	8a c2                	mov    %dl,%al
408b65:	2c 20                	sub    $0x20,%al
408b67:	3c 58                	cmp    $0x58,%al
408b69:	77 11                	ja     0x408b7c
408b6b:	0f be c2             	movsbl %dl,%eax
408b6e:	0f be 80 f0 ab 41 00 	movsbl 0x41abf0(%eax),%eax
408b75:	83 e0 0f             	and    $0xf,%eax
408b78:	33 f6                	xor    %esi,%esi
408b7a:	eb 04                	jmp    0x408b80
408b7c:	33 f6                	xor    %esi,%esi
408b7e:	33 c0                	xor    %eax,%eax
408b80:	0f be 84 c1 10 ac 41 	movsbl 0x41ac10(%ecx,%eax,8),%eax
408b87:	00
408b88:	6a 07                	push   $0x7
408b8a:	c1 f8 04             	sar    $0x4,%eax
408b8d:	59                   	pop    %ecx
408b8e:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
408b94:	3b c1                	cmp    %ecx,%eax
408b96:	0f 87 ad 09 00 00    	ja     0x409549
408b9c:	ff 24 85 97 95 40 00 	jmp    *0x409597(,%eax,4)
408ba3:	83 8d e8 fd ff ff ff 	orl    $0xffffffff,-0x218(%ebp)
408baa:	89 b5 90 fd ff ff    	mov    %esi,-0x270(%ebp)
408bb0:	89 b5 c0 fd ff ff    	mov    %esi,-0x240(%ebp)
408bb6:	89 b5 cc fd ff ff    	mov    %esi,-0x234(%ebp)
408bbc:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
408bc2:	89 b5 f0 fd ff ff    	mov    %esi,-0x210(%ebp)
408bc8:	89 b5 c8 fd ff ff    	mov    %esi,-0x238(%ebp)
408bce:	e9 76 09 00 00       	jmp    0x409549
408bd3:	0f be c2             	movsbl %dl,%eax