408a0e:	83 ec 04             	sub    $0x4,%esp
408a11:	89 7d fc             	mov    %edi,-0x4(%ebp)
408a14:	8b 7d 08             	mov    0x8(%ebp),%edi
408a17:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408a1a:	c1 e9 07             	shr    $0x7,%ecx
408a1d:	66 0f ef c0          	pxor   %xmm0,%xmm0
408a21:	eb 08                	jmp    0x408a2b
408a23:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
408a2a:	90                   	nop
408a2b:	66 0f 7f 07          	movdqa %xmm0,(%edi)
408a2f:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
408a34:	66 0f 7f 47 20       	movdqa %xmm0,0x20(%edi)
408a39:	66 0f 7f 47 30       	movdqa %xmm0,0x30(%edi)
408a3e:	66 0f 7f 47 40       	movdqa %xmm0,0x40(%edi)
408a43:	66 0f 7f 47 50       	movdqa %xmm0,0x50(%edi)
408a48:	66 0f 7f 47 60       	movdqa %xmm0,0x60(%edi)
408a4d:	66 0f 7f 47 70       	movdqa %xmm0,0x70(%edi)
408a52:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
408a58:	49                   	dec    %ecx
408a59:	75 d0                	jne    0x408a2b
408a5b:	8b 7d fc             	mov    -0x4(%ebp),%edi
408a5e:	8b e5                	mov    %ebp,%esp
408a60:	5d                   	pop    %ebp
408a61:	c3                   	ret
408a62:	55                   	push   %ebp
408a63:	8b ec                	mov    %esp,%ebp
408a65:	83 ec 10             	sub    $0x10,%esp
408a68:	89 7d fc             	mov    %edi,-0x4(%ebp)
408a6b:	8b 45 08             	mov    0x8(%ebp),%eax
408a6e:	99                   	cltd
408a6f:	8b f8                	mov    %eax,%edi
408a71:	33 fa                	xor    %edx,%edi
408a73:	2b fa                	sub    %edx,%edi
408a75:	83 e7 0f             	and    $0xf,%edi
408a78:	33 fa                	xor    %edx,%edi
408a7a:	2b fa                	sub    %edx,%edi
408a7c:	85 ff                	test   %edi,%edi
408a7e:	75 3c                	jne    0x408abc
408a80:	8b 4d 10             	mov    0x10(%ebp),%ecx
408a83:	8b d1                	mov    %ecx,%edx
408a85:	83 e2 7f             	and    $0x7f,%edx
408a88:	89 55 f4             	mov    %edx,-0xc(%ebp)
408a8b:	3b ca                	cmp    %edx,%ecx
408a8d:	74 12                	je     0x408aa1
408a8f:	2b ca                	sub    %edx,%ecx
408a91:	51                   	push   %ecx
408a92:	50                   	push   %eax
408a93:	e8 73 ff ff ff       	call   0x408a0b
408a98:	83 c4 08             	add    $0x8,%esp
408a9b:	8b 45 08             	mov    0x8(%ebp),%eax
408a9e:	8b 55 f4             	mov    -0xc(%ebp),%edx
408aa1:	85 d2                	test   %edx,%edx
408aa3:	74 45                	je     0x408aea
408aa5:	03 45 10             	add    0x10(%ebp),%eax
408aa8:	2b c2                	sub    %edx,%eax
408aaa:	89 45 f8             	mov    %eax,-0x8(%ebp)
408aad:	33 c0                	xor    %eax,%eax
408aaf:	8b 7d f8             	mov    -0x8(%ebp),%edi
408ab2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408ab5:	f3 aa                	rep stos %al,%es:(%edi)
408ab7:	8b 45 08             	mov    0x8(%ebp),%eax
408aba:	eb 2e                	jmp    0x408aea
408abc:	f7 df                	neg    %edi
408abe:	83 c7 10             	add    $0x10,%edi
408ac1:	89 7d f0             	mov    %edi,-0x10(%ebp)
408ac4:	33 c0                	xor    %eax,%eax
408ac6:	8b 7d 08             	mov    0x8(%ebp),%edi
408ac9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408acc:	f3 aa                	rep stos %al,%es:(%edi)
408ace:	8b 45 f0             	mov    -0x10(%ebp),%eax
408ad1:	8b 4d 08             	mov    0x8(%ebp),%ecx
408ad4:	8b 55 10             	mov    0x10(%ebp),%edx
408ad7:	03 c8                	add    %eax,%ecx
408ad9:	2b d0                	sub    %eax,%edx
408adb:	52                   	push   %edx
408adc:	6a 00                	push   $0x0
408ade:	51                   	push   %ecx
408adf:	e8 7e ff ff ff       	call   0x408a62
408ae4:	83 c4 0c             	add    $0xc,%esp
408ae7:	8b 45 08             	mov    0x8(%ebp),%eax
408aea:	8b 7d fc             	mov    -0x4(%ebp),%edi
408aed:	8b e5                	mov    %ebp,%esp
408aef:	5d                   	pop    %ebp
408af0:	c3                   	ret
408af1:	8b ff                	mov    %edi,%edi
408af3:	55                   	push   %ebp
408af4:	8b ec                	mov    %esp,%ebp
408af6:	83 ec 18             	sub    $0x18,%esp
408af9:	53                   	push   %ebx
408afa:	ff 75 10             	push   0x10(%ebp)
408afd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
408b00:	e8 c9 ba ff ff       	call   0x4045ce
408b05:	8b 5d 08             	mov    0x8(%ebp),%ebx
408b08:	8d 43 01             	lea    0x1(%ebx),%eax
408b0b:	3d 00 01 00 00       	cmp    $0x100,%eax
408b10:	77 0f                	ja     0x408b21
408b12:	8b 45 e8             	mov    -0x18(%ebp),%eax
408b15:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
408b1b:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
408b1f:	eb 75                	jmp    0x408b96
408b21:	89 5d 08             	mov    %ebx,0x8(%ebp)
408b24:	c1 7d 08 08          	sarl   $0x8,0x8(%ebp)
408b28:	8d 45 e8             	lea    -0x18(%ebp),%eax
408b2b:	50                   	push   %eax
408b2c:	8b 45 08             	mov    0x8(%ebp),%eax
408b2f:	25 ff 00 00 00       	and    $0xff,%eax
408b34:	50                   	push   %eax
408b35:	e8 9f 02 00 00       	call   0x408dd9
408b3a:	59                   	pop    %ecx
408b3b:	59                   	pop    %ecx
408b3c:	85 c0                	test   %eax,%eax
408b3e:	74 12                	je     0x408b52
408b40:	8a 45 08             	mov    0x8(%ebp),%al
408b43:	6a 02                	push   $0x2
408b45:	88 45 f8             	mov    %al,-0x8(%ebp)
408b48:	88 5d f9             	mov    %bl,-0x7(%ebp)
408b4b:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
408b4f:	59                   	pop    %ecx
408b50:	eb 0a                	jmp    0x408b5c
408b52:	33 c9                	xor    %ecx,%ecx
408b54:	88 5d f8             	mov    %bl,-0x8(%ebp)
408b57:	c6 45 f9 00          	movb   $0x0,-0x7(%ebp)
408b5b:	41                   	inc    %ecx
408b5c:	8b 45 e8             	mov    -0x18(%ebp),%eax
408b5f:	6a 01                	push   $0x1
408b61:	ff 70 14             	push   0x14(%eax)
408b64:	ff 70 04             	push   0x4(%eax)
408b67:	8d 45 fc             	lea    -0x4(%ebp),%eax
408b6a:	50                   	push   %eax
408b6b:	51                   	push   %ecx
408b6c:	8d 45 f8             	lea    -0x8(%ebp),%eax
408b6f:	50                   	push   %eax
408b70:	8d 45 e8             	lea    -0x18(%ebp),%eax
408b73:	6a 01                	push   $0x1
408b75:	50                   	push   %eax
408b76:	e8 2e ea ff ff       	call   0x4075a9
408b7b:	83 c4 20             	add    $0x20,%esp
408b7e:	85 c0                	test   %eax,%eax
408b80:	75 10                	jne    0x408b92
408b82:	38 45 f4             	cmp    %al,-0xc(%ebp)
408b85:	74 07                	je     0x408b8e
408b87:	8b 45 f0             	mov    -0x10(%ebp),%eax
408b8a:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
408b8e:	33 c0                	xor    %eax,%eax
408b90:	eb 14                	jmp    0x408ba6
408b92:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
408b96:	23 45 0c             	and    0xc(%ebp),%eax
408b99:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
408b9d:	74 07                	je     0x408ba6
408b9f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408ba2:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
408ba6:	5b                   	pop    %ebx
408ba7:	c9                   	leave
408ba8:	c3                   	ret
408ba9:	cc                   	int3
408baa:	cc                   	int3
408bab:	cc                   	int3
408bac:	cc                   	int3
408bad:	cc                   	int3
408bae:	cc                   	int3
408baf:	cc                   	int3
408bb0:	51                   	push   %ecx
408bb1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
408bb5:	2b c8                	sub    %eax,%ecx
408bb7:	83 e1 0f             	and    $0xf,%ecx
408bba:	03 c1                	add    %ecx,%eax
408bbc:	1b c9                	sbb    %ecx,%ecx
408bbe:	0b c1                	or     %ecx,%eax
408bc0:	59                   	pop    %ecx
408bc1:	e9 4a 21 00 00       	jmp    0x40ad10
408bc6:	51                   	push   %ecx
408bc7:	8d 4c 24 08          	lea    0x8(%esp),%ecx
408bcb:	2b c8                	sub    %eax,%ecx
408bcd:	83 e1 07             	and    $0x7,%ecx
408bd0:	03 c1                	add    %ecx,%eax
408bd2:	1b c9                	sbb    %ecx,%ecx
408bd4:	0b c1                	or     %ecx,%eax
408bd6:	59                   	pop    %ecx
408bd7:	e9 34 21 00 00       	jmp    0x40ad10
408bdc:	8b ff                	mov    %edi,%edi
408bde:	55                   	push   %ebp
408bdf:	8b ec                	mov    %esp,%ebp
408be1:	83 ec 0c             	sub    $0xc,%esp
408be4:	a1 04 f0 41 00       	mov    0x41f004,%eax
408be9:	33 c5                	xor    %ebp,%eax
408beb:	89 45 fc             	mov    %eax,-0x4(%ebp)
408bee:	6a 06                	push   $0x6
408bf0:	8d 45 f4             	lea    -0xc(%ebp),%eax
408bf3:	50                   	push   %eax
408bf4:	68 04 10 00 00       	push   $0x1004
408bf9:	ff 75 08             	push   0x8(%ebp)
408bfc:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
408c00:	ff 15 18 d1 41 00    	call   *0x41d118
408c06:	85 c0                	test   %eax,%eax
408c08:	75 05                	jne    0x408c0f
408c0a:	83 c8 ff             	or     $0xffffffff,%eax
408c0d:	eb 0a                	jmp    0x408c19
408c0f:	8d 45 f4             	lea    -0xc(%ebp),%eax
408c12:	50                   	push   %eax
408c13:	e8 f9 01 00 00       	call   0x408e11
408c18:	59                   	pop    %ecx
408c19:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408c1c:	33 cd                	xor    %ebp,%ecx
408c1e:	e8 dd 83 ff ff       	call   0x401000
408c23:	c9                   	leave
408c24:	c3                   	ret
408c25:	8b ff                	mov    %edi,%edi
408c27:	55                   	push   %ebp
408c28:	8b ec                	mov    %esp,%ebp
408c2a:	83 ec 34             	sub    $0x34,%esp
408c2d:	a1 04 f0 41 00       	mov    0x41f004,%eax
408c32:	33 c5                	xor    %ebp,%eax
408c34:	89 45 fc             	mov    %eax,-0x4(%ebp)
408c37:	8b 45 10             	mov    0x10(%ebp),%eax
408c3a:	8b 4d 18             	mov    0x18(%ebp),%ecx
408c3d:	89 45 d8             	mov    %eax,-0x28(%ebp)
408c40:	8b 45 14             	mov    0x14(%ebp),%eax
408c43:	53                   	push   %ebx
408c44:	89 45 d0             	mov    %eax,-0x30(%ebp)
408c47:	8b 00                	mov    (%eax),%eax
408c49:	56                   	push   %esi
408c4a:	89 45 dc             	mov    %eax,-0x24(%ebp)
408c4d:	8b 45 08             	mov    0x8(%ebp),%eax
408c50:	57                   	push   %edi
408c51:	33 ff                	xor    %edi,%edi
408c53:	89 4d cc             	mov    %ecx,-0x34(%ebp)
408c56:	89 7d e0             	mov    %edi,-0x20(%ebp)
408c59:	89 7d d4             	mov    %edi,-0x2c(%ebp)
408c5c:	3b 45 0c             	cmp    0xc(%ebp),%eax
408c5f:	0f 84 5f 01 00 00    	je     0x408dc4
408c65:	8b 35 f4 d0 41 00    	mov    0x41d0f4,%esi
408c6b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
408c6e:	51                   	push   %ecx
408c6f:	50                   	push   %eax
408c70:	ff d6                	call   *%esi
408c72:	8b 1d 20 d1 41 00    	mov    0x41d120,%ebx
408c78:	85 c0                	test   %eax,%eax
408c7a:	74 5e                	je     0x408cda
408c7c:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
408c80:	75 58                	jne    0x408cda
408c82:	8d 45 e8             	lea    -0x18(%ebp),%eax
408c85:	50                   	push   %eax
408c86:	ff 75 0c             	push   0xc(%ebp)
408c89:	ff d6                	call   *%esi
408c8b:	85 c0                	test   %eax,%eax
408c8d:	74 4b                	je     0x408cda
408c8f:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
408c93:	75 45                	jne    0x408cda
408c95:	8b 75 dc             	mov    -0x24(%ebp),%esi
408c98:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
408c9f:	83 fe ff             	cmp    $0xffffffff,%esi
408ca2:	75 0c                	jne    0x408cb0
408ca4:	ff 75 d8             	push   -0x28(%ebp)
408ca7:	e8 e4 b7 ff ff       	call   0x404490
408cac:	8b f0                	mov    %eax,%esi
408cae:	59                   	pop    %ecx
408caf:	46                   	inc    %esi
408cb0:	3b f7                	cmp    %edi,%esi
408cb2:	7e 5b                	jle    0x408d0f
408cb4:	81 fe f0 ff ff 7f    	cmp    $0x7ffffff0,%esi
408cba:	77 53                	ja     0x408d0f
408cbc:	8d 44 36 08          	lea    0x8(%esi,%esi,1),%eax
408cc0:	3d 00 04 00 00       	cmp    $0x400,%eax
408cc5:	77 2f                	ja     0x408cf6
408cc7:	e8 e4 fe ff ff       	call   0x408bb0
408ccc:	8b c4                	mov    %esp,%eax
408cce:	3b c7                	cmp    %edi,%eax
408cd0:	74 38                	je     0x408d0a
408cd2:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
408cd8:	eb 2d                	jmp    0x408d07
408cda:	57                   	push   %edi
408cdb:	57                   	push   %edi
408cdc:	ff 75 dc             	push   -0x24(%ebp)
408cdf:	ff 75 d8             	push   -0x28(%ebp)
408ce2:	6a 01                	push   $0x1
408ce4:	ff 75 08             	push   0x8(%ebp)
408ce7:	ff d3                	call   *%ebx
408ce9:	8b f0                	mov    %eax,%esi
408ceb:	3b f7                	cmp    %edi,%esi
408ced:	75 c3                	jne    0x408cb2
408cef:	33 c0                	xor    %eax,%eax
408cf1:	e9 d1 00 00 00       	jmp    0x408dc7
408cf6:	50                   	push   %eax
408cf7:	e8 3e e9 ff ff       	call   0x40763a
408cfc:	59                   	pop    %ecx
408cfd:	3b c7                	cmp    %edi,%eax
408cff:	74 09                	je     0x408d0a
408d01:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
408d07:	83 c0 08             	add    $0x8,%eax
408d0a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408d0d:	eb 03                	jmp    0x408d12
408d0f:	89 7d e4             	mov    %edi,-0x1c(%ebp)
408d12:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
408d15:	74 d8                	je     0x408cef
408d17:	8d 04 36             	lea    (%esi,%esi,1),%eax
408d1a:	50                   	push   %eax
408d1b:	57                   	push   %edi
408d1c:	ff 75 e4             	push   -0x1c(%ebp)
408d1f:	e8 1c e1 ff ff       	call   0x406e40
408d24:	83 c4 0c             	add    $0xc,%esp
408d27:	56                   	push   %esi
408d28:	ff 75 e4             	push   -0x1c(%ebp)
408d2b:	ff 75 dc             	push   -0x24(%ebp)
408d2e:	ff 75 d8             	push   -0x28(%ebp)
408d31:	6a 01                	push   $0x1
408d33:	ff 75 08             	push   0x8(%ebp)
408d36:	ff d3                	call   *%ebx
408d38:	85 c0                	test   %eax,%eax
408d3a:	74 7f                	je     0x408dbb
408d3c:	8b 5d cc             	mov    -0x34(%ebp),%ebx
408d3f:	3b df                	cmp    %edi,%ebx
408d41:	74 1d                	je     0x408d60
408d43:	57                   	push   %edi
408d44:	57                   	push   %edi
408d45:	ff 75 1c             	push   0x1c(%ebp)
408d48:	53                   	push   %ebx
408d49:	56                   	push   %esi
408d4a:	ff 75 e4             	push   -0x1c(%ebp)
408d4d:	57                   	push   %edi
408d4e:	ff 75 0c             	push   0xc(%ebp)
408d51:	ff 15 98 d0 41 00    	call   *0x41d098
408d57:	85 c0                	test   %eax,%eax
408d59:	74 60                	je     0x408dbb
408d5b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
408d5e:	eb 5b                	jmp    0x408dbb
408d60:	8b 1d 98 d0 41 00    	mov    0x41d098,%ebx
408d66:	39 7d d4             	cmp    %edi,-0x2c(%ebp)
408d69:	75 14                	jne    0x408d7f
408d6b:	57                   	push   %edi
408d6c:	57                   	push   %edi
408d6d:	57                   	push   %edi
408d6e:	57                   	push   %edi
408d6f:	56                   	push   %esi
408d70:	ff 75 e4             	push   -0x1c(%ebp)
408d73:	57                   	push   %edi
408d74:	ff 75 0c             	push   0xc(%ebp)
408d77:	ff d3                	call   *%ebx
408d79:	8b f0                	mov    %eax,%esi
408d7b:	3b f7                	cmp    %edi,%esi
408d7d:	74 3c                	je     0x408dbb
408d7f:	56                   	push   %esi
408d80:	6a 01                	push   $0x1
408d82:	e8 ef c0 ff ff       	call   0x404e76
408d87:	59                   	pop    %ecx
408d88:	59                   	pop    %ecx
408d89:	89 45 e0             	mov    %eax,-0x20(%ebp)
408d8c:	3b c7                	cmp    %edi,%eax
408d8e:	74 2b                	je     0x408dbb
408d90:	57                   	push   %edi
408d91:	57                   	push   %edi