408931:	56                   	push   %esi
408932:	57                   	push   %edi
408933:	51                   	push   %ecx
408934:	8b da                	mov    %edx,%ebx
408936:	8b f0                	mov    %eax,%esi
408938:	8b fc                	mov    %esp,%edi
40893a:	83 fb 10             	cmp    $0x10,%ebx
40893d:	7e 0a                	jle    0x408949
40893f:	8b 86 06 01 00 00    	mov    0x106(%esi),%eax
408945:	89 07                	mov    %eax,(%edi)
408947:	eb 08                	jmp    0x408951
408949:	8b 86 02 01 00 00    	mov    0x102(%esi),%eax
40894f:	89 07                	mov    %eax,(%edi)
408951:	83 3f 00             	cmpl   $0x0,(%edi)
408954:	74 22                	je     0x408978
408956:	8b 07                	mov    (%edi),%eax
408958:	83 78 2e 00          	cmpl   $0x0,0x2e(%eax)
40895c:	75 09                	jne    0x408967
40895e:	8b 07                	mov    (%edi),%eax
408960:	8b d3                	mov    %ebx,%edx
408962:	e8 bd ff ff ff       	call   0x408924
408967:	8b 07                	mov    (%edi),%eax
408969:	83 78 32 00          	cmpl   $0x0,0x32(%eax)
40896d:	75 09                	jne    0x408978
40896f:	8b 07                	mov    (%edi),%eax
408971:	8b d3                	mov    %ebx,%edx
408973:	e8 a0 ff ff ff       	call   0x408918
408978:	83 3f 00             	cmpl   $0x0,(%edi)
40897b:	75 27                	jne    0x4089a4
40897d:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
408983:	89 07                	mov    %eax,(%edi)
408985:	83 3f 00             	cmpl   $0x0,(%edi)
408988:	74 1a                	je     0x4089a4
40898a:	8b 07                	mov    (%edi),%eax
40898c:	3b 58 2e             	cmp    0x2e(%eax),%ebx
40898f:	75 07                	jne    0x408998
408991:	8b 07                	mov    (%edi),%eax
408993:	3b 58 32             	cmp    0x32(%eax),%ebx
408996:	74 0c                	je     0x4089a4
408998:	8b 07                	mov    (%edi),%eax
40899a:	8b 40 28             	mov    0x28(%eax),%eax
40899d:	89 07                	mov    %eax,(%edi)
40899f:	83 3f 00             	cmpl   $0x0,(%edi)
4089a2:	75 e6                	jne    0x40898a
4089a4:	8b 07                	mov    (%edi),%eax
4089a6:	5a                   	pop    %edx
4089a7:	5f                   	pop    %edi
4089a8:	5e                   	pop    %esi
4089a9:	5b                   	pop    %ebx
4089aa:	c3                   	ret
4089ab:	90                   	nop
4089ac:	53                   	push   %ebx
4089ad:	56                   	push   %esi
4089ae:	51                   	push   %ecx
4089af:	8b f2                	mov    %edx,%esi
4089b1:	8b d8                	mov    %eax,%ebx
4089b3:	85 f6                	test   %esi,%esi
4089b5:	74 0e                	je     0x4089c5
4089b7:	8b c3                	mov    %ebx,%eax
4089b9:	8b d6                	mov    %esi,%edx
4089bb:	e8 70 ff ff ff       	call   0x408930
4089c0:	89 04 24             	mov    %eax,(%esp)
4089c3:	eb 4f                	jmp    0x408a14
4089c5:	8b 83 0a 01 00 00    	mov    0x10a(%ebx),%eax
4089cb:	89 04 24             	mov    %eax,(%esp)
4089ce:	83 3c 24 00          	cmpl   $0x0,(%esp)
4089d2:	75 40                	jne    0x408a14
4089d4:	8b 83 90 00 00 00    	mov    0x90(%ebx),%eax
4089da:	89 04 24             	mov    %eax,(%esp)
4089dd:	83 3c 24 00          	cmpl   $0x0,(%esp)
4089e1:	74 31                	je     0x408a14
4089e3:	8b c3                	mov    %ebx,%eax
4089e5:	ba 10 00 00 00       	mov    $0x10,%edx
4089ea:	e8 bd ff ff ff       	call   0x4089ac
4089ef:	3b 04 24             	cmp    (%esp),%eax
4089f2:	74 11                	je     0x408a05
4089f4:	8b c3                	mov    %ebx,%eax
4089f6:	ba 20 00 00 00       	mov    $0x20,%edx
4089fb:	e8 ac ff ff ff       	call   0x4089ac
408a00:	3b 04 24             	cmp    (%esp),%eax
408a03:	75 0f                	jne    0x408a14
408a05:	8b 04 24             	mov    (%esp),%eax
408a08:	8b 40 28             	mov    0x28(%eax),%eax
408a0b:	89 04 24             	mov    %eax,(%esp)
408a0e:	83 3c 24 00          	cmpl   $0x0,(%esp)
408a12:	75 cf                	jne    0x4089e3
408a14:	8b 04 24             	mov    (%esp),%eax
408a17:	5a                   	pop    %edx
408a18:	5e                   	pop    %esi
408a19:	5b                   	pop    %ebx
408a1a:	c3                   	ret
408a1b:	90                   	nop
408a1c:	53                   	push   %ebx
408a1d:	56                   	push   %esi
408a1e:	57                   	push   %edi
408a1f:	8b f1                	mov    %ecx,%esi
408a21:	8b fa                	mov    %edx,%edi
408a23:	8b d8                	mov    %eax,%ebx
408a25:	85 f6                	test   %esi,%esi
408a27:	74 22                	je     0x408a4b
408a29:	85 ff                	test   %edi,%edi
408a2b:	74 1e                	je     0x408a4b
408a2d:	83 7e 2e 00          	cmpl   $0x0,0x2e(%esi)
408a31:	74 06                	je     0x408a39
408a33:	83 7e 32 00          	cmpl   $0x0,0x32(%esi)
408a37:	75 12                	jne    0x408a4b
408a39:	8b d7                	mov    %edi,%edx
408a3b:	8b c6                	mov    %esi,%eax
408a3d:	e8 e2 fe ff ff       	call   0x408924
408a42:	8b d7                	mov    %edi,%edx
408a44:	8b c6                	mov    %esi,%eax
408a46:	e8 cd fe ff ff       	call   0x408918
408a4b:	83 ef 10             	sub    $0x10,%edi
408a4e:	74 0d                	je     0x408a5d
408a50:	83 ef 10             	sub    $0x10,%edi
408a53:	75 10                	jne    0x408a65
408a55:	89 b3 06 01 00 00    	mov    %esi,0x106(%ebx)
408a5b:	eb 0e                	jmp    0x408a6b
408a5d:	89 b3 02 01 00 00    	mov    %esi,0x102(%ebx)
408a63:	eb 06                	jmp    0x408a6b
408a65:	89 b3 0a 01 00 00    	mov    %esi,0x10a(%ebx)
408a6b:	8b c3                	mov    %ebx,%eax
408a6d:	e8 62 26 00 00       	call   0x40b0d4
408a72:	5f                   	pop    %edi
408a73:	5e                   	pop    %esi
408a74:	5b                   	pop    %ebx
408a75:	c3                   	ret
408a76:	8b c0                	mov    %eax,%eax
408a78:	55                   	push   %ebp
408a79:	8b ec                	mov    %esp,%ebp
408a7b:	51                   	push   %ecx
408a7c:	8b 4d 08             	mov    0x8(%ebp),%ecx
408a7f:	51                   	push   %ecx
408a80:	8b 88 0e 01 00 00    	mov    0x10e(%eax),%ecx
408a86:	87 ca                	xchg   %ecx,%edx
408a88:	e8 07 00 00 00       	call   0x408a94
408a8d:	5d                   	pop    %ebp
408a8e:	c2 04 00             	ret    $0x4
408a91:	8d 40 00             	lea    0x0(%eax),%eax
408a94:	55                   	push   %ebp
408a95:	8b ec                	mov    %esp,%ebp
408a97:	83 c4 dc             	add    $0xffffffdc,%esp
408a9a:	53                   	push   %ebx
408a9b:	56                   	push   %esi
408a9c:	57                   	push   %edi
408a9d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408aa0:	8b fa                	mov    %edx,%edi
408aa2:	8b f0                	mov    %eax,%esi
408aa4:	8b 5d 08             	mov    0x8(%ebp),%ebx
408aa7:	c7 45 dc 05 00 00 00 	movl   $0x5,-0x24(%ebp)
408aae:	8b c6                	mov    %esi,%eax
408ab0:	ba 10 00 00 00       	mov    $0x10,%edx
408ab5:	e8 f2 fe ff ff       	call   0x4089ac
408aba:	85 c0                	test   %eax,%eax
408abc:	74 06                	je     0x408ac4
408abe:	8b 45 dc             	mov    -0x24(%ebp),%eax
408ac1:	89 45 dc             	mov    %eax,-0x24(%ebp)
408ac4:	c7 45 f4 ff ff ff ff 	movl   $0xffffffff,-0xc(%ebp)
408acb:	33 c0                	xor    %eax,%eax
408acd:	8a 45 0c             	mov    0xc(%ebp),%al
408ad0:	89 45 e0             	mov    %eax,-0x20(%ebp)
408ad3:	85 db                	test   %ebx,%ebx
408ad5:	7d 09                	jge    0x408ae0
408ad7:	f7 db                	neg    %ebx
408ad9:	81 4d e0 00 10 00 00 	orl    $0x1000,-0x20(%ebp)
408ae0:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
408ae3:	85 db                	test   %ebx,%ebx
408ae5:	7e 04                	jle    0x408aeb
408ae7:	83 4d dc 02          	orl    $0x2,-0x24(%ebp)
408aeb:	8b 45 fc             	mov    -0x4(%ebp),%eax
408aee:	e8 01 b0 ff ff       	call   0x403af4
408af3:	89 45 e8             	mov    %eax,-0x18(%ebp)
408af6:	8d 45 dc             	lea    -0x24(%ebp),%eax
408af9:	50                   	push   %eax
408afa:	57                   	push   %edi
408afb:	68 1b 10 00 00       	push   $0x101b
408b00:	56                   	push   %esi
408b01:	e8 36 3a 00 00       	call   0x40c53c
408b06:	85 c0                	test   %eax,%eax
408b08:	7c 06                	jl     0x408b10
408b0a:	ff 86 0e 01 00 00    	incl   0x10e(%esi)
408b10:	5f                   	pop    %edi
408b11:	5e                   	pop    %esi
408b12:	5b                   	pop    %ebx
408b13:	8b e5                	mov    %ebp,%esp
408b15:	5d                   	pop    %ebp
408b16:	c2 08 00             	ret    $0x8
408b19:	8d 40 00             	lea    0x0(%eax),%eax
408b1c:	55                   	push   %ebp
408b1d:	8b ec                	mov    %esp,%ebp
408b1f:	51                   	push   %ecx
408b20:	56                   	push   %esi
408b21:	57                   	push   %edi
408b22:	89 55 fc             	mov    %edx,-0x4(%ebp)
408b25:	8b 7d 08             	mov    0x8(%ebp),%edi
408b28:	8b 75 10             	mov    0x10(%ebp),%esi
408b2b:	c7 06 0e 00 00 00    	movl   $0xe,(%esi)
408b31:	85 c9                	test   %ecx,%ecx
408b33:	7e 0f                	jle    0x408b44
408b35:	f6 80 1b 01 00 00 10 	testb  $0x10,0x11b(%eax)
408b3c:	75 06                	jne    0x408b44
408b3e:	c7 06 0c 00 00 00    	movl   $0xc,(%esi)
408b44:	8b 55 fc             	mov    -0x4(%ebp),%edx
408b47:	89 56 04             	mov    %edx,0x4(%esi)
408b4a:	89 4e 08             	mov    %ecx,0x8(%esi)
408b4d:	8b 55 0c             	mov    0xc(%ebp),%edx
408b50:	89 56 14             	mov    %edx,0x14(%esi)
408b53:	89 7e 18             	mov    %edi,0x18(%esi)
408b56:	85 ff                	test   %edi,%edi
408b58:	74 03                	je     0x408b5d
408b5a:	83 0e 01             	orl    $0x1,(%esi)
408b5d:	56                   	push   %esi
408b5e:	6a 00                	push   $0x0
408b60:	68 05 10 00 00       	push   $0x1005
408b65:	50                   	push   %eax
408b66:	e8 d1 39 00 00       	call   0x40c53c
408b6b:	5f                   	pop    %edi
408b6c:	5e                   	pop    %esi
408b6d:	59                   	pop    %ecx
408b6e:	5d                   	pop    %ebp
408b6f:	c2 0c 00             	ret    $0xc
408b72:	8b c0                	mov    %eax,%eax
408b74:	55                   	push   %ebp
408b75:	8b ec                	mov    %esp,%ebp
408b77:	83 c4 d0             	add    $0xffffffd0,%esp
408b7a:	53                   	push   %ebx
408b7b:	56                   	push   %esi
408b7c:	57                   	push   %edi
408b7d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408b80:	8b fa                	mov    %edx,%edi
408b82:	8b f0                	mov    %eax,%esi
408b84:	33 db                	xor    %ebx,%ebx
408b86:	33 c0                	xor    %eax,%eax
408b88:	89 45 f8             	mov    %eax,-0x8(%ebp)
408b8b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
408b8f:	74 08                	je     0x408b99
408b91:	8b 45 f8             	mov    -0x8(%ebp),%eax
408b94:	e8 c7 9c ff ff       	call   0x402860
408b99:	8b c3                	mov    %ebx,%eax
408b9b:	03 c0                	add    %eax,%eax
408b9d:	83 c0 64             	add    $0x64,%eax
408ba0:	8b d8                	mov    %eax,%ebx
408ba2:	8b c3                	mov    %ebx,%eax
408ba4:	e8 87 9c ff ff       	call   0x402830
408ba9:	89 45 f8             	mov    %eax,-0x8(%ebp)
408bac:	8b 45 f8             	mov    -0x8(%ebp),%eax
408baf:	c6 00 00             	movb   $0x0,(%eax)
408bb2:	8d 45 d0             	lea    -0x30(%ebp),%eax
408bb5:	50                   	push   %eax
408bb6:	8b 45 f8             	mov    -0x8(%ebp),%eax
408bb9:	50                   	push   %eax
408bba:	53                   	push   %ebx
408bbb:	8b c6                	mov    %esi,%eax
408bbd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408bc0:	8b d7                	mov    %edi,%edx
408bc2:	e8 55 ff ff ff       	call   0x408b1c
408bc7:	8b 45 f8             	mov    -0x8(%ebp),%eax
408bca:	e8 ad cd ff ff       	call   0x40597c
408bcf:	8b d3                	mov    %ebx,%edx
408bd1:	4a                   	dec    %edx
408bd2:	3b c2                	cmp    %edx,%eax
408bd4:	7d b5                	jge    0x408b8b
408bd6:	8b 45 08             	mov    0x8(%ebp),%eax
408bd9:	8b 55 f8             	mov    -0x8(%ebp),%edx
408bdc:	e8 8f ac ff ff       	call   0x403870
408be1:	8b 45 f8             	mov    -0x8(%ebp),%eax
408be4:	e8 77 9c ff ff       	call   0x402860
408be9:	5f                   	pop    %edi
408bea:	5e                   	pop    %esi
408beb:	5b                   	pop    %ebx
408bec:	8b e5                	mov    %ebp,%esp
408bee:	5d                   	pop    %ebp
408bef:	c2 04 00             	ret    $0x4
408bf2:	8b c0                	mov    %eax,%eax
408bf4:	53                   	push   %ebx
408bf5:	56                   	push   %esi
408bf6:	8b f0                	mov    %eax,%esi
408bf8:	8d 5a 01             	lea    0x1(%edx),%ebx
408bfb:	8b c3                	mov    %ebx,%eax
408bfd:	2d 01 10 00 00       	sub    $0x1001,%eax
408c02:	74 1c                	je     0x408c20
408c04:	83 e8 23             	sub    $0x23,%eax
408c07:	74 07                	je     0x408c10
408c09:	83 e8 02             	sub    $0x2,%eax
408c0c:	74 0a                	je     0x408c18
408c0e:	eb 16                	jmp    0x408c26
408c10:	89 8e a0 00 00 00    	mov    %ecx,0xa0(%esi)
408c16:	eb 0e                	jmp    0x408c26
408c18:	89 8e 12 01 00 00    	mov    %ecx,0x112(%esi)
408c1e:	eb 06                	jmp    0x408c26
408c20:	89 8e a4 00 00 00    	mov    %ecx,0xa4(%esi)
408c26:	8b c1                	mov    %ecx,%eax
408c28:	e8 37 18 00 00       	call   0x40a464
408c2d:	50                   	push   %eax
408c2e:	6a 00                	push   $0x0
408c30:	53                   	push   %ebx
408c31:	56                   	push   %esi
408c32:	e8 05 39 00 00       	call   0x40c53c
408c37:	5e                   	pop    %esi
408c38:	5b                   	pop    %ebx
408c39:	c3                   	ret
408c3a:	8b c0                	mov    %eax,%eax
408c3c:	8b ca                	mov    %edx,%ecx
408c3e:	33 d2                	xor    %edx,%edx
408c40:	e8 0f 00 00 00       	call   0x408c54
408c45:	c3                   	ret
408c46:	8b c0                	mov    %eax,%eax
408c48:	6a 00                	push   $0x0
408c4a:	87 ca                	xchg   %ecx,%edx
408c4c:	e8 13 39 00 00       	call   0x40c564
408c51:	c3                   	ret
408c52:	8b c0                	mov    %eax,%eax
408c54:	6a 00                	push   $0x0
408c56:	52                   	push   %edx
408c57:	0f b7 d1             	movzwl %cx,%edx
408c5a:	52                   	push   %edx
408c5b:	50                   	push   %eax
408c5c:	e8 db 38 00 00       	call   0x40c53c
408c61:	c3                   	ret
408c62:	8b c0                	mov    %eax,%eax
408c64:	53                   	push   %ebx
408c65:	33 db                	xor    %ebx,%ebx
408c67:	83 7a 04 10          	cmpl   $0x10,0x4(%edx)
408c6b:	75 19                	jne    0x408c86
408c6d:	83 b8 f6 00 00 00 00 	cmpl   $0x0,0xf6(%eax)
408c74:	75 0a                	jne    0x408c80
408c76:	c7 80 f6 00 00 00 ff 	movl   $0xffffffff,0xf6(%eax)
408c7d:	ff ff ff
408c80:	33 c0                	xor    %eax,%eax
408c82:	89 01                	mov    %eax,(%ecx)
408c84:	b3 01                	mov    $0x1,%bl
408c86:	8b c3                	mov    %ebx,%eax
408c88:	5b                   	pop    %ebx
408c89:	c3                   	ret
408c8a:	8b c0                	mov    %eax,%eax
408c8c:	53                   	push   %ebx
408c8d:	56                   	push   %esi
408c8e:	57                   	push   %edi
408c8f:	8b f9                	mov    %ecx,%edi
408c91:	8b f2                	mov    %edx,%esi
408c93:	33 db                	xor    %ebx,%ebx
408c95:	83 7e 04 20          	cmpl   $0x20,0x4(%esi)
408c99:	75 44                	jne    0x408cdf
408c9b:	66 81 7e 0c fe ff    	cmpw   $0xfffe,0xc(%esi)
408ca1:	75 3c                	jne    0x408cdf
408ca3:	8b 46 0c             	mov    0xc(%esi),%eax
408ca6:	e8 b5 be ff ff       	call   0x404b60
408cab:	66 3d 01 02          	cmp    $0x201,%ax
408caf:	72 2e                	jb     0x408cdf
408cb1:	8b 46 0c             	mov    0xc(%esi),%eax