4107e7:	23 4d e0             	and    -0x20(%ebp),%ecx
4107ea:	33 d1                	xor    %ecx,%edx
4107ec:	03 c2                	add    %edx,%eax
4107ee:	8b 55 fc             	mov    -0x4(%ebp),%edx
4107f1:	03 04 95 60 61 41 00 	add    0x416160(,%edx,4),%eax
4107f8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4107fb:	03 84 8d d0 fe ff ff 	add    -0x130(%ebp,%ecx,4),%eax
410802:	89 45 d4             	mov    %eax,-0x2c(%ebp)
410805:	8b 55 f8             	mov    -0x8(%ebp),%edx
410808:	c1 ea 02             	shr    $0x2,%edx
41080b:	8b 45 f8             	mov    -0x8(%ebp),%eax
41080e:	c1 e0 1e             	shl    $0x1e,%eax
410811:	0b d0                	or     %eax,%edx
410813:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410816:	c1 e9 0d             	shr    $0xd,%ecx
410819:	8b 45 f8             	mov    -0x8(%ebp),%eax
41081c:	c1 e0 13             	shl    $0x13,%eax
41081f:	0b c8                	or     %eax,%ecx
410821:	33 d1                	xor    %ecx,%edx
410823:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410826:	c1 e9 16             	shr    $0x16,%ecx
410829:	8b 45 f8             	mov    -0x8(%ebp),%eax
41082c:	c1 e0 0a             	shl    $0xa,%eax
41082f:	0b c8                	or     %eax,%ecx
410831:	33 d1                	xor    %ecx,%edx
410833:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410836:	23 4d ec             	and    -0x14(%ebp),%ecx
410839:	8b 45 f8             	mov    -0x8(%ebp),%eax
41083c:	23 45 e8             	and    -0x18(%ebp),%eax
41083f:	33 c8                	xor    %eax,%ecx
410841:	8b 45 ec             	mov    -0x14(%ebp),%eax
410844:	23 45 e8             	and    -0x18(%ebp),%eax
410847:	33 c8                	xor    %eax,%ecx
410849:	03 d1                	add    %ecx,%edx
41084b:	89 55 d0             	mov    %edx,-0x30(%ebp)
41084e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
410851:	89 4d d8             	mov    %ecx,-0x28(%ebp)
410854:	8b 55 e4             	mov    -0x1c(%ebp),%edx
410857:	89 55 e0             	mov    %edx,-0x20(%ebp)
41085a:	8b 45 f4             	mov    -0xc(%ebp),%eax
41085d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
410860:	8b 4d dc             	mov    -0x24(%ebp),%ecx
410863:	03 4d d4             	add    -0x2c(%ebp),%ecx
410866:	89 4d f4             	mov    %ecx,-0xc(%ebp)
410869:	8b 55 e8             	mov    -0x18(%ebp),%edx
41086c:	89 55 dc             	mov    %edx,-0x24(%ebp)
41086f:	8b 45 ec             	mov    -0x14(%ebp),%eax
410872:	89 45 e8             	mov    %eax,-0x18(%ebp)
410875:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410878:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41087b:	8b 55 d4             	mov    -0x2c(%ebp),%edx
41087e:	03 55 d0             	add    -0x30(%ebp),%edx
410881:	89 55 f8             	mov    %edx,-0x8(%ebp)
410884:	e9 0f ff ff ff       	jmp    0x410798
410889:	b8 04 00 00 00       	mov    $0x4,%eax
41088e:	6b c8 00             	imul   $0x0,%eax,%ecx
410891:	8b 55 08             	mov    0x8(%ebp),%edx
410894:	8b 44 0a 50          	mov    0x50(%edx,%ecx,1),%eax
410898:	03 45 f8             	add    -0x8(%ebp),%eax
41089b:	b9 04 00 00 00       	mov    $0x4,%ecx
4108a0:	6b d1 00             	imul   $0x0,%ecx,%edx
4108a3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4108a6:	89 44 11 50          	mov    %eax,0x50(%ecx,%edx,1)
4108aa:	ba 04 00 00 00       	mov    $0x4,%edx
4108af:	c1 e2 00             	shl    $0x0,%edx
4108b2:	8b 45 08             	mov    0x8(%ebp),%eax
4108b5:	8b 4c 10 50          	mov    0x50(%eax,%edx,1),%ecx
4108b9:	03 4d ec             	add    -0x14(%ebp),%ecx
4108bc:	ba 04 00 00 00       	mov    $0x4,%edx
4108c1:	c1 e2 00             	shl    $0x0,%edx
4108c4:	8b 45 08             	mov    0x8(%ebp),%eax
4108c7:	89 4c 10 50          	mov    %ecx,0x50(%eax,%edx,1)
4108cb:	b9 04 00 00 00       	mov    $0x4,%ecx
4108d0:	d1 e1                	shl    $1,%ecx
4108d2:	8b 55 08             	mov    0x8(%ebp),%edx
4108d5:	8b 44 0a 50          	mov    0x50(%edx,%ecx,1),%eax
4108d9:	03 45 e8             	add    -0x18(%ebp),%eax
4108dc:	b9 04 00 00 00       	mov    $0x4,%ecx
4108e1:	d1 e1                	shl    $1,%ecx
4108e3:	8b 55 08             	mov    0x8(%ebp),%edx
4108e6:	89 44 0a 50          	mov    %eax,0x50(%edx,%ecx,1)
4108ea:	b8 04 00 00 00       	mov    $0x4,%eax
4108ef:	6b c8 03             	imul   $0x3,%eax,%ecx
4108f2:	8b 55 08             	mov    0x8(%ebp),%edx
4108f5:	8b 44 0a 50          	mov    0x50(%edx,%ecx,1),%eax
4108f9:	03 45 dc             	add    -0x24(%ebp),%eax
4108fc:	b9 04 00 00 00       	mov    $0x4,%ecx
410901:	6b d1 03             	imul   $0x3,%ecx,%edx
410904:	8b 4d 08             	mov    0x8(%ebp),%ecx
410907:	89 44 11 50          	mov    %eax,0x50(%ecx,%edx,1)
41090b:	ba 04 00 00 00       	mov    $0x4,%edx
410910:	c1 e2 02             	shl    $0x2,%edx
410913:	8b 45 08             	mov    0x8(%ebp),%eax
410916:	8b 4c 10 50          	mov    0x50(%eax,%edx,1),%ecx
41091a:	03 4d f4             	add    -0xc(%ebp),%ecx
41091d:	ba 04 00 00 00       	mov    $0x4,%edx
410922:	c1 e2 02             	shl    $0x2,%edx
410925:	8b 45 08             	mov    0x8(%ebp),%eax
410928:	89 4c 10 50          	mov    %ecx,0x50(%eax,%edx,1)
41092c:	b9 04 00 00 00       	mov    $0x4,%ecx
410931:	6b d1 05             	imul   $0x5,%ecx,%edx
410934:	8b 45 08             	mov    0x8(%ebp),%eax
410937:	8b 4c 10 50          	mov    0x50(%eax,%edx,1),%ecx
41093b:	03 4d e4             	add    -0x1c(%ebp),%ecx
41093e:	ba 04 00 00 00       	mov    $0x4,%edx
410943:	6b c2 05             	imul   $0x5,%edx,%eax
410946:	8b 55 08             	mov    0x8(%ebp),%edx
410949:	89 4c 02 50          	mov    %ecx,0x50(%edx,%eax,1)
41094d:	b8 04 00 00 00       	mov    $0x4,%eax
410952:	6b c8 06             	imul   $0x6,%eax,%ecx
410955:	8b 55 08             	mov    0x8(%ebp),%edx
410958:	8b 44 0a 50          	mov    0x50(%edx,%ecx,1),%eax
41095c:	03 45 e0             	add    -0x20(%ebp),%eax
41095f:	b9 04 00 00 00       	mov    $0x4,%ecx
410964:	6b d1 06             	imul   $0x6,%ecx,%edx
410967:	8b 4d 08             	mov    0x8(%ebp),%ecx
41096a:	89 44 11 50          	mov    %eax,0x50(%ecx,%edx,1)
41096e:	ba 04 00 00 00       	mov    $0x4,%edx
410973:	6b c2 07             	imul   $0x7,%edx,%eax
410976:	8b 4d 08             	mov    0x8(%ebp),%ecx
410979:	8b 54 01 50          	mov    0x50(%ecx,%eax,1),%edx
41097d:	03 55 d8             	add    -0x28(%ebp),%edx
410980:	b8 04 00 00 00       	mov    $0x4,%eax
410985:	6b c8 07             	imul   $0x7,%eax,%ecx
410988:	8b 45 08             	mov    0x8(%ebp),%eax
41098b:	89 54 08 50          	mov    %edx,0x50(%eax,%ecx,1)
41098f:	5e                   	pop    %esi
410990:	8b e5                	mov    %ebp,%esp
410992:	5d                   	pop    %ebp
410993:	c3                   	ret
410994:	cc                   	int3
410995:	cc                   	int3
410996:	cc                   	int3
410997:	cc                   	int3
410998:	cc                   	int3
410999:	cc                   	int3
41099a:	cc                   	int3
41099b:	cc                   	int3
41099c:	cc                   	int3
41099d:	cc                   	int3
41099e:	cc                   	int3
41099f:	cc                   	int3
4109a0:	55                   	push   %ebp
4109a1:	8b ec                	mov    %esp,%ebp
4109a3:	83 ec 10             	sub    $0x10,%esp
4109a6:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4109aa:	74 0c                	je     0x4109b8
4109ac:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4109b0:	74 06                	je     0x4109b8
4109b2:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4109b6:	75 05                	jne    0x4109bd
4109b8:	e9 8d 00 00 00       	jmp    0x410a4a
4109bd:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4109c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4109c7:	3b 45 10             	cmp    0x10(%ebp),%eax
4109ca:	74 7e                	je     0x410a4a
4109cc:	8b 4d 10             	mov    0x10(%ebp),%ecx
4109cf:	2b 4d fc             	sub    -0x4(%ebp),%ecx
4109d2:	39 4d 14             	cmp    %ecx,0x14(%ebp)
4109d5:	73 08                	jae    0x4109df
4109d7:	8b 55 14             	mov    0x14(%ebp),%edx
4109da:	89 55 f4             	mov    %edx,-0xc(%ebp)
4109dd:	eb 09                	jmp    0x4109e8
4109df:	8b 45 10             	mov    0x10(%ebp),%eax
4109e2:	2b 45 fc             	sub    -0x4(%ebp),%eax
4109e5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4109e8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4109eb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4109ee:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
4109f5:	eb 09                	jmp    0x410a00
4109f7:	8b 55 f8             	mov    -0x8(%ebp),%edx
4109fa:	83 c2 01             	add    $0x1,%edx
4109fd:	89 55 f8             	mov    %edx,-0x8(%ebp)
410a00:	8b 45 f8             	mov    -0x8(%ebp),%eax
410a03:	3b 45 f0             	cmp    -0x10(%ebp),%eax
410a06:	73 21                	jae    0x410a29
410a08:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410a0b:	03 4d f8             	add    -0x8(%ebp),%ecx
410a0e:	0f b6 55 08          	movzbl 0x8(%ebp),%edx
410a12:	8b 45 0c             	mov    0xc(%ebp),%eax
410a15:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
410a19:	33 ca                	xor    %edx,%ecx
410a1b:	8b 55 fc             	mov    -0x4(%ebp),%edx
410a1e:	03 55 f8             	add    -0x8(%ebp),%edx
410a21:	8b 45 0c             	mov    0xc(%ebp),%eax
410a24:	88 0c 10             	mov    %cl,(%eax,%edx,1)
410a27:	eb ce                	jmp    0x4109f7
410a29:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410a2c:	03 4d f0             	add    -0x10(%ebp),%ecx
410a2f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410a32:	8b 55 fc             	mov    -0x4(%ebp),%edx
410a35:	03 55 14             	add    0x14(%ebp),%edx
410a38:	89 55 fc             	mov    %edx,-0x4(%ebp)
410a3b:	8b 45 fc             	mov    -0x4(%ebp),%eax
410a3e:	3b 45 10             	cmp    0x10(%ebp),%eax
410a41:	72 02                	jb     0x410a45
410a43:	eb 05                	jmp    0x410a4a
410a45:	e9 7a ff ff ff       	jmp    0x4109c4
410a4a:	8b e5                	mov    %ebp,%esp
410a4c:	5d                   	pop    %ebp
410a4d:	c3                   	ret
410a4e:	cc                   	int3
410a4f:	cc                   	int3
410a50:	55                   	push   %ebp
410a51:	8b ec                	mov    %esp,%ebp
410a53:	51                   	push   %ecx
410a54:	b8 50 0a 41 00       	mov    $0x410a50,%eax
410a59:	25 00 f0 ff ff       	and    $0xfffff000,%eax
410a5e:	89 45 fc             	mov    %eax,-0x4(%ebp)
410a61:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410a64:	0f b7 11             	movzwl (%ecx),%edx
410a67:	81 fa 4d 5a 00 00    	cmp    $0x5a4d,%edx
410a6d:	74 0d                	je     0x410a7c
410a6f:	8b 45 fc             	mov    -0x4(%ebp),%eax
410a72:	2d 00 08 00 00       	sub    $0x800,%eax
410a77:	89 45 fc             	mov    %eax,-0x4(%ebp)
410a7a:	eb e5                	jmp    0x410a61
410a7c:	8b 45 fc             	mov    -0x4(%ebp),%eax
410a7f:	8b e5                	mov    %ebp,%esp
410a81:	5d                   	pop    %ebp
410a82:	c3                   	ret
410a83:	cc                   	int3
410a84:	cc                   	int3
410a85:	cc                   	int3
410a86:	cc                   	int3
410a87:	cc                   	int3
410a88:	cc                   	int3
410a89:	cc                   	int3
410a8a:	cc                   	int3
410a8b:	cc                   	int3
410a8c:	cc                   	int3
410a8d:	cc                   	int3
410a8e:	cc                   	int3
410a8f:	cc                   	int3
410a90:	55                   	push   %ebp
410a91:	8b ec                	mov    %esp,%ebp
410a93:	83 ec 08             	sub    $0x8,%esp
410a96:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
410a9a:	75 04                	jne    0x410aa0
410a9c:	33 c0                	xor    %eax,%eax
410a9e:	eb 15                	jmp    0x410ab5
410aa0:	8b 45 08             	mov    0x8(%ebp),%eax
410aa3:	89 45 fc             	mov    %eax,-0x4(%ebp)
410aa6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410aa9:	8b 55 fc             	mov    -0x4(%ebp),%edx
410aac:	03 51 3c             	add    0x3c(%ecx),%edx
410aaf:	89 55 f8             	mov    %edx,-0x8(%ebp)
410ab2:	8b 45 f8             	mov    -0x8(%ebp),%eax
410ab5:	8b e5                	mov    %ebp,%esp
410ab7:	5d                   	pop    %ebp
410ab8:	c3                   	ret
410ab9:	cc                   	int3
410aba:	cc                   	int3
410abb:	cc                   	int3
410abc:	cc                   	int3
410abd:	cc                   	int3
410abe:	cc                   	int3
410abf:	cc                   	int3
410ac0:	55                   	push   %ebp
410ac1:	8b ec                	mov    %esp,%ebp
410ac3:	83 ec 24             	sub    $0x24,%esp
410ac6:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
410acd:	33 c0                	xor    %eax,%eax
410acf:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
410ad3:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
410ada:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
410ae1:	0f 57 c0             	xorps  %xmm0,%xmm0
410ae4:	66 0f 13 45 dc       	movlpd %xmm0,-0x24(%ebp)
410ae9:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
410af0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410af3:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
410af6:	8b 55 0c             	mov    0xc(%ebp),%edx
410af9:	83 ea 01             	sub    $0x1,%edx
410afc:	89 55 0c             	mov    %edx,0xc(%ebp)
410aff:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
410b03:	0f 84 91 02 00 00    	je     0x410d9a
410b09:	8b 45 10             	mov    0x10(%ebp),%eax
410b0c:	0f b7 08             	movzwl (%eax),%ecx
410b0f:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
410b15:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
410b19:	0f b7 55 f8          	movzwl -0x8(%ebp),%edx
410b1d:	03 55 08             	add    0x8(%ebp),%edx
410b20:	89 55 f0             	mov    %edx,-0x10(%ebp)
410b23:	8b 45 10             	mov    0x10(%ebp),%eax
410b26:	0f b7 08             	movzwl (%eax),%ecx
410b29:	c1 f9 0c             	sar    $0xc,%ecx
410b2c:	66 89 4d fc          	mov    %cx,-0x4(%ebp)
410b30:	0f b7 55 fc          	movzwl -0x4(%ebp),%edx
410b34:	83 fa 03             	cmp    $0x3,%edx
410b37:	74 09                	je     0x410b42
410b39:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
410b3d:	83 f8 0a             	cmp    $0xa,%eax
410b40:	75 12                	jne    0x410b54
410b42:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410b45:	8b 11                	mov    (%ecx),%edx
410b47:	03 55 14             	add    0x14(%ebp),%edx
410b4a:	8b 45 f0             	mov    -0x10(%ebp),%eax
410b4d:	89 10                	mov    %edx,(%eax)
410b4f:	e9 38 02 00 00       	jmp    0x410d8c
410b54:	0f b7 4d fc          	movzwl -0x4(%ebp),%ecx
410b58:	83 f9 01             	cmp    $0x1,%ecx
410b5b:	75 26                	jne    0x410b83
410b5d:	8b 55 f0             	mov    -0x10(%ebp),%edx
410b60:	0f b7 02             	movzwl (%edx),%eax
410b63:	c1 e0 10             	shl    $0x10,%eax
410b66:	89 45 f4             	mov    %eax,-0xc(%ebp)
410b69:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410b6c:	03 4d 14             	add    0x14(%ebp),%ecx
410b6f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
410b72:	8b 55 f4             	mov    -0xc(%ebp),%edx
410b75:	c1 fa 10             	sar    $0x10,%edx
410b78:	8b 45 f0             	mov    -0x10(%ebp),%eax
410b7b:	66 89 10             	mov    %dx,(%eax)
410b7e:	e9 09 02 00 00       	jmp    0x410d8c
410b83:	0f b7 4d fc          	movzwl -0x4(%ebp),%ecx
410b87:	83 f9 04             	cmp    $0x4,%ecx
410b8a:	0f 85 b8 00 00 00    	jne    0x410c48
410b90:	0f b7 55 f8          	movzwl -0x8(%ebp),%edx
410b94:	83 e2 40             	and    $0x40,%edx
410b97:	74 12                	je     0x410bab
410b99:	8b 45 10             	mov    0x10(%ebp),%eax
410b9c:	83 c0 02             	add    $0x2,%eax
410b9f:	89 45 10             	mov    %eax,0x10(%ebp)
410ba2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410ba5:	83 e9 01             	sub    $0x1,%ecx
410ba8:	89 4d 0c             	mov    %ecx,0xc(%ebp)
410bab:	8b 55 f0             	mov    -0x10(%ebp),%edx
410bae:	0f b7 02             	movzwl (%edx),%eax
410bb1:	c1 e0 10             	shl    $0x10,%eax
410bb4:	89 45 f4             	mov    %eax,-0xc(%ebp)
410bb7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410bba:	89 4d e8             	mov    %ecx,-0x18(%ebp)
410bbd:	8b 55 10             	mov    0x10(%ebp),%edx
410bc0:	83 c2 02             	add    $0x2,%edx
410bc3:	89 55 10             	mov    %edx,0x10(%ebp)
410bc6:	8b 45 0c             	mov    0xc(%ebp),%eax
410bc9:	83 e8 01             	sub    $0x1,%eax
410bcc:	89 45 0c             	mov    %eax,0xc(%ebp)
410bcf:	8b 4d 10             	mov    0x10(%ebp),%ecx
410bd2:	0f bf 11             	movswl (%ecx),%edx
410bd5:	03 55 f4             	add    -0xc(%ebp),%edx
410bd8:	89 55 f4             	mov    %edx,-0xc(%ebp)
410bdb:	8b 45 f4             	mov    -0xc(%ebp),%eax
410bde:	03 45 14             	add    0x14(%ebp),%eax
410be1:	89 45 f4             	mov    %eax,-0xc(%ebp)
410be4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410be7:	81 c1 00 80 00 00    	add    $0x8000,%ecx
410bed:	89 4d f4             	mov    %ecx,-0xc(%ebp)
410bf0:	8b 55 f4             	mov    -0xc(%ebp),%edx
410bf3:	c1 fa 10             	sar    $0x10,%edx